はじめに
AWS WAFについて説明していきます。
結論だけ知りたい方は「まとめると」をご確認ください。
そもそもWAFとは
AWS WAFの話をする前に一般的なWAF(Web Application Firewall)について説明します。
WAFとは、SQLインジェクションやXSS攻撃(クロスサイトスクリプティング)などの脅威から
Webアプリケーションを保護する働きがあります。
AWS WAFとは
マネージド型のWebアプリケーションファイアウォールで、可用性低下、セキュリティ侵害、
リソース過剰消費や、一般的なWeb脆弱性などからWebアプリケーションを保護します。
OSI参照モデルでいうと、第7層(アプリケーション層)を防御します。さらに一般的なファイア
ウォールとは異なり、データの中身をアプリケーションレベルで解析できるのが特徴です。
また下記AWSサービスと組み合わせて使います。
- CloudFront
- ALB(Application Load Balancer)
- API Gateway
ランニングコスト
ほかのWAF製品は初期費用で数百万円かかる場合もあるが、AWS WAFは初期費用がなく
ランニングコストも月20ドル程度で使用できるみたいです。
防御できる攻撃
下記脅威からWebアプリケーションを保護します。
- SQLインジェクション攻撃
- クロスサイトスクリプティング攻撃
- OSコマンドインジェクション攻撃
- DDoS攻撃
WAF定義書について
AWS WAFは、最初からWAF定義が設定されている訳ではありません。
アプリケーションのトラフィック許可やブロックは、ユーザーで自身でWAFを定義する必要があります。
なのでWAF定義の経験がないユーザーは、サードパーティが提供しているWAF定義を利用することができます。
AWS Shieldとの違い
AWS ShieldはDDoS攻撃に特化しておりL3&L4(スタンダードプラン)、L7(アドバンスプラン)で働きます。
AWS WAFの場合は、上記説明にもある通りL7を対象としており、SQLインジェクション、XXS攻撃等からアプリケーションを保護します。
AWS Shieldの詳細は、下記Qiita記事にてまとめたのでご参考ください。
https://qiita.com/mtn_kt/items/2fba83cd981cbefb58ae
まとめると
- マネージド型のWebアプリケーションファイアウォール
- L7(アプリケーション層)を保護する
- SQLインジェクション、XXS、OSコマンドインジェクション攻撃、DDoS攻撃から保護する
- データの中身をアプリケーションレベルで解析できる
- ランニングコストが安い
- CloudFront、ALB、API Gatewayと組み合わせて使用する
- WAF定義は初期時未設定
- WAF定義はユーザー自身で定義する or サードパーティを利用する
最後に
つらつらとAWS WAFについてまとめました。
ご参考になれば幸いです。
参考サイト
https://www.wafcharm.com/jp/blog/aws-waf-vs-aws-shield-for-beginners/
https://dev.classmethod.jp/articles/fully-understood-aws-waf-v2/
https://qiita.com/miyuki_samitani/items/995b449f012953a5e0d1