Mais conteúdo relacionado
Semelhante a API and Modern App Security for Microservices (20)
API and Modern App Security for Microservices
- 2. | ©2021 F5
2
• NGINXについて
• APIゲートウェイとしてのNGINX と モダンアプリケーションデリバリの課題
• NGINXセキュリティ機能
• デモ - Google Cloud
• その他参考情報
本日のアジェンダ
- 4. | ©2021 F5
4
あらゆる環境に最適なNGINX Technology
Source: Datadog Container Report 2020
No1 Container
In Kubernetes
安定・高速動作がクラウドネイティブ環境に最適
4.5億
sites run NGINX
https://news.netcraft.com/archives/2021/10/15/october-2021-web-server-survey.html
- 5. | ©2021 F5
5
NGINX 製品/ソリューション
Web
KIC
MS
SP MS
L7
LB
NGINX Plus
NGINX
Controller
NGINX Plus
Web server
NGINX Unit
App server
CODE CUSTOMER
App
L4-L7 LB
API GW
Per app WAF
高速・高品質 Web Server
Web Application Server
NGINX
Service
Mesh
SP MS
高頻度のアプリケーションリリースを実現する、
高い柔軟性・効率・品質のアプリケーション基盤
コンテナ環境
サービスメッシュ
L7
LB
リバースプロキシ /キャッシュ
/ API GW / Per app WAF
MONOLOTHIC
MICROSERVICES
NGINX Plus Ingress
Controller
CI/CD
NGINX
Instance
Manager
NGINX App Protect
- 6. | ©2021 F5
6
NGINX 製品/ソリューション
Web
KIC
MS
SP MS
L7
LB
NGINX Plus
NGINX
Controller
NGINX Plus
Web server
NGINX Unit
App server
CODE CUSTOMER
App
L4-L7 LB
API GW
Per app WAF
高速・高品質 Web Server
Web Application Server
NGINX
Service
Mesh
SP MS
高頻度のアプリケーションリリースを実現する、
高い柔軟性・効率・品質のアプリケーション基盤
コンテナ環境
サービスメッシュ
L7
LB
リバースプロキシ /キャッシュ
/ API GW / Per app WAF
MONOLOTHIC
MICROSERVICES
NGINX Plus Ingress
Controller
CI/CD
NGINX
Instance
Manager
NGINX App Protect
従来型アプリケーション
マイクロサービス
統合管理
- 8. | ©2021 F5
8
NGINX API ゲートウェイ
Web
KIC
MS
SP MS
L7
LB
NGINX Plus
NGINX
Controller
NGINX Plus
Web server
NGINX Unit
App server
CODE CUSTOMER
App
L4-L7 LB
API GW
Per app WAF
高速・高品質 Web Server
Web Application Server
NGINX
Service
Mesh
SP MS
高頻度のアプリケーションリリースを実現する、
高い柔軟性・効率・品質のアプリケーション基盤
コンテナ環境
サービスメッシュ
L7
LB
リバースプロキシ /キャッシュ
/ API GW / Per app WAF
MONOLOTHIC
MICROSERVICES
NGINX Plus Ingress
Controller
CI/CD
NGINX
Instance
Manager
NGINX App Protect
- 9. | ©2021 F5
9
NGINX API ゲートウェイ
http://
GET /pricing/sku001
PATCH /pricing/sku001
{"price":1499.00
"currency":"JPY"
"max_discount":"15%"}
- 11. | ©2021 F5
11
それぞれのチームにある、それぞれの「課題」
アプリケーションモダナイゼーション対応 複雑な構成に対する柔軟な対応 包括的な横断したインサイト
プラットフォームの管理・運用の効率化
プラットフォーム・セキュリティを開発に統合
リリースサイクルに合わせた運用
コンテナやクラウド環境への対応
自由なトポロジ構成、柔軟な通信制御
安定したデータプレーンの動作
プラットフォーム全体のステータスだけでなく
アプリケーションを中心にしたインサイトの利用
セキュリティも統合的に管理・運用
01 02 03
開発・DevOps プラットフォーム・運用・NetOps/CloudOps
• アプリケーションは頻繁にリリース・変更を行う。
この変化に対応できるプラットフォームが必要
• 手作業はミス・遅延の原因。CI/CDへの統合による自動化
• アプリケーションチームが求める柔軟性や、各アプリケーション
毎に最適な形でリソースを提供
• アプリケーション毎の細かなセキュリティ制御による、アジリ
ティと堅牢性を両立した構成
• 再利用性高く、そして効率的な運用が必須
- 16. | ©2021 F5
16
サイバーエージェント様 NGINX Plus 活用事例 2021年7月
https://www.atmarkit.co.jp/ait/articles/2107/20/news002.html
ご紹介
https://www.nginx.co.jp/resources/webinars/
- 17. | ©2021 F5
17
サイバーエージェント様 NGINX Plus 活用事例 2021年7月
https://www.atmarkit.co.jp/ait/articles/2107/20/news002.html
OpenID Connect
NGINX PlusのOpenID Connect機能を利用して自社開発していた部分を変更
VPNありきだった設計の見直しアプリ改修のダウンタイムを削減、1分以内に設定完了
一定セキュリティ水準と商用サポートも採用した理由の一つ
- 20. | ©2021 F5
20
NGINX Plus はAPIやアプリをL7ルーティングの強化や
セキュリティポリシーの追加で保護します。
開発者が簡単に目的の設定を行
うことができるNGINX。
アプリケーション、API、
Kubernetes 環境に最適化され
たNGINXをデプロイすること
ができます。
コード ユーザー
Data Plane
Web Server /
Reverse Proxy
API
Gateway
Load Balancer CDN
NGINX Plus
Bare Metal | Containers | VMs | Private Cloud | Public Cloud | Hybrid Cloud | Multi-Cloud
App
アクセス制御
レート制限
- 21. | ©2021 F5
21
Microservices Control Plane
Kubernetes Ingress
Controller
サービスメッシュ
NGINX Ingress Controller
NGINX Service Mesh
コード ユーザー
Data Plane
Web Server /
Reverse Proxy
API
Gateway
Load Balancer CDN
NGINX Plus
Bare Metal | Containers | VMs | Private Cloud | Public Cloud | Hybrid Cloud | Multi-Cloud
App
開発者が簡単に目的の設定を行
うことができるNGINX。
アプリケーション、API、
Kubernetes 環境に最適化され
たNGINXをデプロイすること
ができます。
NGINX Plus はAPIやアプリをL7ルーティングの強化や
セキュリティポリシーの追加で保護します。
アクセス制御
レート制限
ポリシー作成
- 22. | ©2021 F5
22
Microservices Control Plane
Kubernetes Ingress
Controller
サービスメッシュ
NGINX Ingress Controller
NGINX Service Mesh
コード ユーザー
Data Plane
Web Server /
Reverse Proxy
API
Gateway
Load Balancer CDN
NGINX Plus
Data Plane Security
NGINX App Protect
DoS
WAF
Bare Metal | Containers | VMs | Private Cloud | Public Cloud | Hybrid Cloud | Multi-Cloud
App
NGINX App Protect - F5 Big-IP AWAFベースのWAFモジュール
強力なアプリケーションセキュリティ
F5提供の攻撃シグネチャ
WAFとさらにDoS対策追加する
アクセス制御
レート制限
F5シグネチャ
ポリシー作成
- 23. | ©2021 F5
23
NGINX App Protectとは
ワールドワイドで実績豊富なF5 Big-IP AWAFの機能を移植
Secure
Manage
CI/CD
Friendly
NGINXの動的モジュールとして提供(現在、NGINX Plusのみ対応)
• 仮想マシン/コンテナの双方で動作可能
• ゲートウェイ型/ホスト型
• Ingress Controller
軽量なため、CI/CDパイプライン上でのデプロイが容易
- 24. | ©2021 F5
24
NGINX App Protectとは
load_module modules/ngx_http_app_protect_module.so;
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
app_protect_enable on;
app_protect_policy_file "/etc/app_protect/conf/NginxDefaultPolicy.json";
app_protect_security_log_enable on;
app_protect_security_log "/etc/app_protect/conf/log_default.json" syslog:server=127.0.0.1:515;
server {
listen 80;
server_name localhost;
proxy_http_version 1.1;
追加動的モジュール
NGINX App Protect設定
- 25. | ©2021 F5
25
NGINX App Protect でF5攻撃シグネチャ対応
デフォルトシグネチャセット
• 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
• All CVE Signatures
多くが攻撃者からの攻撃に対するSignature Setとなる。すべての
Signature SetでAlarmが有効、High Accuracy Signature
のみBlockが有効で、その他のSignatureはBlock が無効
CONFIDENTIAL
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
Default Templateには含まれていませんが、以下のような
Signature setが提供されます
- 26. | ©2021 F5
26
NGINX App Protect でF5攻撃シグネチャのチューニング
CONFIDENTIAL
{
"policy": {
"name": "signature_exclude_1",
"signatures": [
{
"signatureId": 200001834,
"enabled": false
}
]
}
}
{
"policy": {
"name": "policy_name",
"template": { "name": "POLICY_TEMPLATE_NGINX_BASE" },
"applicationLanguage": "utf-8",
"enforcementMode": "blocking"
}
}
ポリシーファイル
ポリシーファイル
- 27. | ©2021 F5
27
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-prod
spec:
waf:
enable: true
apPolicy:
"default/dataguard-alarm"
securityLog:
enable: true
apLogConf:
"default/logconf"
logDest:
"syslog:server=127.0.0.1:514"
application.takaaki-nginx.xyz
Ingress
controller
Service
Sample
WAF
waf-policy.yaml
redirect.yaml
NGINX App Protect を Kubernetes環境で活用
- 28. | ©2021 F5
28
NGINX App Protect セキュリティ設定 – Kubernetes
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
nginx-ingress
pod
NGINX
Config
VS : webapp
Host : webapp.example.com
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
Policy : waf-policy
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"
GitHub
Syslog/tcp
- 29. | ©2021 F5
29
ユーザー
アプリケーション
ユーザー
アプリケーション
Active
Health Check
Active
Health Check
Internet
RANCHER標準のIngress ControllerからNGINX Plusへ移行
NGINX PlusのNGINX App Protectを利用してクラウドサービスにWAF機能対応
NGINX PlusをIngress ControllerでSUSE RANCHER Kubernetesの親和性が高い
NGINX Custom Resource マルチテナント、チーム設定の有効活用
NGINX Plus + NGINX Ingress Controller 導入後
WAF
クライアント
国内事例: IDCフロンティア様
https://www.nginx.co.jp/resources/webinars/
- 31. | ©2021 F5
31
NGINX App Protect DoSとは
BIG-IP Advanced WAFのL7 Behavioral DoS機能を
NGINX Plusのモジュールとしてマイグレーションした機能。
スタンダードなAnti-botツールは”良いbot”と”悪いbot”を区別して
防御するため、誤検知を防ぐために運用/SOCによる判断が必要となる。
NGINX App Protect DoSは、トラフィックがbotにより発生しているかは
判断せず、通信内容に基づいたブロックを行うため
運用負荷を減らす事が出来る。
- 32. | ©2021 F5
32
DDoS Attackに対する多層防御
・Bad actors
特定IP/XFFからのDDoS Attackが多い場合、自動でリスト化してconnection resetを実施。
シグネチャによる防御と比べて処理が軽いため、NAP DoSの負荷を下げる事が可能。
・Global rate mitigation
Bad actors/シグネチャが作成されるまでの間、サーバ負荷を軽減するための設定。
全てのトラフィックに対してhttp/Javascriptリダイレクトの送信を行い、
負荷状況がそれでも高ければconnection resetによりrate limitを行う。
*ブラウザと異なり、一部のBotnetのコントローラーはhttp/javascriptリダイレクトを正常に処理出来ないため。
・DoS Signatures
正常時のトラフィック情報に基づき、DDoS Attackに対するシグネチャを自動で生成。
一致したリクエストに対してはconnection resetを実施。
- 33. | ©2021 F5
33
NGINX App Protect DoS
load_module modules/ngx_http_app_protect_dos_module.so;
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
app_protect_dos_enable on;
app_protect_dos_name "vs-example";
app_protect_dos_policy_file "/etc/app_protect_dos/BADOSDefaultPolicy.json";
app_protect_dos_monitor "example.com/";
app_protect_dos_security_log "/etc/app_protect_dos/log-default.json" syslog:server=1.2.3.4:5000;
server {
listen 80;
server_name localhost;
proxy_http_version 1.1;
追加動的モジュール
NGINX App Protect DoS設定
- 34. | ©2021 F5
34
NGINX App Protect DoS チューニング
{
"mitigation_mode": "standard",
"signatures": "on",
"bad_actors": "on",
"automation_tools_detection": "on",
"tls_fingerprint" : "on"
}
{
"filter": {
"traffic-mitigation-stats": "all",
"bad-actors": "top 10",
"attack-signatures": "top 10"
},
"content": {
"format": "splunk"
}
}
ポリシーファイル
セキュリティログ
- 36. | ©2021 F5
36
NGINX PLUS統合管理ソリューション
NGINX Controller
NGINX設定とセキュリティを簡素化するために、アプリと API を一元管理します。
NGINXコンフィグの複雑さを導入することなく、設定完了までの時間を短縮します。
Simplify code to customer | Respond with intelligent insights | Empower with self-service
GUI/RESTAPI
統合管理
- 37. | ©2021 F5
37
BRIDGE THE DIVIDE BETWEEN DEVOPS AND SECOPS TEAMS
NGINX Controller アプリケーションセキュリティ
• アプリケーションデリバリとセキュリティ管理を容易に統合が可能
• アプリケーション毎に容易にセキュリティポリシーの定義が可能
• デリバリされたアプリケーションに対する防御が適切に実施されてい
るか容易に確認することが可能
• GUI・API 双方を利用したセキュリティポリシーの適用が可能
• OWASP Top 10を含む攻撃に対し、即座に防御可能
• マーケットをリードするF5のWAF機能により、高信頼・高速な
WAFの実現が可能
https://docs.nginx.com/nginx-controller/app-delivery/security/concepts/what-is-waf/
- 38. | ©2021 F5
38
NGINX Controller AppSecurity
https://docs.nginx.com/nginx-controller/services/app-delivery/
設定画面 イベント・ステータス画面
WAF有効・無効
Monitor Only
特定Signatureの除外
- 39. | ©2021 F5
39
アプリケーションセキュリティの課題に取り組む
セキュリティ ポリシーと保護は、
DevOps ワークフロー用に最適化
されています。
分散環境全体に渡りアプリ
のセキュリティ制御を展開
および管理します。
F5 / NGINX Investments
パイプラインへのセキュリティ
ポリシーの組み込み
セキュリティコントロールを
コードとしてパイプラインに
統合
最新のアプリケーションを保護
マイクロサービス、コンテナ、
API、最新のトポロジに対する
強力なセキュリティ制御。
セキュリティのInsight
アプリや API に関するインテリ
ジェントなセキュリティインサイ
トを備えた可視化が可能。
一元化された可視性と情報は、ア
プリケーションの問題の根本原因
を掘り下げます。
- 40. | ©2021 F5
40
INTEGRATE NGINX DEPLOYMENT AND CONFIGURATION INTO DEVOPS WORKFLOWS
NGINXセキュリティ機能 と アプリケーションデリバリの自動化
• NGINX Ingress Controllerを活用しサービスのデプ
ロイを自動化し、NGINXを用いたADC/セキュリティ機能
の自動化が可能
• NGINX Controllerを活用してモダンアプリケーション戦
略に容易に対応し、REST API による設定・構成管理
が可能
• Ansibleとの連携機能を提供し、直ちに自動化を始める
ことが可能
• 再利用性、コンプライアンス対応、標準化など、素早い
アプリケーションのデプロイが可能
• CI/CD パイプラインや、自動化のフレームワークにアプリ
ケーションデリバリを統合可能
NGINX App Protect
NGINX Controller
NGINX/NGINX Plus
- 42. | ©2021 F5
42
デモ環境
Commit / Push
GitHub Cloud Build Kubernetes Engine Policy
WAF Policy
CI ツール: CloudBuild
Kubernetes: GKE
NGINX Ingress Controller v2.0.3
NGINX App Protect WAF
- 43. | ©2021 F5
43
Cluster
Pod
NGINX Plus
Ingress
App Protect
WAF
Pod
Sample Page
デモ内容
Syslog/tcp
アクセス制限
WAFポリシー
takaaki-f5.xyz
takaaki-f5-nginx.xyz
①ドメイン takaaki-f5-nginx.xyz から 新ドメイン へ takaaki-f5.xyz
② NGINXによるアクセス制御を利用したリダイレクト処理、 新ドメイン向けにWAFを追加
③ 各種ログ ELK
- 44. | ©2021 F5
44
まとめ
Search To Go Wallet Cart Susan
Contactless Pick-up
at Redmond
Same Day Delivery
at 98008
Search your shopping list
Weekly deals & catalogs
Invite Club special offers
Shop your store
Search
在庫情報
店舗情報 ウォレットサービス
CLOUD A EDGE A
CDN A
CLOUD B EDGE B
CDN B
DC B
CLOUD C EDGE C
CDN C
Contactless Pick-up
at Redmond Wallet
Same Day Delivery
at 98008
購入履歴・カタログ
DC A CDN D
Weekly deals &
catalogs
Operator
Customer
Developer
高速・安定
省リソース
自由な開発
迅速なリリース
高度な
セキュリティ
対策
攻撃・情報漏洩・
サービスダウン
最も人に近い
偽の悪意ある操作
リバースプロキシー
HTTP/HTTPS,
TCP/UDP, gRPC
L7リクエストルーティング
コンテンツキャッシュ
レート制限、アクセス制御
App
App App
App
App
App
App
App
セキュリティ・JWT認証
WAF/DoS
- 47. | ©2021 F5
47
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.
- 48. | ©2021 F5
48
お問い合わせフォーム
• 製品に関するお問い合わせ
• 購入に関するお問い合わせ
• 構成・設計に関するご相談
など
https://www.nginx.co.jp/contact-sales/
お気軽にお問い合わせください