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

WafCharm運用の ベストプラクティスを 考えてみた

WafCharm運用の ベストプラクティスを 考えてみた

WafCharm運用のベストプラクティスを考えてみた
iret tech-labo #11

Yutaka Hiroyama

July 28, 2021
Tweet

More Decks by Yutaka Hiroyama

Other Decks in Technology

Transcript

  1. WafCharm運⽤の
    ベストプラクティスを
    考えてみた
    2021/07/28 ヒロヤマ ユタカ

    View Slide

  2. about me
    • 廣⼭ 豊
    • アイレット株式会社
    クラウドインテグレーション事業部副事業部⻑

    情報管理責任者

    PCI DSS管理責任者

    Well Architected Lead
    • 2020, 2021 Japan APN AWS Ambassador, AWS Top Engineers
    • 組み込み開発SIer出⾝
    • AWS * 8, GCP * 9, Azure * 1, 情報処理安全確保⽀援⼠、
    その他多数の認定資格を保有

    View Slide

  3. about us
    • クラウド導⼊実績1,900社以上
    • 年間プロジェクト2,600以上
    • AWSプレミアコンサルティングパートナー8
    年連続認定
    • APN Consulting Partner of the year 2019
    • GCPプレミアサービスパートナー認定
    • クラウドのインフラ運⽤を主軸に、デザイン
    から開発までワンストップでサポート
    • 他拠点で運⽤

    View Slide

  4. 本⽇のテーマ
    • 汎⽤的な WafCharm(AWS WAF v2)運⽤
    本⽇話すこと
    • 個別要件に特化した運⽤
    • 個別機能に特化した詳細解説
    本⽇話さないこと
    WafCharmおよびAWS WAFの運⽤についてのご案内。

    View Slide

  5. アジェンダ
    AWS WAFとは
    WafCharmがもたらす運⽤⾯での価値
    運⽤に必要なインフラ構成
    WafCharm(AWS WAF)運⽤時の注意点
    WafCharm利⽤時の運⽤

    View Slide

  6. アジェンダ
    AWS WAFとは
    WafCharmがもたらす運⽤⾯での価値
    運⽤に必要なインフラ構成
    WafCharm(AWS WAF)運⽤時の注意点
    WafCharm利⽤時の運⽤

    View Slide

  7. What is AWS WAF
    参照: https://aws.amazon.com/jp/waf/

    View Slide

  8. アジェンダ
    AWS WAFとは
    WafCharmがもたらす運⽤⾯での価値
    運⽤に必要なインフラ構成
    WafCharm(AWS WAF)運⽤時の注意点
    WafCharm利⽤時の運⽤

    View Slide

  9. WafCharmがないとき
    • ⾃前でルールを作成チューニング
    • システムに合わせたマネージドルールを選定

    View Slide

  10. 課題
    システム変更に合わせたチューニング アプリケーションレイヤの担当者と
    密なコミュニケーションが必要

    View Slide

  11. WafCharmがあるとき
    • WafCharmが⾃動的にルールをチューニング
    • Shield Advancedの機能の⼀部と類似

    View Slide

  12. アジェンダ
    AWS WAFとは
    WafCharmがもたらす運⽤⾯での価値
    運⽤に必要なインフラ構成
    WafCharm(AWS WAF)運⽤時の注意点
    WafCharm利⽤時の運⽤

    View Slide

  13. AWS WAFログを出⼒しない
    • メリット
    AWSリソースコスト最⼩化
    • デメリット
    調査できることが限定

    View Slide

  14. AWS WAFログを出⼒する
    • メリット
    ログを元に解析可能
    • デメリット
    運⽤コスト増加
    AWSリソースコスト増加

    View Slide

  15. WafCharmのレポートを利⽤
    • メリット
    WafCharmが⽣成するレポート
    を取得可能
    • デメリット
    運⽤コスト増加
    AWSリソースコスト増加

    View Slide

  16. ⽐較
    WafCharmのレポートを利⽤
    AWS WAFログを出⼒する
    AWS WAFログを出⼒しない
    利便性
    経済的

    View Slide

  17. アジェンダ
    AWS WAFとは
    WafCharmがもたらす運⽤⾯での価値
    運⽤に必要なインフラ構成
    WafCharm(AWS WAF)運⽤時の注意点
    WafCharm利⽤時の運⽤

    View Slide

  18. モード切り替え時はルール設定更新必要
    WafCharm上でのモード切り替えは、デフォルト設定の切り替え。
    既に適⽤済みのルールは切り替わらないので、⼿動でOverride rules actionをON/OFF
    して切り替える必要がある。

    View Slide

  19. 異なるCOUNTのログ
    ⾃作のRuleでのログ
    • nonterminatingmatchingrules
    [{ruleid=my-rule01, action=COUNT}]
    • RulegroupList
    {rulegroupid=arn:aws:wafv2:us-east-1:XXXXXXXXXXXX:regional/rulegroup//dafe994f-6a04-4426-
    8dcf-9a23578669fd, terminatingrule=null, nonterminatingmatchingrules=[], excludedrules=null},
    WafCharmのRuleでのログ
    • nonterminatingmatchingrules
    []
    • RulegroupList
    {rulegroupid=arn:aws:wafv2:us-east-
    1:XXXXXXXXXXXX:regional/rulegroup/WafCharm_Blacklist_Group_2132/dafe994f-6a04-4426-8dcf-
    9a23578669fd, terminatingrule=null, nonterminatingmatchingrules=[], excludedrules=[{ruleid=wafcharm-
    blacklist-2132, exclusiontype=EXCLUDED_AS_COUNT}]},

    View Slide

  20. カウントログのフィルタリング
    カウントモード運⽤において、Log
    FiltersでAcceptログをドロップする場
    合、グループアクションとしてカウ
    ントモードに設定しないと、カウン
    トアクションのログもAcceptのログ
    と同様にドロップされてしまう。

    View Slide

  21. 脆弱性診断や再現確認するとBlackList
    ⼊り
    • 別IPを持つ専⽤のホストから実⾏

    View Slide

  22. アジェンダ
    AWS WAFとは
    WafCharmがもたらす運⽤⾯での価値
    運⽤に必要なインフラ構成
    WafCharm(AWS WAF)運⽤時の注意点
    WafCharm利⽤時の運⽤

    View Slide

  23. WafCharmユーザーの運⽤でできること
    • ルールのチューニング
    • メトリクスの監視
    • AWS WAF障害時の対応
    • COUNTモードとBLOCKモードの切り替え

    View Slide

  24. 運⽤シナリオパターン
    導⼊ 検証 本運⽤
    最初はカウントモード
    で開始。
    しばらく、誤検知/過検
    知を観測
    ブロックモードで本運⽤
    開始。
    本運⽤後に切り替えも可。

    View Slide

  25. 誤検知/過検知の判断
    • カウント判定したログを全てチェック
    • ⼈的/ツールコストがかかる
    • 何も⾒ない
    • 意味がないのでブロックモードにした⽅がいい
    • チェックの精度とコストのバランスを鑑みた判断
    • 国内からのアクセスのカウント判定が⼀定以上

    View Slide

  26. Athena
    WITH dataset AS
    (SELECT from_unixtime(timestamp/1000,
    'Asia/Tokyo') AS JST, waf_logs.action AS Action, waf_logs.rulegrouplist AS RulegroupList, rulegroups AS rulegroups, waf_logs.httprequest.clientip AS
    ClientIP, waf_logs.httprequest.country AS Country, waf_logs.httprequest.httpmethod AS HttpMethod, waf_logs.httprequest.uri AS URI,
    waf_logs.terminatingruleid, waf_logs.responsecodesent AS Response, waf_logs.nonterminatingmatchingrules, waf_logs.httprequest
    FROM waf_logs, UNNEST(rulegrouplist) t(rulegroups)
    WHERE rulegroups.excludedrules is NOT null
    AND httpRequest.country = 'JP'
    AND from_unixtime(timestamp/1000) > now() - interval '3' day )
    SELECT count(*) * 100.0 /
    (SELECT COUNT(*)
    FROM waf_logs
    WHERE from_unixtime(timestamp/1000) > now() - interval '3' day ) AS rate , excludedrules.ruleid AS ruleid
    FROM dataset, UNNEST(rulegroups.excludedrules) t(excludedrules)
    WHERE excludedrules.exclusiontype = 'EXCLUDED_AS_COUNT'
    GROUP BY excludedrules.ruleid
    ORDER BY rate DESC ;

    View Slide

  27. rate ruleid
    25.5154639 wafcharm-blacklist-2132
    1.80412371 OScmdi-qs-001
    0.77319588 XXE-body-001
    0.77319588 Traversal-body-001
    0.51546392 SSCi-body-002
    0.25773196 OScmdi-body-001

    View Slide

  28. View Slide

  29. まとめ
    • WafCharmを使うことで、AWS WAFのルールの⾃動チューニング
    が可能
    • 誤検知/過検知のリスクを考えると、ロギングとモニタリングの
    考慮が必要になる
    • 実施するには、運⽤およびリソースのコストが発⽣するので、
    落とし所を考える

    View Slide