Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Agenda 1. OCI WAFの概要 2. OCI WAF保護ルールの概要 3. OCI WAF運用の考え方 4. OCI WAF保護ルールの選択 2 Copyright © 2022, Oracle and/or its affiliates

Slide 3

Slide 3 text

OCI WAFの概要 3 Copyright © 2022, Oracle and/or its affiliates

Slide 4

Slide 4 text

巧妙化するサイバー攻撃から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万リクエスト毎

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

OCI WAF保護ルールの概要 Copyright © 2022, Oracle and/or its affiliates 6

Slide 7

Slide 7 text

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)

Slide 8

Slide 8 text

OCI WAF運用の考え方 OCI WAFの運用で考慮するべき2つの点とWAFルールの 設定例 8 Copyright © 2022, Oracle and/or its affiliates

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

適用するルールの特性(例)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

Slide 11

Slide 11 text

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月時点)

Slide 12

Slide 12 text

WAFの設定例(応用編) 想定されるシステム構成(例) Copyright © 2022, Oracle and/or its affiliates 12 エンドユーザー WAF HTTPメソッド: GET, POST, PUT, DELETE, PATCH HTTPレスポンス Webサーバー 商品・顧客 情報DB APサーバー

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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によるリスト型攻撃 ② 攻撃者による不正アクセス

Slide 15

Slide 15 text

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ヘッダー ② アプリケーションの仕様の脆弱性 を悪用した攻撃 攻撃者 攻撃者

Slide 16

Slide 16 text

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ヘッダー 攻撃者 攻撃者

Slide 17

Slide 17 text

WAFの設定例(応用編) Tips ① 保護ルールの「推奨項目」は、機械学習を用いて自社環境に沿った保護ルールが抽出されます。先ずは、対象となる サイバー攻撃を検知できる様、「検知」モードとして設定することをお奨めします。 ② サイバー攻撃の兆候を把握する為、定期的にログを確認します。ログからサイバー攻撃と思われる兆候が確認できた 場合、対象の保護ルールを「検知」から「ブロック」モードに設定変更することをお奨めします。 ※1 ③ 「ブロック」モードで設定している保護ルールについては、サイバー攻撃への防御状況に加え、ユーザーからの通常通信 が“False Positive”としてブロックされていないかを定期的に監視することをお奨めします。“False Positive”が疑わ れる場合、自社の対応プロセスなどを鑑みて、必要に応じて「検知」モードに設定変更することを検討してください。 ④ 導入しているWebアプリケーションのパフォーマンス監視ツールのBotが、「Botホワイトリスト」にある場合、該当のBot からのアクセスを許可するこをお奨めします。※2 ※1:保護ルールの「推奨項目」はエッジポリシーのみで提供されています ※2:Botホワイトリストはエッジポリシーのみで提供されています 17 Copyright © 2022, Oracle and/or its affiliates

Slide 18

Slide 18 text

OCI WAF保護ルールの選択 Copyright © 2022, Oracle and/or its affiliates 18

Slide 19

Slide 19 text

保護ルールのタグ 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と同じ(一部例外あり) 保護ルールによっては、原則と外れるタグの場合も あります。

Slide 20

Slide 20 text

タグの一例 ➢ 分類 • 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

Slide 21

Slide 21 text

エッジポリシーの保護ルールの設定例 例1)SQL Injectionsをブロックする ➢ 保護ルールの画面にて、「Ctrl+F」で”SQL Injections”の文字列を検索し、タグにSQL Injectionがある保護ルールを選択する ➢ OCIドキュメントの「サポートされている保護ルール」を 参考に保護ルールの画面にあるフィルタにて、”SQL Injections”に関する保護ルールのIDを検索し、保 護ルールを選択する 21 Copyright © 2022, Oracle and/or its affiliates

Slide 22

Slide 22 text

エッジポリシーの保護ルールの設定例 例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より

Slide 23

Slide 23 text

WAFポリシーの保護ルールの設定例 例1) SQL Injectionsをブロックする ➢ 保護ルールの選択画面の「タグによるフィルタ」にて、 “SQL Injection”と“SQLi”のタグを選択し、フィルタ された保護ルールを選択 23 Copyright © 2022, Oracle and/or its affiliates

Slide 24

Slide 24 text

WAFポリシーの保護ルールの設定例 例2)製品の脆弱性を悪用した攻撃から保護する ➢ 保護ルールの選択画面の「タグによるフィルタ」にて、 CVE識別子ポータルで公開されているCVEコードを入 力し、CVEコードに対応した保護ルールを選択 例)CVE-2021-44228:2021年12月11日に発表さ れたApache Log4jの脆弱性を示すCVEコード 24 Copyright © 2022, Oracle and/or its affiliates

Slide 25

Slide 25 text

WAFポリシー保護ルール選択時のTips ➢ 保護ルールのバージョンについて WAFポリシーの保護ルールは、同じルールIDに複数のバージョンがあります。最新のバージョンを選択するためには、「Filter by version」から“最新”を選択すると、最新の保護ルールが表示されます。 25 Copyright © 2022, Oracle and/or its affiliates

Slide 26

Slide 26 text

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