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 アプリケーションに対する主な対策手法 侵入検知 WAF パターンマッチング セッション管理不備に対する対策 L7DoS 攻撃対策 ネガティブセキュリティの一部 ( シグネチャ ) HTTP コンプライアンス違反対策 リスト型攻撃対策 レスポンスデータ対策 SSL 脆弱性対策 F5 Networks, Inc 6
対策 シグネチャ チューニングの実施 1 検知精度の向上 ( ユーザが望む検知だけを行えること ) 2 レスポンスデータの解析 3 適用範囲の局所化 4 ブロッキングモードとロギングモードの並行運用 シグネチャ以外の機能を利用 F5 Networks, Inc 7
アジェンダ シグネチャ チューニング シグネチャ以外の対策 BIG-IP によるチューニング例とまとめ F5 Networks, Inc 8
シグネチャ チューニング
シグネチャ チューニング 1 検知精度の向上 2 検知データを分析するための支援ツール 3 適用範囲の局所化 4 ブロッキングとロギングの並行運用 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= Web サーバ上のプログラム SELECT * from user where uname= $uname を実行 SELECT * from user where uname= or 1=1 # and 文字列検知だけでは難しい スペースは + に変換サーバ上で + をスペースに変換 %20 もスペースに変換 正しい検知か誤った検知かの判断が難しい 実行コード デコード Web サーバ F5 Networks, Inc 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
シグネチャ チューニング 1 検知精度の向上 2 検知データを分析するための支援ツール 3 適用範囲の局所化 4 ブロッキングとロギングの並行運用 F5 Networks, Inc 15
検知した情報に対するアクション 正しい? 誤り? パターン文字を検知 SQLインジェクション危険度は? user= or 1=1 #&password クライアント Web サーバ 200?403?500? レスポンスコード? レスポンスデータ F5 Networks, Inc 16
チューニングを支援する BIG-IP の機能 危険度の格付け レスポンスコード レスポンスデータの可視化 検知文字列情報 F5 Networks, Inc 17
シグネチャ チューニング 1 検知精度の向上 2 検知データを分析するための支援ツール 3 適用範囲の局所化 4 ブロッキングとロギングの並行運用 F5 Networks, Inc 18
シグネチャ適用対象の絞り込み シグネチャは全体に対する設定 ホワイトリストの有効利用特定のページやパラメータはシグネチャの適用除外 シグネチャ適用範囲を特定パラメータに限定 シグネチャを有効 シグネチャは無効化 ページ 1 ページ 2 ページ 3 シグネチャを無効化 F5 Networks, Inc 19
シグネチャ チューニング 1 検知精度の向上 2 検知データを分析するための支援ツール 3 適用範囲の局所化 4 ブロッキングとロギングの並行運用 F5 Networks, Inc 20
個々のシグネチャごとにブロッキングとロギングを選択 シグネチャは全体に対してブロッキングモードかロギングモードかの選択のみ 判断が難しいシグネチャはブロッキングにするのが難しい 無効化にはしたくない シグネチャA シグネチャB シグネチャC シグネチャD シグネチャE ブロッキングブロッキング無効ロギング無効 F5 Networks, Inc 21
シグネチャの利用で重要なこと 検知精度の向上 検知データを分析するための支援ツール 適用範囲の局所化 ブロッキングとロギングの並行運用 上記機能がない WAF を導入すると 対策が打てない WAF の導入効果を測ることができない無駄な投資になってしまうケースが多い F5 Networks, Inc 22
シグネチャ以外の対策
Web アプリケーションに対する主な対策手法シグネチャ以外の対策方法 侵入検知 WAF パターンマッチング セッション管理不備に対する対策 L7DoS 攻撃対策 ネガティブセキュリティの一部 ( シグネチャ ) HTTP コンプライアンス違反対策 リスト型攻撃対策 レスポンスデータ対策 SSL 脆弱性対策 F5 Networks, Inc 24
シグネチャ以外の対策方法 セッション管理不備に対する対策 HTTP コンプライアンス違反対策 暗号化 (SSL) 動的パラメータチェック Cookie 管理 HTTP ヘッダチェック 文法チェック (HTTP/SOAP/JSON) L7DoS 攻撃対策 リスト型攻撃対策 接続時間の把握 ( セッション管理 ) BOT 検知 二要素認証 /CAPTCHA プログラミング IP レピュテーション レスポンスデータ対策 データマスキング レスポンスページのカスタマイズ SSL 脆弱性対策 SSL プロキシ 汎用化しやすく 判断が明確な対策手法 F5 Networks, Inc 25
各対策手法の特徴 侵入検知 WAF パターンマッチング 脆弱性に対する一時対応 セキュアプログラミングでも対応可能なケースも多い 汎用化が難しい 運用負荷が高い ネガティブセキュリティの一部 ( シグネチャ ) セッション管理不備に対する対策 HTTPコンプライアンス違反対策 レスポンスデータ対策 L7DoS 攻撃対策 セキュアプログラミングでの対応が難しい 汎用化しやすいリスト型攻撃対策 運用負荷が低い SSL 脆弱性対策 F5 Networks, Inc 26
BIG-IP によるチューニングとまとめ
BIG-IP によるチューニング方法 ( 例 ) 1. トランスペアレントモードで情報収集 シグネチャ ファイルタイプのブラックリスト シグネチャ以外の機能を有効 2. チューニング 1 違反検知のシグネチャはステージングに変更 トランスペアレントからブロッキングに変更 ブロッキング設定のものは Learn のチェックを外す ( シグネチャ以外 ) 3. チューニング 2 Traffic Learning ログの格付けが 3 以上のものを精査 アクセス元 IP アドレス レスポンスコード 検知文字列から有効 無効を判断 検知ログが非常に多いシグネチャは誤検知と割り切って無効化 ( 後で精査 ) 誤検知のシグネチャはホワイトリストで個別にチューニング 誤検知はステージングに変更 リクエストログ トラフィック学習ログ (TRAFFIC LEARNING) F5 Networks, Inc 28
まとめ シグネチャだけにとらわれず WAF の有効な機能を使用 シグネチャは 導入の敷居は低いが運用負荷が高い シグネチャ チューニングを支援する機能が重要 検知精度 分析ツール 局所化 ブロッキングとロギングの並行稼働 シグネチャ以外の機能は 導入の敷居は高いが運用負荷が低い シグネチャより精度の高い検知 セキュアプログラミングで対応が難しいケースに対応 F5 Networks, Inc 29