Cloud Security Maturity Model·AWS v3.0.0

ドラッグで移動 · ピンチでズーム

効率化 アプリケーションセキュリティ

c3.16 AWS WAF のカスタムルールを追加する

マネージドルールは一般的な脅威をカバーしますが、各アプリには独自の保護が必要です。レート制限、特定の脆弱性への仮想パッチ、サインアップとログインの不正対策です。これらをマネージドのベースラインの上にカスタム AWS WAF ルールとして構築します。

実装ガイダンス

マネージドルールを超えて

AWS WAF マネージドルールは一般的な脅威に素早く対処しますが、一部の保護はアプリ固有です。コンソールまたは JSON でカスタムルールを作成し(バージョン管理のためコンソールのルールを JSON にエクスポート)、次をカバーします。

レート制限

アプリの通常トラフィックに合わせたリクエストレート制限を設定し、レイヤー 7 DDoS(HTTP フラッド)、ボット攻撃(クレデンシャルスタッフィング)、偵察を抑えます。ルールを Count モードで開始し、通常利用がしきい値を下回ることを確認してから Block に切り替えます。トラフィックが想定されない地域向けに地理ベースのレート制限も設定できます。

仮想パッチ

脆弱性が見つかり、すぐにコードで修正できない場合は、カスタムルールを一時的な「仮想パッチ」としてデプロイします。たとえば、検出された SQL インジェクション経路で使われる文字を含むフォーム送信をブロックし、コード修正が出るまでの間しのぎます。

サインアップとログインを保護する

  • Account Creation Fraud Prevention(ACFP) は、登録フォームを偽の、あるいは不正なサインアップ(無料枠の悪用など)から保護します。
  • Account Takeover Prevention(ATP) は、ログインフォームをクレデンシャルスタッフィングやパスワードスプレーから保護します。

パートナー WAF を検討するとき

AWS WAF がニーズを満たすか、パートナー WAF(AWS Marketplace の Imperva、F5、Fortinet)の方が適しているかを評価します。SaaS(ドメインをプロバイダーに向ける)としても、入口 VPC の仮想アプライアンスとしても使えます。

例: レートベースルール

この WAF ルールは、5 分間のウィンドウで送信元 IP ごとのリクエスト数を制限します。まず Count で閾値を確認し、その後アクションを Block に変更します:

{
  "Name": "rate-limit-per-ip",
  "Priority": 10,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 2000,
      "AggregateKeyType": "IP"
    }
  },
  "Action": { "Count": {} },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "rate-limit-per-ip"
  }
}

How to validate

  • アプリ固有の保護(レート制限、仮想パッチ)のためのカスタムルールを追加しましたか?
  • レート制限は Block に切り替える前に Count モードで調整していますか?
  • サインアップ(ACFP)とログイン(ATP)のエンドポイントを不正利用から保護していますか?

Threats addressed

  • アプリ固有の不正利用(レイヤー 7 DDoS、クレデンシャルスタッフィング、サインアップ詐欺、既知だが未修正の脆弱性の悪用)は、個別の保護がないと汎用のマネージドルールをすり抜けます。

AWS サービス

AWS WAF

料金

AWS WAF の料金を参照してください。

Framework mappings

AWS CAF

Well-Architected

References