概要
AWS WAFを運用していて感じた事、こうした方がいいことのまとめ
CountモードとBlockモード
Countモードの使い方
Countモードを使えばWAFルールの挙動をテストできるが!!!!
使うとほぼ絶対にそのままにしてBlockモードにしないのであまり使うのはオススメではないです。
とはいえ、どのリクエストがブロックされるか調査する必要はあるので原則期間限定でかつテスト用途で公開してるシステムには使わないことがベターと思います。
Blockモードの使い方
基本はBlockモード前提です。
システムのリリース前であれば適応する全てのルールをBlockモードでテストを回して不具合がないか確かめた方が後々Blockモードにするより敷居が低いのでオススメ。
リリース後にWAFを導入する場合も少なくはないと思いますが、その場合はDev・Stg環境でBlockモードを導入してテストしてから本番環境に入れるなどのやり方が比較的導入しやすいです。
カウントモードでWAFを入れてると言い張るパターンもありますが、それはもはやWAFが入ってるとは言えない状況なので注意しましょう(実体験)
WAFのアラート運用
WAFを入れた後と言えばルールの見直しなどもありますが、悩ましいのがアラートの設定です。
定番だとBlockされた場合通知などもあるのですが、それだと実運用をした際に段々見なくなってしまいます。。
そこで考えたのが、許可された通信を監視する手法です。Blockされた通信は基本的にBlockされているので誤検知をのぞいて問題ないのですが、WAFを貫通した攻撃をされた場合侵害に気がつくことができないので被害が大きくなってしまいます。
そこで使用したのがCloudWatch Logのログ異常検知機能です。これは指定期間のログを学習して異常と認識されたログをピックアップしてくれるので、全部の通信を人が見ずに怪しそうなログだけを監視することができます。
実際の運用ではまだまだWAFのBlockアラートなど減らせていないところもあるのですが、効果を試してみながら切り替えていきたいところですね。
まとめ
AWS WAFの運用って難しい上に知見が全然ネットに落ちてないんですよね・・・。
その中で事例やAWSのドキュメントを参考にうまく運用する難しさと楽しさがWAFには詰まってると思います!
実際WAFだけでも無限に触ってられる気がする!!
今回のWAFのお話少しでも皆様のお役に立てば幸いです。
参考
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection.html
https://aws.amazon.com/jp/blogs/news/analyzing-aws-waf-logs-in-amazon-cloudwatch-logs/