次の方法で共有


Web Application Firewall の DRS および CRS の規則グループと規則

Application Gateway Web アプリケーション ファイアウォール (WAF) の Azure で管理される既定の規則セット (DRS) は、一般的な脆弱性や悪用から Web アプリケーションを積極的に保護します。 Azure によって管理されるこれらのルール セットは、新しい攻撃シグネチャから保護するため、必要に応じて更新プログラムを受け取ります。 また、既定のルール セットには、Microsoft 脅威インテリジェンス コレクションのルールも組み込まれています。 Microsoft のインテリジェンス チームは、これらのルールの作成で共同作業を行い、カバレッジの強化、特定の脆弱性パッチ、および擬陽性の減少の改善を保証します。

また、OWASP コア 規則セット 3.2 (CRS 3.2) に基づいて定義された規則を使用することもできます。

ルールを個別に無効にすることも、ルールごとに特定のアクションを設定することもできます。 この記事では、現在利用できるルールとルール セットの一覧を示します。 公開されているルール セットの更新が必要な場合は、こちらにそれを記載します。

WAF ポリシーでルールセットのバージョンを変更すると、ルールセットに対して行った既存のカスタマイズはすべて、新しいルールセットの既定値にリセットされます。 「ルールセットのバージョンのアップグレードまたは変更」を参照してください。

既定の規則セット 2.1

既定の規則セット (DRS) 2.1 は、Open Web Application Security Project (OWASP) Core Rule Set (CRS) 3.3.2 からベースライン化され、Microsoft Threat Intelligence チームによって開発された追加の独自の保護規則と、誤検知を減らすための署名の更新が含まれています。 また、URL デコード以外の変換もサポートしています。

DRS 2.1 には、Java インジェクションに対する防御用の新しいエンジンと新しいルール セット、ファイル アップロード チェックの初期セット、CRS バージョンと比較した誤検知の数が少なくなります。 また、ニーズに合わせて規則をカスタマイズすることもできます。 新しい Azure WAF エンジンの詳細を確認します。

次の表に示すように、DRS 2.1 には 17 個の規則グループが含まれています。 各グループには複数の規則が含まれており、個々の規則、規則グループ、または規則セット全体の動作をカスタマイズできます。

脅威の種類 ルール グループ名
全般 全般
メソッド (PUT、PATCH) をロックダウンします METHOD-ENFORCEMENT
プロトコルとエンコードの問題 プロトコル順守
ヘッダーの挿入、リクエストスマグリング、応答の分割 プロトコル攻撃
ファイルとパスの攻撃 LFI
リモート ファイル インクルード (RFI) 攻撃 RFI
リモート コード実行攻撃 RCE
PHP インジェクション攻撃 PHP
Node JS 攻撃 NodeJS
クロスサイト スクリプティング攻撃 XSS
SQL インジェクション攻撃 SQLI
セッション固定攻撃 セッション固定
JAVA 攻撃 SESSION-JAVA
Web シェル攻撃 (MS) MS-ThreatIntel-WebShells
AppSec 攻撃 (MS) MS-ThreatIntel-AppSec
SQL インジェクション攻撃 (MS) MS-ThreatIntel-SQLI
CVE攻撃(マイクロソフト) MS-ThreatIntel-CVE

DRS 2.1 の微調整ガイダンス

Application Gateway WAF での DRS 2.1 の使用を開始するときに WAF を調整するには、次のガイダンスを使用します。

ルール ID 規則グループ 説明 勧告
942110 SQLIの SQL インジェクション攻撃:一般的なインジェクション テストが検出されました ルール 942110 を無効にし、MSTIC ルール 99031001に置き換える
942150 SQLIの SQL インジェクション攻撃 ルール 942150 を無効にし、MSTIC ルール 99031003に置き換えます
942260 SQLIの 基本的な SQL 認証のバイパスの試行 2/3 を検出します ルール 942260 を無効にし、MSTIC ルール 99031004に置き換えます
942430 SQLIの 制限された SQL 文字の異常検出 (引数): 特殊文字数が超過しました (12) ルール 942430 を無効にすると、誤検知が多すぎます
942440 SQLIの SQL コメント シーケンスが検出されました ルール 942440 を無効にし、MSTIC ルール 99031002に置き換えます
99005006 MS-ThreatIntel-WebShells Spring4Shell 相互作用の試行 SpringShell の脆弱性を防ぐために規則を有効の状態に維持します
99001014 MS-ThreatIntel-CVEs Spring Cloud ルーティング式インジェクション CVE-2022-22963 が試みられました SpringShell の脆弱性を防ぐために規則を有効の状態に維持します
99001015 MS-ThreatIntel-WebShells Spring Framework の安全でないクラス オブジェクトの悪用 CVE-2022-22965 が試みられました SpringShell の脆弱性を防ぐために規則を有効の状態に維持します
99001016 MS-ThreatIntel-WebShells Spring Cloud Gateway Actuator インジェクション CVE-2022-22947 が試みられました SpringShell の脆弱性を防ぐために規則を有効の状態に維持します
99001017 MS-ThreatIntel-CVEs Apache Struts ファイル アップロードの悪用が試みられました CVE-2023-50164 アクションをブロックに設定して、Apache Struts の脆弱性を防ぎます。 このルールでは異常スコアがサポートされていません

コア ルール セット 3.2

推奨される管理ルール セットは既定の規則セット 2.1 です。これは、Open Web Application Security Project (OWASP) Core Rule Set (CRS) 3.3.2 からベースライン化され、Microsoft Threat Intelligence チームによって開発された追加の独自の保護規則と、誤検知を減らすための署名の更新が含まれています。 DRS 2.1 の代わりに、OWASP CRS 3.2.0 バージョンに基づく CRS 3.2 を使用できます。

次の表に示すように、CRS 3.2 には 14 個の規則グループが含まれています。 各グループには、無効にできる複数の規則が含まれています。

CRS 3.2 は WAF_v2 SKU でのみ利用できます。 CRS 3.2 は新しい Azure WAF エンジンで実行されるため、CRS 3.1 以前にダウングレードすることはできません。 ダウングレードする必要がある場合は、Azure サポートにお問い合わせください

規則グループ名 脅威の種類
全般 全般
新規および既知の CVE 既知の CVE
メソッド (PUT、PATCH) をロックダウンします REQUEST-911-METHOD-ENFORCEMENT
ポートと環境スキャナー REQUEST-913-SCANNER-DETECTION
プロトコルとエンコードの問題 REQUEST-920-PROTOCOL-ENFORCEMENT
ヘッダーの挿入、リクエストスマグリング、応答の分割 REQUEST-921-PROTOCOL-ATTACK
ファイルとパスの攻撃 REQUEST-930-APPLICATION-ATTACK-LFI
リモート ファイル インクルード (RFI) 攻撃 REQUEST-931-APPLICATION-ATTACK-RFI
リモート コード実行攻撃 REQUEST-932-APPLICATION-ATTACK-RCE
PHP インジェクション攻撃 REQUEST-933-APPLICATION-ATTACK-PHP
クロスサイト スクリプティング攻撃 REQUEST-941-APPLICATION-ATTACK-XSS
SQL インジェクション攻撃 REQUEST-942-APPLICATION-ATTACK-SQLI
セッション固定攻撃 REQUEST-943-APPLICATION-ATTACK-SESSION-固定
JAVA 攻撃 REQUEST-944-APPLICATION-ATTACK-JAVA

マネージド規則セットのチューニング

WAF ポリシーの検出モードでは、DRS と CRS の両方が既定で有効になっています。 アプリケーション要件に合わせて、マネージド規則セット内の規則を個別に有効または無効にすることができます。 また、規則ごとに特定のアクションを設定することもできます。 DRS/CRS では、ブロック、ログ、異常スコアの各アクションがサポートされています。 Bot Manager ルールセットでは、許可、ブロック、ログのアクションがサポートされます。

場合によっては、WAF の評価から特定の要求属性を省略する必要があります。 一般的な例として、認証に使用される、Active Directory で挿入されたトークンが挙げられます。 除外は、特定の WAF ルールが評価される際に適用されるように、またはすべての WAF ルールの評価にグローバルに適用されるように構成することができます。 除外ルールは、Web アプリケーション全体に適用されます。 詳細については、Azure Web Application Firewall (WAF) とアプリケーション ゲートウェイ除外リストに関する記事を参照してください。

既定では、DRS バージョン 2.1 および CRS バージョン 3.2 以降では、要求がルールと一致したときに異常スコアリングが使われます。 CRS 3.1 以下では、一致した要求は既定でブロックされます。 さらに、コア ルール セット内の事前構成済みのルールのいずれかをバイパスしたい場合は、同じ WAF ポリシーでカスタム ルールを構成できます。

カスタム ルールは常に、コア ルール セット内のルールが評価される前に適用されます。 要求がカスタム規則に一致した場合、対応する規則のアクションが適用されます。 要求はブロックされるか、バックエンドに渡されます。 他のカスタム ルールやコア ルール セット内のルールは処理されません。

異常スコアリング

CRS または DRS 2.1 以降を使用する場合、WAF は既定で異常スコアリングを使用するように構成されます。 WAF が防止モードであっても、いずれかの規則に一致するトラフィックはすぐにはブロックされません。 その代わり、OWASP 規則セットには、各規則に対して "重大"、"エラー"、"警告"、"注意" のいずれかの重大度が定義されています。 その重大度は、"異常スコア" という要求の数値に影響します。

ルールの重要度 異常スコアに寄与する値
危うい 5
エラー 4
警告 3
注意事項 2

異常スコアが 5 以上で、WAF が防止モードになっている場合、要求はブロックされます。 異常スコアが 5 以上で、WAF が検出モードになっている場合、要求はログに記録されますが、ブロックされません。

たとえば防止モードになっているときには、1 つの "重大" 規則が一致しただけでも、全体の異常スコアは 5 になるので、WAF によって要求はブロックされます。 一方、1 つの "警告" 規則が一致した場合、異常スコアの増加は 3 のみです。これだけではトラフィックはブロックされません。 異常ルールがトリガーされると、ログには "Matched" アクションが示されます。 異常スコアが 5 以上の場合は、WAF ポリシーが防止モードか検出モードかに応じて、"ブロック" または "検出" アクションでトリガーされる別のルールがあります。 詳細については、「異常スコアリング モード」を参照してください。

パラノイア レベル

各ルールは、特定のパラノイア レベル (PL) で割り当てられます。 パラノイア レベル 1 (PL1) で構成されたルールは攻撃的でなく、誤検知を引き起こすことはほとんどありません。 これらは、微調整の必要性を最小限に抑えてベースライン セキュリティを提供します。 PL2 のルールは、より多くの攻撃を検出しますが、微調整する必要がある誤検知をトリガーすることが期待されます。

既定では、DRS 2.1 および CRS 3.2 ルール バージョンは、PL1 と PL2 の両方で割り当てられたルールを含め、Paranoia レベル 2 で事前に構成されています。 WAF を PL1 のみで使用する場合は、PL2 ルールの一部またはすべてを無効にするか、アクションを "log" に変更できます。 現在、PL3 と PL4 は Azure WAF ではサポートされていません。

CRS 3.2 ルールセットには PL3 と PL4 のルールが含まれていますが、これらのルールは常に非アクティブであり、構成されている状態やアクションに関係なく有効にすることはできません。

ルールセットのバージョンのアップグレードまたは変更

新しいルールセットバージョンをアップグレードまたは割り当て、既存のルールのオーバーライドと除外を保持する場合は、PowerShell、CLI、REST API、またはテンプレートを使用してルールセットのバージョンを変更することをお勧めします。 新しいバージョンのルールセットには、新しいルール、追加のルール グループを含めることができます。また、セキュリティを強化し、誤検知を減らすために既存の署名を更新することもできます。 テスト環境での変更を検証し、必要に応じて微調整してから、運用環境にデプロイすることをお勧めします。

Azure portal を使用して新しいマネージド ルールセットを WAF ポリシーに割り当てる場合、ルールの状態、ルール アクション、ルール レベルの除外など、既存のマネージド ルールセットの以前のカスタマイズはすべて、新しいマネージド ルールセットの既定値にリセットされます。 ただし、カスタム ルール、ポリシー設定、グローバル除外は、新しいルールセットの割り当ての間に影響を受けず維持されます。 運用環境にデプロイする前に、ルールのオーバーライドを再定義し、変更を検証する必要があります。

OWASP CRS 3.1

次の表に示すように、CRS 3.1 には 14 個の規則グループが含まれています。 各グループには、無効にできる複数の規則が含まれています。 ルールセットは、OWASP CRS 3.1.1 バージョンに基づいています。

CRS 3.1 は WAF_v2 SKU でのみ利用できます。

規則グループ名 説明
全般 一般グループ
既知の CVE 新しいおよび既知の CVE を検出できるようにします
REQUEST-911-METHOD-ENFORCEMENT メソッド (PUT、PATCH) をロックダウンします
REQUEST-913-SCANNER-DETECTION ポートや環境のスキャナーから保護します
REQUEST-920-PROTOCOL-ENFORCEMENT プロトコルとエンコーディングの問題から保護します
REQUEST-921-PROTOCOL-ATTACK ヘッダー インジェクション、要求スマグリング、応答分割から保護します
REQUEST-930-APPLICATION-ATTACK-LFI ファイル攻撃やパス攻撃から保護します
REQUEST-931-APPLICATION-ATTACK-RFI リモート ファイル インクルージョン (RFI) 攻撃から保護します
REQUEST-932-APPLICATION-ATTACK-RCE リモート コード実行攻撃から保護します
REQUEST-933-APPLICATION-ATTACK-PHP PHP インジェクション攻撃から保護します
REQUEST-941-APPLICATION-ATTACK-XSS クロスサイト スクリプティング攻撃から保護します
REQUEST-942-APPLICATION-ATTACK-SQLI SQL インジェクション攻撃から保護します
REQUEST-943-APPLICATION-ATTACK-SESSION-固定 セッション固定攻撃から保護します
REQUEST-944-APPLICATION-ATTACK-SESSION-JAVA Java 攻撃から保護します

ボットマネージャー 1.0

Bot Manager 1.0 ルール セットでは、悪意のあるボットに対する保護を行い、良いボットを検出します。 これらのルールを利用して、ボット トラフィックを Good (良い)、Bad (悪い)、Unknown (不明) のボットとして分類して、WAF によって検出されたボットをきめ細かく制御できます。

規則グループ 説明
BadBots 問題のあるボットから保護します
GoodBots 問題のないボットを識別します
UnknownBots 不明なボットを識別します

ボットマネージャー 1.1

Bot Manager 1.1 ルール セットは、Bot Manager 1.0 ルール セットを改良したものです。 悪意のあるボットに対する保護が強化され、良いボットの検出が向上しています。

規則グループ 説明
BadBots 問題のあるボットから保護します
GoodBots 問題のないボットを識別します
UnknownBots 不明なボットを識別します

次の規則グループと規則は、Application Gateway で Web アプリケーション ファイアウォールを使用するときに利用できます。

2.1 の規則セット

全般

ルール ID 異常スコアの重大度 パラノイア レベル 説明
200002 レベル5 - 重大 PL1 要求本文を解析できませんでした
200003 レベル5 - 重大 PL1 マルチパートの要求本文が厳密な検証に失敗しました。

メソッドの適用

ルール ID 異常スコアの重大度 パラノイア レベル 説明
911100 レベル5 - 重大 PL1 メソッドがポリシーによって許可されていません

プロトコル強制

ルール ID 異常スコアの重大度 パラノイア レベル 説明
920100 通知 - 2 PL1 無効な HTTP 要求行
920120 レベル5 - 重大 PL1 マルチパート/フォームデータのバイパスを試行しました
920121 レベル5 - 重大 PL2 マルチパート/フォームデータのバイパスを試行しました
920160 レベル5 - 重大 PL1 Content-Length HTTP ヘッダーが数値ではありません
920170 レベル5 - 重大 PL1 本文コンテンツがある GET または HEAD 要求
920171 レベル5 - 重大 PL1 Transfer-Encoding を使用した GET または HEAD 要求
920180 通知 - 2 PL1 POST 要求に Content-Length ヘッダーがありません
920181 警告 - 3 PL1 Content-Length ヘッダーと Transfer-Encoding ヘッダーが 99001003 の原因となります
920190 警告 - 3 PL1 範囲: 最後のバイト値が無効です
920200 警告 - 3 PL2 範囲: フィールドが多すぎます (6 以上)
920201 警告 - 3 PL2 範囲: pdf 要求のフィールドが多すぎます (35 以上)
920210 レベル5 - 重大 PL1 複数/競合している接続ヘッダー データが見つかりました
920220 警告 - 3 PL1 URL エンコード悪用攻撃の試行
920230 警告 - 3 PL2 複数の URL エンコードが検出されました
920240 警告 - 3 PL1 URL エンコード悪用攻撃の試行
920260 警告 - 3 PL1 Unicode 全/半角悪用攻撃の試行
920270 エラー - 4 PL1 要求に無効な文字が含まれています (null 文字)
920271 レベル5 - 重大 PL2 要求に無効な文字が含まれています (印字できない文字)
920280 警告 - 3 PL1 要求にホスト ヘッダーがありません
920290 警告 - 3 PL1 ホスト ヘッダーが空です
920300 通知 - 2 PL2 要求に Accept ヘッダーがありません
920310 通知 - 2 PL1 要求に空の Accept ヘッダーがあります
920311 通知 - 2 PL1 要求に空の Accept ヘッダーがあります
920320 通知 - 2 PL2 User Agent ヘッダーがありません
920330 通知 - 2 PL1 User Agent ヘッダーが空です
920340 通知 - 2 PL1 要求にコンテンツは含まれていますが、Content-Type ヘッダーがありません
920341 レベル5 - 重大 PL1 コンテンツを含む要求には、Content-Type ヘッダーが必要です
920350 警告 - 3 PL1 ホスト ヘッダーが数値 IP アドレスです
920420 レベル5 - 重大 PL1 要求のコンテンツ タイプがポリシーで許可されていません
920430 レベル5 - 重大 PL1 HTTP プロトコルのバージョンがポリシーで許可されていません
920440 レベル5 - 重大 PL1 URL ファイル拡張子がポリシーによって制限されています
920450 レベル5 - 重大 PL1 HTTP ヘッダーがポリシーによって制限されています
920470 レベル5 - 重大 PL1 無効な Content-Type ヘッダー
920480 レベル5 - 重大 PL1 要求コンテンツ タイプの文字セットはがポリシーで許可されていません
920500 レベル5 - 重大 PL1 バックアップ ファイルまたは作業ファイルへのアクセスの試行

プロトコル攻撃

ルール ID 異常スコアの重大度 パラノイア レベル 説明
921110 レベル5 - 重大 PL1 HTTP 要求スマグリング攻撃
921120 レベル5 - 重大 PL1 HTTP 応答分割攻撃
921130 レベル5 - 重大 PL1 HTTP 応答分割攻撃
921140 レベル5 - 重大 PL1 ヘッダーによる HTTP ヘッダー インジェクション攻撃
921150 レベル5 - 重大 PL1 ペイロードによる HTTP ヘッダー インジェクション攻撃 (CR/LF 検出)
921151 レベル5 - 重大 PL2 ペイロードによる HTTP ヘッダー インジェクション攻撃 (CR/LF 検出)
921160 レベル5 - 重大 PL1 ペイロードによる HTTP ヘッダー インジェクション攻撃 (CR/LF および header-name 検出)
921190 レベル5 - 重大 PL1 HTTP 分割 (要求ファイル名に CR/LF が検出されました)
921200 レベル5 - 重大 PL1 LDAP インジェクション攻撃

LFI - ローカル ファイル インクルージョン

ルール ID 異常スコアの重大度 パラノイア レベル 説明
930100 レベル5 - 重大 PL1 パス トラバーサル攻撃 (/../)
930110 レベル5 - 重大 PL1 パス トラバーサル攻撃 (/../)
930120 レベル5 - 重大 PL1 OS ファイル アクセスの試行
930130 レベル5 - 重大 PL1 制限付きファイル アクセスの試行

RFI - リモート ファイル インクルージョン

ルール ID 異常スコアの重大度 パラノイア レベル 説明
931100 レベル5 - 重大 PL1 リモート ファイル インクルード (RFI) 攻撃の可能性あり: IP アドレスを使用している URL パラメーター
931110 レベル5 - 重大 PL1 リモート ファイル インクルード (RFI) 攻撃の可能性あり: URL ペイロードと共に使用される一般的な RFI 脆弱性パラメーター名
931120 レベル5 - 重大 PL1 リモート ファイル インクルード (RFI) 攻撃の可能性あり: 末尾の疑問符 (?) と共に使用される URL ペイロード
931130 レベル5 - 重大 PL2 リモート ファイル インクルード (RFI) 攻撃の可能性あり: ドメイン外参照およびリンク

RCE - リモート コマンド実行

ルール ID 異常スコアの重大度 パラノイア レベル 説明
932100 レベル5 - 重大 PL1 リモート コマンド実行: UNIX コマンド インジェクション
932105 レベル5 - 重大 PL1 リモート コマンド実行: UNIX コマンド インジェクション
932110 レベル5 - 重大 PL1 リモート コマンド実行: Windows コマンド インジェクション
932115 レベル5 - 重大 PL1 リモート コマンド実行: Windows コマンド インジェクション
932120 レベル5 - 重大 PL1 リモート コマンド実行: Windows PowerShell コマンドが見つかりました
932130 レベル5 - 重大 PL1 リモート コマンド実行: Unix シェル式または Confluence の脆弱性 (CVE-2022-26134) が見つかりました
932140 レベル5 - 重大 PL1 リモート コマンド実行: Windows FOR/IF コマンドが見つかりました
932150 レベル5 - 重大 PL1 リモート コマンド実行: Unix コマンドの直接実行
932160 レベル5 - 重大 PL1 リモート コマンド実行: Unix シェル コードが見つかりました
932170 レベル5 - 重大 PL1 リモート コマンド実行: Shellshock (CVE-2014-6271)
932171 レベル5 - 重大 PL1 リモート コマンド実行: Shellshock (CVE-2014-6271)
932180 レベル5 - 重大 PL1 制限付きファイル アップロードの試行

PHP 攻撃

ルール ID 異常スコアの重大度 パラノイア レベル 説明
933100 レベル5 - 重大 PL1 PHP インジェクション攻撃: 開始または終了タグが見つかりました
933110 レベル5 - 重大 PL1 PHP インジェクション攻撃: PHP スクリプト ファイルのアップロードが見つかりました
933120 レベル5 - 重大 PL1 PHP インジェクション攻撃: 構成ディレクティブが見つかりました
933130 レベル5 - 重大 PL1 PHP インジェクション攻撃: 変数が見つかりました
933140 レベル5 - 重大 PL1 PHP インジェクション攻撃: I/O ストリームが見つかりました
933150 レベル5 - 重大 PL1 PHP インジェクション攻撃: 危険度の高い PHP 関数名が見つかりました
933151 レベル5 - 重大 PL2 PHP インジェクション攻撃: 危険度が中程度の PHP 関数名が見つかりました
933160 レベル5 - 重大 PL1 PHP インジェクション攻撃: 危険度の高い PHP 関数呼び出しが見つかりました
933170 レベル5 - 重大 PL1 PHP インジェクション攻撃: シリアル化されたオブジェクトの挿入
933180 レベル5 - 重大 PL1 PHP インジェクション攻撃: 可変関数呼び出しが見つかりました
933200 レベル5 - 重大 PL1 PHP インジェクション攻撃: ラッパー スキームが検出されました
933210 レベル5 - 重大 PL1 PHP インジェクション攻撃: 可変関数呼び出しが見つかりました

Node JS 攻撃

ルール ID 異常スコアの重大度 パラノイア レベル 説明
934100 レベル5 - 重大 PL1 Node.js インジェクション攻撃

XSS - クロスサイト スクリプティング

ルール ID 異常スコアの重大度 パラノイア レベル 説明
941100 レベル5 - 重大 PL1 libinjection を通じて XSS 攻撃が検出されました
941101 レベル5 - 重大 PL2 libinjection を通じて XSS 攻撃が検出されました。
このルールは 、Referer ヘッダーを使用して要求を検出します
941110 レベル5 - 重大 PL1 XSS フィルター - カテゴリ 1: スクリプト タグ ベクター
941120 レベル5 - 重大 PL1 XSS フィルター - カテゴリ 2: イベント ハンドラー ベクター
941130 レベル5 - 重大 PL1 XSS フィルター - カテゴリ 3: 属性ベクター
941140 レベル5 - 重大 PL1 XSS フィルター - カテゴリ 4: JavaScript URI ベクター
941150 レベル5 - 重大 PL2 XSS フィルター - カテゴリ 5: 許可されていない HTML 属性
941160 レベル5 - 重大 PL1 NoScript XSS InjectionChecker: HTML インジェクション
941170 レベル5 - 重大 PL1 NoScript XSS InjectionChecker: 属性インジェクション
941180 レベル5 - 重大 PL1 ノード検証コントロールのブロックリスト キーワード
941190 レベル5 - 重大 PL1 スタイル シートを使用する XSS
941200 レベル5 - 重大 PL1 VML フレームを使用する XSS
941210 レベル5 - 重大 PL1 難読化 JavaScript を使用する XSS
941220 レベル5 - 重大 PL1 難読化 VB Script を使用する XSS
941230 レベル5 - 重大 PL1 'embed' タグを使用する XSS
941240 レベル5 - 重大 PL1 'import' または 'implementation' 属性を使用する XSS
941250 レベル5 - 重大 PL1 IE XSS フィルター - 攻撃が検出されました
941260 レベル5 - 重大 PL1 'meta' タグを使用する XSS
941270 レベル5 - 重大 PL1 'link' href を使用する XSS
941280 レベル5 - 重大 PL1 'base' タグを使用する XSS
941290 レベル5 - 重大 PL1 'applet' タグを使用する XSS
941300 レベル5 - 重大 PL1 'object' タグを使用する XSS
941310 レベル5 - 重大 PL1 US-ASCII 非整形式エンコード XSS フィルター - 攻撃が検出されました
941320 レベル5 - 重大 PL2 可能性のある XSS 攻撃が検出されました - HTML タグ ハンドラー
941330 レベル5 - 重大 PL2 IE XSS フィルター - 攻撃が検出されました
941340 レベル5 - 重大 PL2 IE XSS フィルター - 攻撃が検出されました
941350 レベル5 - 重大 PL1 UTF-7 エンコード IE XSS - 攻撃が検出されました
941360 レベル5 - 重大 PL1 JavaScript の難読化が検出されました
941370 レベル5 - 重大 PL1 JavaScript のグローバル変数が見つかりました
941380 レベル5 - 重大 PL2 AngularJS クライアント側テンプレート インジェクションが検出されました

SQLI - SQL インジェクション

ルール ID 異常スコアの重大度 パラノイア レベル 説明
942100 レベル5 - 重大 PL1 libinjection を通じて SQL インジェクション攻撃が検出されました
942110 警告 - 3 PL2 SQL インジェクション攻撃:一般的なインジェクション テストが検出されました
942120 レベル5 - 重大 PL2 SQL インジェクション攻撃:SQL 演算子が検出されました
942130 レベル5 - 重大 PL2 SQL インジェクション攻撃: SQL タウトロジーが検出されました
942140 レベル5 - 重大 PL1 SQL インジェクション攻撃: 共通 DB 名が検出されました
942150 レベル5 - 重大 PL2 SQL インジェクション攻撃
942160 レベル5 - 重大 PL1 sleep() または benchmark() を使用してブラインド sqli テストを検出します
942170 レベル5 - 重大 PL1 条件付きクエリも含めて、SQL ベンチマークとスリープ インジェクション試行を検出します
942180 レベル5 - 重大 PL2 基本的な SQL 認証のバイパスの試行 1/3 を検出します
942190 レベル5 - 重大 PL1 MSSQL コード実行と情報収集の試行を検出します。
942200 レベル5 - 重大 PL2 MySQL コメント/スペース難読化インジェクションとバッククォートの終了を検出します
942210 レベル5 - 重大 PL2 チェーンされた SQL インジェクション試行 1/2 を検出します
942220 レベル5 - 重大 PL1 整数オーバーフロー攻撃を探しています。これらは、skipfish から取得されます。ただし、3.0.00738585072007e-308 は "マジック番号" クラッシュであるため除きます
942230 レベル5 - 重大 PL1 条件付き SQL インジェクション試行を検出します
942240 レベル5 - 重大 PL1 MySQL 文字セット スイッチと MSSQL DoS 試行を検出します
942250 レベル5 - 重大 PL1 MATCH AGAINST、MERGE、EXECUTE IMMEDIATE インジェクションを検出します
942260 レベル5 - 重大 PL2 基本的な SQL 認証のバイパスの試行 2/3 を検出します
942270 レベル5 - 重大 PL1 基本的な sql インジェクションを探しています。 mysql、oracle などの一般的な攻撃文字列
942280 レベル5 - 重大 PL1 Postgres pg_sleep インジェクション、waitfor delay 攻撃、データベース シャットダウン試行を検出します
942290 レベル5 - 重大 PL1 基本的な MongoDB SQL インジェクション試行を探します
942300 レベル5 - 重大 PL2 MySQL コメント、条件、および ch(a)r インジェクションを検出します
942310 レベル5 - 重大 PL2 チェーンされた SQL インジェクション試行 2/2 を検出します
942320 レベル5 - 重大 PL1 MySQL および PostgreSQL ストアド プロシージャ/関数インジェクションを検出します
942330 レベル5 - 重大 PL2 従来の SQL インジェクション プローブ 1/2 を検出します
942340 レベル5 - 重大 PL2 基本的な SQL 認証のバイパスの試行 3/3 を検出します
942350 レベル5 - 重大 PL1 MySQL UDF インジェクションと、その他のデータ/構造操作試行を検出します
942360 レベル5 - 重大 PL1 連結された基本的な SQL インジェクションと SQLLFI 試行を検出します
942361 レベル5 - 重大 PL2 キーワード alter または union に基づいて基本的な SQL インジェクションを検出します
942370 レベル5 - 重大 PL2 従来の SQL インジェクション プローブ 2/2 を検出します
942380 レベル5 - 重大 PL2 SQL インジェクション攻撃
942390 レベル5 - 重大 PL2 SQL インジェクション攻撃
942400 レベル5 - 重大 PL2 SQL インジェクション攻撃
942410 レベル5 - 重大 PL2 SQL インジェクション攻撃
942430 警告 - 3 PL2 制限された SQL 文字の異常検出 (引数): 特殊文字数が超過しました (12)
942440 レベル5 - 重大 PL2 SQL コメント シーケンスが検出されました
942450 レベル5 - 重大 PL2 SQL 16 進数エンコードが識別されました
942470 レベル5 - 重大 PL2 SQL インジェクション攻撃
942480 レベル5 - 重大 PL2 SQL インジェクション攻撃
942500 レベル5 - 重大 PL1 MySQL のインライン コメントが検出されました
942510 レベル5 - 重大 PL2 ティックまたはバックティックによる SQLi バイパス試行が検出されました

セッション固定

ルール ID 異常スコアの重大度 パラノイア レベル 説明
943100 レベル5 - 重大 PL1 可能性のあるセッション固定攻撃: HTML への Cookie 値の設定
943110 レベル5 - 重大 PL1 可能性のあるセッション固定攻撃: SessionID パラメーター名とドメイン外参照元
943120 レベル5 - 重大 PL1 可能性のあるセッション固定攻撃: 参照元のない SessionID パラメーター名

JAVA 攻撃

ルール ID 異常スコアの重大度 パラノイア レベル 説明
944100 レベル5 - 重大 PL1 リモート コマンド実行: Apache Struts、Oracle WebLogic
944110 レベル5 - 重大 PL1 ペイロード実行の可能性を検出します
944120 レベル5 - 重大 PL1 可能性のあるペイロード実行とリモート コマンド実行
944130 レベル5 - 重大 PL1 不審な Java クラス
944200 レベル5 - 重大 PL2 Java 逆シリアル化 Apache Commons の悪用
944210 レベル5 - 重大 PL2 Java シリアル化の使用の可能性
944240 レベル5 - 重大 PL2 リモート コマンド実行: Java シリアル化と Log4j の脆弱性 (CVE-2021-44228CVE-2021-45046)
944250 レベル5 - 重大 PL2 リモート コマンド実行: 疑わしい Java メソッドが検出されました

MS-ThreatIntel-WebShells

ルール ID 異常スコアの重大度 パラノイア レベル 説明
99005002 レベル5 - 重大 PL2 Web シェル相互作用の試行 (POST)
99005003 レベル5 - 重大 PL2 Web シェル アップロードの試行 (POST) - CHOPPER PHP
99005004 レベル5 - 重大 PL2 Web シェル アップロードの試行 (POST) - CHOPPER ASPX
99005005 レベル5 - 重大 PL2 Web シェル相互作用の試行
99005006 レベル5 - 重大 PL2 Spring4Shell 相互作用の試行

MS-ThreatIntel-AppSec

ルール ID 異常スコアの重大度 パラノイア レベル 説明
99030001 レベル5 - 重大 PL2 ヘッダーでのパス トラバーサル回避 (/.././../)
99030002 レベル5 - 重大 PL2 要求本文でのパス トラバーサル回避 (/.././../)

MS-ThreatIntel-SQLI

ルール ID 異常スコアの重大度 パラノイア レベル 説明
99031001 警告 - 3 PL2 SQL インジェクション攻撃:一般的なインジェクション テストが検出されました
99031002 レベル5 - 重大 PL2 SQL コメント シーケンスが検出されました
99031003 レベル5 - 重大 PL2 SQL インジェクション攻撃
99031004 レベル5 - 重大 PL2 基本的な SQL 認証のバイパスの試行 2/3 を検出します

MS-ThreatIntel-CVEs

ルール ID 異常スコアの重大度 パラノイア レベル 説明
99001001 レベル5 - 重大 PL2 既知の資格情報で F5 tmui (CVE-2020-5902) REST API の悪用が試みられました
99001002 レベル5 - 重大 PL2 Citrix NSC_USER のディレクトリ トラバーサル CVE-2019-19781 が試行されました
99001003 レベル5 - 重大 PL2 Atlassian Confluence Widget Connector の悪用 CVE-2019-3396 が試みられました
99001004 レベル5 - 重大 PL2 Pulse Secure カスタム テンプレートの悪用 CVE-2020-8243 が試みられました
99001005 レベル5 - 重大 PL2 SharePoint 型コンバーターの悪用 CVE-2020-0932 が試みられました
99001006 レベル5 - 重大 PL2 Pulse Connect のディレクトリ トラバーサル CVE-2019-11510 が試行されました
99001007 レベル5 - 重大 PL2 Junos OS J-Web ローカル ファイル インクルージョン CVE-2020-1631 が試行されました
99001008 レベル5 - 重大 PL2 Fortinet のパス トラバーサル CVE-2018-13379 が試行されました
99001009 レベル5 - 重大 PL2 Apache Struts の ognl インジェクション CVE-2017-5638 が試行されました
99001010 レベル5 - 重大 PL2 Apache Struts の ognl インジェクション CVE-2017-12611 が試行されました
99001011 レベル5 - 重大 PL2 Oracle WebLogic のパス トラバーサル CVE-2020-14882 が試行されました
99001012 レベル5 - 重大 PL2 Telerik WebUI の安全でない逆シリアル化の悪用 CVE-2019-18935 が試みられました
99001013 レベル5 - 重大 PL2 SharePoint の安全でない XML 逆シリアル化 CVE-2019-0604 が試みられました
99001014 レベル5 - 重大 PL2 Spring Cloud ルーティング式インジェクション CVE-2022-22963 が試みられました
99001015 レベル5 - 重大 PL2 Spring Framework の安全でないクラス オブジェクトの悪用 CVE-2022-22965 が試みられました
99001016 レベル5 - 重大 PL2 Spring Cloud Gateway Actuator インジェクション CVE-2022-22947 が試みられました
99001017* なし なし Apache Struts ファイル アップロードの悪用が試みられました CVE-2023-50164

* この規則のアクションは、既定でログに設定されています。アクションをブロックに設定して、Apache Struts の脆弱性を防ぎます。この規則では、異常スコアはサポートされていません。

WAF のログを確認すると、規則 ID 949110 が見つかることがあります。 この規則の説明には、"Inbound Anomaly Score Exceeded" (受信異常スコア超過) が含まれている場合があります。

この規則は、要求の合計異常スコアが最大許容スコアを超えたことを示しています。 詳細については、異常スコアリングに関する記事を参照してください。

CRS 3.0 および CRS 2.2.9 のグループと規則は、Application Gateway 上の Azure Web アプリケーション ファイアウォールではサポートされなくなりました。 DRS 2.1/ CRS 3.2 にアップグレードすることをお勧めします

3.0 ルール セット

全般

RuleId 説明
200004 可能性のあるマルチパートによる不一致の境界

KNOWN-CVES

RuleId 説明
800100 Log4j の脆弱性 (CVE-2021-44228CVE-2021-45046) を検出して軽減するための規則
800110 Spring4Shell 相互作用の試行
800111 Spring Cloud ルーティング式インジェクション - CVE-2022-22963 が試みられました
800112 Spring Framework の安全でないクラス オブジェクトの悪用 - CVE-2022-22965 が試みられました
800113 Spring Cloud Gateway Actuator インジェクション - CVE-2022-22947 が試みられました

REQUEST-911-METHOD-ENFORCEMENT

RuleId 説明
911100 メソッドがポリシーによって許可されていません

REQUEST-913-SCANNER-DETECTION

RuleId 説明
913100 セキュリティ スキャナーに関連付けられている User-Agent が検出されました
913110 セキュリティ スキャナーに関連付けられている要求ヘッダーが検出されました
913120 セキュリティ スキャナーに関連付けられている要求ファイル名/引数が検出されました
913101 スクリプティング/汎用 HTTP クライアントに関連付けられている User-Agent が検出されました
913102 Web クローラー/ボットに関連付けられている User-Agent が検出されました

REQUEST-920-PROTOCOL-ENFORCEMENT

RuleId 説明
920100 無効な HTTP 要求行
920130 要求本文を解析できませんでした
920140 マルチパートの要求本文が厳密な検証に失敗しました。
920160 Content-Length HTTP ヘッダーが数値ではありません
920170 本文コンテンツがある GET または HEAD 要求
920180 POST 要求に Content-Length ヘッダーがありません
920190 Range = 最後のバイト値が無効です
920210 複数/競合している接続ヘッダー データが見つかりました
920220 URL エンコード悪用攻撃の試行
920240 URL エンコード悪用攻撃の試行
920250 UTF8 エンコード悪用攻撃の試行
920260 Unicode 全/半角悪用攻撃の試行
920270 要求に無効な文字が含まれています (null 文字)
920280 要求にホスト ヘッダーがありません
920290 ホスト ヘッダーが空です
920310 要求に空の Accept ヘッダーがあります
920311 要求に空の Accept ヘッダーがあります
920330 User Agent ヘッダーが空です
920340 要求にコンテンツは含まれていますが、Content-Type ヘッダーがありません
920350 ホスト ヘッダーが数値 IP アドレスです
920380 要求の引数が多すぎます
920360 引数名が長すぎます
920370 引数値が長すぎます
920390 引数の合計サイズが超過しています
920400 アップロードされたファイルのサイズが大きすぎます
920410 アップロードされたファイルの合計サイズが大きすぎます
920420 要求のコンテンツ タイプがポリシーで許可されていません
920430 HTTP プロトコルのバージョンがポリシーで許可されていません
920440 URL ファイル拡張子がポリシーによって制限されています
920450 HTTP ヘッダーがポリシーによって制限されています (%@{MATCHED_VAR})
920200 範囲 = フィールドが多すぎます (6 以上)
920201 範囲 = pdf 要求のフィールドが多すぎます (35 以上)
920230 複数の URL エンコードが検出されました
920300 要求に Accept ヘッダーがありません
920271 要求に無効な文字が含まれています (印字できない文字)
920320 User Agent ヘッダーがありません
920272 要求に無効な文字が含まれています (ascii 127 より下の印字できる文字以外)
920202 範囲 = pdf 要求のフィールドが多すぎます (6 以上)
920273 要求に無効な文字が含まれています (非常に厳格なセット以外)
920274 要求ヘッダーに無効な文字が含まれています (非常に厳格なセット以外)
920460 異常なエスケープ文字

REQUEST-921-PROTOCOL-ATTACK

RuleId 説明
921100 HTTP 要求スマグリング攻撃
921110 HTTP 要求スマグリング攻撃
921120 HTTP 応答分割攻撃
921130 HTTP 応答分割攻撃
921140 ヘッダーによる HTTP ヘッダー インジェクション攻撃
921150 ペイロードによる HTTP ヘッダー インジェクション攻撃 (CR/LF 検出)
921160 ペイロードによる HTTP ヘッダー インジェクション攻撃 (CR/LF および header-name 検出)
921151 ペイロードによる HTTP ヘッダー インジェクション攻撃 (CR/LF 検出)
921170 HTTP パラメーター汚染
921180 HTTP パラメーター汚染 (% @{TX.1})

REQUEST-930-APPLICATION-ATTACK-LFI

RuleId 説明
930100 パス トラバーサル攻撃 (/../)
930110 パス トラバーサル攻撃 (/../)
930120 OS ファイル アクセスの試行
930130 制限付きファイル アクセスの試行

REQUEST-931-APPLICATION-ATTACK-RFI

RuleId 説明
931100 可能性のあるリモート ファイル インクルード (RFI) 攻撃 = IP アドレスを使用している URL パラメーター
931110 可能性のあるリモート ファイル インクルード (RFI) 攻撃 = URL ペイロードと共に使用される一般的な RFI 脆弱性パラメーター名
931120 可能性のあるリモート ファイル インクルード (RFI) 攻撃 = 末尾の疑問符 (?) と共に使用される URL ペイロード
931130 可能性のあるリモート ファイル インクルード (RFI) 攻撃 = ドメイン外参照/リンク

REQUEST-932-APPLICATION-ATTACK-RCE

RuleId 説明
932120 リモート コマンド実行 = Windows PowerShell コマンドが見つかりました
932130 Application Gateway WAF v2: リモート コマンド実行: Unix シェル式または Confluence の脆弱性 (CVE-2022-26134) または Text4Shell (CVE-2022-42889) が見つかりました

Application Gateway WAF v1: リモート コマンド実行: Unix シェル式
932140 リモート コマンド実行 = Windows FOR/IF コマンドが見つかりました
932160 リモート コマンド実行 = Unix シェル コードが見つかりました
932170 リモート コマンド実行 = Shellshock (CVE-2014-6271)
932171 リモート コマンド実行 = Shellshock (CVE-2014-6271)

REQUEST-933-APPLICATION-ATTACK-PHP

RuleId 説明
933100 PHP インジェクション攻撃 = 開始/終了タグが見つかりました
933110 PHP インジェクション攻撃 = PHP スクリプト ファイルのアップロードが見つかりました
933120 PHP インジェクション攻撃 = 構成ディレクティブが見つかりました
933130 PHP インジェクション攻撃 = 変数が見つかりました
933150 PHP インジェクション攻撃 = 危険度の高い PHP 関数名が見つかりました
933160 PHP インジェクション攻撃 = 危険度の高い PHP 関数呼び出しが見つかりました
933180 PHP インジェクション攻撃 = 可変関数呼び出しが見つかりました
933151 PHP インジェクション攻撃 = 危険度が中程度の PHP 関数名が見つかりました
933131 PHP インジェクション攻撃 = 変数が見つかりました
933161 PHP インジェクション攻撃 = 低い値の PHP 関数呼び出しが見つかりました
933111 PHP インジェクション攻撃 = PHP スクリプト ファイルのアップロードが見つかりました

REQUEST-941-APPLICATION-ATTACK-XSS

RuleId 説明
941100 libinjection を通じて XSS 攻撃が検出されました
941110 XSS フィルター - カテゴリ 1 = スクリプト タグ ベクター
941130 XSS フィルター - カテゴリ 3 = 属性ベクター
941140 XSS フィルター - カテゴリ 4 = JavaScript URI ベクター
941150 XSS フィルター - カテゴリ 5 = 許可されていない HTML 属性
941180 ノード検証コントロールのブロックリスト キーワード
941190 スタイル シートを使用する XSS
941200 VML フレームを使用する XSS
941210 難読化された JavaScript または Text4Shell を使用した XSS (CVE-2022-42889)
941220 難読化 VB Script を使用する XSS
941230 'embed' タグを使用する XSS
941240 'import' または 'implementation' 属性を使用する XSS
941260 'meta' タグを使用する XSS
941270 'link' href を使用する XSS
941280 'base' タグを使用する XSS
941290 'applet' タグを使用する XSS
941300 'object' タグを使用する XSS
941310 US-ASCII 非整形式エンコード XSS フィルター - 攻撃が検出されました
941330 IE XSS フィルター - 攻撃が検出されました
941340 IE XSS フィルター - 攻撃が検出されました
941350 UTF-7 エンコード IE XSS - 攻撃が検出されました
941320 可能性のある XSS 攻撃が検出されました - HTML タグ ハンドラー

REQUEST-942-APPLICATION-ATTACK-SQLI

RuleId 説明
942100 libinjection を通じて SQL インジェクション攻撃が検出されました
942110 SQL インジェクション攻撃:一般的なインジェクション テストが検出されました
942130 SQL インジェクション攻撃: SQL タウトロジーが検出されました
942140 SQL インジェクション攻撃 = 共通 DB 名が検出されました
942160 sleep() または benchmark() を使用してブラインド sqli テストを検出します
942170 条件付きクエリも含めて、SQL ベンチマークとスリープ インジェクション試行を検出します
942190 MSSQL コード実行と情報収集の試行を検出します。
942200 MySQL コメント/スペース難読化インジェクションとバッククォートの終了を検出します
942230 条件付き SQL インジェクション試行を検出します
942260 基本的な SQL 認証のバイパスの試行 2/3 を検出します
942270 基本的な sql インジェクションを探しています。 mysql oracle などの共通攻撃文字列
942290 基本的な MongoDB SQL インジェクション試行を探します
942300 MySQL コメント、条件、および ch(a)r インジェクションを検出します。
942310 チェーンされた SQL インジェクション試行 2/2 を検出します
942320 MySQL および PostgreSQL ストアド プロシージャ/関数インジェクションを検出します
942330 従来の SQL インジェクション プローブ 1/2 を検出します
942340 基本的な SQL 認証のバイパスの試行 3/3 を検出します
942350 MySQL UDF インジェクションと、その他のデータ/構造操作試行を検出します
942360 連結された基本的な SQL インジェクションと SQLLFI 試行を検出します
942370 従来の SQL インジェクション プローブ 2/2 を検出します
942150 SQL インジェクション攻撃
942410 SQL インジェクション攻撃
942430 制限された SQL 文字の異常検出 (引数): 特殊文字数が超過しました (12)
942440 SQL コメント シーケンスが検出されました
942450 SQL 16 進数エンコードが識別されました
942251 HAVING インジェクションを検出します
942460 メタ文字の異常検出アラート - 反復する非単語文字

REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION

RuleId 説明
943100 可能性のあるセッション固定攻撃 = HTML への Cookie 値の設定
943110 可能性のあるセッション固定攻撃 = SessionID パラメーター名とドメイン外参照元
943120 可能性のあるセッション固定攻撃 = 参照元のない SessionID パラメーター名