WAFによるセキュリティ対策の勘所 F5ネットワークスジャパン株式会社 プリセールスコンサルタント 楠木 健 なぜWAFは難しいのか? • たくさんのログが出力され、精査できない • 個々のログが正しい検知なのか誤った検知なのか判断 できない • アプリケーションの変更に対して、WAFのチューニングが 追いつかない © F5 Networks, Inc 2 原因 シグネチャ検知だけに頼った運用をしているため • 汎用化が難しく、誤検知が多い対策方法 • 開発者と運用者が異なるのでチューニングできない • シグネチャのチューニングは行わず、ただログを取得しているだけ (導入しただけで対策なし) © F5 Networks, Inc 3 なぜシグネチャを利用するのでしょうか? 1. リスクが高い攻撃に対して、シグネチャがもっとも有効的? 2. シグネチャ以外で対応できない脅威はWAF以外の製品で対応を検討している? 3. シグネチャでほとんどの攻撃に対応できる? 4. WAFは侵入検知製品やNGFWと同じように考えている? 5. シグネチャが当たり前? © F5 Networks, Inc 4 OWASP Top10 2013に見るリスク 1.インジェクション攻撃 2.認証とセッション管理の不備 3.クロスサイトスクリプティング 4.安全でないオブジェクトの直接参照 5.セキュリティ設定のミス 6.機密データの露出 7.機能レベルのアクセス制御の欠落 8.クロスサイトリクエストフォージェリ 9.既知の脆弱なコンポーネントの使用 10. 未検証のリダイレクトとフォワード OWASP Top 10 2013資料より © F5 Networks, Inc 5 Webアプリケーションに対する主な対策手法 侵入検知 パターンマッチング ネガティブセキュリティの 一部(シグネチャ) © F5 Networks, Inc WAF セッション管理不備に 対する対策 L7DoS攻撃対策 HTTPコンプライアンス違反 対策 リスト型攻撃対策 レスポンスデータ対策 SSL脆弱性対策 6 対策 シグネチャ・チューニングの実施 ① ② ③ ④ 検知精度の向上 (ユーザが望む検知だけを行えること) レスポンスデータの解析 適用範囲の局所化 ブロッキングモードとロギングモードの並行運用 シグネチャ以外の機能を利用 © F5 Networks, Inc 7 アジェンダ • シグネチャ・チューニング • シグネチャ以外の対策 • BIG-IPによるチューニング例とまとめ © F5 Networks, Inc 8 シグネチャ・チューニング シグネチャ・チューニング ① 検知精度の向上 ② 検知データを分析するための支援ツール ③ 適用範囲の局所化 ④ ブロッキングとロギングの並行運用 © F5 Networks, Inc 10 Webアプリケーションでのシグネチャの利用 汎用化が難しい システムごとにチューニングが 必要 正しい検知か誤検知かの 判断が難しい ログモードとブロックモード レスポンスコード/データ参照 文字列検知だけでは利用 が難しい コンテンツの理解 Normalization © F5 Networks, Inc 11 Webアプリケーションのデータ通信 アプリごとに作りが異なる 汎用化が難しい POST /login.cgi HTTP/1.1 Accept: image/png, image/jpeg, */* Referer: https://www.server.com/ Accept-Language: ja Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/536.5 (KHTML, like Gecko) Version/8.0 Safari/538.35.8 Host: www.server.com Content-Length: 16 Connection: Keep-Alive Cookie: cookie1name=cookie1value; Cache-Control: no-cache user=%27+or+1%3D1+%23&pw= クライアント © F5 Networks, Inc 正しい検知か誤った検知 かの判断が難しい Webサーバ上のプログラム SELECT * from user where uname=‘$uname’を実行 SELECT * from user where uname=‘’ or 1=1 # and … 文字列検知だけ では難しい スペースは「+」に変換 サーバ上で「+」をスペースに変換 「%20」もスペースに変換 • 実行コード • デコード Webサーバ 12 Normalization # オリジナル http://www.microsoft.com/en/us/default.aspx # 複数のスラッシュ文字 http://www.microsoft.com/en/us/////default.aspx # 複数のバックスラッシュ文字 http://www.microsoft.com/en/us¥¥¥default.aspx # white listed string文字列を含むリクエスト http://www.microsoft.com/en/us/white_listed_string/../default.aspx # “default”という文字をヘキサ・エンコーディング http://www.microsoft.com/en/us/%64%65%66%61%75%6C%74.aspx # バックスラッシュ文字をエンコード http://www.microsoft.com/en/us%5C%5C%5Cdefault.aspx © F5 Networks, Inc 13 コンテキストの理解 Webアプリケーションへの攻撃を検知するためにはコンテキストの理解が必要 HTTPヘッダが パケットをまたいで分断される パケットの 組立 © F5 Networks, Inc デコード コンテキスト の理解 14 シグネチャ・チューニング ① 検知精度の向上 ② 検知データを分析するための支援ツール ③ 適用範囲の局所化 ④ ブロッキングとロギングの並行運用 © F5 Networks, Inc 15 検知した情報に対するアクション 正しい?誤り? パターン文字を検知 危険度は? SQLインジェクション user=‘ or 1=1 #&password… Webサーバ クライアント 200?403?500? © F5 Networks, Inc レスポンスコード レスポンスデータ ? 16 チューニングを支援するBIG-IPの機能 • 危険度の格付け • レスポンスコード、レスポンスデータの 可視化 • 検知文字列情報 © F5 Networks, Inc 17 シグネチャ・チューニング ① 検知精度の向上 ② 検知データを分析するための支援ツール ③ 適用範囲の局所化 ④ ブロッキングとロギングの並行運用 © F5 Networks, Inc 18 シグネチャ適用対象の絞り込み シグネチャは全体に対する設定 • ホワイトリストの有効利用 特定のページやパラメータはシグネチャの適用除外 • シグネチャ適用範囲を特定パラメータに限定 シグネチャを有効 シグネチャは無効化 ページ 1 ページ 2 ページ 3 シグネチャを無効化 © F5 Networks, Inc 19 シグネチャ・チューニング ① 検知精度の向上 ② 検知データを分析するための支援ツール ③ 適用範囲の局所化 ④ ブロッキングとロギングの並行運用 © F5 Networks, Inc 20 個々のシグネチャごとにブロッキングとロギングを選択 シグネチャは全体に対してブロッキングモードかロギングモードかの 選択のみ 判断が難しいシグネチャはブロッキングに するのが難しい 無効化にはしたくない © F5 Networks, Inc シグネチャA シグネチャB シグネチャC シグネチャD シグネチャE ・ ・ ・ ブロッキング ブロッキング 無効 ロギング 無効 21 シグネチャの利用で重要なこと • 検知精度の向上 • 検知データを分析するための支援ツール • 適用範囲の局所化 • ブロッキングとロギングの並行運用 上記機能がないWAFを導入すると、対策が打てない、WAFの導入効果を 測ることができない無駄な投資になってしまうケースが多い © F5 Networks, Inc 22 シグネチャ以外の対策 Webアプリケーションに対する主な対策手法 シグネチャ以外の対策方法 侵入検知 パターンマッチング ネガティブセキュリティの 一部(シグネチャ) © F5 Networks, Inc WAF セッション管理不備に 対する対策 L7DoS攻撃対策 HTTPコンプライアンス違反 対策 リスト型攻撃対策 レスポンスデータ対策 SSL脆弱性対策 24 シグネチャ以外の対策方法 • セッション管理不備に • 対する対策 • • 暗号化(SSL) 動的パラメータチェック Cookie管理 HTTPヘッダチェック HTTPコンプライアンス • 文法チェック 違反対策 (HTTP/SOAP/JSON) レスポンスデータ 対策 • データマスキング • レスポンスページの カスタマイズ L7DoS攻撃対策 リスト型攻撃対策 SSL脆弱性対策 • 接続時間の把握 (セッション管理) • • • • BOT検知 二要素認証/CAPTCHA プログラミング IPレピュテーション • SSLプロキシ 汎用化しやすく、判断が明確な対策手法 © F5 Networks, Inc 25 各対策手法の特徴 侵入検知 パターンマッチング • 脆弱性に対する一時対応 ネガティブセキュリティの • セキュアプログラミングでも 一部(シグネチャ) 対応可能なケースも多い • 汎用化が難しい • 運用負荷が高い WAF セッション管理不備に 対する対策 • セキュアプログラミングでの対応が難しい HTTPコンプライアンス違反 • 汎用化しやすい リスト型攻撃対策 対策 • 運用負荷が低い レスポンスデータ対策 © F5 Networks, Inc L7DoS攻撃対策 SSL脆弱性対策 26 BIG-IPによるチューニングとまとめ BIG-IPによるチューニング方法(例) 1. トランスペアレントモードで情報収集 • シグネチャ、ファイルタイプのブラックリスト • シグネチャ以外の機能を有効 2. チューニング1 リクエストログ • 違反検知のシグネチャはステージングに変更 • トランスペアレントからブロッキングに変更 • ブロッキング設定のものはLearnのチェックを外す(シグネチャ以外) 3. チューニング2 トラフィック学習ログ (TRAFFIC LEARNING) • Traffic Learningログの格付けが3以上のものを精査 アクセス元IPアドレス、レスポンスコード、検知文字列から有効・無効を判断 • 検知ログが非常に多いシグネチャは誤検知と割り切って無効化(後で精査) • 誤検知のシグネチャはホワイトリストで個別にチューニング • 誤検知はステージングに変更 © F5 Networks, Inc 28 まとめ シグネチャだけにとらわれず、WAFの有効な機能を使用 • シグネチャは、導入の敷居は低いが運用負荷が高い • シグネチャ・チューニングを支援する機能が重要 検知精度 分析ツール 局所化 ブロッキングとロギングの並行稼働 • シグネチャ以外の機能は、導入の敷居は高いが運用負荷が低い • シグネチャより精度の高い検知 • セキュアプログラミングで対応が難しいケースに対応 © F5 Networks, Inc 29
© Copyright 2024 ExpyDoc