こんにちは、マネージドサービス部テクニカルサポート課の坂口です。
今回は AWS WAF マネージドルールの選び方についてご紹介いたします。
AWS WAF マネージドルールとは
AWS WAF マネージドルールは、AWS が提供しているルールセットであり、一般的なアプリケーションの脆弱性や望ましくないトラフィックからの保護を提供するマネージドサービスです。
AWS WAF マネージドルールグループ一覧
ルールグループ | 説明 | WCU |
---|---|---|
Admin protection | 公開された管理ページへの外部アクセスをブロックできるルールが含まれています。これは、サードパーティ ソフトウェアを実行している場合、または悪意のある攻撃者がアプリケーションへの管理アクセスを取得するリスクを軽減したい場合に便利です。 | 100 |
Amazon IP reputation list | このグループには、Amazon 脅威インテリジェンスに基づくルールが含まれています。これは、ボットやその他の脅威に関連するソースをブロックしたい場合に便利です。 | 25 |
Anonymous IP list | このグループには、視聴者の ID の難読化を許可するサービスからのリクエストをブロックできるルールが含まれています。これには、VPN、プロキシ、Tor ノード、ホスティング プロバイダーからのリクエストが含まれる場合があります。これは、アプリケーションから自分の身元を隠そうとしている可能性のある閲覧者をフィルターで除外する場合に便利です。 | 50 |
Core rule set | Web アプリケーションに一般的に適用されるルールが含まれます。これにより、OWASP の出版物に記載されている脆弱性を含む、幅広い脆弱性の悪用に対する保護が提供されます。 | 700 |
Known bad inputs | 無効であることがわかっており、脆弱性の悪用または発見に関連するリクエスト パターンをブロックできるルールが含まれています。これは、悪意のある攻撃者が脆弱なアプリケーションを発見するリスクを軽減するのに役立ちます。 | 200 |
Linux operating system | LFI 攻撃など、Linux 固有の脆弱性の悪用に関連するリクエスト パターンをブロックするルールが含まれています。これは、ファイルの内容を公開したり、攻撃者がアクセスすべきではないコードを実行したりする攻撃を防ぐのに役立ちます。 | 200 |
PHP application | 安全でない PHP 関数の挿入など、PHP の使用に特有の脆弱性の悪用に関連するリクエスト パターンをブロックするルールが含まれています。これは、攻撃者がコードやコマンドをリモートで実行できるようにするエクスプロイトを防ぐのに役立ちます。 | 100 |
POSIX operating system | LFI 攻撃など、POSIX/POSIX 系 OS に特有の脆弱性の悪用に関連するリクエスト パターンをブロックするルールが含まれています。これは、ファイルの内容を公開したり、アクセスを許可すべきではないコードを実行したりする攻撃を防ぐのに役立ちます。 | 100 |
SQL database | SQL インジェクション攻撃など、SQL データベースの悪用に関連する要求パターンをブロックできるルールが含まれています。これは、不正なクエリのリモート挿入を防ぐのに役立ちます。 | 200 |
Windows operating system | Windows 固有の脆弱性の悪用に関連する要求パターン (PowerShell コマンドなど) をブロックするルールが含まれています。これは、攻撃者が不正なコマンドを実行したり、悪意のあるコードを実行したりするエクスプロイトを防ぐのに役立ちます。 | 200 |
WordPress application | WordPress アプリケーション グループには、WordPress サイト固有の脆弱性の悪用に関連するリクエスト パターンをブロックするルールが含まれています。 | 100 |
Web ACL Capacity Unit (WCU)
WCU はリソースの処理コストを表します。
Web ACL では、デフォルトで最大 1500 WCU まで使用できます。
そのため、WCU に収まるようにマネージドルールグループを選択する必要がございますが、AWS サポートへ上限緩和申請を行うことで、最大 5000 WCU まで拡張可能です。
AWS WAF マネージドルールグループの選び方
上記を踏まえて、以下の表にまとめました。
○:必須
△:システム要件により選択
▲:実行環境(OS)により選択
ルールグループ | 要否 | 選択した理由 | WCU | 備考 |
---|---|---|---|---|
Admin protection | △ | 管理ページを公開している場合は必要 | 100 | |
Amazon IP reputation list | ○ | Amazon 内でボットやその他脅威と判断された IP アドレスリストなので必要 | 25 | |
Anonymous IP list | △ | 匿名 IP アドレスからのアクセスを許容できない場合は必要 | 50 | |
Core rule set | ○ | これ1つで幅広い脆弱性に対応出来るため必要 | 700 | |
Known bad inputs | ○ | 既知の脆弱性に関するルールのため必要 | 200 | |
Linux operating system | ▲ | 実行環境が Linux の場合は必要 | 200 | ※1 |
PHP application | ▲ | PHP を使用する場合は必要 | 100 | ※2 |
POSIX operating system | ▲ | 実行環境が POSIX および POSIXと同等の場合は必要 | 100 | ※3 |
SQL database | ▲ | DB を使用している場合は必要 | 200 | ※4 |
Windows operating system | ▲ | 実行環境が Windows の場合は必要 | 200 | ※5 |
WordPress application | ▲ | WordPress を使用している場合は必要 | 100 | ※6 |
システム | ルールグループ | 合計WCU | 備考 |
---|---|---|---|
PHP以外 | ◯ + △ + ▲(※1,3,4) | 1575 | Windows の場合は 1475 |
PHP | ◯ + △ + ▲(※1,2,3,4) | 1675 | Windows の場合は 1575 |
WordPress | ◯ + △ + ▲(※1,2,3,4,6) | 1775 | Windows の場合は 1675 |
まとめ
Windows + PHP 以外の場合を除いて、デフォルト上限の1500 WCU を超えるため、上限緩和申請が必要であることがわかりました。
なお、要件によっては必要・不要のルールグループがあるかと存じます。
あくまでも参考程度に留めてください。