[説明] AWSManagedRulesKnownBadInputsRuleSet
概要
- AWS マネージドルールのルールグループである Known bad inputs managed rule group (AWSManagedRulesKnownBadInputsRuleSet) の概要について、記載します。
- 私は業務でこのルールを使用しておりますが、ルールの理解が出来ていないため、勉強を兼ねて調べてみました。なお、一般的にセキュリティに関する資料は、公開情報は限られております。さらに詳しい情報が必要な方は、AWS サポートへお問い合わせください。
- 後半は、参考として、AWS WAF にマネージドルールを追加する方法を記載しております。
AWSManagedRulesKnownBadInputsRuleSet の説明
- Known bad inputs managed rule group ルールグループは、こちらのドキュメントに記載されている通り、無効であることがわかっており脆弱性の悪用または発見に関連するリクエストパターンをブロックするルールが含まれています。これにより、悪意のある攻撃者が脆弱なアプリケーションを発見するリスクを緩和できます。
- こちらのルールグループにあるルールで検知するリクエストは、インターネットにおいて頻繁に攻撃があるものばかりです。ルールの理解だけでも、勉強になります。
JavaDeserializationRCE_****
- HTTP リクエストのヘッダー、本文、URI、クエリ文字列に、 Spring Framework および Spring Cloud Function の脆弱性に対する試行を示すパターンがないかどうかを検査します。
- Spring Framework の脆弱性はJDK9以上の Spring Framework 特定バージョンを使用する環境において、SpringMVC, SpringWebFlux アプリケーションで発生するおそれがあります。脆弱性が悪用された場合、データバインディングを経由してリモートコード実行が可能となるため、機密情報が奪われたり、サーバーがのっとられる可能性があります。恒久対策は、Spring Framework の更新になります。
- CVE: CVE-2022-22965, 通称: Spring4shell,SpringShell, 報告日: 2022年3月
- Spring Cloud Function の脆弱性はルーティング機能使用時に特別な加工を加えたSpring 式言語を送り込むことで、リモート コードが実行されローカルリソースへのアクセスが可能となります。恒久対策は、Spring Cloud Function の更新になります。
- CVE: CVE-2022-22963, 報告日: 2022年3月
- 参考資料
- Spring Framework の脆弱性はJDK9以上の Spring Framework 特定バージョンを使用する環境において、SpringMVC, SpringWebFlux アプリケーションで発生するおそれがあります。脆弱性が悪用された場合、データバインディングを経由してリモートコード実行が可能となるため、機密情報が奪われたり、サーバーがのっとられる可能性があります。恒久対策は、Spring Framework の更新になります。
- 関連するルールは、以下になります。
- JavaDeserializationRCE_HEADER
- JavaDeserializationRCE_BODY
- JavaDeserializationRCE_URIPATH
- JavaDeserializationRCE_QUERYSTRING
Host_localhost_HEADER
- HTTPリクエストのホストヘッダーに、localhost が使用されていないかを検査します。
PROPFIND_METHOD
- リクエストに、PROPFIND メソッドがないかを検査します。PROPFIND メソッドは、リソースやコレクションに関連付けられたメタデータやプロパティを取得します。脆弱性がある場合、悪用されるとサーバ上で不正なコードが実行されるおそれがあります。
ExploitablePaths_URIPATH
- URI パスに、悪用可能なウェブアプリケーションパスにアクセスする試みがないかを検査します。パターンの例にはWEB-INF のパスがあり、WEB-INF ディレクトリ配下のファイルにアクセスを試みた場合に検知されます。
Log4JRCE_****
- HTTP リクエストのヘッダー、本文、URI、クエリ文字列に、Log4j の脆弱性に対する試行を示すパターンがないかどうかを検査します。
- Log4j の脆弱性は、ログ出力ライブラリ Log4j2 を使用する場合に、リモート コードが実行されたり、機密情報が奪われる可能性、DoS攻撃を受ける可能性があります。恒久対策は、Log4j2 の更新になります。
- CVE: CVE-2021-44228, 通称: Log4shell, 報告日: 2021年11月
- CVE: CVE-2021-45046, CVE-2021-45105, 報告日: 2021年12月
- 参考資料
- Log4j の脆弱性は、ログ出力ライブラリ Log4j2 を使用する場合に、リモート コードが実行されたり、機密情報が奪われる可能性、DoS攻撃を受ける可能性があります。恒久対策は、Log4j2 の更新になります。
- 関連するルールは、以下になります。
- Log4JRCE_HEADER
- Log4JRCE_QUERYSTRING
- Log4JRCE_BODY
- Log4JRCE_URIPATH
AWS WAF にマネージドルールを追加する方法
- Web ACL を選択し、Rulesを選択します。
- 「Add rules」の「Add managed rule groups」を選択します。
- managed rule groups の一覧から任意のマネージドルールグループを選択し、「Add to web ACL」をON にします。
- マネージドルールグループを選定する際は、こちらのドキュメントの説明を参照ください。
- WCU (Web ACL capacity units) のトータルが1500 に収まる様に選択して、「Add rules」を押します。
- 「Save rule」を押すと、Web ACL の設定がアップデートされます。
- 次に、ルールの優先順位を設定し、「Save」を押します。マネージドルールの追加が完了しました。