AWS WAF のアイコン

AWS WAF

Web アプリケーションを悪意のあるアクセスから保護するファイアウォールサービス

何ができるか

AWS WAF (Web Application Firewall) は、Web アプリケーションを SQL インジェクション、クロスサイトスクリプティング (XSS)、DDoS 攻撃などの一般的な Web 攻撃から保護するファイアウォールサービスです。CloudFront、API Gateway、Application Load Balancer の前段に配置し、悪意のあるリクエストをブロックします。カスタムルールを作成して、IP アドレス、リクエストヘッダー、リクエストボディなどの条件でフィルタリングできます。

どのような場面で使うか

Web アプリケーションの脆弱性攻撃からの防御、ボットトラフィックのブロック、特定の国や IP アドレスからのアクセス制限、レートベースのルールによる DDoS 緩和、API の不正利用防止など、Web アプリケーションのセキュリティ強化に利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

建物の警備員に例えるとわかりやすいでしょう。警備員 (WAF) は入口で訪問者 (リクエスト) をチェックし、不審者 (悪意のあるリクエスト) の入館を拒否します。ブラックリスト (IP ブロック) に載っている人は即座に拒否し、持ち物検査 (リクエスト内容の検査) で危険物 (攻撃コード) を持っている人もブロックします。

WAF とは

AWS WAF は、Web アプリケーションに対する攻撃を検知・ブロックするマネージドファイアウォールサービスです。従来のネットワークファイアウォールが IP アドレスやポート番号で通信を制御するのに対し、WAF は HTTP リクエストの内容 (URL、ヘッダー、ボディ) を検査して、アプリケーション層の攻撃を防御します。AWS のサービスと統合されており、数分で導入できます。

ルールとルールグループ

WAF のルールは、リクエストを検査する条件とアクション (許可、ブロック、カウント) の組み合わせです。AWS が提供するマネージドルールグループには、OWASP Top 10 の脆弱性に対応するルール、既知の悪意ある IP アドレスのリスト、ボット対策ルールなどが含まれており、セキュリティの専門知識がなくても基本的な防御を導入できます。独自のカスタムルールを作成して、アプリケーション固有の要件に対応することも可能です。

レートベースルール

レートベースルールは、特定の IP アドレスからのリクエスト数が閾値を超えた場合に自動的にブロックする機能です。たとえば、5 分間に 2,000 リクエストを超える IP アドレスをブロックするルールを設定できます。これにより、DDoS 攻撃やブルートフォース攻撃 (パスワードの総当たり攻撃) を緩和できます。

はじめかた

WAF を使い始めるには、WAF コンソールで Web ACL (アクセスコントロールリスト) を作成します。保護対象のリソース (CloudFront、ALB、API Gateway) を選択し、マネージドルールグループを追加します。AWS マネージドルールの Core Rule Set を追加するだけで、一般的な Web 攻撃に対する基本的な防御が有効になります。

注意点

  • WAF のルールは Web ACL 単位で課金されるため、ルール数が増えるとコストも増加する点に注意すること
  • マネージドルールは定期的に更新されるが、誤検知 (正常なリクエストのブロック) が発生する場合があるため、導入初期はカウントモードで動作を確認すること
  • WAF だけでは完全な防御にはならないため、アプリケーション側のセキュリティ対策 (入力検証、パラメータ化クエリなど) も併せて実施すること

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。