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) を調整する。

より深く学ぶには関連書籍が役立つ。

関連用語