AWS WAF
# AWS WAF
https://d1.awsstatic.com/webinars/jp/pdf/services/20200324_AWS_BlackBelt_AWS_WAF_Update.pdf
## WAFとは
Web Application Firewall
ウェブアプリケーションの通信内容を検査し、不正なアクセスを遮断するルールセットを持つセキュリティ対策
## WAF の対応する範囲
- 攻撃手法
- DDos
- CloudFront
- ELB
- AWS Shield
- Application Attacks
- <- WAFはここ
- Targeted attackes
- WAFがしていること
- WAFは悪用する能力を制限するもの
- 様々なHTTPのリクエストパターンを検証
- 攻撃の変化に対応するためにルール構成を迅速に変更する機能
## WAF の機能
- 機能
## WAFの変更点
- 2019.11 でWAFはv2になり、v1 はWAF classic となった
- ルールの記述タイプが統一
- より柔軟に表現も可能に
- WAF Capacity Unit が上限
- それぞれのルールの中身に応じて処理コストを計上、その合計がWeb ACL のCapacity を超えない範囲でルールを登録可能
- 上限は1500
- ビルトインのマネージドルール
- AWS WAF Full logs の拡張
## WAF の詳細
- WAF のコンポーネント
## WAF を利用した多段防御
User - AWS Shield - Route53 - (WAF - CloudFront) - WAF - ELB - EC2
というように複数箇所の前段にWAFを置くアーキテクチャ
## ログとモニタリング
- モニタリング
- AWS WAF Full logs
- Elasticsearch と Kibana によるログ分析
- カスタムエラーページ
- CloudFront と連携させて設定可能
- パートナーマネージドルール
## WAF 利用のための考慮事項
- ルールポリシー
- ブラックリスト型
- デフォルトのアクションは許可
- ルールに合致した不正なリクエストをブロック
- ホワイトリスト型
- デフォルトのアクションはブロック
- ルールに合致したリクエストを許可
- 限られた利用者がアクセスするケース
- ルールの運用
- セルフサービス
- テンプレートなどを利用してルールを構築
- ログの分析やルールのアップデートを継続実施
- 誤検知が発生した場合はルールの見直しを自身で実施
- マネージド
- 導入ステップ
- Count モード
- 開発環境等でテスト
- 誤検知が発生していないかサンプルリクエストレポートで確認
- CloudWatch メトリクスでルールを評価
- Full Logを確認
- Block モード
- 連携
## 雑感
AWS のマネージドWeb Application Firewall。構成のところで確認したが、アーキテクチャの一番前段にはAWS Shield が入り、その後ろで多段で利用されるイメージ。
どのトラフィックを通すのか、どのくらいの連続したトラフィックを悪意のあるトラフィックとして遮断するかを柔軟にWCUの範囲内で設定することができる。
JSONで設定を管理することができるのでVCSで管理を用意にしやすいし、APIで管理できるので運用にも乗せやすそう。1ルールあたり1$かかるので、効率的にルールを決めて悪意のある攻撃を遮断できるように設計する必要がある。