AWS WAF
SQL インジェクションやクロスサイトスクリプティングなどの Web 攻撃からアプリケーションを保護するマネージドな Web アプリケーションファイアウォール
概要
AWS WAF (Web Application Firewall) は、Web アプリケーションや API を一般的な Web 攻撃から保護するマネージドファイアウォールサービスです。CloudFront、ALB、API Gateway、AppSync に統合して動作し、SQL インジェクション、クロスサイトスクリプティング (XSS)、HTTP フラッド攻撃などの脅威をリアルタイムでブロックします。Web ACL (Access Control List) にルールを定義し、リクエストの許可、ブロック、カウント、CAPTCHA チャレンジなどのアクションを設定します。AWS マネージドルールグループを使えば、OWASP Top 10 の脅威に対する防御を数分で有効にでき、セキュリティの専門知識がなくても基本的な保護を実現できます。Bot Control 機能により、スクレイピングボットやクレデンシャルスタッフィング攻撃も検出・ブロックできます。
WAF ルールの設計と運用
WAF のルール設計では、マネージドルールグループとカスタムルールを組み合わせるのが効果的です。AWS マネージドルールグループには、Core Rule Set (一般的な脅威)、SQL Database (SQL インジェクション)、Known Bad Inputs (既知の悪意あるパターン)、Bot Control (ボット管理) などがあり、これらを Web ACL に追加するだけで基本的な防御が有効になります。カスタムルールでは、IP アドレスセット (特定の IP のブロック/許可)、レートベースルール (一定時間内のリクエスト数制限)、正規表現パターンセット (カスタムパターンマッチング) を定義できます。運用面では、まずルールを Count モードで適用してログを分析し、正当なトラフィックがブロックされないことを確認してから Block モードに切り替えるのがベストプラクティスです。WAF ログは S3、CloudWatch Logs、Kinesis Data Firehose に出力でき、セキュリティ分析に活用できます。
Azure WAF との比較
Azure で AWS WAF に対応するサービスは Azure Web Application Firewall です。Azure WAF は Azure Application Gateway と Azure Front Door に統合して動作します。AWS WAF がルールベースの柔軟な設定を重視するのに対し、Azure WAF は OWASP Core Rule Set (CRS) をベースとした定義済みルールセットを中心に運用します。カスタムルールの柔軟性では、AWS WAF の方が正規表現パターンセットや複合条件の組み合わせなど、より細かな制御が可能です。料金面では、AWS WAF は Web ACL あたり月額 5 ドル + ルールあたり月額 1 ドル + リクエスト 100 万件あたり 0.60 ドルです。Azure WAF は Application Gateway の WAF v2 SKU が時間あたり約 0.443 ドル + CU 課金で、固定費が AWS WAF より高くなる傾向があります。AWS WAF の Bot Control 機能は、ボットの種類 (検索エンジン、ソーシャルメディア、スクレイパーなど) を自動分類し、カテゴリごとに異なるアクションを設定できる点が Azure WAF にはない独自の強みです。