SlideShare ist ein Scribd-Unternehmen logo
1 von 65
これからはじめるNGINX
技術解説
~セキュリティ編~
F5ネットワークスジャパン合同会社
| ©2021 F5
2
F5ネットワークスジャパン合同会社
NGINX Technical Solutions Architect
松本 央
| ©2021 F5
3
• Webサーバに対する一般的な理解
• HTTPやTCP/IPに関する基本的な知識
• ネットワークに関する基本的な理解
• Linuxコマンドラインに関する知識
CONFIDENTIAL
前提条件
| ©2021 F5
4
• NGINXの基本(おさらい)
• Rate Limit
• Open ID Connect / JWT
• WAF (NGINX App Protect)
Agenda
CONFIDENTIAL
Module 0
NGINXの紹介
(前回のおさらい)
| ©2021 F5
6
NGINX ソリューション
CONFIDENTIAL
| ©2021 F5
7
DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD
NGINX Plus
All-In-One Software
ロードバランサー、コンテンツキャッシュ、
Webサーバ
安定、高速、高機能
必要となるリソースは最小
NGINX Controller
NGINX+統合管理ソフトウェア
NGINX+のロードバランサやAPI
Gateway、更にマルチクラウド環境に
おいても容易に管理が可能。
GUI/CLIに加えAPIでの制御が可能
NGINX App Protect
アプリケーションに特化した
Web Application Firewall
NGINX+にシームレスに統合可能な
新しいWAF。 F5の実績に基づき、
高速な高品質なWAFを実現
High quality Support
NGINX 製品
| ©2021 F5
8
DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD
NGINX 製品
NGINX Service Mesh
NGINX Plusで複雑な
マイクロサービス、アプリケーション間の
通信問題を解決するシンプルな
サービスメッシュソリューション。
Amazon EKS, Azure AKS対応
NGINX Ingress
Controller
Kubernetes環境への
外部アクセスをコントロール。
NGINX機能をIngressリソース
を通じて管理可能。
NGINX App Protect対応
High quality Support
NGINX Instance
Manager
NGINX OSS、NGINX Plusを管理。
簡易なヒストリカルなトラフィック・
ステータス情報やコンフィグファイル
管理を提供。ネットワーク内をスキャンし
NGINXインスタンスの検出も可能
| ©2021 F5
9
Web
KIC
SP MS
SP MS
L7
LB
NGINX Plus
NGINX
Controller
NGINX Plus
Web server
NGINX Unit
App server
CODE CUSTOMER
App
NGINX Product Portfolio
L4-L7 LB
API GW
Per app WAF
高速・高品質 Web Server
Web Application Server
NGINX Plus
Sidecar proxy
SP MS
高頻度のアプリケーションリリースを実現する、
高い柔軟性・効率・品質のアプリケーション基盤
Container Ingress
Service
Service Mesh
L7
LB
Revese Proxy /Cache
/ API GW / Per app WAF
MONOLOTHIC
MICROSERVICES
NGINX Plus
K8s IC
CI/CD
DevSecOps
CONFIDENTIAL
NGINX
Instance
Manager
| ©2021 F5
10
前回のおさらい
CONFIDENTIAL
| ©2021 F5
11
• NGINXの持つ基本機能群
おさらい
• NGINX(OSS版)とNGINX
Plusの違い
• NGINX Plus基本コンフィグ
のデモ
CONFIDENTIAL
【Webinar】
「これからはじめるNGINX技術解説~基本編」セミナー
https://www.nginx.co.jp/resources/webinars/nginx-back-to-basic-jp/
このセミナーの主な内容:
おさらい
| ©2021 F5
12
• NGINXの持つ基本機能群
おさらい
• NGINXの動作の基礎、
listen directiveについて
• NGINXのReverse Proxy
機能&設定
• NGINX の高度なロードバラ
ンシング機能&設定
CONFIDENTIAL
【Webinar】
「これからはじめるNGINX技術解説~基本編 Part2」セミナー
https://www.nginx.co.jp/resources/webinars/nginx-back-to-basic-2-jp/
このセミナーの主な内容:
おさらい
| ©2021 F5
13
• あらためてNGINXの
持つ基本機能群
• NGINX(OSS版)とNGINX
Plusの違い
• NGINXのさらなる
活用方法、活用事例
• NGINX有償版
ソリューションのデモ
CONFIDENTIAL
【Webinar】
NGINX (OSS版)ユーザのためのNGINX Plus/NGINX Controller入門
https://www.nginx.co.jp/resources/webinars/nginx-plus-for-oss-user/
このセミナーの主な内容:
ご紹介
| ©2021 F5
14
O’REILLY NGINXクックブック設定レシピ集(日本語版)
CONFIDENTIAL
https://www.nginx.co.jp/resources/ebooks/nginx-cookbook-jp/
ご紹介
| ©2021 F5
15
NGINX セキュリティ機能
CONFIDENTIAL
| ©2021 F5
16
「アプリケーション」を中心としたビジネス
CONFIDENTIAL
Application
centric
app
アプリケーションの用途に合わせた複数のクラウドの活用や、オンプ
レミス・パブリッククラウドの活用が重要になります。幅広いオンプレ
ミス・クラウドの活用の中で共通のセキュリティを施すことは難しく、
重要な課題となっています。
より多くのアプリケーションはインターネットを通じオンライン上で
様々なデータがやり取りされます。その中で活用されるデータは
増加し、多くの機密データをセキュアに管理する事が求められます
モダナイズされた環境ではアプリを接続するAPIの利用が不可欠
です。
APIの活用は利用者だけでなく、攻撃のターゲットとなり既存の
セキュリティ機能では十分な防御が困難です
マルチクラウド
機密データ
API first
| ©2021 F5
17
Web
KIC
SP MS
NGINX Plus
CODE
App
NGINXによる高度なセキュリティの実現
NGINX Plus
Sidecar proxy
SP MS
L7
LB
MONOLOTHIC
MICROSERVICES
NGINX Plus
CONFIDENTIAL
CUSTOMER
DDoS
Web脆弱性
ユーザ認証
機密
データ
認証
データ
| ©2021 F5
18
本日ご紹介する内容
CONFIDENTIAL
Rate Limit
Module1
DDoS
外部から大量のアクセスを防ぎ、Webサーバ・アプリケーションサーバの想定以上のリソー
ス消費を抑え、プラットフォーム全体を安全に・安定して動作させることが可能となります
| ©2021 F5
19
本日ご紹介する内容
CONFIDENTIAL
OpenID Connect / JWT
Module2
ユーザからのアクセスをNGINX PlusがもつJWT Validationの機能を用いて、外部
認可サーバとOpenID Connectで連携し、認証済みのユーザに対する適切な接続制
御を行います。
認可サーバ
| ©2021 F5
20
本日ご紹介する内容
CONFIDENTIAL
WAF (NGINX App Protect)
Module3
外部の悪意あるユーザから行われるWebアプリケーションに対する高度な攻撃に対し、
NGINX App Protectを用いて通信を遮断し、アプリケーションを安全に守ります
Module 1
Rate Limit
| ©2021 F5
22
• Rate Limitの設定方法について
−limit_req_zone と limit_req
−それぞれの設定パラメータと挙動について
Module 1 Objectives
CONFIDENTIAL
| ©2021 F5
23
DDoS攻撃の概要 / Rate Limitの概要
CONFIDENTIAL
• インターネットに展開されるアプリケーションは常に攻撃者のターゲットになる可能性がある
• DDoS攻撃(Distributed Denial of Service attack/分散型サービス妨害攻撃)は対象の
サービスに、通常をはるかに超えるトラフィックを送信することにより、サービスの停止などを目的とする
• 具体的な被害としては、トラフィック増大によるネットワークの遅延、サービスの停止、アプリケーションの高
負荷による想定外の動作などが引き起こされる
• 通常の利用時に想定される通信量を超える大きな通信が発生した場合には、Rate Limitを用いて応
答の遅延や、余分な通信を拒否することにより不要なトラフィックを減らし、プラットフォーム全体の可用
性を向上させる
DDoS
攻撃
対策
| ©2021 F5
24
Rate Limit 設定例
CONFIDENTIAL
• httpコンテキスト内でlimit_req_zone directiveを用いて共有メモリやRate Limitの条件をパラメータで指定
• 対象となる通信に対しlimit_req指定しレート制限を有効にする
http {
limit_req_zone $remote_addr zone=req:1M rate=1r/s;
server {
listen 80;
location / {
limit_req zone=req;
proxy_pass http://my_backend;
}
}
}
| ©2021 F5
25
limit_req_zone / limit_req Directive
CONFIDENTIAL
• 書式:limit_req_zone <key> zone=<共有メモリ名>:<共有メモリサイズ> rate=<制限するレート>;
• <key>:レート制限を行う通信を識別する条件。例えば、クライアントIPを識別の条件としてレー
ト制限を実行する場合、$binary_remote_addr変数を指定する。この場合、それぞれのユニー
クなIPアドレスからのリクエストに対しrateのパラメータで指定したレート制限を実施する
• zone:レート制限のステータスを保持する共有メモリを指定する。この共有メモリを用いて、
NGINXのワーカプロセス間でステータスをシェアする
• rate:レート制限を行うためのレートの最大値を指定する。NGINXでは各リクエストについて指定
した値のレートで通信が行われているかミリ秒単位での評価を行う
• 書式:limit_req zone=<共有メモリ名> ;
• <共有メモリ名>:limit_req_zoneで予め作成した、共有メモリ名を指定
| ©2021 F5
26
Rate Limit 設定例:rate
CONFIDENTIAL
limit_req_zone $remote_addr zone=req:1M rate=1r/s;
server {
listen 80;
location / {
limit_req zone=req;
proxy_pass http://my_backend;
}
1sec 1sec
503
$remote_addr:192.168.1.1
rate 1r/sを超える
リクエストを拒否
| ©2021 F5
27
Rate Limit 設定例:burst
CONFIDENTIAL
limit_req_zone $remote_addr zone=req:1M rate=1r/s;
server {
listen 80;
location / {
limit_req zone=req burst=2;
proxy_pass http://my_backend;
}
$remote_addr:192.168.1.1
指定したレートを超える通信を、burstで
指定した数だけキューイング
1sec 1sec
503
rate 1r/sを超えるリクエストの内、burstで
指定した数は指定したレート(1r/s)で転送
すでにburstで指定した数キューイングした状態で
新たなリクエストを受けた場合リクエストを拒否
1sec
| ©2021 F5
28
Rate Limit 設定例:nodelay
CONFIDENTIAL
limit_req_zone $remote_addr zone=req:1M rate=1r/s;
server {
listen 80;
location / {
limit_req zone=req burst=2 nodelay;
proxy_pass http://my_backend;
}
$remote_addr:192.168.1.1
1sec
503
burstでキューイングしたリクエスト
を即座に転送
burstで指定した数を超える
リクエストを拒否
| ©2021 F5
29
Rate Limit 設定例:delay
CONFIDENTIAL
limit_req_zone $remote_addr zone=req:1M rate=1r/s;
server {
listen 80;
location / {
limit_req zone=req burst=2 delay=1;
proxy_pass http://my_backend;
}
$remote_addr:192.168.1.1
1sec
503
1sec
burstでキューイングしたリクエストの内、burst数から
delay数を引いた数は、指定したレート(1r/s)で転送
burstで指定した数を超える
リクエストを拒否
delayで指定した数
は即座に転送
| ©2021 F5
30
• access_log – NGINX宛の通信の詳細を出力
− log_format directiveを用いて出力する情報を設定
• error_log – NGINXが出力するメッセージ
− level というパラメータにて情報の詳細さを設定
Error & Access Logs
CONFIDENTIAL
TIPS
| ©2021 F5
31
• リクエストの拒否
Rate Limit ログ
==> /var/log/nginx/error.log <==
2020/04/01 00:35:48 [error] 22149#22149: *4744 limiting requests, excess: 3.000 by zone "req", client:
10.10.10.32, server: , request: "GET / HTTP/1.0", host: "10.10.10.1"
==> /var/log/nginx/access.log <==
10.10.10.32 - - [01/Apr/2020:00:35:48 +0900] "GET / HTTP/1.0" 503 197 "-" "ApacheBench/2.3"
CONFIDENTIAL
• burstによるDelay
==> /var/log/nginx/error.log <==
2020/04/01 00:35:48 [warn] 22149#22149: *4743 delaying request, excess: 2.000, by zone "req", client:
10.10.10.32, server: , request: "GET / HTTP/1.0", host: "10.10.10.1"
==> /var/log/nginx/access.log <==
10.10.10.32 - - [01/Apr/2020:00:35:49 +0900] "GET / HTTP/1.0" 200 68 "-" "ApacheBench/2.3"
• リクエストが指定のZone(条件)でリミットに到達し、503を応答している
• リクエストが指定のZone(条件)でリミットに到達し、burstにより応答を遅らせている
| ©2021 F5
32 CONFIDENTIAL
Rate Limit 動作確認
limit_req_zone $remote_addr zone=req:1M rate=1r/s;
limit_req zone=req;
limit_req_zone $remote_addr zone=req:1M rate=1r/s;
limit_req zone=req burst=2 nodelay;
limit_req_zone $remote_addr zone=req:1M rate=1r/s;
limit_req zone=req burst=2 nodelay;
limit_req_dry_run on;
【Client】リクエスト数:4回、コネクション数:1
$ ab -n 4 -c 1 http://10.10.10.1/
Apace Benchmark
(ab command)
Rate Limit
1
2
3
| ©2021 F5
33
Rate Limit 設定 応用編
CONFIDENTIAL
geo $limit {
default 1;
10.0.0.0/8 0;
192.168.0.0/24 0;
}
map $limit $limit_key {
0 "";
1 $binary_remote_addr;
}
limit_req_zone $limit_key zone=req_zone:10m rate=5r/s;
server {
location / {
limit_req zone=req_zone burst=10 nodelay;
# ...
}
}
送信元IPアドレスに応じて
limitの変数に値をセット
limitの値に応じて
limit_keyの変数に値をセット
limit_keyがブランクの場合、
Rate Limitを実施しない
| ©2021 F5
34
• limit_req_dry_run
• limit_req_log_level
• limit_req_status
その他 Rate Limit 関連Directive
CONFIDENTIAL
https://nginx.org/en/docs/http/ngx_http_limit_req_module.html?#limit_req_zone
| ©2021 F5
35
• Rate Limitの実装方法について
• 各種パラメータの動作について説明
−rate
−burst
−delay / nodelay
−burst + nodelayの利用を推奨
Module Summary
CONFIDENTIAL
Module 2
Open ID Connect /
JWT
| ©2021 F5
37
OpenID Connect 設定方法
CONFIDENTIAL
• NGINXが提供するGitHubからスクリプトと設定サンプルを取得します
• 手順にしたがって設定する事により容易に環境の構築が可能です
https://github.com/nginxinc/nginx-openid-connect
| ©2021 F5
38
OpenID Connect 設定方法
CONFIDENTIAL
• 大まかな設定順序
NGINXと連携する認可サーバの準備
NGINXが提供する設定ガイド:
ActiveDirectory Federation Service
Amazon Congnito
Keycloak
Okta
OneLogin
PingFederate and PingOne for Enterprise
https://docs.nginx.com/nginx/deployment-guides/single-
sign-on/active-directory-federation-services/
NGINX Plusを動作させるホストにて対象のGithub
repositoryからファイルを取得
シェルスクリプトを実行し、認可サーバのOpenID
Connect設定を取得。一部コンフィグファイルを動作
環境に合わせて修正
NGINX Plusの設定
認可サーバの設定
0
1
2
| ©2021 F5
39
OpenID Connect 設定例
CONFIDENTIAL
root@ubuntu:/etc/nginx/conf.d# git clone https://github.com/nginxinc/nginx-openid-connect
root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# ./configure.sh
http://172.28.14.135:8080/auth/realms/master/.well-known/openid-configuration
configure.sh: NOTICE: Downloading ./idp_jwk.json
configure.sh: NOTICE: Configuring ./frontend.conf ... no change
configure.sh: NOTICE: Configuring ./openid_connect_configuration.conf
configure.sh: NOTICE: - $oidc_authz_endpoint ... ok
configure.sh: NOTICE: - $oidc_token_endpoint ... ok
configure.sh: NOTICE: - $oidc_jwt_keyfile ... ok
configure.sh: NOTICE: - $oidc_hmac_key ... ok
configure.sh: NOTICE: - $oidc_pkce_enable ... ok
configure.sh: NOTICE: Success - test configuration with 'nginx -t'
1
2
| ©2021 F5
40
OpenID Connect 設定例
CONFIDENTIAL
# ファイルのコピー
root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp frontend.conf ../
root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp idp_jwk.json ../
root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp openid_connect_configuration.conf ../
root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp openid_connect.js ../
root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp openid_connect.server_conf ../
# ファイルの修正
# openid_connect_configuration.conf 内、$oidc_clientと$oidc_client_secretに値を入力
# frontend.conf 内、OIDC接続後の転送先など指定
3
4
| ©2021 F5
41
• nginx-plus-module-njs をインストールし、nginx.conf
の先頭でモジュールをロード
• http blockでconf.d配下の*.confファイルをinclude
OpenID Connect 設定ファイルの関連性
CONFIDENTIAL
nginx/
conf.d/
nginx.conf
frontend.conf
• OIDC ConnectのRelying Partyとして外部に公開する
サービスの設定
• 外部に公開するサービスの先頭で
”conf.d/openid_connect.server_conf”をinclude
openid_connect_configuration.conf
• OIDC ConnectのRelying Partyとして外部に認可サーバ
と連携する際に必要となるパラメータの設定・管理
• 設定ファイル末尾で、js_import directiveを用いて
“conf.d/openid_connect.js”をインポート
openid_connect.server_conf
• OIDC ConnectのRelying Partyとして外部に認可サーバ
と連携するために必要となる、OIDCのCode Exchangeな
ど、各種URLと設定を提供する。
• 処理内容に応じて、 js_content directiveを用いて、
openid_connect.jsで定義した関数を用いる
openid_connect.js
• OIDC ConnectのRelying Partyとして外部に認可サーバ
と連携するために必要となる、認証機能などをNJSによる機
能拡張で実現する
http block
OIDC JS機能拡張
OIDC URL・機能
OIDC パラメータ
サービス・プロキシ
Include / Import
機能・設定の参照
| ©2021 F5
42
OIDC 設定例:auth_jwt / auth_jwt_claim_set
CONFIDENTIAL
• frontend.confや、openid_connect.server_conf, openid_connect_configuration.confで利用さ
れているDirective
# frontend.confの例
auth_jwt "" token=$session_jwt;
• 書式:auth_jwt <relam> [token=$variable]
• JSON Web Tokenのvalidationを有効にする
• tokenにはJSON Web Tokenを含む値を指定する。CookieやHTTP Headerなど
openid_connect.jsで
id_token内容を変数に格納
# openid_connect_configuration.confの例
auth_jwt_claim_set $jwt_audience aud
• 書式:auth_jwt_claim_set $variable <名称>
• JWT Claimに指定した名称で変数の内容を指定する
audにjwt_audienceの内容を
格納
| ©2021 F5
43 CONFIDENTIAL
OpenID Connect 動作確認
OIDCのRelying Party
として動作
認可サーバ
1
2
3
クライアントブラウザからアプリケーションに接続。
OIDCのRelying Partyとして動作するNGINXが認可サーバへリダイレクト
1
認可サーバ(Keycloak)でユーザの認証。正しく認証できたたことを確認
し、再度NGINXへリダイレクト
2
NGINXでユーザを評価。正しいユーザで有ることを確認し、アプリケーション
へリクエストを転送
3
| ©2021 F5
44
• NGINX Plusを用いてOpenID ConnectのRPとして動作させる方法を確認
• NGINXが提供するGitHubのサンプルコードを用いて設定する方法を確認
Module Summary
CONFIDENTIAL
Module 3
WAF
(NGINX App Protect)
| ©2021 F5
46
• WAFを用いて外部からの悪意あるリクエストを検知・拒否する方法を
理解する
• NGINXのWAFモジュールの設定について理解する
Module 2 Objectives
CONFIDENTIAL
| ©2021 F5
47
WAFの概要
CONFIDENTIAL
• インターネットが当たり前となり、世の中のありとあらゆるものがスマートフォンやパソコンから自由に利用で
きる用になっている。そのWebアプリケーションの用途拡大と共に重要なデータの利用が増えている
• 攻撃者は外部からWebアプリケーションの設計や脆弱性を対象とし、悪意あるリクエストを送付すること
により本来の動作と異なる挙動を引き起こし、機密データの取得や、サイト改ざん、サイトの動作停止
などを引き起こす
• 「バグのない」Webアプリケーションが理想ではあるが、日々脆弱性が見つかっており、その対策は
ますます困難になっている
• リクエストがWebアプリケーションに到達する前にWAFで精査し、適切な防御を施すことが最善策
攻撃
対策
| ©2021 F5
48
一般的な攻撃とWAFによる防御対象
CONFIDENTIAL
アプリケーションスタックにおける
ソフトウェアの脆弱性(CVE)
インジェクション
クロスサイトスクリプティング
クロスサイトリクエストフォージェリ
非セキュアな逆シリアル化
アプリケーション コードで頻繁に発生する
脆弱性(OWASP Top 10)
OS/アプリケーション/ライブラリ/プログラ
ミング言語・サードパーティライブラリを
対象とした各種攻撃
| ©2021 F5
49
NGINX WAFのデプロイ構成
CONFIDENTIAL
Service
App
ServiceA
Ingress
Controller
外部ネットワークからの攻撃
pod pod
pod
Gateway
Kubernetes
Cluster
Application
Platform
ライブラリ・コンテナへ
悪意あるプログラム
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
| ©2021 F5
50
NGINX App Protectの設定例:基本設定
CONFIDENTIAL
load_module modules/ngx_http_app_protect_module.so;
http {
server {
listen 80;
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;
}
}
}
• NGINX Plusをインストールしたホストで、NGINX App Protectをインストール
• NGINX App Protect モジュールをロードし、WAF/セキュリティログに関する設定を行う
| ©2021 F5
51
NGINX App Protectの設定例:セキュリティポリシー
CONFIDENTIAL
{
"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"
}
]
}
}
| ©2021 F5
52
NGINX App Protectの設定例:セキュリティポリシー
CONFIDENTIAL
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:提供する主なセキュリティ機能
| ©2021 F5
53
NGINX App Protectの設定例:セキュリティポリシー機能
CONFIDENTIAL
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の値に対し、シグネチャ、メタキャラクタ、不正な内容などの検出をします。デフォルトのポリシーでは、
パラメータ階層の深さをチェックします。その他に、サイズの制限、要素の最大数など指定が可能です。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) をポリシーに
割り当てる必要があります
Supported Security Policy Features:提供する主なセキュリティ機能
| ©2021 F5
54
NGINX App Protectの設定例:ブロックページ
CONFIDENTIAL
{
"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 OKrnCache-Control: no-cachernPragma:
no-cachernConnection: close",
"responseActionType": "custom",
"responsePageType": "default"
}
]
}
}
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 FORBIDDENrnContent-Type:
application/grpc+protornGrpc-status: 7rnGrpc-message: Blocked by NGINX App
Protect, Your support ID is <%TS.request.ID()%>rnSupport-ID:
<%TS.request.ID()%>rnCache-Control: no-cachernPragma: no-
cachernConnection: close",
"responseActionType": "custom",
"responsePageType": "default"
}
]
Custom Block Page:Ajax
Custom Block Page:gRPC
| ©2021 F5
55
NGINX App Protectの設定例:セキュリティログ
CONFIDENTIAL
{
"filter": {
"request_type": "all"
},
"content": {
"format": "default",
"max_request_size": "any",
"max_message_size": "5k"
}
}
Simple Log
"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
"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" }
A Verbose Custom Format Message
| ©2021 F5
56
"content": {
"format": "user-defined",
"format_string": "client_ip=%ip_client%,client_port=%src_port%,…..",
"max_request_size": "any",
"max_message_size": "5k" }
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.
bot_anomalies Comma-separated list of anomalies that were detected.
bot_category The category of the detected bot.
client_class
The classification of the client. It can have one of the following values: N/A, Suspicious Browser,
Bot, Untrusted Bot. If the client is classified as standard browser, then the value is N/A.
bot_signature_name The name of the detected bot.
date_time The date and time the request was received by App Protect.
dest_port The port assigned to listen to incoming requests.
enforced_bot_anomalies Comma-separated list of anomalies that caused the request to be blocked.
request_body_base64 The body of the request (if exists) encoded in Base64. Suitable for binary content.
grpc_service
The service name of the gRPC request (derived from the URI). Applicable only to requests that a
Content Profile. The value is N/A in other cases.
grpc_method
The method name of the gRPC request (derived from the URI). Not to be confused with ‘http_me
requests that are processed by a gRPC Content Profile. The value is N/A in other cases.
headers The headers part of the request including the query string but not the body.
ip_client
The source IP of the client initiating the request Note: if a proxy is being used, this may differ from
forwarded-for header.
is_truncated_bool A flag that returns true if a request is truncated in the security logs, or false if it is not.
method The method of request. For example, GET, POST, HEAD.
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).
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 in its original encoding. If the reques
or uses text encoding that the log destination does not support, then this field may not be render
cases we recommend using the request_body_base64 and headers fields instead.
request_status
•The status of client request made to Web Application as assigned by the App Protect policy. Th
are:blocked: The request was blocked due to a violation encountered. A blocking response pag
client.
•alerted: The request contains violation(s) but is not blocked (typical in cases where the enforce
NGINX App Protectの設定例:セキュリティログ
CONFIDENTIAL
A Verbose Custom Format Message
「%<属性の名称>%」を用いて自由に
セキュリティログへ情報を出力することが可能
• App Protect独自にログを生成
• フィルタリングが可能
(all/illegal/blocked)
• syslog(TCP)にて出力
| ©2021 F5
57 CONFIDENTIAL
WAF(NGINX App Protect) 動作確認
脆弱なWEBアプリケーション
WAFを提供していない環境で、脆弱なWEBアプリケーションに対して、意図
しないログインが許可(攻撃)されてしまうことを確認
1
WAFで適切な設定を行い、1の内容が正しく防御できていることを確認
2
2
1 1
意図しないログインを許可!
| ©2021 F5
58
• NGINX App Protectにより通信の防御が可能であることを確認しました
• NGINX Plusが動作する様々な環境で利用することが可能であり、Webサーバ、リバースプロ
キシ、更にコンテナ環境のコンテナや、Ingressコントローラでも利用が可能であることを確認
Module Summary
CONFIDENTIAL
まとめ
| ©2021 F5
60
以下のご紹介をいたしました。
• NGINXの基本(おさらい)
• Rate Limit
• Open ID Connect / JWT
• WAF (NGINX App Protect)
まとめ
CONFIDENTIAL
| ©2021 F5
61
その他参考情報
CONFIDENTIAL
| ©2021 F5
62
NGINX Documents / Contents
https://nginx.co.jp/
各種インストール・サンプル
設計などのガイド
プロダクトデータシート
過去のWebinar
顧客事例
NGINX日本語サイト
https://nginx.org/en/docs/
https://nginx.org/en/docs/dirindex.html
NGINX OSS / Directive / Variable etc.
CONFIDENTIAL
| ©2021 F5
63
お問い合わせフォーム
• 製品に関するお問い合わせ
• 購入に関するお問い合わせ
• 構成・設計に関するご相談
など
https://www.nginx.co.jp/contact-sales/
お気軽にお問い合わせください
CONFIDENTIAL
| ©2021 F5
64
無料トライアル
https://www.nginx.co.jp/free-trial-request/
https://www.nginx.co.jp/free-trial-request-nginx-controller/
NGINX Plus, NGINX App Protect
無料トライアル
NGINX Plusは、オールインワン型のソフトウェアロードバランサ、コンテンツキャッシュ、
Webサーバ、APIゲートウェイ、マイクロサービスプロキシです。NGINX App Protect
は、業界トップクラスのF5の高度なWAFテクノロジーをNGINX Plusに搭載し最新の
アプリケーションセキュリティを提供します。この2つの技術の融合により、最新の分散型
環境におけるWeb/モバイルアプリケーションの拡張性と保護が実現します。
NGINX Controllerの評価版
NGINX Controllerは、NGINXデータプレーンを管理するNGINXのコントロールプ
レーンソリューションです。マルチクラウド環境でロードバランサ―、APIゲートウェイ、およ
びサービスメッシュのスケーラブルな実装を容易に集中管理することができます。
お申し込みのお客様向けに、NGINX Controllerの無償評価版をご用意しています。
NGINX Plus無料トライアル
NGINX Controller 無料トライアル
NGINX Back to Basics Part 3: Security (Japanese Version)

Weitere ähnliche Inhalte

Was ist angesagt?

【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナーNGINX, Inc.
 
How to Avoid the Top 5 NGINX Configuration Mistakes
How to Avoid the Top 5 NGINX Configuration MistakesHow to Avoid the Top 5 NGINX Configuration Mistakes
How to Avoid the Top 5 NGINX Configuration MistakesNGINX, Inc.
 
Introduction to NGINX web server
Introduction to NGINX web serverIntroduction to NGINX web server
Introduction to NGINX web serverMd Waresul Islam
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINXNGINX, Inc.
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX, Inc.
 
NGINX ADC: Basics and Best Practices
NGINX ADC: Basics and Best PracticesNGINX ADC: Basics and Best Practices
NGINX ADC: Basics and Best PracticesNGINX, 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.
 
NGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEANGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEANGINX, Inc.
 
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナーNGINX, Inc.
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINX, Inc.
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX, 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 High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance CachingNGINX, Inc.
 
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送Google Cloud Platform - Japan
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGoogle Cloud Platform - Japan
 
How to Get Started With NGINX
How to Get Started With NGINXHow to Get Started With NGINX
How to Get Started With NGINXNGINX, Inc.
 
Delivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSDelivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSNGINX, Inc.
 

Was ist angesagt? (20)

【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
【NGINXセミナー】 NGINXのWAFとは?その使い方と設定方法 解説セミナー
 
How to Avoid the Top 5 NGINX Configuration Mistakes
How to Avoid the Top 5 NGINX Configuration MistakesHow to Avoid the Top 5 NGINX Configuration Mistakes
How to Avoid the Top 5 NGINX Configuration Mistakes
 
Introduction to NGINX web server
Introduction to NGINX web serverIntroduction to NGINX web server
Introduction to NGINX web server
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA Broadcast
 
NGINX ADC: Basics and Best Practices
NGINX ADC: Basics and Best PracticesNGINX ADC: Basics and Best Practices
NGINX ADC: Basics and Best Practices
 
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 ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEANGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEA
 
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEA
 
Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)
 
Jenkins と groovy
Jenkins と groovyJenkins と groovy
Jenkins と groovy
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance Caching
 
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
 
How to Get Started With NGINX
How to Get Started With NGINXHow to Get Started With NGINX
How to Get Started With NGINX
 
Delivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSDelivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWS
 

Ähnlich wie NGINX Back to Basics Part 3: Security (Japanese Version)

「小さくはじめる→成功する→全体最適へ→成功する」が黄金ルール
「小さくはじめる→成功する→全体最適へ→成功する」が黄金ルール「小さくはじめる→成功する→全体最適へ→成功する」が黄金ルール
「小さくはじめる→成功する→全体最適へ→成功する」が黄金ルールBrocade
 
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~ データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~ Brocade
 
Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Kuniteru Asami
 
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法NGINX, Inc.
 
本当は恐いビッグデータとネットワークの深~い関係 ビッグデータ時代に耐えうるデータセンターとは?
本当は恐いビッグデータとネットワークの深~い関係 ビッグデータ時代に耐えうるデータセンターとは?本当は恐いビッグデータとネットワークの深~い関係 ビッグデータ時代に耐えうるデータセンターとは?
本当は恐いビッグデータとネットワークの深~い関係 ビッグデータ時代に耐えうるデータセンターとは?Brocade
 
Webinar - Cyber Security basics in Japanese
Webinar - Cyber Security basics in JapaneseWebinar - Cyber Security basics in Japanese
Webinar - Cyber Security basics in JapaneseCloudflare
 
OpenStackやりたい人、必見!ネットワークから見たOpenStack導入のヒント
OpenStackやりたい人、必見!ネットワークから見たOpenStack導入のヒントOpenStackやりたい人、必見!ネットワークから見たOpenStack導入のヒント
OpenStackやりたい人、必見!ネットワークから見たOpenStack導入のヒントBrocade
 
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 Plus Hands On Training
NGINX Plus Hands On Training NGINX Plus Hands On Training
NGINX Plus Hands On Training NGINX, Inc.
 
データセンター進化論:これ以上オープンになれないSDNとは?
データセンター進化論:これ以上オープンになれないSDNとは?データセンター進化論:これ以上オープンになれないSDNとは?
データセンター進化論:これ以上オープンになれないSDNとは?Brocade
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
Cisco Systems ACI概要 とCitrix NetScaler との連携
 Cisco Systems ACI概要 とCitrix NetScaler との連携  Cisco Systems ACI概要 とCitrix NetScaler との連携
Cisco Systems ACI概要 とCitrix NetScaler との連携 Citrix Systems Japan
 
Cloudflareのソリューションを使用して悪意のあるBot対策
Cloudflareのソリューションを使用して悪意のあるBot対策Cloudflareのソリューションを使用して悪意のあるBot対策
Cloudflareのソリューションを使用して悪意のあるBot対策Cloudflare
 
Kubernetesと閉域網
Kubernetesと閉域網Kubernetesと閉域網
Kubernetesと閉域網Han Li
 
MEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについてMEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについてVirtualTech Japan Inc.
 
202007 contrail cloud-operator-contrail_v1.2
202007 contrail cloud-operator-contrail_v1.2202007 contrail cloud-operator-contrail_v1.2
202007 contrail cloud-operator-contrail_v1.2Hiromi Tsukamoto
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料直久 住川
 
ここまで進化したNetScalerのリモートアクセスソリューション ~ Unified Gatewayとは ~
ここまで進化したNetScalerのリモートアクセスソリューション ~ Unified Gatewayとは ~ここまで進化したNetScalerのリモートアクセスソリューション ~ Unified Gatewayとは ~
ここまで進化したNetScalerのリモートアクセスソリューション ~ Unified Gatewayとは ~Citrix Systems Japan
 
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策Juniper Networks (日本)
 

Ähnlich wie NGINX Back to Basics Part 3: Security (Japanese Version) (20)

「小さくはじめる→成功する→全体最適へ→成功する」が黄金ルール
「小さくはじめる→成功する→全体最適へ→成功する」が黄金ルール「小さくはじめる→成功する→全体最適へ→成功する」が黄金ルール
「小さくはじめる→成功する→全体最適へ→成功する」が黄金ルール
 
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~ データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
データセンター進化論:SDNは今オープンに ~攻めるITインフラにの絶対条件とは?~
 
Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編
 
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
【NGINXセミナー】API ゲートウェイとしてのNGINX Plus活用方法
 
本当は恐いビッグデータとネットワークの深~い関係 ビッグデータ時代に耐えうるデータセンターとは?
本当は恐いビッグデータとネットワークの深~い関係 ビッグデータ時代に耐えうるデータセンターとは?本当は恐いビッグデータとネットワークの深~い関係 ビッグデータ時代に耐えうるデータセンターとは?
本当は恐いビッグデータとネットワークの深~い関係 ビッグデータ時代に耐えうるデータセンターとは?
 
Webinar - Cyber Security basics in Japanese
Webinar - Cyber Security basics in JapaneseWebinar - Cyber Security basics in Japanese
Webinar - Cyber Security basics in Japanese
 
OpenStackやりたい人、必見!ネットワークから見たOpenStack導入のヒント
OpenStackやりたい人、必見!ネットワークから見たOpenStack導入のヒントOpenStackやりたい人、必見!ネットワークから見たOpenStack導入のヒント
OpenStackやりたい人、必見!ネットワークから見たOpenStack導入のヒント
 
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 Plus Hands On Training
NGINX Plus Hands On Training NGINX Plus Hands On Training
NGINX Plus Hands On Training
 
データセンター進化論:これ以上オープンになれないSDNとは?
データセンター進化論:これ以上オープンになれないSDNとは?データセンター進化論:これ以上オープンになれないSDNとは?
データセンター進化論:これ以上オープンになれないSDNとは?
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
 
Cisco Systems ACI概要 とCitrix NetScaler との連携
 Cisco Systems ACI概要 とCitrix NetScaler との連携  Cisco Systems ACI概要 とCitrix NetScaler との連携
Cisco Systems ACI概要 とCitrix NetScaler との連携
 
Nsx t alb-integration_202108
Nsx t alb-integration_202108Nsx t alb-integration_202108
Nsx t alb-integration_202108
 
Cloudflareのソリューションを使用して悪意のあるBot対策
Cloudflareのソリューションを使用して悪意のあるBot対策Cloudflareのソリューションを使用して悪意のあるBot対策
Cloudflareのソリューションを使用して悪意のあるBot対策
 
Kubernetesと閉域網
Kubernetesと閉域網Kubernetesと閉域網
Kubernetesと閉域網
 
MEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについてMEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについて
 
202007 contrail cloud-operator-contrail_v1.2
202007 contrail cloud-operator-contrail_v1.2202007 contrail cloud-operator-contrail_v1.2
202007 contrail cloud-operator-contrail_v1.2
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
ここまで進化したNetScalerのリモートアクセスソリューション ~ Unified Gatewayとは ~
ここまで進化したNetScalerのリモートアクセスソリューション ~ Unified Gatewayとは ~ここまで進化したNetScalerのリモートアクセスソリューション ~ Unified Gatewayとは ~
ここまで進化したNetScalerのリモートアクセスソリューション ~ Unified Gatewayとは ~
 
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
【Interop Tokyo 2015】最新セキュリティサーベイからみるトレンドと解決策
 

Mehr von 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.
 
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.
 
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.
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes APINGINX, 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.
 
A Guide to Adopting Kubernetes
A Guide to Adopting KubernetesA Guide to Adopting Kubernetes
A Guide to Adopting KubernetesNGINX, Inc.
 

Mehr von 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
 
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
 
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
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes API
 
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
 
A Guide to Adopting Kubernetes
A Guide to Adopting KubernetesA Guide to Adopting Kubernetes
A Guide to Adopting Kubernetes
 

NGINX Back to Basics Part 3: Security (Japanese Version)

  • 3. | ©2021 F5 3 • Webサーバに対する一般的な理解 • HTTPやTCP/IPに関する基本的な知識 • ネットワークに関する基本的な理解 • Linuxコマンドラインに関する知識 CONFIDENTIAL 前提条件
  • 4. | ©2021 F5 4 • NGINXの基本(おさらい) • Rate Limit • Open ID Connect / JWT • WAF (NGINX App Protect) Agenda CONFIDENTIAL
  • 6. | ©2021 F5 6 NGINX ソリューション CONFIDENTIAL
  • 7. | ©2021 F5 7 DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD NGINX Plus All-In-One Software ロードバランサー、コンテンツキャッシュ、 Webサーバ 安定、高速、高機能 必要となるリソースは最小 NGINX Controller NGINX+統合管理ソフトウェア NGINX+のロードバランサやAPI Gateway、更にマルチクラウド環境に おいても容易に管理が可能。 GUI/CLIに加えAPIでの制御が可能 NGINX App Protect アプリケーションに特化した Web Application Firewall NGINX+にシームレスに統合可能な 新しいWAF。 F5の実績に基づき、 高速な高品質なWAFを実現 High quality Support NGINX 製品
  • 8. | ©2021 F5 8 DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD NGINX 製品 NGINX Service Mesh NGINX Plusで複雑な マイクロサービス、アプリケーション間の 通信問題を解決するシンプルな サービスメッシュソリューション。 Amazon EKS, Azure AKS対応 NGINX Ingress Controller Kubernetes環境への 外部アクセスをコントロール。 NGINX機能をIngressリソース を通じて管理可能。 NGINX App Protect対応 High quality Support NGINX Instance Manager NGINX OSS、NGINX Plusを管理。 簡易なヒストリカルなトラフィック・ ステータス情報やコンフィグファイル 管理を提供。ネットワーク内をスキャンし NGINXインスタンスの検出も可能
  • 9. | ©2021 F5 9 Web KIC SP MS SP MS L7 LB NGINX Plus NGINX Controller NGINX Plus Web server NGINX Unit App server CODE CUSTOMER App NGINX Product Portfolio L4-L7 LB API GW Per app WAF 高速・高品質 Web Server Web Application Server NGINX Plus Sidecar proxy SP MS 高頻度のアプリケーションリリースを実現する、 高い柔軟性・効率・品質のアプリケーション基盤 Container Ingress Service Service Mesh L7 LB Revese Proxy /Cache / API GW / Per app WAF MONOLOTHIC MICROSERVICES NGINX Plus K8s IC CI/CD DevSecOps CONFIDENTIAL NGINX Instance Manager
  • 11. | ©2021 F5 11 • NGINXの持つ基本機能群 おさらい • NGINX(OSS版)とNGINX Plusの違い • NGINX Plus基本コンフィグ のデモ CONFIDENTIAL 【Webinar】 「これからはじめるNGINX技術解説~基本編」セミナー https://www.nginx.co.jp/resources/webinars/nginx-back-to-basic-jp/ このセミナーの主な内容: おさらい
  • 12. | ©2021 F5 12 • NGINXの持つ基本機能群 おさらい • NGINXの動作の基礎、 listen directiveについて • NGINXのReverse Proxy 機能&設定 • NGINX の高度なロードバラ ンシング機能&設定 CONFIDENTIAL 【Webinar】 「これからはじめるNGINX技術解説~基本編 Part2」セミナー https://www.nginx.co.jp/resources/webinars/nginx-back-to-basic-2-jp/ このセミナーの主な内容: おさらい
  • 13. | ©2021 F5 13 • あらためてNGINXの 持つ基本機能群 • NGINX(OSS版)とNGINX Plusの違い • NGINXのさらなる 活用方法、活用事例 • NGINX有償版 ソリューションのデモ CONFIDENTIAL 【Webinar】 NGINX (OSS版)ユーザのためのNGINX Plus/NGINX Controller入門 https://www.nginx.co.jp/resources/webinars/nginx-plus-for-oss-user/ このセミナーの主な内容: ご紹介
  • 14. | ©2021 F5 14 O’REILLY NGINXクックブック設定レシピ集(日本語版) CONFIDENTIAL https://www.nginx.co.jp/resources/ebooks/nginx-cookbook-jp/ ご紹介
  • 15. | ©2021 F5 15 NGINX セキュリティ機能 CONFIDENTIAL
  • 16. | ©2021 F5 16 「アプリケーション」を中心としたビジネス CONFIDENTIAL Application centric app アプリケーションの用途に合わせた複数のクラウドの活用や、オンプ レミス・パブリッククラウドの活用が重要になります。幅広いオンプレ ミス・クラウドの活用の中で共通のセキュリティを施すことは難しく、 重要な課題となっています。 より多くのアプリケーションはインターネットを通じオンライン上で 様々なデータがやり取りされます。その中で活用されるデータは 増加し、多くの機密データをセキュアに管理する事が求められます モダナイズされた環境ではアプリを接続するAPIの利用が不可欠 です。 APIの活用は利用者だけでなく、攻撃のターゲットとなり既存の セキュリティ機能では十分な防御が困難です マルチクラウド 機密データ API first
  • 17. | ©2021 F5 17 Web KIC SP MS NGINX Plus CODE App NGINXによる高度なセキュリティの実現 NGINX Plus Sidecar proxy SP MS L7 LB MONOLOTHIC MICROSERVICES NGINX Plus CONFIDENTIAL CUSTOMER DDoS Web脆弱性 ユーザ認証 機密 データ 認証 データ
  • 18. | ©2021 F5 18 本日ご紹介する内容 CONFIDENTIAL Rate Limit Module1 DDoS 外部から大量のアクセスを防ぎ、Webサーバ・アプリケーションサーバの想定以上のリソー ス消費を抑え、プラットフォーム全体を安全に・安定して動作させることが可能となります
  • 19. | ©2021 F5 19 本日ご紹介する内容 CONFIDENTIAL OpenID Connect / JWT Module2 ユーザからのアクセスをNGINX PlusがもつJWT Validationの機能を用いて、外部 認可サーバとOpenID Connectで連携し、認証済みのユーザに対する適切な接続制 御を行います。 認可サーバ
  • 20. | ©2021 F5 20 本日ご紹介する内容 CONFIDENTIAL WAF (NGINX App Protect) Module3 外部の悪意あるユーザから行われるWebアプリケーションに対する高度な攻撃に対し、 NGINX App Protectを用いて通信を遮断し、アプリケーションを安全に守ります
  • 22. | ©2021 F5 22 • Rate Limitの設定方法について −limit_req_zone と limit_req −それぞれの設定パラメータと挙動について Module 1 Objectives CONFIDENTIAL
  • 23. | ©2021 F5 23 DDoS攻撃の概要 / Rate Limitの概要 CONFIDENTIAL • インターネットに展開されるアプリケーションは常に攻撃者のターゲットになる可能性がある • DDoS攻撃(Distributed Denial of Service attack/分散型サービス妨害攻撃)は対象の サービスに、通常をはるかに超えるトラフィックを送信することにより、サービスの停止などを目的とする • 具体的な被害としては、トラフィック増大によるネットワークの遅延、サービスの停止、アプリケーションの高 負荷による想定外の動作などが引き起こされる • 通常の利用時に想定される通信量を超える大きな通信が発生した場合には、Rate Limitを用いて応 答の遅延や、余分な通信を拒否することにより不要なトラフィックを減らし、プラットフォーム全体の可用 性を向上させる DDoS 攻撃 対策
  • 24. | ©2021 F5 24 Rate Limit 設定例 CONFIDENTIAL • httpコンテキスト内でlimit_req_zone directiveを用いて共有メモリやRate Limitの条件をパラメータで指定 • 対象となる通信に対しlimit_req指定しレート制限を有効にする http { limit_req_zone $remote_addr zone=req:1M rate=1r/s; server { listen 80; location / { limit_req zone=req; proxy_pass http://my_backend; } } }
  • 25. | ©2021 F5 25 limit_req_zone / limit_req Directive CONFIDENTIAL • 書式:limit_req_zone <key> zone=<共有メモリ名>:<共有メモリサイズ> rate=<制限するレート>; • <key>:レート制限を行う通信を識別する条件。例えば、クライアントIPを識別の条件としてレー ト制限を実行する場合、$binary_remote_addr変数を指定する。この場合、それぞれのユニー クなIPアドレスからのリクエストに対しrateのパラメータで指定したレート制限を実施する • zone:レート制限のステータスを保持する共有メモリを指定する。この共有メモリを用いて、 NGINXのワーカプロセス間でステータスをシェアする • rate:レート制限を行うためのレートの最大値を指定する。NGINXでは各リクエストについて指定 した値のレートで通信が行われているかミリ秒単位での評価を行う • 書式:limit_req zone=<共有メモリ名> ; • <共有メモリ名>:limit_req_zoneで予め作成した、共有メモリ名を指定
  • 26. | ©2021 F5 26 Rate Limit 設定例:rate CONFIDENTIAL limit_req_zone $remote_addr zone=req:1M rate=1r/s; server { listen 80; location / { limit_req zone=req; proxy_pass http://my_backend; } 1sec 1sec 503 $remote_addr:192.168.1.1 rate 1r/sを超える リクエストを拒否
  • 27. | ©2021 F5 27 Rate Limit 設定例:burst CONFIDENTIAL limit_req_zone $remote_addr zone=req:1M rate=1r/s; server { listen 80; location / { limit_req zone=req burst=2; proxy_pass http://my_backend; } $remote_addr:192.168.1.1 指定したレートを超える通信を、burstで 指定した数だけキューイング 1sec 1sec 503 rate 1r/sを超えるリクエストの内、burstで 指定した数は指定したレート(1r/s)で転送 すでにburstで指定した数キューイングした状態で 新たなリクエストを受けた場合リクエストを拒否 1sec
  • 28. | ©2021 F5 28 Rate Limit 設定例:nodelay CONFIDENTIAL limit_req_zone $remote_addr zone=req:1M rate=1r/s; server { listen 80; location / { limit_req zone=req burst=2 nodelay; proxy_pass http://my_backend; } $remote_addr:192.168.1.1 1sec 503 burstでキューイングしたリクエスト を即座に転送 burstで指定した数を超える リクエストを拒否
  • 29. | ©2021 F5 29 Rate Limit 設定例:delay CONFIDENTIAL limit_req_zone $remote_addr zone=req:1M rate=1r/s; server { listen 80; location / { limit_req zone=req burst=2 delay=1; proxy_pass http://my_backend; } $remote_addr:192.168.1.1 1sec 503 1sec burstでキューイングしたリクエストの内、burst数から delay数を引いた数は、指定したレート(1r/s)で転送 burstで指定した数を超える リクエストを拒否 delayで指定した数 は即座に転送
  • 30. | ©2021 F5 30 • access_log – NGINX宛の通信の詳細を出力 − log_format directiveを用いて出力する情報を設定 • error_log – NGINXが出力するメッセージ − level というパラメータにて情報の詳細さを設定 Error & Access Logs CONFIDENTIAL TIPS
  • 31. | ©2021 F5 31 • リクエストの拒否 Rate Limit ログ ==> /var/log/nginx/error.log <== 2020/04/01 00:35:48 [error] 22149#22149: *4744 limiting requests, excess: 3.000 by zone "req", client: 10.10.10.32, server: , request: "GET / HTTP/1.0", host: "10.10.10.1" ==> /var/log/nginx/access.log <== 10.10.10.32 - - [01/Apr/2020:00:35:48 +0900] "GET / HTTP/1.0" 503 197 "-" "ApacheBench/2.3" CONFIDENTIAL • burstによるDelay ==> /var/log/nginx/error.log <== 2020/04/01 00:35:48 [warn] 22149#22149: *4743 delaying request, excess: 2.000, by zone "req", client: 10.10.10.32, server: , request: "GET / HTTP/1.0", host: "10.10.10.1" ==> /var/log/nginx/access.log <== 10.10.10.32 - - [01/Apr/2020:00:35:49 +0900] "GET / HTTP/1.0" 200 68 "-" "ApacheBench/2.3" • リクエストが指定のZone(条件)でリミットに到達し、503を応答している • リクエストが指定のZone(条件)でリミットに到達し、burstにより応答を遅らせている
  • 32. | ©2021 F5 32 CONFIDENTIAL Rate Limit 動作確認 limit_req_zone $remote_addr zone=req:1M rate=1r/s; limit_req zone=req; limit_req_zone $remote_addr zone=req:1M rate=1r/s; limit_req zone=req burst=2 nodelay; limit_req_zone $remote_addr zone=req:1M rate=1r/s; limit_req zone=req burst=2 nodelay; limit_req_dry_run on; 【Client】リクエスト数:4回、コネクション数:1 $ ab -n 4 -c 1 http://10.10.10.1/ Apace Benchmark (ab command) Rate Limit 1 2 3
  • 33. | ©2021 F5 33 Rate Limit 設定 応用編 CONFIDENTIAL geo $limit { default 1; 10.0.0.0/8 0; 192.168.0.0/24 0; } map $limit $limit_key { 0 ""; 1 $binary_remote_addr; } limit_req_zone $limit_key zone=req_zone:10m rate=5r/s; server { location / { limit_req zone=req_zone burst=10 nodelay; # ... } } 送信元IPアドレスに応じて limitの変数に値をセット limitの値に応じて limit_keyの変数に値をセット limit_keyがブランクの場合、 Rate Limitを実施しない
  • 34. | ©2021 F5 34 • limit_req_dry_run • limit_req_log_level • limit_req_status その他 Rate Limit 関連Directive CONFIDENTIAL https://nginx.org/en/docs/http/ngx_http_limit_req_module.html?#limit_req_zone
  • 35. | ©2021 F5 35 • Rate Limitの実装方法について • 各種パラメータの動作について説明 −rate −burst −delay / nodelay −burst + nodelayの利用を推奨 Module Summary CONFIDENTIAL
  • 36. Module 2 Open ID Connect / JWT
  • 37. | ©2021 F5 37 OpenID Connect 設定方法 CONFIDENTIAL • NGINXが提供するGitHubからスクリプトと設定サンプルを取得します • 手順にしたがって設定する事により容易に環境の構築が可能です https://github.com/nginxinc/nginx-openid-connect
  • 38. | ©2021 F5 38 OpenID Connect 設定方法 CONFIDENTIAL • 大まかな設定順序 NGINXと連携する認可サーバの準備 NGINXが提供する設定ガイド: ActiveDirectory Federation Service Amazon Congnito Keycloak Okta OneLogin PingFederate and PingOne for Enterprise https://docs.nginx.com/nginx/deployment-guides/single- sign-on/active-directory-federation-services/ NGINX Plusを動作させるホストにて対象のGithub repositoryからファイルを取得 シェルスクリプトを実行し、認可サーバのOpenID Connect設定を取得。一部コンフィグファイルを動作 環境に合わせて修正 NGINX Plusの設定 認可サーバの設定 0 1 2
  • 39. | ©2021 F5 39 OpenID Connect 設定例 CONFIDENTIAL root@ubuntu:/etc/nginx/conf.d# git clone https://github.com/nginxinc/nginx-openid-connect root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# ./configure.sh http://172.28.14.135:8080/auth/realms/master/.well-known/openid-configuration configure.sh: NOTICE: Downloading ./idp_jwk.json configure.sh: NOTICE: Configuring ./frontend.conf ... no change configure.sh: NOTICE: Configuring ./openid_connect_configuration.conf configure.sh: NOTICE: - $oidc_authz_endpoint ... ok configure.sh: NOTICE: - $oidc_token_endpoint ... ok configure.sh: NOTICE: - $oidc_jwt_keyfile ... ok configure.sh: NOTICE: - $oidc_hmac_key ... ok configure.sh: NOTICE: - $oidc_pkce_enable ... ok configure.sh: NOTICE: Success - test configuration with 'nginx -t' 1 2
  • 40. | ©2021 F5 40 OpenID Connect 設定例 CONFIDENTIAL # ファイルのコピー root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp frontend.conf ../ root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp idp_jwk.json ../ root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp openid_connect_configuration.conf ../ root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp openid_connect.js ../ root@ubuntu:/etc/nginx/conf.d/nginx-openid-connect# cp openid_connect.server_conf ../ # ファイルの修正 # openid_connect_configuration.conf 内、$oidc_clientと$oidc_client_secretに値を入力 # frontend.conf 内、OIDC接続後の転送先など指定 3 4
  • 41. | ©2021 F5 41 • nginx-plus-module-njs をインストールし、nginx.conf の先頭でモジュールをロード • http blockでconf.d配下の*.confファイルをinclude OpenID Connect 設定ファイルの関連性 CONFIDENTIAL nginx/ conf.d/ nginx.conf frontend.conf • OIDC ConnectのRelying Partyとして外部に公開する サービスの設定 • 外部に公開するサービスの先頭で ”conf.d/openid_connect.server_conf”をinclude openid_connect_configuration.conf • OIDC ConnectのRelying Partyとして外部に認可サーバ と連携する際に必要となるパラメータの設定・管理 • 設定ファイル末尾で、js_import directiveを用いて “conf.d/openid_connect.js”をインポート openid_connect.server_conf • OIDC ConnectのRelying Partyとして外部に認可サーバ と連携するために必要となる、OIDCのCode Exchangeな ど、各種URLと設定を提供する。 • 処理内容に応じて、 js_content directiveを用いて、 openid_connect.jsで定義した関数を用いる openid_connect.js • OIDC ConnectのRelying Partyとして外部に認可サーバ と連携するために必要となる、認証機能などをNJSによる機 能拡張で実現する http block OIDC JS機能拡張 OIDC URL・機能 OIDC パラメータ サービス・プロキシ Include / Import 機能・設定の参照
  • 42. | ©2021 F5 42 OIDC 設定例:auth_jwt / auth_jwt_claim_set CONFIDENTIAL • frontend.confや、openid_connect.server_conf, openid_connect_configuration.confで利用さ れているDirective # frontend.confの例 auth_jwt "" token=$session_jwt; • 書式:auth_jwt <relam> [token=$variable] • JSON Web Tokenのvalidationを有効にする • tokenにはJSON Web Tokenを含む値を指定する。CookieやHTTP Headerなど openid_connect.jsで id_token内容を変数に格納 # openid_connect_configuration.confの例 auth_jwt_claim_set $jwt_audience aud • 書式:auth_jwt_claim_set $variable <名称> • JWT Claimに指定した名称で変数の内容を指定する audにjwt_audienceの内容を 格納
  • 43. | ©2021 F5 43 CONFIDENTIAL OpenID Connect 動作確認 OIDCのRelying Party として動作 認可サーバ 1 2 3 クライアントブラウザからアプリケーションに接続。 OIDCのRelying Partyとして動作するNGINXが認可サーバへリダイレクト 1 認可サーバ(Keycloak)でユーザの認証。正しく認証できたたことを確認 し、再度NGINXへリダイレクト 2 NGINXでユーザを評価。正しいユーザで有ることを確認し、アプリケーション へリクエストを転送 3
  • 44. | ©2021 F5 44 • NGINX Plusを用いてOpenID ConnectのRPとして動作させる方法を確認 • NGINXが提供するGitHubのサンプルコードを用いて設定する方法を確認 Module Summary CONFIDENTIAL
  • 46. | ©2021 F5 46 • WAFを用いて外部からの悪意あるリクエストを検知・拒否する方法を 理解する • NGINXのWAFモジュールの設定について理解する Module 2 Objectives CONFIDENTIAL
  • 47. | ©2021 F5 47 WAFの概要 CONFIDENTIAL • インターネットが当たり前となり、世の中のありとあらゆるものがスマートフォンやパソコンから自由に利用で きる用になっている。そのWebアプリケーションの用途拡大と共に重要なデータの利用が増えている • 攻撃者は外部からWebアプリケーションの設計や脆弱性を対象とし、悪意あるリクエストを送付すること により本来の動作と異なる挙動を引き起こし、機密データの取得や、サイト改ざん、サイトの動作停止 などを引き起こす • 「バグのない」Webアプリケーションが理想ではあるが、日々脆弱性が見つかっており、その対策は ますます困難になっている • リクエストがWebアプリケーションに到達する前にWAFで精査し、適切な防御を施すことが最善策 攻撃 対策
  • 49. | ©2021 F5 49 NGINX WAFのデプロイ構成 CONFIDENTIAL Service App ServiceA Ingress Controller 外部ネットワークからの攻撃 pod pod pod Gateway Kubernetes Cluster Application Platform ライブラリ・コンテナへ 悪意あるプログラム 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
  • 50. | ©2021 F5 50 NGINX App Protectの設定例:基本設定 CONFIDENTIAL load_module modules/ngx_http_app_protect_module.so; http { server { listen 80; 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; } } } • NGINX Plusをインストールしたホストで、NGINX App Protectをインストール • NGINX App Protect モジュールをロードし、WAF/セキュリティログに関する設定を行う
  • 51. | ©2021 F5 51 NGINX App Protectの設定例:セキュリティポリシー CONFIDENTIAL { "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" } ] } }
  • 52. | ©2021 F5 52 NGINX App Protectの設定例:セキュリティポリシー CONFIDENTIAL 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:提供する主なセキュリティ機能
  • 53. | ©2021 F5 53 NGINX App Protectの設定例:セキュリティポリシー機能 CONFIDENTIAL 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の値に対し、シグネチャ、メタキャラクタ、不正な内容などの検出をします。デフォルトのポリシーでは、 パラメータ階層の深さをチェックします。その他に、サイズの制限、要素の最大数など指定が可能です。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) をポリシーに 割り当てる必要があります Supported Security Policy Features:提供する主なセキュリティ機能
  • 54. | ©2021 F5 54 NGINX App Protectの設定例:ブロックページ CONFIDENTIAL { "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 OKrnCache-Control: no-cachernPragma: no-cachernConnection: close", "responseActionType": "custom", "responsePageType": "default" } ] } } 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 FORBIDDENrnContent-Type: application/grpc+protornGrpc-status: 7rnGrpc-message: Blocked by NGINX App Protect, Your support ID is <%TS.request.ID()%>rnSupport-ID: <%TS.request.ID()%>rnCache-Control: no-cachernPragma: no- cachernConnection: close", "responseActionType": "custom", "responsePageType": "default" } ] Custom Block Page:Ajax Custom Block Page:gRPC
  • 55. | ©2021 F5 55 NGINX App Protectの設定例:セキュリティログ CONFIDENTIAL { "filter": { "request_type": "all" }, "content": { "format": "default", "max_request_size": "any", "max_message_size": "5k" } } Simple Log "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 "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" } A Verbose Custom Format Message
  • 56. | ©2021 F5 56 "content": { "format": "user-defined", "format_string": "client_ip=%ip_client%,client_port=%src_port%,…..", "max_request_size": "any", "max_message_size": "5k" } 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. bot_anomalies Comma-separated list of anomalies that were detected. bot_category The category of the detected bot. client_class The classification of the client. It can have one of the following values: N/A, Suspicious Browser, Bot, Untrusted Bot. If the client is classified as standard browser, then the value is N/A. bot_signature_name The name of the detected bot. date_time The date and time the request was received by App Protect. dest_port The port assigned to listen to incoming requests. enforced_bot_anomalies Comma-separated list of anomalies that caused the request to be blocked. request_body_base64 The body of the request (if exists) encoded in Base64. Suitable for binary content. grpc_service The service name of the gRPC request (derived from the URI). Applicable only to requests that a Content Profile. The value is N/A in other cases. grpc_method The method name of the gRPC request (derived from the URI). Not to be confused with ‘http_me requests that are processed by a gRPC Content Profile. The value is N/A in other cases. headers The headers part of the request including the query string but not the body. ip_client The source IP of the client initiating the request Note: if a proxy is being used, this may differ from forwarded-for header. is_truncated_bool A flag that returns true if a request is truncated in the security logs, or false if it is not. method The method of request. For example, GET, POST, HEAD. 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). 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 in its original encoding. If the reques or uses text encoding that the log destination does not support, then this field may not be render cases we recommend using the request_body_base64 and headers fields instead. request_status •The status of client request made to Web Application as assigned by the App Protect policy. Th are:blocked: The request was blocked due to a violation encountered. A blocking response pag client. •alerted: The request contains violation(s) but is not blocked (typical in cases where the enforce NGINX App Protectの設定例:セキュリティログ CONFIDENTIAL A Verbose Custom Format Message 「%<属性の名称>%」を用いて自由に セキュリティログへ情報を出力することが可能 • App Protect独自にログを生成 • フィルタリングが可能 (all/illegal/blocked) • syslog(TCP)にて出力
  • 57. | ©2021 F5 57 CONFIDENTIAL WAF(NGINX App Protect) 動作確認 脆弱なWEBアプリケーション WAFを提供していない環境で、脆弱なWEBアプリケーションに対して、意図 しないログインが許可(攻撃)されてしまうことを確認 1 WAFで適切な設定を行い、1の内容が正しく防御できていることを確認 2 2 1 1 意図しないログインを許可!
  • 58. | ©2021 F5 58 • NGINX App Protectにより通信の防御が可能であることを確認しました • NGINX Plusが動作する様々な環境で利用することが可能であり、Webサーバ、リバースプロ キシ、更にコンテナ環境のコンテナや、Ingressコントローラでも利用が可能であることを確認 Module Summary CONFIDENTIAL
  • 60. | ©2021 F5 60 以下のご紹介をいたしました。 • NGINXの基本(おさらい) • Rate Limit • Open ID Connect / JWT • WAF (NGINX App Protect) まとめ CONFIDENTIAL
  • 62. | ©2021 F5 62 NGINX Documents / Contents https://nginx.co.jp/ 各種インストール・サンプル 設計などのガイド プロダクトデータシート 過去のWebinar 顧客事例 NGINX日本語サイト https://nginx.org/en/docs/ https://nginx.org/en/docs/dirindex.html NGINX OSS / Directive / Variable etc. CONFIDENTIAL
  • 63. | ©2021 F5 63 お問い合わせフォーム • 製品に関するお問い合わせ • 購入に関するお問い合わせ • 構成・設計に関するご相談 など https://www.nginx.co.jp/contact-sales/ お気軽にお問い合わせください CONFIDENTIAL
  • 64. | ©2021 F5 64 無料トライアル https://www.nginx.co.jp/free-trial-request/ https://www.nginx.co.jp/free-trial-request-nginx-controller/ NGINX Plus, NGINX App Protect 無料トライアル NGINX Plusは、オールインワン型のソフトウェアロードバランサ、コンテンツキャッシュ、 Webサーバ、APIゲートウェイ、マイクロサービスプロキシです。NGINX App Protect は、業界トップクラスのF5の高度なWAFテクノロジーをNGINX Plusに搭載し最新の アプリケーションセキュリティを提供します。この2つの技術の融合により、最新の分散型 環境におけるWeb/モバイルアプリケーションの拡張性と保護が実現します。 NGINX Controllerの評価版 NGINX Controllerは、NGINXデータプレーンを管理するNGINXのコントロールプ レーンソリューションです。マルチクラウド環境でロードバランサ―、APIゲートウェイ、およ びサービスメッシュのスケーラブルな実装を容易に集中管理することができます。 お申し込みのお客様向けに、NGINX Controllerの無償評価版をご用意しています。 NGINX Plus無料トライアル NGINX Controller 無料トライアル

Hinweis der Redaktion

  1. ロード バランサーは、複数のバックエンド サーバーに負荷を分散します。 これは Web サーバーを示しますが、NGINX はさまざまなタイプのトラフィック (TCP トラフィック: (LDAP、MySQL、RTMP)、UDP トラフィック: DNS (ドメイン ネーム システム) トラフィック、syslog、RADIUS、HTTP トラフィックなど、さまざまな種類のトラフィックをロード バランシングできます。 ロード バランサーは、HTTP、UDP、および TCP トラフィックのヘルスチェックの構成も提供します。