WAF
Web アプリケーションファイアウォールで、SQL インジェクションや XSS などの攻撃をフィルタリングする
AWSセキュリティ
WAF とは
AWS WAF (Web Application Firewall) は、HTTP リクエストを検査し、SQL インジェクション、XSS、DDoS などの攻撃をフィルタリングするセキュリティサービスである。CloudFront、ALB、API Gateway に適用する。
WAF のルール
| ルール | 防ぐ攻撃 |
|---|---|
| SQL インジェクション | ' OR 1=1 -- |
| XSS | <script>alert(1)</script> |
| レートベース | DDoS、ブルートフォース |
| IP ブロック | 特定 IP からのアクセス拒否 |
| Geo ブロック | 特定国からのアクセス拒否 |
| Bot 制御 | 悪意のあるボットのブロック |
よく使うマネージドルール
| ルールグループ | 防御対象 |
|---|---|
| AWSManagedRulesCommonRuleSet | OWASP Top 10 |
| AWSManagedRulesSQLiRuleSet | SQL インジェクション |
| AWSManagedRulesKnownBadInputsRuleSet | 既知の悪意ある入力 |
| AWSManagedRulesBotControlRuleSet | ボット |
| AWSManagedRulesAmazonIpReputationList | 悪意ある IP |
レートベースルール
- Name: RateLimit
Priority: 2
Statement:
RateBasedStatement:
Limit: 2000 # 5分間で2000リクエスト
AggregateKeyType: IP
Action:
Block: {}
CloudFront + WAF
ユーザー → CloudFront (WAF) → API Gateway → Lambda
↑ ここで攻撃をブロック
WAF を CloudFront に適用すると、エッジロケーションで攻撃トラフィックをブロックし、オリジンへの負荷を軽減する。
コスト
| 項目 | 料金 |
|---|---|
| Web ACL | $5/月 |
| ルール | $1/ルール/月 |
| リクエスト | $0.60/100 万リクエスト |
| マネージドルール | $1〜$10/月 |
WAF のログ
WAF のログを S3 に保存し、Athena で分析する。ブロックされたリクエストのパターンを確認し、誤検知 (False Positive) を調整する。
より深く学ぶには関連書籍が役立つ。