SlideShare a Scribd company logo
1 of 61
Download to read offline
NGINXのWAFとは?
その使い方と設定方法
Hiroshi Matsumoto
©2023 F5
2
NGINXの強み
• 世の中でもっとも利用されているWebアプリケーション
ソフトウェア
• コンテナ環境において最も利用されているOSSソフトウェア
• リソースが少なく高速。安定した動作
• 多機能。幅広い環境で利用可能
大規模・重要な環境で最も利用されているソフトェアです
NGINXとは、
©2023 F5
3
NGINXの強み
©2023 F5
4
コンテナプラットフォームに最適なNGINX Technology
Source: Datadog Container Report 2022
Top Ingress Providers
CNCF Survey
Source: CNCF Survey 2020
安定・高速動作がクラウドネイティブ環境に最適
実績
©2023 F5
5
業界を限定しない幅広い実績
Tech
Finance
Media
Service Provider
Other
あらゆるプラットフォームを「最適化」
実績
©2023 F5
6
柔軟に拡張できる最高のパフォーマンス
HARDWARE
SPECS
EXPECTED
PERFORMANCE
2 CPU cores
4 GB RAM
2x10 GbE NIC
74,000 RPS
9,100 SSL TPS (ECC)
4 Gbps throughput
4 CPU cores
8 GB RAM
2x10 GbE NIC
150,000 RPS
17,600 SSL TPS (ECC)
8 Gbps throughput
8 CPU cores
16 GB RAM
2x10 GbE NIC
300,000 RPS
33,000 SSL TPS (ECC)
8 Gbps throughput
HARDWARE
SPECS
EXPECTED
PERFORMANCE
2 CPU cores
4 GB RAM
2x1 GbE NIC
90,000 RPS
4,500 SSL TPS (ECC)
1 Gbps throughput
4 CPU cores
4 GB RAM
2x40 GbE NIC
175,000 RPS
8,500 SSL TPS (ECC)
5 Gbps throughput
8 CPU cores
4 GB RAM
2x40 GbE NIC
350,000 RPS
16,000 SSL TPS (ECC)
40 Gbps throughput
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
ECC
0
50000
100000
150000
200000
250000
300000
350000
400000
RPS
0
5000
10000
15000
20000
25000
30000
35000
ECC
0
50000
100000
150000
200000
250000
300000
350000
RPS
2 Core
4 GB
4 Core
4 GB
8 Core
4 GB
2 Core
4 GB
4 Core
8 GB
8 Core
16 GB
https://www.nginx.com/resources/datasheets/nginx-plus-sizing-guide/
https://www.nginx.com/resources/datasheets/nginx-ingress-controller-kubernetes/
ベアメタル:CPU/メモリに応じて様々な規模い柔軟に対応
Ingress Controller:アプライアンスに相当する高速・安定な処理
安定・拡張性
©2023 F5
7
同時接続の処理能力
メモリ使用量
秒間リクエスト
処理数
https://www.nginx.com/blog/using-nginx-plus-web-server/
NGINXは同時コネクションが
増加した場合にも
高い性能を維持
NGINXは同時コネクション数
におけるメモリ消費を抑え安
定動作を実現
システム運用に求められる
「高負荷時」の安定性
同時コネクション増加時においても安定性・高速性を維持
安定・拡張性
©2023 F5
8
幅広い環境で様々な用途で利用可能
CPU
プライベートクラウド パブリッククラウド コンテナ
Linux/BS
D
Service
App
App
リバース
プロキシ
ロード
バランサー
WEB
サーバ
キャッシュ
サーバ
APIGW
認証GW
多くの機能を自由に設定、必要な機能を即座に利用
WAF/
L7DoS
AddOn
自由な構成
©2023 F5
9
メーカーサポートの提供
NGINX OSS NGINX Plusメーカーサポート
連絡窓口
NGINX Mailing List、
GitHubによるコミュニケーション
F5が提供する「MyF5」という
サポートサイトよりメーカ直接サポート
SLA ー ○
問い合わせ上限 ー ☓ (上限なし・無制限)
24/365 サポート ー ○
日本語サポート ー
○
(ベストエフォート)
定期的なソフトウェア・アップデート ☓ ○
バグフィックス ☓ ○
顧客向けホットフィックス提供 ☓ ○
デバッグ・エラー調査サポート ☓ ○
インストールサポート ☓ ○
テクニカルQA ☓ ○
3rd Partyモジュールサポート ☓ ○
トラブルの安定対応。定期的なパッケージの提供により脆弱性に対処
メーカーサポート
©2023 F5
10
NGINXのご紹介
©2023 F5
11
F5 NGINX 製品一覧
Servics Overview
NGINX Plus
Dev/Opsに最適な超軽量で高速なデプロイが可能。Webサーバ、ロード
バランサー、コンテンツキャッシュなど、多機能なAll-In-One Software
NGINX Management Suite
NGINX+統合管理ソフトウェア。NGINX+のAPI Gateway
更にマルチクラウド環境においても容易に管理が可能。
NGINX Instance Manager
指定したネットワーク内をスキャンしNGINX OSS、NGINX Plusを
管理。ヒストリカルなトラフィック・ステータス情報やコンフィグ、
証明書の一括管理を提供
NGINX App Protect WAF
アプリケーションに特化したWeb Application Firewall
NGINX+にシームレスに統合可能な新しいWAF。 F5の実績に基づき、
高速な高品質なWAFを実現
NGINX App Protect DoS
新世代DoS攻撃への対応
NGINX+にシームレスに統合可能な新しいDoS対策。従来のツールや戦
略では検知できないレイヤー7のDoS脅威から高度な保護を実現
NGINX Ingress Controller
Kubernetes環境への外部アクセスをコントロール。
NGINX機能をIngressリソースを通じて管理可能。
NGINX Kubernetes Gateway
新たに定義されたGateway APIを通じて、データプレーンとして動作す
るNGINXを制御。Kubernetesの高度な通信制御を提供。
NGINX for Azure
NGINX PlusをAzureからSaaS環境として提供、コンフィグを貼り付ける
だけで活用が可能
セ
キ
ュ
リ
テ
ィ
コ
ン
テ
ナ
All-In-One
Software
S
a
a
S
©2023 F5
12
Application Security
©2023 F5
13
ビジネスは大きな変革を迎える
APIs
モダナイズされた環境ではアプリを
接続するAPIの利用が不可欠です。
このAPIが新たなターゲットとなり、
悪用されます
マルチクラウド
クラウドベンダーのロックインや
アプリケーションの用途に合わせ
複数のクラウドを活用します
すべてのクラウドに共通のセキュリティを
施すことは難しく課題となっています。
機密データ
より多くのアプリケーションはインターネットを
通じオンラインのクラウドを活用します。
しかしアプリケーションの半数は
脆弱なままです。
©2023 F5
14
0
2000
4000
6000
8000
10000
12000
14000
16000
2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
YoY Increase in CVEs
Note: Excludes any rejections or disputes.
常にソフトウェアの新しい
脆弱性が日々発見される
悪意のあるボットと人間の攻撃者の両方に
悪用されています。
自分のアプリケーションスタックに影響を与え
る脆弱性がどれくらいあるか知っていますか?
公開されている脆弱性のペースに追いつくこ
とができますか?
©2023 F5
15
脆弱性は、組織がパッチを当てるよりも早く公開される
High と CriticalのCVEが公開される頻度・平均日数
1.4
0.9
0.6
0.2
0.3
1.7
0.8
0.5
0.4
0.5
0.0
0.5
1.0
1.5
2.0
2014 2015 2016 2017 2018
High Critical
9-12
HOURS
©2023 F5
16
攻撃者に最も狙われる要素、
それがWeb Applicationです
3%
11%
33%
53%
Other (VPN, PoS, infra.)
Physical
User / Identity
Web App Attacks
©2023 F5
17
NGINX App Protect
WAF
©2023 F5
18
NGINX App Protect WAF
ワールドワイドで実績豊富なF5製WAFの機能を移植
(Signature/DataGuard/HTTP Compliance/Evasion Techniques等)
Secure
Manage
CI/CD
Friendly
NGINXの動的モジュールとして提供(現在、NGINX Plusのみ対応)
• 仮想マシン/コンテナの双方で動作可能
• ゲートウェイ型/ホスト型
• Ingress Controller
軽量なため、CI/CDパイプライン上でのデプロイが容易
©2023 F5
19
構成例
©2023 F5
20
NGINX WAFのデプロイ構成
Gatweay / At Edge Ingress Controller Per-Service Proxy Per-Pod Proxy
担当者 NeOps/SecOps
/DevSecOps
NetOps/SecOps
/DevSecOps
DevSecOps DevOps
スコープ サービス全体 サービス毎・URI毎 サービス毎 Endpoint毎
コスト・効率性 高/統合によるメリット 高/統合によるメリット 中 細かな設定
設定管理方法 nginx.conf K8s API nginx.conf nginx.conf
Kubernetes Cluster
pod
Ingress
Controller
Gateway
Load Balancer
API Gateway
Load
Balancer
pod
ライブラリ・コンテナへ
悪意あるプログラム
pod
外部ネットワークからの攻撃
Reverse
Proxy
Web App
Server
©2023 F5
21
NGINXユーザ会 2023春
NGINX App Protect WAFで実現する、自然にセキュリティを組み込むCICDとは」
ー 株式会社日立製作所様
©2023 F5
22
事例講演3 株式会社日立製作所様
「NGINX App Protect WAFで実現する、自然にセキュリティを組み込むCICDとは」
アプリ型WAFを
実現するための各
チームの役割
自動化出来るので
負担は最小限
具体的なセキュリ
ティポリシー設定
例と、それに伴う
組織の壁の課題
実際に現場を知ら
ないと分析できな
い課題で、大変貴
重なお話
セキュリティポリシー
の管理パターン
こちらも現場を知らな
いとわからないお話
まさにアプリ型WAF
の目指すべきゴール
©2023 F5
23
NAP WAFの活用構成(CICDを使った導入)
Kubernetes Cluster / Container環境
Gateway
Load Balancer
API Gateway
pod
ライブラリ・コンテナへ
悪意あるプログラム
pod
外部ネットワークからの攻撃
Web App Server
Dev
Dev
え!?外部からの攻撃に
対する防御が完璧!?
CICDパイプライン
テンプレートで
デプロイするだけ
共通ポリシー
pod
共通ポリシー
追加ポリシー
Ops Sec Dev
共通ポリシー
OpenAPI
チームの要件に応じて
それぞれのチームが
セキュリティポリシーを管理
©2023 F5
24
顧客事例
©2023 F5
25
Audi:NGINX Ingress Controller + NAP WAF
CONFIDENTIAL
UP
NGINX Plus
Ingress
Controller
Service
pod pod
NGINX
App Protect
Service
pod pod
Service
pod pod
Cloud B
Cloud A
物理・クラウドなど環境に
依存しないアプリケーション
デリバリ環境
セルフサービス、自動化
による開発の生産性を向上
アプリケーション
利用者
アプリケーションデリバリに
調和し、最適なアジリティと
セキュリティを実現
プラットフォーム
アプリケーション開発
セキュリティ
• AudiのIT部門が、同社全体にわたるデジタル・トランスフォーメーショ
ンの主要な推進役となり、物理構成に依存せずアプリケーションを拡
張することを使命とする
• ”一度作ったものをどこでも使えるようにする”という機能性をセキュリ
ティポリシーにも実現する
• セルフサービス&自動化の統合により、生産性を向上する
• フルマネージド型のKubernetesプラットフォームであるKubika Oソリューションを開発
• DevOpsとSecOpsが効果的かつ調和的に運用でき、スピードやアジリティを損なうことなく、
Kubernetesアプリケーションをシームレスに保護することが可能
• アプリケーションのオーナーが、インフラについて心配する必要が全くなくなり、リアルタイムス
キャンや脆弱性スキャンなどのインフラに関する問題は、すべてプラットフォームに組み込むこ
とができ、セキュリティ評価の80%を完了した状態を実現
ビジネスゴール 結果・成果
©2023 F5
26
本日ご紹介する
ハンズオンラボ
NGINX Plus Lab セキュリティ編
©2023 F5
27
NGXIN Lab Guide
• NGINX Plus Lab セキュリティ編
https://f5j-tech-info.readthedocs.io/ja/latest/content03/content3.html
NGINX セットアップガイド・ラボガイド
https://f5j-nginx-plus-lab2-security.readthedocs.io/en/latest/index.html
©2023 F5
28
ラボ環境
Linux
Linux
Docker
WEB
Windows
NGINX: Basic_Lab_JP DNS Mask
WEB
Deploy!!
GUI
CLI
RDP
©2023 F5
29
NGINX Lab たくさん準備できています
https://f5j-tech-info.readthedocs.io/ja/latest/content03/content3.html
お気軽にハンズオントレーニングご依頼ください
©2023 F5
30
セキュリティ機能
WAF Functions
©2023 F5
31
Basic App Protect Configuration
load_module modules/ngx_http_app_protect_module.so;
http {
server {
listen 80;
server_name localhost;
proxy_http_version 1.1;
index index.html index.htm;
# NGINX App Protect on
app_protect_enable on;
app_protect_security_log_enable on;
app_protect_security_log "/etc/nginx/log-default.json" syslog:server=elk:5144;
location /application01 {
root /usr/share/nginx/html;
app_protect_policy_file "/etc/nginx/security-policy.json";
index index.html index.htm;
}
}
}
https://docs.nginx.com/nginx-app-protect/configuration/
©2023 F5
32
Basic App Protect Configuration
{
"policy":{
"name":"evasions_enabled",
"template":{ "name":"POLICY_TEMPLATE_NGINX_BASE" },
"applicationLanguage":"utf-8",
"enforcementMode":"blocking",
"blocking-settings":{
"violations":[
{
"name":"VIOL_JSON_FORMAT",
"alarm":true,
"block":true
},
{
"name":"VIOL_EVASION",
"alarm":true,
"block":true
},
}
"signature-settings": {
"signatureStaging": false,
"placeSignaturesInStaging": false,
"attackSignatureFalsePositiveMode": "disabled",
"minimumAccuracyForAutoAddedSignatures": "low"
},
"server-technologies": [
{
"serverTechnologyName": "MongoDB"
},
{
"serverTechnologyName": "Unix/Linux"
},
{
"serverTechnologyName": "PHP"
}
]
}
}
©2023 F5
33
主なセキュリティ機能 ①
Protection Mechanism Description
Attack Signatures デフォルトのポリシーでOWASP top 10の攻撃パターンをカバーします。ユーザはSignature setを有効・無効にすることが可能です
Signature attack for Server
Technologies
サーバテクノロジを選択し、適切なシグネチャセットを利用
Threat Campaigns
攻撃のキャンペーンとして知られるパターンを検出します。ご検知が少なく正確な対応が可能ですが、一連のキャンペーンに該当しない攻撃パ
ターンは検出しません。この設定ではデフォルトで有効ですが、それぞれのViolationを無効にすることも可能です。
HTTP Compliance
Body部を持つGET、Body部の無いPOSTを除いたすべてのHTTPに対するCompliance Checkがデフォルトで有効になります。デフォルトで
無効となっているうちいくつかは有効にすることも可能です。NGINXパーサーにて処理されるHTTP Versionが含まれないリクエストなどについて
は、AppProtectでは検知のみ行います。これらのチェックは無効にすることはできません
Evasion Techniques
すべてのevasion techniquesがデフォルトで有効であり、それぞれの設定を無効にすることが可能です。この項目にはDirectory Traversal
やBad Escaped Characterなどの攻撃が含まれます
Data Guard
レスポンスデータ内のクレジットカードとアメリカの社会保障番号をマスキング処理することが可能です。
デフォルトで無効となっており、有効にすることが可能です`
Parameter parsing アルファベット・数字のプレーンテキスト、XML、JSON等、自動的に検知した型に応じて動作し、値の型を自動的をサポートします
Disallowed meta characters
パラメータ名、値、URL、ヘッダーなどJSON・XMLに含まれる内容を検知します。メタキャラクターやシグネチャやViolation等、複合的に判断し
それらのRatingから攻撃の判定を行い、ブロックします。
Disallowed file type extension
デフォルトで予め設定されたファイルタイプが無効となっています。
• bak, bat, bck, bkp, cfg, conf, config, ini, log, old, sav, save, temp, tmp
• bin, cgi, cmd, com, dll, exe, msi, sys, shtm, shtml, stm
• cer, crt, der, key, p12, p7b, p7c, pem, pfx
• dat, eml, hta, htr, htw, ida, idc, idq, nws, pol, printer, reg, wmz
Supported Security Policy Features:提供する主なセキュリティ機能
©2023 F5
34
主なセキュリティ機能 ①
Protection Mechanism Description
Cookie enforcement
デフォルトですべてのクッキーが有効です。ユーザは特定のクッキーやワイルドカードまたは除外設定を指定でき、指定の内容に応じた処理がなさ
れます。また、レスポンスの内、Cookieに関連する要素としてHttpOnly、Secure、SameSite等の属性に関する指定も可能です
Sensitive Parameters デフォルトのポリシーではセキュリティログ上の「パスワード」をマスクします。更にパラメータを追加することが可能です。
JSON Content
JSON Content ProfileはJSONの値に対し、シグネチャ、メタキャラクタ、不正な内容などの検出をします。デフォルトのポリシーでは、
パラメータ階層の深さをチェックします。その他に、サイズの制限、JSONデータの最大長、値の最大長、配列の最大長、JSONパー
スの容認について設定が可能です。JSONスキーマの適用などサポートしていません。
XML Content
XML Content ProfileはXMLの値に対し、シグネチャ、メタキャラクタ、不正な内容などの検出をします。Xデフォルトのポリシーでは、
パラメータ階層の深さをチェックします。その他に、サイズの制限、要素の最大数など指定が可能です。SOAP等、XML Schemaや
Web Serviceはサポートしていません。
Allowed methods HTTPの許可するメソッドを指定可能です。デフォルトではすべてのHTTPメソッドが許可されています
Black & White IP listing 個別に、IPアドレスの許可・拒否を指定することが可能です。
Trust XFF header デフォルトで無効になっています。個別にカスタムのXFFを指定し、制御することが可能です。
gRPC Content
gRPC Content ProfileはgRPCの値に対し、シグネチャ、メタキャラクタ、不正な内容などの検出をします。把握されていないフィー
ルドの禁止や、サイズの制限など可能です。gRPC APIの制御の場合にはnterface Definition Language (IDL) をポリシーに
割り当てる必要があります
Large Request Blocking
NGINX App Protect WAF 3.7 以前では10MB以上のリクエストが許可されていましたが、3.7以降拒否されるようになりました。
該当のVIOLATIONはVIOL_REQUEST_MAX_LENGTHとなります。
Supported Security Policy Features:提供する主なセキュリティ機能
©2023 F5
35
主なセキュリティ機能 ②
Protection Mechanism Description
Enforcement by Violation Rating
デフォルトでは、驚異として判定される、Violation Rating 4,5 のリクエストを攻撃としてブロックします。この動作は変更することが
可能です。Violation Ratingによる制御や、Rating3を防御対象に加える等の設定が可能です。
Request size checks
最大バッファサイズの10MBで指定されるリクエストの各種上限。URL、ヘッダー、Query String、リクエスト全体(最大バッファサイ
ズ以下の範囲で)、クッキー、POST Dataのサイズチェックを指定可能。デフォルトではリクエスト全体とPOST Dataを除くすべての
チェックが有効となる。ユーザはそれぞれのチェックについて有効・無効の指定と、上限サイズの指定が可能
Malformed cookie デフォルトでは、RFCに従わないクッキーを含むリクエストをブロックする。これは無効にすることも可能
Status code restriction
4xx、5xxの範囲で不正なステータスコードを指定可能。デフォルトで、以下のみ許可される。
• 400, 401, 404, 407, 417, 503.
ユーザはリストの修正、チェック機能の無効が可能。
Blocking pages ユーザにてBlocking Pageのカスタマイズが可能。デフォルトでAJAXページは無効。ユーザが機能を有効にすることが可能
Additional Policy Features:その他Policyに関する機能
©2023 F5
36
主なセキュリティ機能 ③
Setting JSON Property in Policy Support in NGINX App Protect Value in Default Profile
Signature Sets signature-sets すべてが有効になっているセット 下記のSignature Set Listを参照してください
Signatures signatures 適宜“Enable”Flagの変更が可能
Signature Setに含まれるSignatureはすべて
有効
Auto-Added
signature accuracy
minimumAccuracyForAutoAddedSign
atures
変更可能 Low
Configuring Attack Signatures:Attack Signatureに関する設定
©2023 F5
37
シグネチャ設定
Default Template で有効になっているSignature Set
• Command Execution Signatures
• Cross Site Scripting Signatures
• Directory Indexing Signatures
• Information Leakage Signatures
• OS Command Injection Signatures
• Path Traversal Signatures
• Predictable Resource Location Signatures
• Remote File Include Signatures
• SQL Injection Signatures
• Authentication/Authorization Attack Signatures
• XML External Entity (XXE) Signatures
• XPath Injection Signatures
• Buffer Overflow Signatures
• Denial of Service Signatures
• Vulnerability Scanner Signatures
• High Accuracy Signatures
• CVE Signatures
多くが攻撃者からの攻撃に対するSignature Setとなる。すべての
Signature SetでAlarmが有効、High Accuracy Signature
のみBlockが有効で、その他のSignatureはBlock が無効
App Protect に含まれるBasic Signature Sets
• All Response Signatures
• All Signatures
• Generic Detection Signatures
• Generic Detection Signatures (High Accuracy)
• Generic Detection Signatures (High/Medium
Accuracy)
• High Accuracy Signatures
• Low Accuracy Signatures
• Medium Accuracy Signatures
• OWA Signatures
• WebSphere signatures
• HTTP Response Splitting Signatures
• Other Application Attacks Signatures
• High Accuracy Detection Evasion Signatures
Default Templateには含まれていませんが、以下のような
Signature setが提供されます
©2023 F5
38
(参考)シグネチャ適応に指定可能なサーバテクノロジ
Jenkins, SharePoint, Oracle Application Server, Python, Oracle Identity Manager, Spring Boot, CouchDB,
SQLite, Handlebars, Mustache, Prototype, Zend, Redis, Underscore.js, Ember.js, ZURB Foundation, ef.js,
Vue.js, UIKit, TYPO3 CMS, RequireJS, React, MooTools, Laravel, GraphQL, Google Web Toolkit, Express.js,
CodeIgniter, Backbone.js, AngularJS, JavaScript, Nginx, Jetty, Joomla, JavaServer Faces (JSF), Ruby,
MongoDB, Django, Node.js, Citrix, JBoss, Elasticsearch, Apache Struts, XML, PostgreSQL, IBM DB2,
Sybase/ASE, CGI, Proxy Servers, SSI (Server Side Includes), Cisco, Novell, Macromedia JRun,
BEA Systems WebLogic Server, Lotus Domino, MySQL, Oracle, Microsoft SQL Server, PHP,
Outlook Web Access, Apache/NCSA HTTP Server, Apache Tomcat, WordPress, Macromedia ColdFusion,
Unix/Linux, Microsoft Windows, ASP.NET, Front Page Server Extensions (FPSE), IIS, WebDAV, ASP,
Java Servlets/JSP, jQuery
©2023 F5
39
• OSのパッケージ管理システムで管理
• ダウングレードもバージョンを指定することで
容易に実施可能
• シグネチャ更新後、nginxプロセスのreloadで更
新が反映される
• コンテナとして動作させる場合は、イメージの
再構築を行い、再構築時に更新シグネチャを適
応させる
シグネチャアップデート
©2023 F5
40
Bot シグネチャ
• Bot シグネチャは、User AgentやURIをベースに検知によって基本
的なBotをブロックします
• Bot シグネチャはクラスに分けられており、trusted-bot、untrusted-
bot、malicious-botなどがある
• それぞれのクラスに応じて動作を指定することができる
{
"policy": {
"name": "bot_defense_policy",
"template": {
"name": "POLICY_TEMPLATE_NGINX_BASE"
},
"applicationLanguage": "utf-8",
"enforcementMode": "blocking",
"bot-defense": {
"settings": {
"isEnabled": true
},
"mitigations": {
"classes": [
{
"name": "trusted-bot",
"action": "alarm"
},
{
"name": "untrusted-bot",
"action": "block"
},
{
"name": "malicious-bot",
"action": "block"
}
]
}
}
}
}
動作 意味
ignore 対象のシグネチャを無視する
detect VIOLATIONとしては検知せず、通知のみとなる。その他
のVIOLATIONで通信が制御対象とならない限りlegalとし
て扱われる
alarm VIOLATIONを検知し、通知する。この通信はillegalとし
て扱われる
block VIOLATIONを検知し、通知および通信をブロックする
https://docs.nginx.com/nginx-app-protect/configuration-guide/configuration/#bot-signatures
©2023 F5
41
Bot シグネチャ その他情報
Bot Name Description
Ask Ask.com engine
Baidu Baidu search engine
Baidu Image Spider Baidu search engine for images
Bing Microsoft Bing search engine
BingPreview
Microsoft Bing page snapshot generation
engine
Daum Daum search engine
DuckDuckGo Bot DuckDuckGo search engine
fastbot fastbot search engine
Google Google search engine
MojeekBot Mojeek search engine
Yahoo! Slurp Yahoo search engine
Yandex Yandex search engine
YioopBot Yioop search engine
• Trusted Bot • その他Bot例
• HTTP Library: curl
• Spam Bot bot: meow, ANETInspect, OnlyScans, HonoluluBot,
Search engine under construction, browsergetproto1.2
• Service Agent bot: YandeG, FGX-Web, Detectify,
AndroidDownloadManager
• Web Spider bot: DoCoMo 2.0, GGG
• HTTP Library bot: Alamofire, PerlDAV, node-fetch
• Crawler bot: CryptoAPI
• Network Scanner bot: Exchange scanner
• Exploit Tool bot: Exchange RCE Detector(CVE-2021-34473)
• Vulnerability Scanner bot: Log4Shell detector
• Crawler bot: ds9, coccoc
• Exploit Tool bot: JNDI Exploit Bot
©2023 F5
42 CONFIDENTIAL
Response Block Page
https://docs.nginx.com/nginx-app-protect/configuration/
{
"policy": {
"name": "blocking_page",
"template": { "name": "POLICY_TEMPLATE_NGINX_BASE" },
"applicationLanguage": "utf-8",
"enforcementMode": "blocking",
"response-pages": [
{
"responseContent": "<html><head><title>Custom Reject
Page</title></head><body>This is a custom response page, it is supposed to overwrite the
default page with custom text.<br><br>Your support ID is: <%TS.request.ID()%><br><br><a
href='javascript:history.back();'>[Go Back]</a></body></html>",
"responseHeader": "HTTP/1.1 302 OK¥¥r¥¥nCache-Control: no-
cache¥¥r¥¥nPragma: no-cache¥¥r¥¥nConnection: close",
"responseActionType": "custom",
"responsePageType": "default"
}
]
}
}
Default Block Page
Custom Block Page
"response-pages": [
{
"responsePageType": "ajax",
"ajaxEnabled": true,
"ajaxPopupMessage": "My customized popup message! Your support ID is:
<%TS.request.ID()%>"
}
]
"response-pages": [
{
"responseContent": "",
"responseHeader": "HTTP/1.1 403 FORBIDDEN¥r¥nContent-Type:
application/grpc+proto¥r¥nGrpc-status: 7¥r¥nGrpc-message: Blocked by NGINX App Protect,
Your support ID is <%TS.request.ID()%>¥r¥nSupport-ID: <%TS.request.ID()%>¥r¥nCache-
Control: no-cache¥r¥nPragma: no-cache¥r¥nConnection: close",
"responseActionType": "custom",
"responsePageType": "default"
}
]
Ajax Block Page
gRPC Block Page
©2023 F5
43
その他機能
• External References:Release 1.2
• Threat Campaigns:Release 1.2
• OpenAPI Specification File Reference:Release 2.0
• Bot Signatures:Release 2.1
• Multiple Security Logs Support:Release 3.2
• FQDNs are now permitted in syslog destinations:Release 3.3
• gRPC Protection for Bidirectional Streaming: Release 4.0
• Graph QL Protection: Release 4.2
©2023 F5
44
性能
Performance
©2023 F5
45
ModSecurityの性能比較
【比較条件】
ModSecurityでは OWASP Core Rule Set(CRS) v3.0を有効化
NGINX App Protectでは OWASP Top 10対応シグネチャに加え、DataGuard/Disallowed file types, HTTP protocol compliance等のセキュリティ機
能を有効化
©2023 F5
46
ロギング機能
Security Log
©2023 F5
47
Security Log Attribute Name Description
attack_type A list of comma separated names of suspected attacks identified in a transaction.
blocking_exception_reason The blocking exception reason when a configured violation was not blocked.|
date_time The date and time the request was received by App Protect.
dest_port The port assigned to listen to incoming requests.
ip_client The source IP of the client initiating the request Note: if a proxy is being used, this may differ from the IP in the X-forwarded-for header.
is_truncated A flag that returns TRUE if a request is truncated in the security logs.
method The method of request. For example, GET, POST, HEAD.
policy_name The name of the App Protect policy for which the violation was triggered.
protocol The protocol used, either HTTP or HTTPS if terminating SSL on App Protect.
request The entire request including headers, query string, and data.
request_status
•The status of client request made to Web Application as assigned by the App Protect policy. The possible values are:blocked: The request was
blocked due to a violation encountered. A blocking response page was returned to the client.
•alerted: The request contains violation(s) but is not blocked (typical in cases where the enforcement mode is set to transparent).
•passed: A successful request with no violations.
response_code The response code returned by the server.
severity The maximum severity calculated from all violations found in the request. It is a static value coming from the Violations.
sig_cves Signature CVEs value of the matched signatures.
sig_ids Signature ID value of the matching signature that resulted in the violation.
sig_names Signature name of the matching signature that resulted in the violation.
sig_set_names The signature set names of the matched signatures.
src_port The source port of the client.
sub_violations Refers to the sub-violations detected under the ‘HTTP protocol compliance failed’ and the ‘Evasion technique detected’ violations.
support_id A unique identifier for a transaction.
unit_hostname host name of the app-protect instance
uri The URI or Uniform Resource Identifier of the request.
violation_details XML including details about each violation.
violation_rating Estimation of the likelihood that the request is indeed a threat on a scale of 0 to 5: 0 - not a threat (no violations), 5 - most likely a threat
vs_name
A unique identifier of the location in the nginx.conf file that this request is associated with. It contains the line number of the containing server
block in nginx.conf, the server name, a numeric discriminator that distinguishes between multiple entries within the same server, and the
location name. For example: ’34-mydomain.com:0-~/.*php(2).
x_forwarded_for_header_value X-Forwarded-For header information. This option is commonly used when proxies are involved to track the originator of the request.
outcome
•One of the following:PASSED: the request was sent to the backend server.
•REJECTED: the request was blocked.
outcome_reason
•One of the following:SECURITY_WAF_OK: allowed with no violations (legal request).
•SECURITY_WAF_VIOLATION: blocked due to security violations.
•SECURITY_WAF_FLAGGED: allowed, although it has violations (illegal).
violations Comma-separated list of logical violation names (e.g. “VIOL_ATTACK_SIGNATURES,VIOL_HTTP_PROTOCOL”)
• App Protect独自にログを生成
• フィルタリングが可能
(all/illegal/blocked)
• 右記属性を選択し出力可能
• syslog(TCP)にて出力
©2023 F5
48
Custom Log
https://docs.nginx.com/nginx-app-protect/troubleshooting/
{
"filter": {
"request_type": "all"
},
"content": {
"format": "default",
"max_request_size": "any",
"max_message_size": "5k"
}
}
Simple Log
"content": {
"format": "user-defined",
"format_string": "client_ip=%ip_client%,client_port=%src_port%,request=%request%,violations=%violations%,signature_ids=%sig_ids%",
"max_request_size": "any",
"max_message_size": "5k" }
Log Message Key-Value Format
"content": {
"format": "user-defined",
"format_string": "Request ID %support_id%: %method% %uri% received on %date_time% from IP %ip_client% had the following violations: %violations%",
"max_request_size": "any",
"max_message_size": "5k" }
A Verbose Custom Format Message
©2023 F5
49
App Protect WAF Security Logの可視化
(ELKスタックとの組み合わせ)
NGINX
App Protect
WAF
Syslog/tcp
©2023 F5
50
NGINX Ingress Controller
設定
NGINX Ingress Controller Configuration
©2023 F5
51
App Protect WAF Policy Configuration Sample
{
"policy": {
"name": "dataguard_blocking",
"template": { "name": "POLICY_TEMPLATE_NGINX_BASE" },
"applicationLanguage": "utf-8",
"enforcementMode": "blocking",
"blocking-settings": {
"violations": [
{
"name": "VIOL_DATA_GUARD",
"alarm": true,
"block": true
}
]
},
"data-guard": {
"enabled": true,
"maskData": true,
"creditCardNumbers": true,
"usSocialSecurityNumbers": true,
"enforcementMode": "ignore-urls-in-list",
"enforcementUrls": []
}
}
}
apiVersion: appprotect.f5.com/v1beta1
kind: APPolicy
metadata:
name: dataguard-blocking
spec:
policy:
name: dataguard_blocking
template:
name: POLICY_TEMPLATE_NGINX_BASE
applicationLanguage: utf-8
enforcementMode: blocking
blocking-settings:
violations:
- name: VIOL_DATA_GUARD
alarm: true
block: true
data-guard:
enabled: true
maskData: true
creditCardNumbers: true
usSocialSecurityNumbers: true
enforcementMode: ignore-urls-in-list
enforcementUrls: []
©2023 F5
52
App Protect WAF Log Configuration Sample
{
"filter": {
"request_type": "all"
},
"content": {
"format": "default",
"max_request_size": "any",
"max_message_size": "5k"
}
}
apiVersion: appprotect.f5.com/v1beta1
kind: APLogConf
metadata:
name: logconf
spec:
filter:
request_type: all
content:
format: default
max_request_size: any
max_message_size: 5k
https://docs.nginx.com/nginx-ingress-controller/app-protect/configuration/
©2023 F5
53
App Protect WAF Configuration Sample
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: webapp
spec:
host: webapp.example.com
policies:
- name: waf-policy
upstreams:
- name: webapp
service: webapp-svc
port: 80
routes:
- path: /
action:
pass: webapp
apiVersion: k8s.nginx.org/v1
kind: Policy
metadata:
name: waf-policy
spec:
waf:
enable: true
apPolicy: "default/dataguard-alarm"
securityLog:
enable: true
apLogConf: "default/logconf"
logDest: "syslog:server=127.0.0.1:514"
apiVersion: appprotect.f5.com/v1beta1
kind: APLogConf
metadata:
name: logconf
spec:
content:
format: default
max_message_size: 64k
max_request_size: any
filter:
request_type: all
apiVersion: appprotect.f5.com/v1beta1
kind: APPolicy
metadata:
name: dataguard-alarm
spec:
policy:
signature-requirements:
- tag: Fruits
signature-sets:
- name: apple_sigs
block: true
signatureSet:
filter:
tagValue: Fruits
tagFilter: eq
※省略※
template:
name: POLICY_TEMPLATE_NGINX_BASE
apiVersion: appprotect.f5.com/v1beta1
kind: APUserSig
metadata:
name: apple
spec:
signatures:
- accuracy: medium
attackType:
name: Brute Force Attack
description: Medium accuracy user defined signature
with tag (Fruits)
name: Apple_medium_acc
risk: medium
rule: content:"apple"; nocase;
nginx-ingress
pod
NGINX
Config
VS : webapp
Host : webapp.example.com
Policy : waf-policy
waf: enable, apPolicy,
waf-policy
securityLog: enable, apLogConf,
logDest
webapp-svc:80
APPolicy : dataguard-alarm
policy: signature-requirements,
signature-sets,
name, template, data-guard
enforcementMode 等
APUserSig : waf-policy
signatures, tag
APLogConf : logconf
content, filter
©2023 F5
54
その他参考情報
©2023 F5
55
言語に応じてケースオープン後のフローが異なります
F5 NGINX Plus サポートフロー
日本語で
ケースオープン
英語で
ケースオープン
NGINX Plus
利用者
MyF5
.com
チケットオープン
チケットオープン
日本語サポート:平日日中 9:00 – 18:00(ベストエフォート)
通常NGINXサポート(英語):24時間365日(お客様ご契約内容のSLAに準じます)
F5 NGINX
サポート
F5JP
サポート
F5 NGINX
サポート
必要に応じて問い合わせ可
(平日日中 9:00 – 18:00)
NGINX Plus
利用者
MyF5
.com
F5JP
サポート
©2023 F5
56
サブスクリプションによりカバーされるサポート内容
特徴
スタンダード プレミアム
重要度が比較的低く、長めの回答時間が
許容される、NGINXおよびNGINX Plus
の本番環境デプロイメント向けサポート
すべてのエンタープライズアプリケー
ションまたは本番環境のデフォルトスタ
ンダード
インシデント数 無制限 無制限
サポート時間 営業時間(平日日中帯) 24時間
Emailサポート
英語対応
*日本語対応
(平日9:00-18:00)
英語対応
*日本語対応
(平日9:00-18:00)
電話サポート
英語対応
*日本語対応
(平日9:00-18:00)
英語対応
*日本語対応
(平日:9:00-18:00)
応答時間
英語 – 30分~24時間以内
日本語 - ベストエフォート
英語 - 30分~24時間以内
日本語 – ベストエフォート
マニュアルに関する質問回答 24時間 24時間
ホットバグ修正 対応可 対応可
ソフトウェアアップデート メジャー、マイナー共に対応 メジャー、マイナー共に対応
サードパーティーモジュール
サポート
◯ ◯
NGINX Unit - ◯
https://www.nginx.co.jp/support/
推奨
©2023 F5
57
お問い合わせフォーム
• 製品に関するお問い合わせ
• 購入に関するお問い合わせ
• 構成・設計に関するご相談
など
https://www.nginx.co.jp/contact-sales/
お気軽にお問い合わせください
©2023 F5
58
https://f5j-nginx-plus-trial.readthedocs.io/
NGINXプロダクトのトライアル手順をまとめております。
こちらを参考にご希望のプロダクトをお客様環境でお試しください。
無料トライアル
©2023 F5
59
O’REILLY NGINXクックブック設定レシピ集(日本語版)
https://www.nginx.co.jp/resources/ebooks/nginx-cookbook-jp/
©2023 F5
60
NGINXドキュメント/コンテンツ
https://nginx.co.jp/
NGINX日本語サイト
https://nginx.org/en/docs/
https://nginx.org/en/docs/dirindex.html
NGINX OSS / Directive / Variable etc.
(各種マニュアル)
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー

More Related Content

What's hot

より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)NTT DATA Technology & Innovation
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...Shinji Takao
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
KeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについてKeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについてHiroyuki Wada
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門Naohiro Fujie
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介AdvancedTechNight
 
MongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeksMongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeekstobaru_yuta
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Ageクラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native AgeYoichi Kawasaki
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所Ryo Sasaki
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 
【メモ】一般的に設計書に定義される項目例
【メモ】一般的に設計書に定義される項目例【メモ】一般的に設計書に定義される項目例
【メモ】一般的に設計書に定義される項目例Hirokazu Yatsunami
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService PrincipalToru Makabe
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Kenjiro Kubota
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門Yoichi Kawasaki
 

What's hot (20)

より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
KeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについてKeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについて
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
MongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeksMongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeks
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Ageクラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
【メモ】一般的に設計書に定義される項目例
【メモ】一般的に設計書に定義される項目例【メモ】一般的に設計書に定義される項目例
【メモ】一般的に設計書に定義される項目例
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 

Similar to 【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー

Secure Kubernetes Apps in Production (Japanese Webinar)
Secure Kubernetes Apps in Production (Japanese Webinar)Secure Kubernetes Apps in Production (Japanese Webinar)
Secure Kubernetes Apps in Production (Japanese Webinar)NGINX, Inc.
 
API and Modern App Security for Microservices
API and Modern App Security for MicroservicesAPI and Modern App Security for Microservices
API and Modern App Security for MicroservicesNGINX, Inc.
 
NGINX Ingress Controller with WAF for Kubernetes
NGINX Ingress Controller with WAF for KubernetesNGINX Ingress Controller with WAF for Kubernetes
NGINX Ingress Controller with WAF for KubernetesNGINX, Inc.
 
NGINX Ingress Controller on RedHat OpenShift.pdf
NGINX Ingress Controller on RedHat OpenShift.pdfNGINX Ingress Controller on RedHat OpenShift.pdf
NGINX Ingress Controller on RedHat OpenShift.pdfFumieNakayama
 
Fundamentals of Microservices Japanese Webinar
Fundamentals of Microservices Japanese WebinarFundamentals of Microservices Japanese Webinar
Fundamentals of Microservices Japanese WebinarNGINX, Inc.
 
Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)NGINX, Inc.
 
NGINX Plus Hands On Training
NGINX Plus Hands On Training NGINX Plus Hands On Training
NGINX Plus Hands On Training NGINX, Inc.
 
Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)NGINX, Inc.
 
NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)NGINX, Inc.
 
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」Takaaki Suzuki
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes APINGINX, Inc.
 
Why NGINX Plus/NGINX Controller for NGINX OSS users
Why NGINX Plus/NGINX Controller for NGINX OSS usersWhy NGINX Plus/NGINX Controller for NGINX OSS users
Why NGINX Plus/NGINX Controller for NGINX OSS usersNGINX, Inc.
 
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法NGINX, Inc.
 
NGINX & OpenShift Webinar for Energy Sector
NGINX & OpenShift Webinar for Energy Sector NGINX & OpenShift Webinar for Energy Sector
NGINX & OpenShift Webinar for Energy Sector NGINX, Inc.
 
NGINX製品の最新機能アップデート情報
NGINX製品の最新機能アップデート情報NGINX製品の最新機能アップデート情報
NGINX製品の最新機能アップデート情報NGINX, Inc.
 
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX, Inc.
 
VMware が考えるコンテナと Kubernetes の世界
VMware が考えるコンテナと Kubernetes の世界VMware が考えるコンテナと Kubernetes の世界
VMware が考えるコンテナと Kubernetes の世界Yuichi Tamagawa
 
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組みマルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組みNGINX, Inc.
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 

Similar to 【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー (20)

Secure Kubernetes Apps in Production (Japanese Webinar)
Secure Kubernetes Apps in Production (Japanese Webinar)Secure Kubernetes Apps in Production (Japanese Webinar)
Secure Kubernetes Apps in Production (Japanese Webinar)
 
API and Modern App Security for Microservices
API and Modern App Security for MicroservicesAPI and Modern App Security for Microservices
API and Modern App Security for Microservices
 
NGINX Ingress Controller with WAF for Kubernetes
NGINX Ingress Controller with WAF for KubernetesNGINX Ingress Controller with WAF for Kubernetes
NGINX Ingress Controller with WAF for Kubernetes
 
NGINX Ingress Controller on RedHat OpenShift.pdf
NGINX Ingress Controller on RedHat OpenShift.pdfNGINX Ingress Controller on RedHat OpenShift.pdf
NGINX Ingress Controller on RedHat OpenShift.pdf
 
Fundamentals of Microservices Japanese Webinar
Fundamentals of Microservices Japanese WebinarFundamentals of Microservices Japanese Webinar
Fundamentals of Microservices Japanese Webinar
 
Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)
 
NGINX Plus Hands On Training
NGINX Plus Hands On Training NGINX Plus Hands On Training
NGINX Plus Hands On Training
 
Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)
 
NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)
 
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes API
 
Why NGINX Plus/NGINX Controller for NGINX OSS users
Why NGINX Plus/NGINX Controller for NGINX OSS usersWhy NGINX Plus/NGINX Controller for NGINX OSS users
Why NGINX Plus/NGINX Controller for NGINX OSS users
 
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
 
NGINX & OpenShift Webinar for Energy Sector
NGINX & OpenShift Webinar for Energy Sector NGINX & OpenShift Webinar for Energy Sector
NGINX & OpenShift Webinar for Energy Sector
 
NGINX製品の最新機能アップデート情報
NGINX製品の最新機能アップデート情報NGINX製品の最新機能アップデート情報
NGINX製品の最新機能アップデート情報
 
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
 
devsummit_nifcloud_vmware
devsummit_nifcloud_vmwaredevsummit_nifcloud_vmware
devsummit_nifcloud_vmware
 
VMware が考えるコンテナと Kubernetes の世界
VMware が考えるコンテナと Kubernetes の世界VMware が考えるコンテナと Kubernetes の世界
VMware が考えるコンテナと Kubernetes の世界
 
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組みマルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
マルチクラウド環境の膨大なAPIトラフィックをリアルタイムに処理するNGINXの仕組み
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
 

More from NGINX, Inc.

Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3NGINX, Inc.
 
Managing Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & KubecostManaging Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & KubecostNGINX, Inc.
 
Manage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityManage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityNGINX, Inc.
 
Accelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with AutomationAccelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with AutomationNGINX, Inc.
 
Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101NGINX, Inc.
 
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesNGINX, Inc.
 
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX, Inc.
 
Easily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXEasily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXNGINX, Inc.
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINX, Inc.
 
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXKeep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXNGINX, Inc.
 
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...NGINX, Inc.
 
Protecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXProtecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXNGINX, Inc.
 
Successfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXSuccessfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXNGINX, Inc.
 
Installing and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceInstalling and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceNGINX, Inc.
 
Shift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXShift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXNGINX, Inc.
 
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxHow to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxNGINX, Inc.
 
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティKubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティNGINX, Inc.
 
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...NGINX, Inc.
 
Open Sourcing NGINX Agent and Demo
Open Sourcing NGINX Agent and DemoOpen Sourcing NGINX Agent and Demo
Open Sourcing NGINX Agent and DemoNGINX, Inc.
 
NGINX, Open Source, and You – Another Decade of Innovation
NGINX, Open Source, and You – Another Decade of InnovationNGINX, Open Source, and You – Another Decade of Innovation
NGINX, Open Source, and You – Another Decade of InnovationNGINX, Inc.
 

More from NGINX, Inc. (20)

Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3
 
Managing Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & KubecostManaging Kubernetes Cost and Performance with NGINX & Kubecost
Managing Kubernetes Cost and Performance with NGINX & Kubecost
 
Manage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityManage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with Observability
 
Accelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with AutomationAccelerate Microservices Deployments with Automation
Accelerate Microservices Deployments with Automation
 
Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101Unit 2: Microservices Secrets Management 101
Unit 2: Microservices Secrets Management 101
 
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
 
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
 
Easily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXEasily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINX
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
 
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXKeep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
 
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
 
Protecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXProtecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINX
 
Successfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXSuccessfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINX
 
Installing and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceInstalling and Configuring NGINX Open Source
Installing and Configuring NGINX Open Source
 
Shift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXShift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINX
 
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxHow to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
 
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティKubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティ
 
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
 
Open Sourcing NGINX Agent and Demo
Open Sourcing NGINX Agent and DemoOpen Sourcing NGINX Agent and Demo
Open Sourcing NGINX Agent and Demo
 
NGINX, Open Source, and You – Another Decade of Innovation
NGINX, Open Source, and You – Another Decade of InnovationNGINX, Open Source, and You – Another Decade of Innovation
NGINX, Open Source, and You – Another Decade of Innovation
 

Recently uploaded

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Recently uploaded (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー

  • 2. ©2023 F5 2 NGINXの強み • 世の中でもっとも利用されているWebアプリケーション ソフトウェア • コンテナ環境において最も利用されているOSSソフトウェア • リソースが少なく高速。安定した動作 • 多機能。幅広い環境で利用可能 大規模・重要な環境で最も利用されているソフトェアです NGINXとは、
  • 4. ©2023 F5 4 コンテナプラットフォームに最適なNGINX Technology Source: Datadog Container Report 2022 Top Ingress Providers CNCF Survey Source: CNCF Survey 2020 安定・高速動作がクラウドネイティブ環境に最適 実績
  • 6. ©2023 F5 6 柔軟に拡張できる最高のパフォーマンス HARDWARE SPECS EXPECTED PERFORMANCE 2 CPU cores 4 GB RAM 2x10 GbE NIC 74,000 RPS 9,100 SSL TPS (ECC) 4 Gbps throughput 4 CPU cores 8 GB RAM 2x10 GbE NIC 150,000 RPS 17,600 SSL TPS (ECC) 8 Gbps throughput 8 CPU cores 16 GB RAM 2x10 GbE NIC 300,000 RPS 33,000 SSL TPS (ECC) 8 Gbps throughput HARDWARE SPECS EXPECTED PERFORMANCE 2 CPU cores 4 GB RAM 2x1 GbE NIC 90,000 RPS 4,500 SSL TPS (ECC) 1 Gbps throughput 4 CPU cores 4 GB RAM 2x40 GbE NIC 175,000 RPS 8,500 SSL TPS (ECC) 5 Gbps throughput 8 CPU cores 4 GB RAM 2x40 GbE NIC 350,000 RPS 16,000 SSL TPS (ECC) 40 Gbps throughput 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 ECC 0 50000 100000 150000 200000 250000 300000 350000 400000 RPS 0 5000 10000 15000 20000 25000 30000 35000 ECC 0 50000 100000 150000 200000 250000 300000 350000 RPS 2 Core 4 GB 4 Core 4 GB 8 Core 4 GB 2 Core 4 GB 4 Core 8 GB 8 Core 16 GB https://www.nginx.com/resources/datasheets/nginx-plus-sizing-guide/ https://www.nginx.com/resources/datasheets/nginx-ingress-controller-kubernetes/ ベアメタル:CPU/メモリに応じて様々な規模い柔軟に対応 Ingress Controller:アプライアンスに相当する高速・安定な処理 安定・拡張性
  • 8. ©2023 F5 8 幅広い環境で様々な用途で利用可能 CPU プライベートクラウド パブリッククラウド コンテナ Linux/BS D Service App App リバース プロキシ ロード バランサー WEB サーバ キャッシュ サーバ APIGW 認証GW 多くの機能を自由に設定、必要な機能を即座に利用 WAF/ L7DoS AddOn 自由な構成
  • 9. ©2023 F5 9 メーカーサポートの提供 NGINX OSS NGINX Plusメーカーサポート 連絡窓口 NGINX Mailing List、 GitHubによるコミュニケーション F5が提供する「MyF5」という サポートサイトよりメーカ直接サポート SLA ー ○ 問い合わせ上限 ー ☓ (上限なし・無制限) 24/365 サポート ー ○ 日本語サポート ー ○ (ベストエフォート) 定期的なソフトウェア・アップデート ☓ ○ バグフィックス ☓ ○ 顧客向けホットフィックス提供 ☓ ○ デバッグ・エラー調査サポート ☓ ○ インストールサポート ☓ ○ テクニカルQA ☓ ○ 3rd Partyモジュールサポート ☓ ○ トラブルの安定対応。定期的なパッケージの提供により脆弱性に対処 メーカーサポート
  • 11. ©2023 F5 11 F5 NGINX 製品一覧 Servics Overview NGINX Plus Dev/Opsに最適な超軽量で高速なデプロイが可能。Webサーバ、ロード バランサー、コンテンツキャッシュなど、多機能なAll-In-One Software NGINX Management Suite NGINX+統合管理ソフトウェア。NGINX+のAPI Gateway 更にマルチクラウド環境においても容易に管理が可能。 NGINX Instance Manager 指定したネットワーク内をスキャンしNGINX OSS、NGINX Plusを 管理。ヒストリカルなトラフィック・ステータス情報やコンフィグ、 証明書の一括管理を提供 NGINX App Protect WAF アプリケーションに特化したWeb Application Firewall NGINX+にシームレスに統合可能な新しいWAF。 F5の実績に基づき、 高速な高品質なWAFを実現 NGINX App Protect DoS 新世代DoS攻撃への対応 NGINX+にシームレスに統合可能な新しいDoS対策。従来のツールや戦 略では検知できないレイヤー7のDoS脅威から高度な保護を実現 NGINX Ingress Controller Kubernetes環境への外部アクセスをコントロール。 NGINX機能をIngressリソースを通じて管理可能。 NGINX Kubernetes Gateway 新たに定義されたGateway APIを通じて、データプレーンとして動作す るNGINXを制御。Kubernetesの高度な通信制御を提供。 NGINX for Azure NGINX PlusをAzureからSaaS環境として提供、コンフィグを貼り付ける だけで活用が可能 セ キ ュ リ テ ィ コ ン テ ナ All-In-One Software S a a S
  • 14. ©2023 F5 14 0 2000 4000 6000 8000 10000 12000 14000 16000 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 YoY Increase in CVEs Note: Excludes any rejections or disputes. 常にソフトウェアの新しい 脆弱性が日々発見される 悪意のあるボットと人間の攻撃者の両方に 悪用されています。 自分のアプリケーションスタックに影響を与え る脆弱性がどれくらいあるか知っていますか? 公開されている脆弱性のペースに追いつくこ とができますか?
  • 15. ©2023 F5 15 脆弱性は、組織がパッチを当てるよりも早く公開される High と CriticalのCVEが公開される頻度・平均日数 1.4 0.9 0.6 0.2 0.3 1.7 0.8 0.5 0.4 0.5 0.0 0.5 1.0 1.5 2.0 2014 2015 2016 2017 2018 High Critical 9-12 HOURS
  • 17. ©2023 F5 17 NGINX App Protect WAF
  • 18. ©2023 F5 18 NGINX App Protect WAF ワールドワイドで実績豊富なF5製WAFの機能を移植 (Signature/DataGuard/HTTP Compliance/Evasion Techniques等) Secure Manage CI/CD Friendly NGINXの動的モジュールとして提供(現在、NGINX Plusのみ対応) • 仮想マシン/コンテナの双方で動作可能 • ゲートウェイ型/ホスト型 • Ingress Controller 軽量なため、CI/CDパイプライン上でのデプロイが容易
  • 20. ©2023 F5 20 NGINX WAFのデプロイ構成 Gatweay / At Edge Ingress Controller Per-Service Proxy Per-Pod Proxy 担当者 NeOps/SecOps /DevSecOps NetOps/SecOps /DevSecOps DevSecOps DevOps スコープ サービス全体 サービス毎・URI毎 サービス毎 Endpoint毎 コスト・効率性 高/統合によるメリット 高/統合によるメリット 中 細かな設定 設定管理方法 nginx.conf K8s API nginx.conf nginx.conf Kubernetes Cluster pod Ingress Controller Gateway Load Balancer API Gateway Load Balancer pod ライブラリ・コンテナへ 悪意あるプログラム pod 外部ネットワークからの攻撃 Reverse Proxy Web App Server
  • 21. ©2023 F5 21 NGINXユーザ会 2023春 NGINX App Protect WAFで実現する、自然にセキュリティを組み込むCICDとは」 ー 株式会社日立製作所様
  • 22. ©2023 F5 22 事例講演3 株式会社日立製作所様 「NGINX App Protect WAFで実現する、自然にセキュリティを組み込むCICDとは」 アプリ型WAFを 実現するための各 チームの役割 自動化出来るので 負担は最小限 具体的なセキュリ ティポリシー設定 例と、それに伴う 組織の壁の課題 実際に現場を知ら ないと分析できな い課題で、大変貴 重なお話 セキュリティポリシー の管理パターン こちらも現場を知らな いとわからないお話 まさにアプリ型WAF の目指すべきゴール
  • 23. ©2023 F5 23 NAP WAFの活用構成(CICDを使った導入) Kubernetes Cluster / Container環境 Gateway Load Balancer API Gateway pod ライブラリ・コンテナへ 悪意あるプログラム pod 外部ネットワークからの攻撃 Web App Server Dev Dev え!?外部からの攻撃に 対する防御が完璧!? CICDパイプライン テンプレートで デプロイするだけ 共通ポリシー pod 共通ポリシー 追加ポリシー Ops Sec Dev 共通ポリシー OpenAPI チームの要件に応じて それぞれのチームが セキュリティポリシーを管理
  • 25. ©2023 F5 25 Audi:NGINX Ingress Controller + NAP WAF CONFIDENTIAL UP NGINX Plus Ingress Controller Service pod pod NGINX App Protect Service pod pod Service pod pod Cloud B Cloud A 物理・クラウドなど環境に 依存しないアプリケーション デリバリ環境 セルフサービス、自動化 による開発の生産性を向上 アプリケーション 利用者 アプリケーションデリバリに 調和し、最適なアジリティと セキュリティを実現 プラットフォーム アプリケーション開発 セキュリティ • AudiのIT部門が、同社全体にわたるデジタル・トランスフォーメーショ ンの主要な推進役となり、物理構成に依存せずアプリケーションを拡 張することを使命とする • ”一度作ったものをどこでも使えるようにする”という機能性をセキュリ ティポリシーにも実現する • セルフサービス&自動化の統合により、生産性を向上する • フルマネージド型のKubernetesプラットフォームであるKubika Oソリューションを開発 • DevOpsとSecOpsが効果的かつ調和的に運用でき、スピードやアジリティを損なうことなく、 Kubernetesアプリケーションをシームレスに保護することが可能 • アプリケーションのオーナーが、インフラについて心配する必要が全くなくなり、リアルタイムス キャンや脆弱性スキャンなどのインフラに関する問題は、すべてプラットフォームに組み込むこ とができ、セキュリティ評価の80%を完了した状態を実現 ビジネスゴール 結果・成果
  • 27. ©2023 F5 27 NGXIN Lab Guide • NGINX Plus Lab セキュリティ編 https://f5j-tech-info.readthedocs.io/ja/latest/content03/content3.html NGINX セットアップガイド・ラボガイド https://f5j-nginx-plus-lab2-security.readthedocs.io/en/latest/index.html
  • 29. ©2023 F5 29 NGINX Lab たくさん準備できています https://f5j-tech-info.readthedocs.io/ja/latest/content03/content3.html お気軽にハンズオントレーニングご依頼ください
  • 31. ©2023 F5 31 Basic App Protect Configuration load_module modules/ngx_http_app_protect_module.so; http { server { listen 80; server_name localhost; proxy_http_version 1.1; index index.html index.htm; # NGINX App Protect on app_protect_enable on; app_protect_security_log_enable on; app_protect_security_log "/etc/nginx/log-default.json" syslog:server=elk:5144; location /application01 { root /usr/share/nginx/html; app_protect_policy_file "/etc/nginx/security-policy.json"; index index.html index.htm; } } } https://docs.nginx.com/nginx-app-protect/configuration/
  • 32. ©2023 F5 32 Basic App Protect Configuration { "policy":{ "name":"evasions_enabled", "template":{ "name":"POLICY_TEMPLATE_NGINX_BASE" }, "applicationLanguage":"utf-8", "enforcementMode":"blocking", "blocking-settings":{ "violations":[ { "name":"VIOL_JSON_FORMAT", "alarm":true, "block":true }, { "name":"VIOL_EVASION", "alarm":true, "block":true }, } "signature-settings": { "signatureStaging": false, "placeSignaturesInStaging": false, "attackSignatureFalsePositiveMode": "disabled", "minimumAccuracyForAutoAddedSignatures": "low" }, "server-technologies": [ { "serverTechnologyName": "MongoDB" }, { "serverTechnologyName": "Unix/Linux" }, { "serverTechnologyName": "PHP" } ] } }
  • 33. ©2023 F5 33 主なセキュリティ機能 ① Protection Mechanism Description Attack Signatures デフォルトのポリシーでOWASP top 10の攻撃パターンをカバーします。ユーザはSignature setを有効・無効にすることが可能です Signature attack for Server Technologies サーバテクノロジを選択し、適切なシグネチャセットを利用 Threat Campaigns 攻撃のキャンペーンとして知られるパターンを検出します。ご検知が少なく正確な対応が可能ですが、一連のキャンペーンに該当しない攻撃パ ターンは検出しません。この設定ではデフォルトで有効ですが、それぞれのViolationを無効にすることも可能です。 HTTP Compliance Body部を持つGET、Body部の無いPOSTを除いたすべてのHTTPに対するCompliance Checkがデフォルトで有効になります。デフォルトで 無効となっているうちいくつかは有効にすることも可能です。NGINXパーサーにて処理されるHTTP Versionが含まれないリクエストなどについて は、AppProtectでは検知のみ行います。これらのチェックは無効にすることはできません Evasion Techniques すべてのevasion techniquesがデフォルトで有効であり、それぞれの設定を無効にすることが可能です。この項目にはDirectory Traversal やBad Escaped Characterなどの攻撃が含まれます Data Guard レスポンスデータ内のクレジットカードとアメリカの社会保障番号をマスキング処理することが可能です。 デフォルトで無効となっており、有効にすることが可能です` Parameter parsing アルファベット・数字のプレーンテキスト、XML、JSON等、自動的に検知した型に応じて動作し、値の型を自動的をサポートします Disallowed meta characters パラメータ名、値、URL、ヘッダーなどJSON・XMLに含まれる内容を検知します。メタキャラクターやシグネチャやViolation等、複合的に判断し それらのRatingから攻撃の判定を行い、ブロックします。 Disallowed file type extension デフォルトで予め設定されたファイルタイプが無効となっています。 • bak, bat, bck, bkp, cfg, conf, config, ini, log, old, sav, save, temp, tmp • bin, cgi, cmd, com, dll, exe, msi, sys, shtm, shtml, stm • cer, crt, der, key, p12, p7b, p7c, pem, pfx • dat, eml, hta, htr, htw, ida, idc, idq, nws, pol, printer, reg, wmz Supported Security Policy Features:提供する主なセキュリティ機能
  • 34. ©2023 F5 34 主なセキュリティ機能 ① Protection Mechanism Description Cookie enforcement デフォルトですべてのクッキーが有効です。ユーザは特定のクッキーやワイルドカードまたは除外設定を指定でき、指定の内容に応じた処理がなさ れます。また、レスポンスの内、Cookieに関連する要素としてHttpOnly、Secure、SameSite等の属性に関する指定も可能です Sensitive Parameters デフォルトのポリシーではセキュリティログ上の「パスワード」をマスクします。更にパラメータを追加することが可能です。 JSON Content JSON Content ProfileはJSONの値に対し、シグネチャ、メタキャラクタ、不正な内容などの検出をします。デフォルトのポリシーでは、 パラメータ階層の深さをチェックします。その他に、サイズの制限、JSONデータの最大長、値の最大長、配列の最大長、JSONパー スの容認について設定が可能です。JSONスキーマの適用などサポートしていません。 XML Content XML Content ProfileはXMLの値に対し、シグネチャ、メタキャラクタ、不正な内容などの検出をします。Xデフォルトのポリシーでは、 パラメータ階層の深さをチェックします。その他に、サイズの制限、要素の最大数など指定が可能です。SOAP等、XML Schemaや Web Serviceはサポートしていません。 Allowed methods HTTPの許可するメソッドを指定可能です。デフォルトではすべてのHTTPメソッドが許可されています Black & White IP listing 個別に、IPアドレスの許可・拒否を指定することが可能です。 Trust XFF header デフォルトで無効になっています。個別にカスタムのXFFを指定し、制御することが可能です。 gRPC Content gRPC Content ProfileはgRPCの値に対し、シグネチャ、メタキャラクタ、不正な内容などの検出をします。把握されていないフィー ルドの禁止や、サイズの制限など可能です。gRPC APIの制御の場合にはnterface Definition Language (IDL) をポリシーに 割り当てる必要があります Large Request Blocking NGINX App Protect WAF 3.7 以前では10MB以上のリクエストが許可されていましたが、3.7以降拒否されるようになりました。 該当のVIOLATIONはVIOL_REQUEST_MAX_LENGTHとなります。 Supported Security Policy Features:提供する主なセキュリティ機能
  • 35. ©2023 F5 35 主なセキュリティ機能 ② Protection Mechanism Description Enforcement by Violation Rating デフォルトでは、驚異として判定される、Violation Rating 4,5 のリクエストを攻撃としてブロックします。この動作は変更することが 可能です。Violation Ratingによる制御や、Rating3を防御対象に加える等の設定が可能です。 Request size checks 最大バッファサイズの10MBで指定されるリクエストの各種上限。URL、ヘッダー、Query String、リクエスト全体(最大バッファサイ ズ以下の範囲で)、クッキー、POST Dataのサイズチェックを指定可能。デフォルトではリクエスト全体とPOST Dataを除くすべての チェックが有効となる。ユーザはそれぞれのチェックについて有効・無効の指定と、上限サイズの指定が可能 Malformed cookie デフォルトでは、RFCに従わないクッキーを含むリクエストをブロックする。これは無効にすることも可能 Status code restriction 4xx、5xxの範囲で不正なステータスコードを指定可能。デフォルトで、以下のみ許可される。 • 400, 401, 404, 407, 417, 503. ユーザはリストの修正、チェック機能の無効が可能。 Blocking pages ユーザにてBlocking Pageのカスタマイズが可能。デフォルトでAJAXページは無効。ユーザが機能を有効にすることが可能 Additional Policy Features:その他Policyに関する機能
  • 36. ©2023 F5 36 主なセキュリティ機能 ③ Setting JSON Property in Policy Support in NGINX App Protect Value in Default Profile Signature Sets signature-sets すべてが有効になっているセット 下記のSignature Set Listを参照してください Signatures signatures 適宜“Enable”Flagの変更が可能 Signature Setに含まれるSignatureはすべて 有効 Auto-Added signature accuracy minimumAccuracyForAutoAddedSign atures 変更可能 Low Configuring Attack Signatures:Attack Signatureに関する設定
  • 37. ©2023 F5 37 シグネチャ設定 Default Template で有効になっているSignature Set • Command Execution Signatures • Cross Site Scripting Signatures • Directory Indexing Signatures • Information Leakage Signatures • OS Command Injection Signatures • Path Traversal Signatures • Predictable Resource Location Signatures • Remote File Include Signatures • SQL Injection Signatures • Authentication/Authorization Attack Signatures • XML External Entity (XXE) Signatures • XPath Injection Signatures • Buffer Overflow Signatures • Denial of Service Signatures • Vulnerability Scanner Signatures • High Accuracy Signatures • CVE Signatures 多くが攻撃者からの攻撃に対するSignature Setとなる。すべての Signature SetでAlarmが有効、High Accuracy Signature のみBlockが有効で、その他のSignatureはBlock が無効 App Protect に含まれるBasic Signature Sets • All Response Signatures • All Signatures • Generic Detection Signatures • Generic Detection Signatures (High Accuracy) • Generic Detection Signatures (High/Medium Accuracy) • High Accuracy Signatures • Low Accuracy Signatures • Medium Accuracy Signatures • OWA Signatures • WebSphere signatures • HTTP Response Splitting Signatures • Other Application Attacks Signatures • High Accuracy Detection Evasion Signatures Default Templateには含まれていませんが、以下のような Signature setが提供されます
  • 38. ©2023 F5 38 (参考)シグネチャ適応に指定可能なサーバテクノロジ Jenkins, SharePoint, Oracle Application Server, Python, Oracle Identity Manager, Spring Boot, CouchDB, SQLite, Handlebars, Mustache, Prototype, Zend, Redis, Underscore.js, Ember.js, ZURB Foundation, ef.js, Vue.js, UIKit, TYPO3 CMS, RequireJS, React, MooTools, Laravel, GraphQL, Google Web Toolkit, Express.js, CodeIgniter, Backbone.js, AngularJS, JavaScript, Nginx, Jetty, Joomla, JavaServer Faces (JSF), Ruby, MongoDB, Django, Node.js, Citrix, JBoss, Elasticsearch, Apache Struts, XML, PostgreSQL, IBM DB2, Sybase/ASE, CGI, Proxy Servers, SSI (Server Side Includes), Cisco, Novell, Macromedia JRun, BEA Systems WebLogic Server, Lotus Domino, MySQL, Oracle, Microsoft SQL Server, PHP, Outlook Web Access, Apache/NCSA HTTP Server, Apache Tomcat, WordPress, Macromedia ColdFusion, Unix/Linux, Microsoft Windows, ASP.NET, Front Page Server Extensions (FPSE), IIS, WebDAV, ASP, Java Servlets/JSP, jQuery
  • 39. ©2023 F5 39 • OSのパッケージ管理システムで管理 • ダウングレードもバージョンを指定することで 容易に実施可能 • シグネチャ更新後、nginxプロセスのreloadで更 新が反映される • コンテナとして動作させる場合は、イメージの 再構築を行い、再構築時に更新シグネチャを適 応させる シグネチャアップデート
  • 40. ©2023 F5 40 Bot シグネチャ • Bot シグネチャは、User AgentやURIをベースに検知によって基本 的なBotをブロックします • Bot シグネチャはクラスに分けられており、trusted-bot、untrusted- bot、malicious-botなどがある • それぞれのクラスに応じて動作を指定することができる { "policy": { "name": "bot_defense_policy", "template": { "name": "POLICY_TEMPLATE_NGINX_BASE" }, "applicationLanguage": "utf-8", "enforcementMode": "blocking", "bot-defense": { "settings": { "isEnabled": true }, "mitigations": { "classes": [ { "name": "trusted-bot", "action": "alarm" }, { "name": "untrusted-bot", "action": "block" }, { "name": "malicious-bot", "action": "block" } ] } } } } 動作 意味 ignore 対象のシグネチャを無視する detect VIOLATIONとしては検知せず、通知のみとなる。その他 のVIOLATIONで通信が制御対象とならない限りlegalとし て扱われる alarm VIOLATIONを検知し、通知する。この通信はillegalとし て扱われる block VIOLATIONを検知し、通知および通信をブロックする https://docs.nginx.com/nginx-app-protect/configuration-guide/configuration/#bot-signatures
  • 41. ©2023 F5 41 Bot シグネチャ その他情報 Bot Name Description Ask Ask.com engine Baidu Baidu search engine Baidu Image Spider Baidu search engine for images Bing Microsoft Bing search engine BingPreview Microsoft Bing page snapshot generation engine Daum Daum search engine DuckDuckGo Bot DuckDuckGo search engine fastbot fastbot search engine Google Google search engine MojeekBot Mojeek search engine Yahoo! Slurp Yahoo search engine Yandex Yandex search engine YioopBot Yioop search engine • Trusted Bot • その他Bot例 • HTTP Library: curl • Spam Bot bot: meow, ANETInspect, OnlyScans, HonoluluBot, Search engine under construction, browsergetproto1.2 • Service Agent bot: YandeG, FGX-Web, Detectify, AndroidDownloadManager • Web Spider bot: DoCoMo 2.0, GGG • HTTP Library bot: Alamofire, PerlDAV, node-fetch • Crawler bot: CryptoAPI • Network Scanner bot: Exchange scanner • Exploit Tool bot: Exchange RCE Detector(CVE-2021-34473) • Vulnerability Scanner bot: Log4Shell detector • Crawler bot: ds9, coccoc • Exploit Tool bot: JNDI Exploit Bot
  • 42. ©2023 F5 42 CONFIDENTIAL Response Block Page https://docs.nginx.com/nginx-app-protect/configuration/ { "policy": { "name": "blocking_page", "template": { "name": "POLICY_TEMPLATE_NGINX_BASE" }, "applicationLanguage": "utf-8", "enforcementMode": "blocking", "response-pages": [ { "responseContent": "<html><head><title>Custom Reject Page</title></head><body>This is a custom response page, it is supposed to overwrite the default page with custom text.<br><br>Your support ID is: <%TS.request.ID()%><br><br><a href='javascript:history.back();'>[Go Back]</a></body></html>", "responseHeader": "HTTP/1.1 302 OK¥¥r¥¥nCache-Control: no- cache¥¥r¥¥nPragma: no-cache¥¥r¥¥nConnection: close", "responseActionType": "custom", "responsePageType": "default" } ] } } Default Block Page Custom Block Page "response-pages": [ { "responsePageType": "ajax", "ajaxEnabled": true, "ajaxPopupMessage": "My customized popup message! Your support ID is: <%TS.request.ID()%>" } ] "response-pages": [ { "responseContent": "", "responseHeader": "HTTP/1.1 403 FORBIDDEN¥r¥nContent-Type: application/grpc+proto¥r¥nGrpc-status: 7¥r¥nGrpc-message: Blocked by NGINX App Protect, Your support ID is <%TS.request.ID()%>¥r¥nSupport-ID: <%TS.request.ID()%>¥r¥nCache- Control: no-cache¥r¥nPragma: no-cache¥r¥nConnection: close", "responseActionType": "custom", "responsePageType": "default" } ] Ajax Block Page gRPC Block Page
  • 43. ©2023 F5 43 その他機能 • External References:Release 1.2 • Threat Campaigns:Release 1.2 • OpenAPI Specification File Reference:Release 2.0 • Bot Signatures:Release 2.1 • Multiple Security Logs Support:Release 3.2 • FQDNs are now permitted in syslog destinations:Release 3.3 • gRPC Protection for Bidirectional Streaming: Release 4.0 • Graph QL Protection: Release 4.2
  • 45. ©2023 F5 45 ModSecurityの性能比較 【比較条件】 ModSecurityでは OWASP Core Rule Set(CRS) v3.0を有効化 NGINX App Protectでは OWASP Top 10対応シグネチャに加え、DataGuard/Disallowed file types, HTTP protocol compliance等のセキュリティ機 能を有効化
  • 47. ©2023 F5 47 Security Log Attribute Name Description attack_type A list of comma separated names of suspected attacks identified in a transaction. blocking_exception_reason The blocking exception reason when a configured violation was not blocked.| date_time The date and time the request was received by App Protect. dest_port The port assigned to listen to incoming requests. ip_client The source IP of the client initiating the request Note: if a proxy is being used, this may differ from the IP in the X-forwarded-for header. is_truncated A flag that returns TRUE if a request is truncated in the security logs. method The method of request. For example, GET, POST, HEAD. policy_name The name of the App Protect policy for which the violation was triggered. protocol The protocol used, either HTTP or HTTPS if terminating SSL on App Protect. request The entire request including headers, query string, and data. request_status •The status of client request made to Web Application as assigned by the App Protect policy. The possible values are:blocked: The request was blocked due to a violation encountered. A blocking response page was returned to the client. •alerted: The request contains violation(s) but is not blocked (typical in cases where the enforcement mode is set to transparent). •passed: A successful request with no violations. response_code The response code returned by the server. severity The maximum severity calculated from all violations found in the request. It is a static value coming from the Violations. sig_cves Signature CVEs value of the matched signatures. sig_ids Signature ID value of the matching signature that resulted in the violation. sig_names Signature name of the matching signature that resulted in the violation. sig_set_names The signature set names of the matched signatures. src_port The source port of the client. sub_violations Refers to the sub-violations detected under the ‘HTTP protocol compliance failed’ and the ‘Evasion technique detected’ violations. support_id A unique identifier for a transaction. unit_hostname host name of the app-protect instance uri The URI or Uniform Resource Identifier of the request. violation_details XML including details about each violation. violation_rating Estimation of the likelihood that the request is indeed a threat on a scale of 0 to 5: 0 - not a threat (no violations), 5 - most likely a threat vs_name A unique identifier of the location in the nginx.conf file that this request is associated with. It contains the line number of the containing server block in nginx.conf, the server name, a numeric discriminator that distinguishes between multiple entries within the same server, and the location name. For example: ’34-mydomain.com:0-~/.*php(2). x_forwarded_for_header_value X-Forwarded-For header information. This option is commonly used when proxies are involved to track the originator of the request. outcome •One of the following:PASSED: the request was sent to the backend server. •REJECTED: the request was blocked. outcome_reason •One of the following:SECURITY_WAF_OK: allowed with no violations (legal request). •SECURITY_WAF_VIOLATION: blocked due to security violations. •SECURITY_WAF_FLAGGED: allowed, although it has violations (illegal). violations Comma-separated list of logical violation names (e.g. “VIOL_ATTACK_SIGNATURES,VIOL_HTTP_PROTOCOL”) • App Protect独自にログを生成 • フィルタリングが可能 (all/illegal/blocked) • 右記属性を選択し出力可能 • syslog(TCP)にて出力
  • 48. ©2023 F5 48 Custom Log https://docs.nginx.com/nginx-app-protect/troubleshooting/ { "filter": { "request_type": "all" }, "content": { "format": "default", "max_request_size": "any", "max_message_size": "5k" } } Simple Log "content": { "format": "user-defined", "format_string": "client_ip=%ip_client%,client_port=%src_port%,request=%request%,violations=%violations%,signature_ids=%sig_ids%", "max_request_size": "any", "max_message_size": "5k" } Log Message Key-Value Format "content": { "format": "user-defined", "format_string": "Request ID %support_id%: %method% %uri% received on %date_time% from IP %ip_client% had the following violations: %violations%", "max_request_size": "any", "max_message_size": "5k" } A Verbose Custom Format Message
  • 49. ©2023 F5 49 App Protect WAF Security Logの可視化 (ELKスタックとの組み合わせ) NGINX App Protect WAF Syslog/tcp
  • 50. ©2023 F5 50 NGINX Ingress Controller 設定 NGINX Ingress Controller Configuration
  • 51. ©2023 F5 51 App Protect WAF Policy Configuration Sample { "policy": { "name": "dataguard_blocking", "template": { "name": "POLICY_TEMPLATE_NGINX_BASE" }, "applicationLanguage": "utf-8", "enforcementMode": "blocking", "blocking-settings": { "violations": [ { "name": "VIOL_DATA_GUARD", "alarm": true, "block": true } ] }, "data-guard": { "enabled": true, "maskData": true, "creditCardNumbers": true, "usSocialSecurityNumbers": true, "enforcementMode": "ignore-urls-in-list", "enforcementUrls": [] } } } apiVersion: appprotect.f5.com/v1beta1 kind: APPolicy metadata: name: dataguard-blocking spec: policy: name: dataguard_blocking template: name: POLICY_TEMPLATE_NGINX_BASE applicationLanguage: utf-8 enforcementMode: blocking blocking-settings: violations: - name: VIOL_DATA_GUARD alarm: true block: true data-guard: enabled: true maskData: true creditCardNumbers: true usSocialSecurityNumbers: true enforcementMode: ignore-urls-in-list enforcementUrls: []
  • 52. ©2023 F5 52 App Protect WAF Log Configuration Sample { "filter": { "request_type": "all" }, "content": { "format": "default", "max_request_size": "any", "max_message_size": "5k" } } apiVersion: appprotect.f5.com/v1beta1 kind: APLogConf metadata: name: logconf spec: filter: request_type: all content: format: default max_request_size: any max_message_size: 5k https://docs.nginx.com/nginx-ingress-controller/app-protect/configuration/
  • 53. ©2023 F5 53 App Protect WAF Configuration Sample apiVersion: k8s.nginx.org/v1 kind: VirtualServer metadata: name: webapp spec: host: webapp.example.com policies: - name: waf-policy upstreams: - name: webapp service: webapp-svc port: 80 routes: - path: / action: pass: webapp apiVersion: k8s.nginx.org/v1 kind: Policy metadata: name: waf-policy spec: waf: enable: true apPolicy: "default/dataguard-alarm" securityLog: enable: true apLogConf: "default/logconf" logDest: "syslog:server=127.0.0.1:514" apiVersion: appprotect.f5.com/v1beta1 kind: APLogConf metadata: name: logconf spec: content: format: default max_message_size: 64k max_request_size: any filter: request_type: all apiVersion: appprotect.f5.com/v1beta1 kind: APPolicy metadata: name: dataguard-alarm spec: policy: signature-requirements: - tag: Fruits signature-sets: - name: apple_sigs block: true signatureSet: filter: tagValue: Fruits tagFilter: eq ※省略※ template: name: POLICY_TEMPLATE_NGINX_BASE apiVersion: appprotect.f5.com/v1beta1 kind: APUserSig metadata: name: apple spec: signatures: - accuracy: medium attackType: name: Brute Force Attack description: Medium accuracy user defined signature with tag (Fruits) name: Apple_medium_acc risk: medium rule: content:"apple"; nocase; nginx-ingress pod NGINX Config VS : webapp Host : webapp.example.com Policy : waf-policy waf: enable, apPolicy, waf-policy securityLog: enable, apLogConf, logDest webapp-svc:80 APPolicy : dataguard-alarm policy: signature-requirements, signature-sets, name, template, data-guard enforcementMode 等 APUserSig : waf-policy signatures, tag APLogConf : logconf content, filter
  • 55. ©2023 F5 55 言語に応じてケースオープン後のフローが異なります F5 NGINX Plus サポートフロー 日本語で ケースオープン 英語で ケースオープン NGINX Plus 利用者 MyF5 .com チケットオープン チケットオープン 日本語サポート:平日日中 9:00 – 18:00(ベストエフォート) 通常NGINXサポート(英語):24時間365日(お客様ご契約内容のSLAに準じます) F5 NGINX サポート F5JP サポート F5 NGINX サポート 必要に応じて問い合わせ可 (平日日中 9:00 – 18:00) NGINX Plus 利用者 MyF5 .com F5JP サポート
  • 56. ©2023 F5 56 サブスクリプションによりカバーされるサポート内容 特徴 スタンダード プレミアム 重要度が比較的低く、長めの回答時間が 許容される、NGINXおよびNGINX Plus の本番環境デプロイメント向けサポート すべてのエンタープライズアプリケー ションまたは本番環境のデフォルトスタ ンダード インシデント数 無制限 無制限 サポート時間 営業時間(平日日中帯) 24時間 Emailサポート 英語対応 *日本語対応 (平日9:00-18:00) 英語対応 *日本語対応 (平日9:00-18:00) 電話サポート 英語対応 *日本語対応 (平日9:00-18:00) 英語対応 *日本語対応 (平日:9:00-18:00) 応答時間 英語 – 30分~24時間以内 日本語 - ベストエフォート 英語 - 30分~24時間以内 日本語 – ベストエフォート マニュアルに関する質問回答 24時間 24時間 ホットバグ修正 対応可 対応可 ソフトウェアアップデート メジャー、マイナー共に対応 メジャー、マイナー共に対応 サードパーティーモジュール サポート ◯ ◯ NGINX Unit - ◯ https://www.nginx.co.jp/support/ 推奨
  • 57. ©2023 F5 57 お問い合わせフォーム • 製品に関するお問い合わせ • 購入に関するお問い合わせ • 構成・設計に関するご相談 など https://www.nginx.co.jp/contact-sales/ お気軽にお問い合わせください