WAFによるセキュリティ対策の勘所

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