AWS WAF のマネージドルール選定おさらい
コーヒーが好きな emi です。最近はカフェインを控えています。
近年、Web アプリケーションを狙ったサイバー攻撃はどんどん増加しています。SQL インジェクションやクロスサイトスクリプティング(XSS)といった攻撃から Web アプリケーションを守るために適切なセキュリティ対策が不可欠です。
本記事では私が過去に AWS WAF を導入した際に調査した AWS WAF のマネージドルールについて、基本的な仕組みからおさらいします。
簡単なおさらい
WAF とは
WAF(Web Application Firewall) とは、Web アプリケーションへの悪意あるアクセスを検知・遮断するためのセキュリティソリューションです。
従来のファイアウォールがネットワーク層(IP アドレスやポート番号)でのアクセス制御を行うのに対し、WAF はアプリケーション層(HTTP/HTTPS 通信の内容)を検査します。これにより、以下のような攻撃から Web アプリケーションを保護できます。
- SQL インジェクション:データベースへの不正なクエリ挿入
- クロスサイトスクリプティング(XSS):悪意あるスクリプトの埋め込み
- ローカルファイルインクルージョン(LFI):サーバー内ファイルへの不正アクセス
- DDoS 攻撃:大量リクエストによるサービス妨害
- ボットによる不正アクセス:自動化された攻撃や情報収集
AWS WAF の仕組み
AWS WAF は CloudFront や ALB、API Gateway に紐づけて利用します。
WAF で作成する一番外枠のコンポーネントが Web ACL(アクセスコントロールリスト)です。Web ACL にマネージドルールやカスタムルールを紐づけてセキュリティ機能を高めます。

紐づけたルールに該当する通信が来た場合のアクションとして、Allow, Block, Count, CAPTCH, Challenge を選択できます。
Challenge アクションについては以下記事も参照ください。
WAF はクライアント(ユーザー)と Web サーバーの間に配置され、すべての HTTP/HTTPS リクエストを検査します。
AWS WAF のマネージドルールとは
AWS WAF のマネージドルールとは、AWS やセキュリティベンダーがあらかじめ作成・管理しているルールセットです。
マネージドルールのメリットとしては以下の点があげられます。
- セキュリティの専門家が作成したルールをそのまま利用可能
- 数クリックで有効化でき、すぐに保護を開始
- 新しい脅威に対応したルールが自動的に更新される
- ルールのメンテナンスを AWS やベンダーに任せられる
AWS が提供するマネージドルールは、AWS WAF の標準料金に含まれる無料のルールグループと、追加料金が発生する有償のルールグループがあります。無料のルールグループだけでも、OWASP Top 10 に含まれる主要な脆弱性への対策が可能です。
AWS マネージドルール以外にも、AWS Marketplace を通じて以下のような 3rd Party ベンダーが提供するマネージドルールを利用できます。
- Adobe Managed Services
- Cloudbric Corp.
- Cyber Security Cloud Inc.
- F5
- Fortinet
- GeoGuard
- Imperva
- ThreatSTOP
ベンダー提供のルールは、より高度な脅威検知や特定の業界・ユースケースに特化した保護が必要な場合に検討するとよいです。別途サブスクリプション料金が発生します。
WAF ルールグループの選定
以下表で AWS WAF で利用可能なマネージドルールグループについて解説します。
無料のルールグループ
AWS WAF の標準サービス料金を超える追加料金なしで利用できる無料のルールグループです。★がついているのは、私が過去に有効化して導入したことがあるルールです。
| 選択 | マネージドルール | Capacity | 概要 |
|---|---|---|---|
| ベースラインルールグループ | |||
| ★ | Core rule set(コア ルール セット) 名前: AWS-AWSManagedRulesCommonRuleSet |
700 | Web アプリケーションに一般的に適用できるルールが含まれています。OWASP Top 10 に含まれるリスクの高い脆弱性に関連するルールも含まれており、さまざまな脆弱性に関して Web アプリケーションを保護します。 コアルールセット (CRS) マネージドルールグループ |
| Admin protection(管理者保護) 名前: AWS-AWSManagedRulesAdminProtectionRuleSet |
100 | 公開されている管理ページへの外部アクセスをブロックできるルールが含まれています。管理アクセス権を第三者に乗っ取られるリスクの軽減に役立ちます。 管理者保護マネージドルールグループ | |
| ★ | Known bad inputs(既知の不正な入力) 名前: AWS-AWSManagedRulesKnownBadInputsRuleSet |
200 | 脆弱性を悪用する既知の不正な要求パターンをブロックするルールが含まれています。脆弱性を含むアプリが攻撃されるリスクを軽減できます。 既知の不正な入力マネージドルールグループ |
| ユースケース固有のルールグループ | |||
| ★ | SQL database 名前: AWS-AWSManagedRulesSQLiRuleSet |
200 | SQL インジェクション攻撃など、SQL データベースの悪用を防ぐルールが含まれています。未承認のクエリがリモートで挿入される等の攻撃を防ぐことができます。 SQL データベースマネージドルールグループ |
| ★ | Linux operating system(Linuxオペレーティングシステム) 名前: AWS-AWSManagedRulesLinuxRuleSet |
200 | LFI 攻撃など、Linux 固有の脆弱性を悪用する要求パターンをブロックするルールが含まれています。ファイルの内容を公開したり、攻撃者がアクセスできないはずのコードを実行したりする攻撃を防ぐことができます。 Linux オペレーティングシステムマネージドルールグループ |
| POSIX operating system(POSIX オペレーティング・システム) 名前: AWS-AWSManagedRulesUnixRuleSet |
100 | LFI攻撃など、POSIX や POSIX 準拠の OS に固有の脆弱性を悪用する要求パターンをブロックするルールが含まれています。ファイルの内容を公開したり、アクセスを許可してはならないコードを実行したりする攻撃を防ぐことができます。 POSIX オペレーティングシステムマネージドルールグループ | |
| Windows operating system(Windows オペレーティング システム) 名前: AWS-AWSManagedRulesWindowsRuleSet |
200 | Windows 固有の脆弱性 (PowerShell コマンドなど) の悪用に関連する要求パターンをブロックするルールが含まれています。攻撃者が不正なコマンドを実行したり、悪意のあるコードを実行したりする攻撃を防ぐことができます。 Windows オペレーティングシステムマネージドルールグループ | |
| PHP application(PHP アプリケーション) 名前: AWS-AWSManagedRulesPHPRuleSet |
100 | 安全でない PHP 関数の挿入など、PHP の使用に固有の脆弱性を悪用する要求パターンをブロックするルールが含まれています。サーバに PHP が使用される場合は適用するのがおすすめです。 PHP アプリケーションマネージドルールグループ | |
| WordPress application(WordPressアプリケーション) 名前: AWS-AWSManagedRulesWordPressRuleSet |
100 | WordPress に固有の脆弱性の悪用に関連するリクエストパターンをブロックするルールが含まれています。WordPress を利用される場合は適用するのがおすすめです。 WordPress アプリケーションマネージドルールグループ | |
| IP 評価ルールグループ | |||
| ★ | Amazon IP reputation list(Amazon IP レピュテーションリスト) 名前: AWS-AWSManagedRulesAmazonIpReputationList |
25 | Amazon 脅威インテリジェンスという、Amazon が収集している脅威や攻撃方法、既知の不正な IP アドレスなどに関する情報を含むデータベースに基づくルールが含まれています。ボットや既知の不正な IP アドレスからのアクセスをブロックする場合に便利です。 Amazon IP 評価リストマネージドルールグループ |
| ★ | Anonymous IP list(匿名 IP リスト) 名前: AWS-AWSManagedRulesAnonymousIpList |
50 | VPN・プロキシ・Torノード等、アクセス元を隠す匿名通信を可能にするサービスから発信されたリクエストをブロックできるルールが含まれています。自分の身元を隠そうとする不正アクセスを遮断することができます。 匿名 IP リストマネージドルールグループ |
★がついているルールグループの WCU 合計:1,375
一般的な Web アプリケーションを保護するため有効化が推奨されているルールについては以下記事が参考になりますので、ご参照ください。
有償のルールグループ
AWS WAF の標準サービス料金を超える追加料金が発生する有償のルールグループです。
| マネージドルール | Capacity | 概要 |
|---|---|---|
| AWS WAF Fraud Control Account Creation Fraud Prevention (ACFP) 名前: AWS-AWSManagedRulesACFPRuleSet |
50 | アプリケーションの登録・アカウント作成エンドポイントへのリクエストを検査し、不正なアカウント作成の試みを検出・ブロックします。IP アドレスやセッション単位での一括作成の検知、侵害された認証情報の使用防止など、多角的な方法で悪意あるアカウント作成からアプリケーションを保護します。AWS WAF Fraud Control アカウント作成不正防止 (ACFP) ルールグループ |
| Account takeover prevention(AWS WAF Fraud Control アカウント乗っ取り防止 (ATP)) 名前: AWS-AWSManagedRulesATPRuleSet |
50 | アプリケーションのログインエンドポイントへのリクエストを検査し、盗まれた認証情報の使用や異常なログイン試行を検出・ブロックします。ダークウェブで流出した認証情報データベースとの照合や、IP アドレス・セッション単位での不審なリクエスト集計、ログイン失敗率の追跡により、アカウント乗っ取りを防止します。AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) ルールグループ |
| Bot Control(AWS WAF Bot Control) 名前: AWS-AWSManagedRulesBotControlRuleSet |
50 | リソース消費やダウンタイム、悪意あるアクティビティを引き起こすボットからのリクエストを検出・管理します。「共通」レベルでは従来の検出技術で一般的なボットを識別し、「ターゲットを絞った」レベルではブラウザ調査やフィンガープリント、機械学習を活用して自己識別しない高度なボットも検出・軽減します。AWS WAF Bot Control ルールグループ |
| AntiDDoS Protection for Layer 7 attacks(AWS WAF 分散サービス拒否 (DDoS) 防止) 名前: AWS-AWSManagedRulesAntiDDoSRuleSet |
50 | DDoS 攻撃に関与しているか、その可能性が高いリクエストを検出して管理するルールです。AWS WAF 分散サービス拒否 (DDoS) 防止ルールグループ |
コストに関して
Web ACL で使用される Web ACL キャパシティーユニット(WCU)
AWS WAF は Web ACL キャパシティーユニット(WCU)を使用して、必要なリソースを計算および制御します。
- Web ACL の合計 WCU は 5000 を超えることはできません。
- Web ACL の基本料金には 1,500 WCU の容量が含まれています。
- 1,500 WCU を超える容量を使用すると追加料金が発生します。
おわりに
過去に AWS WAF の導入を実施した際の経験を書き残していなかったので、改めて記載しました。ルール選定についてはいろいろな方が様々な観点で既に記事されていると思いますが、自身の導入経験として残しておきます。どなたかのお役に立てば幸いです。
本記事への質問やご要望については画面下部のお問い合わせ「DevelopersIOへのご意見」からご連絡ください。記事に関してお問い合わせいただけます。
参考






