Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OCI WAF保護ルールの考え方

OCI WAF保護ルールの考え方

oracle4engineer

May 25, 2021
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Agenda 1. OCI WAFの概要 2. OCI WAF保護ルールの概要 3. OCI WAF運用の考え方

    4. OCI WAF保護ルールの選択 2 Copyright © 2022, Oracle and/or its affiliates
  2. 巧妙化するサイバー攻撃からWebアプリケーションを保護 OCI Web Application Firewallの概要 Copyright © 2022, Oracle and/or

    its affiliates 4 サービス概要/特徴 • OCI WAFは、世界中にあるデータセンターのリソースを同 時に利用できるエッジポイントのWAFとリージョン内のロード バランサにアタッチするWAFの2つのタイプを用意 • クロスサイト・スクリプティング、SQLインジェクションなどの 不正アクセスの脅威からWebアプリケーションを保護 • 600を超える保護ルールのチェックボックスをつけるだけで 有効化 • 最新の脅威情報データベースを反映し保護ルールを自動 更新 • L7 DDoS攻撃への保護 (※L2/3 DDoSは、OCIの標準機 能) ユース・ケース • グローバルWAFを一定期間学習させ、検出される推奨アク ションを利用し、検知またはブロックの必要な保護 ポリ シーを選別して適用 • WAFと連携している脅威インテリジェンスからの通知を基に フィッシングサイトやダークネットのノードからのアクセスを無条 件でブロック • 検出したアクセスログをOCI Logging Analyticsで分析し、 アクセス元やサイバー攻撃の傾向を把握し、効果的な セキュリティ対策を実施 Bad Bots Hackers Good Visitors Good Bots Spammers WAF サービス価格 • Instance: ¥0/ 1インスタンス • Instance: ¥700/ 2インスタンス以降 • Requests: ¥0 / 1000万リクエスト迄 • Requests: ¥84 / 1000万リクエスト超で100万リクエスト毎
  3. 4つの保護機能 OCI Web Application Firewallの機能 Copyright © 2022, Oracle and/or

    its affiliates 5 1. 保護ルール 事前定義済のルールに基づいて悪意の あるトラフィックからWebアプリケーションを 保護 4. ボット管理 悪意あるボットからWebアプリケーション を保護するためのトラフィック行動分析 2. アクセス制御 ユーザー要件に応じた条件を設定し、 一致した場合の挙動を制御 3. 脅威インテリジェンス 外部機関から提供される脅威情報を 基にBad IPアドレスからのアクセスを フィルタリング 本資料で主に解説する機能
  4. OCI WAF保護ルールの分類 Copyright © 2022, Oracle and/or its affiliates 7

    ①OWASP ModSecurity Core Rule Set(CRS) & Top 10 ③CVE(共通脆弱性識別子) ②Common Attack Pattern Enumeration & Classification(CAPEC) ➄Oracle独自定義 ④WASC Threat Classification (WASCTC)
  5. False Positive と False Negative WAFの運用で考慮するべき点① ◆ False Positive •

    保護ルールを厳しくしすぎることによる過剰検知 • 善良なユーザーの行動まで規制してしまう ◆ False Negative • 不十分な保護ルール設定による見逃し • 悪意のあるユーザーの行動を許してしまう 9 Copyright © 2022, Oracle and/or its affiliates Hacker User User Hacker 対策例: 全ての保護ルールをブロックせず、ブロックするか迷ったもの、ブロック する必要がないものは「検知」として設定する。ログから攻撃の有 無を確認し、一般ユーザーからの通信が過剰検知されていなけれ ば「ブロック」として設定する。 対策例: 事前に検知・ブロックさせたい攻撃を定義し、該当する保護ルールを 「検知」または「ブロック」とする。攻撃に関する定義が困難な場合、 一旦、全てまたは推奨事項の保護ルールを「検知」設定とし、経過 監視にて攻撃 状況を把握いたうえで、保護ルールを最適化する。
  6. 適用するルールの特性(例)CRSのバージョンの違い WAFの運用で考慮するべき点② ➢ OCI WAFで使用されているOWASP Core Rule Set(CRS)のバージョン • CRS

    2.2.9 ・・・誤検知(False Positive)が多い • CRS 3.0 ・・・ ver. 2.2.9から大幅に誤検知(False Positive)を削減 • CRS 3.1 ・・・ 文法などの細かな修正 • CRS 3.2 ・・・ 検知、ブロックするルールを追加 • CRS 3.3 ・・・ 最新版(2022年6月時点) https://github.com/coreruleset/coreruleset/branches/stale CRSに基づいた保護ルールを使用したい場合は、CRSバージョン3.0以上のルールを選択することで False Positive(過剰検知)を減らすことができます。 Copyright © 2022, Oracle and/or its affiliates 10
  7. WAFの設定例(基本編) エッジポリシー/WAFポリシー 11 Copyright © 2022, Oracle and/or its affiliates

    保護ルール アクセス制御 Bot管理 ※2 事前定義された攻撃に対する 保護ルールを検知またはブロック。 攻撃に関する定義が困難な場合、 全てまたは推奨事項※1の保護 ルールを「検知」させ、経過監視に て攻撃状況を把握。 オラクルマネージドの保護ルールで 提供されていない場合、カスタム保 護ルールを作成。 定期的なログの確認および追加 された保護ルールの確認。 また、合わせて世の中の最新の セキュリティ動向も確認。 最新のセキュリティ動向およびログ の検知/ブロック状況を鑑み、保護 ルールを見直し、最適化していく。 事前定義されたアクセス拒否リスト などを基に、特定のIPアドレスや ユーザーエージェントなどからのアク セスを制限。 必要に応じて、信頼できるIPアドレ ス(端末)をIPアドレス・ホワイト リストに登録。(保護ルールなどの バイパスが可能となる) 定期的にログ(アクセス状況)を 確 認 し、 疑 わ しい IP アドレスや ユーザーエージェントなどの有無を 精査。 精査された疑わしいIPアドレス やユーザーエージェントなどの情報 を基に、アクセス制御を見直し、 最適化していく。 Webアプリの特性に合わせて、 必要なBot対策を有効化。 ✓ JavaScriptチャレンジ ✓ ヒューマン・インタラクション・チャレンジ ✓ フィンガープリントチャレンジ ✓ CAPTCHAチャレンジ 公開アプリケーションの特性を鑑み 善良ボットのアクセスを許可する場 合、「良好なBotホワイトリスト」より 有効化。 定期的にログを確認し、Bot対策 の状況について把握・精査。 精査された情報を基に、Bot管理 の設定を見直し、最適化していく。 ※1 保護ルールの推奨事項はエッジポリシーのみで提供されています(2022年6月時点) ※2 OCI Web Application Firewall WAFポリシーではBot管理の機能は提供されていません。(2022年6月時点)
  8. WAFの設定例(応用編) 想定されるシステム構成(例) Copyright © 2022, Oracle and/or its affiliates 12

    エンドユーザー WAF HTTPメソッド: GET, POST, PUT, DELETE, PATCH HTTPレスポンス Webサーバー 商品・顧客 情報DB APサーバー
  9. WAFの設定例(応用編) ユースケース①: 不正ログインからアプリケーションを保護 Copyright © 2022, Oracle and/or its affiliates

    13 WAF Webサーバー 商品・顧客 情報DB APサーバー Bot Bot Bot ① BOTによるリスト型攻撃 ② 攻撃者による不正アクセス カード情報 住所 パスワード…
  10. WAFの設定例(応用編) ユースケース①: 不正ログインからアプリケーションを保護 Copyright © 2022, Oracle and/or its affiliates

    14 WAF Webサーバー 商品・顧客 情報DB APサーバー Bot Bot Bot カード情報 住所 パスワード… ② 不正アクセスへの対策 • 保護ルール ⁻ 認知してる不正アクセス・攻撃がある場合、該当する保護ルールを「ブロック」 ⁻ カード情報などを保護する保護ルールを「検知」または「ブロック」 ⁻ 例. CC Leakage, PCI(Payment Card Industry) • アクセス制御 ⁻ ECサイト会員の居住国以外の国からアクセスを検知 ⁻ 定期的にログを確認し、攻撃と思われるIPアドレスからのアクセスをブロック ① Botによるリスト型攻撃への対策※ • Bot管理 ⁻ Webアプリの特性に合わせてBotへのチャレンジを有効化 ⁻ 例1. 個人情報を扱うURLにアクセスするユーザーにCAPTCHAチャレンジを 有効化 ⁻ 例2. ヒューマンインタラクション・チャレンジを有効化し、機械的な操作を行って いるユーザーからのアクセスを制御 ⁻ 「良好なBotホワイトリスト」から、検索エンジンのボットからのアクセスを許可 ⁻ 例. Naver, Yahoo, Googlebot ※Bot管理はエッジポリシーのみで提供されています(2022年6月時点) ① BOTによるリスト型攻撃 ② 攻撃者による不正アクセス
  11. WAFの設定例(応用編) ユースケース②: 脆弱性を悪用した攻撃からアプリケーションを保護 Copyright © 2022, Oracle and/or its affiliates

    15 WAF Webサーバー 商品・顧客 情報DB APサーバー CVE-2019xxx CVE-2020xxxx ① 製品の脆弱性を悪用した攻撃 CVE-2019xxx CVE-2020xxxx SQL Injections XSS HTTPヘッダー ② アプリケーションの仕様の脆弱性 を悪用した攻撃 攻撃者 攻撃者
  12. WAFの設定例(応用編) ユースケース②: 脆弱性を悪用した攻撃からアプリケーションを保護 Copyright © 2022, Oracle and/or its affiliates

    16 WAF Webサーバー 商品・顧客 情報DB APサーバー CVE-2019xxx CVE-2020xxxx ① 製品の脆弱性を悪用した攻撃への対策 • 保護ルール ⁻ アプリケーションを構成しているサービス・製品の脆弱性の有無をCVE 識別子ポータルやExploitコードポータルなどで定期的に確認。 ⁻ ドキュメントの保護ルール一覧ページから、CVE識別子が割り当てられている 脆弱性に対応した保護ルールがあれば「検知」する。 ⁻ オラクルマネージドの保護ルールで脆弱性を十分に保護できない場合、 カスタム保護ルールを作成。 ① アプリケーションの仕様の脆弱性を攻撃への対策 • 保護ルール ⁻ SQL Injections, XSSなどの攻撃手法のタグがついた保護ルールを 「検知」する。 ⁻ 例. SQL Injections、Local File Inclusion、XSS、HTTP • アクセス制御 ⁻ アプリの仕様上存在しないHTTPメソッドを含んだアクセスを「ブロック」する。 ⁻ ディレクトリ情報など、不正なパスを含んだURLによるアクセスを「ブロック」 する。 ① 製品の脆弱性を悪用した攻撃 CVE-2019xxx CVE-2020xxxx ② アプリケーションの仕様の脆弱性 を悪用した攻撃 SQL Injections XSS HTTPヘッダー 攻撃者 攻撃者
  13. WAFの設定例(応用編) Tips ① 保護ルールの「推奨項目」は、機械学習を用いて自社環境に沿った保護ルールが抽出されます。先ずは、対象となる サイバー攻撃を検知できる様、「検知」モードとして設定することをお奨めします。 ② サイバー攻撃の兆候を把握する為、定期的にログを確認します。ログからサイバー攻撃と思われる兆候が確認できた 場合、対象の保護ルールを「検知」から「ブロック」モードに設定変更することをお奨めします。 ※1 ③

    「ブロック」モードで設定している保護ルールについては、サイバー攻撃への防御状況に加え、ユーザーからの通常通信 が“False Positive”としてブロックされていないかを定期的に監視することをお奨めします。“False Positive”が疑わ れる場合、自社の対応プロセスなどを鑑みて、必要に応じて「検知」モードに設定変更することを検討してください。 ④ 導入しているWebアプリケーションのパフォーマンス監視ツールのBotが、「Botホワイトリスト」にある場合、該当のBot からのアクセスを許可するこをお奨めします。※2 ※1:保護ルールの「推奨項目」はエッジポリシーのみで提供されています ※2:Botホワイトリストはエッジポリシーのみで提供されています 17 Copyright © 2022, Oracle and/or its affiliates
  14. 保護ルールのタグ 19 Copyright © 2022, Oracle and/or its affiliates ➢

    保護ルールは、分類、攻撃手法、保護対象のタグで識別されています。 例: SQL Injection (SQLi) SQL Injection Character Anomaly Usage 【分類】 例:OWASPルールの場合 CRS3はバージョン3.0以上を指し、CRS3の記 載がないものはバージョン2.2.9を指す。 【分類】 OWASP Top10のA1 【保護対象】: PCI(クレジットカード情報) 【攻撃手法】: SQLインジェクション WASCTC OWASP CRSに基づいているものは、ルールIDがCRSのルールIDと同じ(一部例外あり) 保護ルールによっては、原則と外れるタグの場合も あります。
  15. タグの一例 ➢ 分類 • A1~A10 • CAPEC • OWASP •

    CRS3 • CVE • WASCTC ➢ 攻撃手法 • SQL Injection • Cross-site Scripting(XSS) • Local File Inclusion(LFI) • PHP Injection • Remote File Inclusion(RFI) • HTTP • Exploit kit • WASCTC ➢ 保護対象 • CC Leakage(クレジットカー ド情報漏洩) • Wordpress • Server_webapp • PCI(Payment Card Industry) • SharePoint • Apps 20 Copyright © 2022, Oracle and/or its affiliates
  16. エッジポリシーの保護ルールの設定例 例2)OWASP CRS2.2.9の誤検知から回避 ➢ 「CRS3」のタグが振り分けられている保護ルールを選択すると確実 22 Copyright © 2022, Oracle

    and/or its affiliates 参照: https://github.com/SpiderLabs/owasp-modsecurity- crs/blob/v3.2/master/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf GitHubに公開されているCore Rule Setより
  17. OCI WAF保護ルールReference ◼ OCI Web Application Firewall エッジポリシーで用意されている保護ルール https://docs.cloud.oracle.com/ja-jp/iaas/Content/WAF/Reference/protectionruleids.htm ◼

    OWASPのModSecurity Core Rule Set(CRS) ※ OWASP公式のGitHubに公開 https://coreruleset.org ◼ Common Attack Pattern Enumeration & Classification(CAPEC) https://capec.mitre.org ◼ Common Vulnerabilities and Exposures(CVE) https://cve.mitre.org ◼ WASC Threat Classification(WASCTC) http://projects.webappsec.org/w/page/13246927/FrontPage 26 Copyright © 2022, Oracle and/or its affiliates