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

WAF に頼りすぎない AWS WAF 運用術 meguro sec #1

izzii
February 07, 2025

WAF に頼りすぎない AWS WAF 運用術 meguro sec #1

WAF に頼りすぎない AWS WAF 運用術 meguro sec #1

izzii

February 07, 2025
Tweet

More Decks by izzii

Other Decks in Technology

Transcript

  1. 自己紹介
 大学院:ゲノムインフォマティクス
 仕事1:ERP の AI エンジニア
 仕事2:WAF の事業部長 
 仕事3:DAP

    の SRE
 
 文字列をいじる仕事をしてきてる?
 WAF の提供側の経験があります! 

  2. 200 OK
 400 Bad Request
 403 Not Allowed
 etc.
 404

    Not Found
 500 Internal Server Error 
 無視している?悪用成功した?
 ナイスブロック!
 ナイスブロック?それともDB まで行った?
 例外処理に失敗した?
 攻撃文字列にどのレスポンスを返す?
 受信者目線での「攻撃」は送信者目線では、
 スキャニングである場合が大半 https://attack.mitre.org/techniques/T1595/ 

  3. 攻撃文字列にどこでレスポンスを返す?
 WAF
 Multiplexer
 Validator
 Business Logic
 403 Not Allowed
 404

    Not Found
 DB
 400/422 ..
 500 Internal Server Error 
 404 Not Found
 ナイスブロック!
 ナイスブロック!
 ナイスブロック!

  4. 攻撃文字列にどこでレスポンスを返す?
 
 メリ
 デメ
 (AWS) WAF
 正規表現が使える
 プロのルールを利用できる 
 早くない

    
 リクエストサイズ制限がある 
 Multiplexer
 (ミドルウェア、プロキシ) 
 2分探索で早い 
 ホワイトリスト方式限定 
 脆弱性を含みうる
 Validator
 (アプリケーション)
 正規表現が使える
 ホワイトリスト方式限定 
 作るのはあなた 
 https://aws.amazon.com/jp/about-aws/whats-new/2024/03/aws-waf-larger-body-inspections-regional-r esources/
  5. WAF log にステータスコードは載らない
 2025-01-23T10:11:23 
 /.env
 rule001 で遮断しました 
 2025-01-23T10:11:23

    
 /api/users
 rule002 で検知しました 
 通しました
 2025-01-23T10:11:23 
 /api/users
 500
 123ms
 紐づけたい!
 AWS WAF log
 App log
 https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html
  6. custom header を用いて攻撃であることを伝える
 GET /api/users
 Accept: application/json
 X-amzn-waf-my-custom-header: foo
 GET

    /api/users
 Accept: application/json
 label match を使って COUNT 対象のリクエ ストにカスタムヘッダーをつけます。丁寧に ルールとヘッダーバリューの対応づけをして いくと WCU は比較的嵩みます。ザックリで も案外運用は周ります。
 https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-incoming-request.html https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-label-match-examples.html
  7. https://dev.classmethod.jp/articles/update-securityhub-matchdetails-for-regex/ application log に BODY は載らないのが普通
 waf log にも載らない
 


    実は少しの間 WAF log の正規表現ルールで検知した文字列の詳細がログに記録 されていました。
 しかし気がついたらドキュメントごと機能が消えていました。。
 
 アプリケーションで出力する(常に全て出力するのは一般的ではない)か
 脆弱性診断で妥協するか。
 BODY の扱いは難しい..

  8. ミドルウェアを理解して使えていますか?
 WAF Multiplexer Validator Business Logic 403 Not Allowed 404

    Not Found 怖いねー DB 400/422 .. 500 Internal Server Error 404 Not Found 怖いねー ナイスブロック! ナイスブロック! ナイスブロック! ミドルウェアが脆弱性を含んでいたり、 脆弱な設定にしていたり
  9. テイクノートメッセージ
 - アプリケーションで攻撃を防ぐという選択肢も持ちましょう。
 - 攻撃か否かの判断は WAF(ルール)に任せましょう。
 - 攻撃の遮断はアプリケーションと分担しましょう。
 - custom

    header を利用してステータスコードと検知を並べましょう。
 - matchdetails によって BODY が見れるようになるかも?現状はアプリケーションで出 力するしかない。
 - あなたの設定や知識は完璧ではないので WAF に頼りましょう。

  10. 宣伝
 弊SREの同僚が書籍を出版しました。
 AWS でのメジャーな IaC ツール、
 CDK と terraform の比較が詳細に書かれていま

    す。
 IaC ツールは色々な選択肢が出てきていますが、 比較論に目を通すことで技術選定の目を鍛えら れるのでは?