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

OCI WAF保護ルールの考え方

OCI WAF保護ルールの考え方

140494d272a4d89883a94fdfdb29dea2?s=128

oracle4engineer
PRO

May 25, 2021
Tweet

Transcript

  1. OCI WAF保護ルールの考え方 日本オラクル株式会社 テクノロジー事業戦略統括 テクノロジー・クラウド・エンジニアリング本部 セキュリティ&マネジメント・ソリューション部 2021年5月25日

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

    2 Copyright © 2021, Oracle and/or its affiliates [Date]
  3. OCI WAF保護ルールの概要

  4. OCI WAF保護ルールの分類 4 Copyright © 2021, Oracle and/or its affiliates

    [Date] ①OWASP ModSecurity Core Rule Set(CRS) & Top 10 ③CVE(共通脆弱性識別子) ②Common Attack Pattern Enumeration & Classification(CAPEC) ➄Oracle独自定義 ④WASC Threat Classification (WASCTC)
  5. OCI WAF運用の考え方 OCI WAFの運用で考慮するべき2つの点とWAFルールの設定例 [Date] Copyright © 2021, Oracle and/or

    its affiliates 5
  6. False Positive と False Negative WAFの運用で考慮するべき点① ◆ False Positive •

    保護ルールを厳しくしすぎることによる過剰検知 • 善良なユーザーの行動まで規制してしまう ◆ False Negative • 不十分な保護ルール設定による見逃し • 悪意のあるユーザーの行動を許してしまう Hacker User User Hacker 対策例: 全ての保護ルールをブロックせず、ブロックするか迷ったもの、ブロック する必要がないものは「検知」として設定する。ログから攻撃の有 無を確認し、一般ユーザーからの通信が過剰検知されていなけれ ば「ブロック」として設定する。 対策例: 事前に検知・ブロックさせたい攻撃を定義し、該当する保護ルールを 「検知」または「ブロック」とする。攻撃に関する定義が困難な場合、 一旦、全てまたは推奨事項の保護ルールを「検知」設定とし、経過 監視にて攻撃 状況を把握いたうえで、保護ルールを最適化する。 [Date] Copyright © 2021, Oracle and/or its affiliates 6
  7. 適用するルールの特性(例)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 ・・・ 検知、ブロックするルールを追加 7 Copyright © 2021, Oracle and/or its affiliates [Date] https://github.com/SpiderLabs/owasp-modsecurity-crs/releases CRSに基づいた保護ルールを使用したい場合は、CRSバージョン3.0以上のルールを選択することで False Positive(過剰検知)を減らすことができます。
  8. WAFルールの設定例(基本編) 8 Copyright © 2021, Oracle and/or its affiliates [Date]

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

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

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

    affiliates [Date] 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によるリスト型攻撃 ② 攻撃者による不正アクセス
  12. WAFルールの設定例(応用編) ユースケース②: 脆弱性を悪用した攻撃からアプリケーションを保護 12 Copyright © 2021, Oracle and/or its

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

    affiliates [Date] 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ヘッダー 攻撃者 攻撃者
  14. WAFルールの設定例(応用編) Tips ① 保護ルールの「推奨項目」に追加された保護ルールは「検知」し、ログから攻撃の有無を確認する。ログから攻撃と思 われるアクセスがある場合は、「検知」から「ブロック」に変更する。 ② 「検知」または「ブロック」と設定した保護ルールは、適宜ログからアクセスの有無を確認する。ログから攻撃と思われるア クセスがある場合は「ブロック」する。また、「ブロック」と設定している保護ルールで該当の攻撃と思われるアクセスがない 場合は、「検知」に変更して経過観察をする。 ③

    導入しているアプリケーションのパフォーマンス監視ツールのBotが、「Botホワイトリスト」にある場合は、該当のBotから のアクセスを許可する。 14 Copyright © 2021, Oracle and/or its affiliates [Date]
  15. OCI WAF保護ルールの選択

  16. 保護ルールのタグ ➢ 保護ルールは、分類、攻撃手法、保護対象のタグで識別されています。 例: SQL Injection (SQLi) SQL Injection Character

    Anomaly Usage 【分類】 例:OWASPルールの場合 CRS3はバージョン3.0以上を指し、CRS3の記 載がないものはバージョン2.2.9を指す。 【分類】 OWASP Top10のA1 【保護対象】: PCI(クレジットカード情報) 【攻撃手法】: SQLインジェクション WASCTC [Date] Copyright © 2021, Oracle and/or its affiliates 16 OWASP CRSに基づいているものは、ルールIDがCRSのルールIDと同じ(一部例外あり) 保護ルールによっては、原則と外れるタグの場合も あります。
  17. タグの一例 ➢ 分類 • A1~A10 • CAPEC • OWASP •

    CRS3 • CVE • WASCTC ➢ 保護対象 • CC Leakage(クレジットカー ド情報漏洩) • Wordpress • Server_webapp • PCI(Payment Card Industry) • SharePoint • Apps ➢ 攻撃手法 • SQL Injection • Cross-site Scripting(XSS) • Local File Inclusion(LFI) • PHP Injection • Remote File Inclusion(RFI) • HTTP • Exploit kit • WASCTC 17 Copyright © 2021, Oracle and/or its affiliates [Date]
  18. OCI WAF保護ルールの設定例 例1) SQL Injectionsをブロックする ➢ 保護ルールの画面にて、「Ctrl+F」で”SQL Injections”の文字列を 検索し、タグにSQL Injectionがある保護ルールを選択する

    ➢ OCIドキュメントの「サポートされている保護ルール」を参考に保護ルー ルの画面にあるフィルタにて、”SQL Injections”に関する保護ルール のIDを検索し、保護ルールを選択する 18 Copyright © 2021, Oracle and/or its affiliates [Date]
  19. OCI WAF保護ルールの設定例 例2)OWASP CRS2.2.9の誤検知から回避 ➢ 「CRS3」のタグが振り分けられている保護ルールを選択すると確実 19 Copyright © 2021,

    Oracle and/or its affiliates [Date] 参照: https://github.com/SpiderLabs/owasp-modsecurity- crs/blob/v3.2/master/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf GitHubに公開されているCore Rule Setより
  20. 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 20 Copyright © 2021, Oracle and/or its affiliates [Date]