AWS WAF
Overview
AWS WAFは、Webアプリケーションに対する攻撃から保護するサービス。
AWS WAFは、OSI参照モデルの7層(アプリケーション層)を防御し、SQLインジェクション、クロスサイトスクリプティング、OSコマンドインジェクション、DDoS攻撃などの攻撃を防ぐために利用される。
L7(HTTP/HTTPS)
アプリケーション層の防御- Web ACLによりアクセスの制限を実現
- SQL InjectionやXSS, アプリケーション固有の攻撃に対応
tip
AWS WAFはCloudFrontと連携してWEBアプリケーションに対する特定のIPアドレスへのアクセス制限を実施できます。
Webトラフィックをフィルタリングするカスタムルールを作成することで、アプリケーションの脆弱性を悪用しようとする攻撃から保護でき、作成したルールは、次のAWSサービスに設定できます。
- CloudFront
- ALB
- API Gateway
- AppSync
保護したいすべてのアプリケーションごとにルールを再作成する必要はなく、1つのルールセットを作成し、アプリケーション間で再利用できる。
AWS WAF各用語
-
Web ACL ウェブアクセスコントロールリストで
Rules
を紐づける
1つのWeb ACLに適用可能なRule
は10個まで CloudFront, ALB, API GatewayにWebACLを関連付けして利用。 -
Rules 具体的な条件を指定する
Condition
を紐付け管理する 1つのRuleに適用可能なCondition
は10個まで。
<Conditions>
防ぎたい攻撃の条件を具体的に定義する
SQL InjectionやXSSの Condition
が用意されている
アプリケーション固有の攻撃に対応する場合は独自の条件を記述する。
AWS WAFでWeb Applicationを防御する手順
- アクセス制御の目的に合わせて
Condition
を作成 - 作成した
Condition
を含むRule
を作成 - 作成した
Rule
を適用するためのWeb ACL
を作成 - 作成したRuleを
Web ACL
に適用 - Web ACLをCloudFront, ALB, API Gatewayのいずれかに適用
AWS WAF で許可または拒否可能なリクエスト
AWS WAFでは以下の種類のリクエストを許可または拒否することが可能。 AWS WAFでは、1 Web ACLに設定できるルール数には限りがあるためサイトの用途に応じて適切に選択することが重要 。
- 送信元IPアドレスが、特定のIPアドレスまたはIPアドレス範囲
- 送信元IPアドレスが、特定の国
- リクエストの特定の部分の文字列マッチング(正規表現可)
- 指定した長さを超えている
- SQLインジェクションやクロスサイトスクリプトが含まれている