※2020/03/06 に AWS Managed Rules に Anonymous IP List が追加されました。詳細は以下の記事をご参照ください。
AWS マネジメントコンソールで Anonymus IP Listの 設定を行う

目次

  1. 1.はじめに
  2. 2.マネージドルールとは
  3. 3.AWS Managed Rules の種類
  4. 4.AWS Managed Rules の内容
  5. 5.AWS Managed Rules の組み合わせ
  6. 6.おわりに

1.はじめに

2019/11/25 AWS WAF のバージョンアップがありました。併せて AWS 公式のManaged Rule がリリースされました。AWS Managed Rule には、複数のルールが存在する為、どのルールを選択するかは、利用者側で決める必要があります。
今回は、AWS Managed Rule の選び方を解説していきます。
※ AWS WAF のバージョンが関係しますので、以前の AWS WAF はAWS WAF Classic 、新しい AWS WAF は AWS WAF と表記していきます。

2.マネージドルールとは

マネージドルールとは AWS WAF Classic 、 AWS WAF で使用出来るルールセットです。
弊社を始め複数のセキュリティベンダーから発売されており、今回 AWS からもマネージドルールが発表されました。独自にルールを作成する必要はなく、ルールセットをアタッチするだけですぐに保護が出来ます。AWS WAF Classic でも販売されていましたが、AWS WAF では今回 AWS 公式のマネージドルールが発表され、選択できるようになりました。
※それぞれの AWS WAF のバージョン毎に選択の必要があります。AWS WAF Classic ではセキュリティベンダーからの購入が可能でしたが、AWS WAF には存在しない AWS WAF Classic特有のものもありますのでご注意ください。

3.AWS Managed Rules の種類

今回公開された AWS Managed Rules は複数のルールグループが提供されています。

Name Capacity
Core Rule Set 700
Admin Protection 100
Known Bad Inputs 200
SQL Database 200
LINUX operating system 200
POSIX Operating System 100
Windows Operating System 200
PHP Application 100
WordPress Application 100
Amazon IP Reputation 25

Capacity という考え方が加わり、今まで AWS WAF Classic であった制限(各 ACLのルールは10個まで)が無くなり、新しく WCU というコストで考える形に変更となりました。
詳細については過去の解説ブログをご参照いただければと思います。

参照:【new AWS WAF】変更点まとめ
https://www.wafcharm.com/jp/blog/new-aws-waf-points-of-modification/
デフォルトの WCU は 1500 になっているため、全てを選択することはできません。
そこでどのルールを選択すればいいかを解説します。

4.AWS Managed Rules の内容

マネージドルールはルールの詳細内容が公開されていないため、どのようなルールなのか完全には分かりません。
今回は AWS の公式情報の説明文を元に解説します。
https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html

  • Core Rule Set
    一般に Web アプリケーションに適用されるルールが含まれています。これにより、OWASP の出版物や一般的な Common Vulnerabilities and Exposures( CVE )に記載されているものを含む、広範な脆弱性の悪用に対する保護が提供されます。
  • Admin Protection
    公開された管理ページへの外部アクセスをブロックできるルールが含まれています。
    これは、サードパーティのソフトウェアを実行している場合や、悪意のある攻撃者がアプリケーションへの管理アクセス権を取得するリスクを軽減したい場合に役立ちます。
  • Known Bad Inputs
    無効であることがわかっており、脆弱性の悪用または発見に関連付けられている要求パターンをブロックできるルールが含まれています。これにより、悪意のある攻撃者が脆弱なアプリケーションを発見するリスクを減らすことができます。
  • SQL Database
    SQL インジェクション攻撃など、SQL データベースの悪用に関連する要求パターンをブロックできるルールが含まれています。これにより、不正なクエリのリモート注入を防ぐことができます。
  • LINUX operating system
    Local File Inclusion( LFI )攻撃など、Linux 固有の脆弱性の悪用に関連する要求パターンをブロックするルールが含まれています。これにより、ファイルの内容を公開したり、攻撃者がアクセスすべきではないコードを実行したりする攻撃を防ぐことができます。
  • POSIX Operating System
    Local File Inclusion( LFI )攻撃を含む POSIX / POSIX ライクな OS に固有の脆弱性の悪用に関連するリクエストパターンをブロックするルールが含まれています。これにより、ファイルの内容を公開したり、アクセスを許可しないコードを実行したりする攻撃を防ぐことができます。
  • Windows Operating System
    Windows 固有の脆弱性( PowerShell コマンドなど)の悪用に関連する要求パターンをブロックするルールが含まれています。これにより攻撃者が許可されていないコマンドを実行したり、悪意のあるコードを実行したりする攻撃を防ぐことができます。
  • PHP Application
    安全でない PHP 関数の挿入など、PHP の使用に固有の脆弱性の悪用に関連する要求パターンをブロックするルールが含まれています。これにより、攻撃者がリモートでコードまたはコマンドを実行できるエクスプロイトを防ぐことができます。
  • WordPress Application
    WordPress アプリケーショングループには、WordPress サイト固有の脆弱性の悪用に関連するリクエストパターンをブロックするルールが含まれています。
  • Amazon IP Reputation
    このグループには、Amazon 脅威インテリジェンスに基づくルールが含まれます。これは、ボットやその他の脅威に関連するソースをブロックする場合に役立ちます。

5.AWS Managed Rules の組み合わせ

上記 AWS Managed Rules の概要を元に共通項目として選択すべきルールと取捨選択すべきルールに分けて、組み合わせを表にしました。

  • ◎:導入お勧め
  • △:いずれか選択
  • ▲:環境に応じて選択

基本的には導入お勧めセットのみ(◎印)で十分かと思います。
環境に応じて選択(▲印)の対象を追加してください。
運用する上では、マネージドルールの他にも以下のルールが必要になるので、オリジナルルールを作成して管理しましょう。

  • ホワイトリスト( WCU :1 )
  • ブラックリスト( WCU :1 )
  • その他独自ルール

※ WCU は AWS のサポートに制限緩和申請をすることで、制限値をあげることも可能です。
※「 re:Invent 2019 」のセッション内容では、多層で考える方式を AWS が勧めていました。
お勧めセットのマネージドルールを CloudFront に導入した WAF に設定して、ALB や API Gateway にもWAF を導入して OS やアプリケーション向けのマネージドルールを設定するというものでした。
※セキュリティベンダーが販売しているマネージドルールは細かく分かれていない商品も多いため、一つ設定するだけで済みます。導入候補の一つとして検討しましょう。

6.おわりに

マネージドルールでの導入はセキュリティの知識がなくても設定できるので、とても便利です。
ただ、ルールの詳細内容は公開されていないため誤検知した際は対策が難しいです。COUNT モードへの切り替えはルールグループに内包される個別のグループ単位で可能ですので、COUNTモードでの確認がお勧めです。検知した内容を問い合わせできるセキュリティベンターのマネージドルールを選択することで、ベンダーからのサポートを受けることも可能なので、運用面を考えると必要かもしれません。