まとめ
この記事は、正当な要求がブロックされている場合のAzure Application GatewayのWeb Application Firewall (WAF) のトラブルシューティングに役立ちます。そのため、保護を維持しながら有効なトラフィックを許可できます。
まず、 WAF の概要 と WAF の構成 に関するドキュメントを確認し、 WAF の監視 が有効になっていることを確認します。 これらの記事では、WAF の動作方法、ルール セットの動作方法、WAF ログへのアクセス方法について説明します。
OWASP規則セットは、初期状態で厳格に設定されており、WAFを使用するアプリケーションまたは組織の特定のニーズに合わせて調整可能です。 除外、カスタム ルールを作成したり、問題や誤検知を引き起こす可能性のあるルールを無効にしたりすることは、完全に正常であり、多くの場合に期待されます。 サイトごとおよび URI ごとのポリシーを使用すると、これらの変更が特定のサイトまたは URI にのみ影響を与えます。 そのため、変更は、同じ問題が発生していない可能性がある他のサイトに影響を与えるべきではありません。
WAF ログを理解する
WAF ログの目的は、WAF が一致またはブロックするすべての要求を表示することです。 これは、一致またはブロックされたすべての評価された要求の台帳です。 WAF がブロックすべきではない要求 (誤検知) に気付いた場合は、いくつかの手順を実行できます。 まず、特定の要求を絞り込んで見つけます。 ログを確認して、要求の特定の URI、タイムスタンプ、またはトランザクション ID を見つけます。 関連するログ エントリが見つかると、誤検知に対する対処を開始できます。
たとえば、WAF を通過する文字列 1=1 を含む正当なトラフィックがあるとします。 要求を試すと、WAF はパラメーターまたはフィールドに 1=1 文字列を含むトラフィックをブロックします。 これは SQL インジェクション攻撃によく関係している文字列です。 ログを調べて、要求のタイムスタンプと、ブロックまたは一致したルールを確認できます。
次の例では、(TransactionId フィールドを使用して) 同じ要求中に 4 つのルールがトリガーされることがわかります。 1 つ目は、ユーザーが要求に数値 IP アドレスを使用したために一致したと述べています。これは、警告であるため、異常スコアを 3 つ増やします。 次に一致したルールは 942130 です。これは探しているルールです。 [1=1] フィールドにdetails.dataが表示されます。 これにより、異常スコアは再び3点増加します。これは警告でもあるためです。 一般に、 一致 アクションを持つすべてのルールによって異常スコアが増加し、この時点で異常スコアは 6 になります。 詳細については、「 異常スコアリング モード」を参照してください。
最後の 2 つのログ エントリは、異常スコアが十分に高かったために要求がブロックされたことを示しています。 これらのエントリのアクションは、他の 2 つのエントリとは異なります。 実際に要求を ブロック していることを示します。 これらのルールは必須であり、無効にすることはできません。 これらのルールはルールではなく、WAF 内部のコア インフラストラクチャと考えてください。
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "920350",
"message": "Host header is a numeric IP address",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"^[\\\\\\\\d.:]+$\\\" at REQUEST_HEADERS:Host. ",
"data": "40.90.218.160",
"file": "rules\/REQUEST-920-PROTOCOL-ENFORCEMENT.conf\\\"",
"line": "791"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "942130",
"message": "SQL Injection Attack: SQL Tautology Detected.",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"(?i:([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)([\\\\\\\\d\\\\\\\\w]++)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)(?:(?:=|\\u003c=\\u003e|r?like|sounds\\\\\\\\s+like|regexp)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)\\\\\\\\2|(?:!=|\\u003c=|\\u003e=|\\u003c\\u003e|\\u003c|\\u003e|\\\\\\\\^|is\\\\\\\\s+not|not\\\\\\\\s+like|not\\\\\\\\s+regexp)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)(?!\\\\\\\\2)([\\\\\\\\d\\\\\\\\w]+)))\\\" at ARGS:text1. ",
"data": "Matched Data: 1=1 found within ARGS:text1: 1=1",
"file": "rules\/REQUEST-942-APPLICATION-ATTACK-SQLI.conf\\\"",
"line": "554"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "",
"ruleSetVersion": "",
"ruleId": "0",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Score: 8)",
"action": "Blocked",
"site": "Global",
"details": {
"message": "Access denied with code 403 (phase 2). Operator GE matched 5 at TX:anomaly_score. ",
"data": "",
"file": "rules\/REQUEST-949-BLOCKING-EVALUATION.conf\\\"",
"line": "57"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "",
"ruleSetVersion": "",
"ruleId": "0",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Inbound Score: 8 - SQLI=5,XSS=0,RFI=0,LFI=0,RCE=0,PHPI=0,HTTP=0,SESS=0): SQL Injection Attack: SQL Tautology Detected.",
"action": "Blocked",
"site": "Global",
"details": {
"message": "Warning. Operator GE matched 5 at TX:inbound_anomaly_score. ",
"data": "",
"file": "rules\/RESPONSE-980-CORRELATION.conf\\\"",
"line": "73"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
誤検知を修正する
この情報とルール 942130 が 1=1 文字列と一致したという知識があれば、この規則がトラフィックをブロックするのを防ぐいくつかの手順を実行できます。
除外リストを使用します。 除外リストの詳細については、「WAF の 除外リスト」を参照してください。
ルールを無効にします。
パラノイア レベル 2 の誤検知を軽減する
OWASP CRS 3.2 では、SQL インジェクション規則 942430、 942440、および 942450 は Paranoia Level 2 (PL2) に属しています。 WAF ログに、正当な認証要求がこれらの規則のいずれかに一致したことが示されている場合は、除外を追加する前に、投稿要求フィールドを特定します。 要求が正当であることを確認し、その規則 ID と構成済みの規則セットを識別します。 説明とバージョン固有の置換については、 WAF 規則グループと規則に関するページを参照してください。 この例に従うためだけに、非アクティブなルールを有効にしたり、ルール セットを変更したりしないでください。
- Log Analyticsで、診断設定がファイアウォール ログを
AzureDiagnosticsテーブルに送信する場合は、次のクエリを使用します。 リソース ID と時間範囲を、調査中のゲートウェイと間隔に置き換えます。 これらのログには、機密性の高い要求データを含めることができます。では、フィールド値や認証トークンは共有されません。
次のクエリを実行します。
AzureDiagnostics
| where TimeGenerated > ago(1h)
| where _ResourceId =~ "<application-gateway-resource-id>"
| where Category == "ApplicationGatewayFirewallLog"
| where ruleId_s in ("942430", "942440", "942450")
| project TimeGenerated, transactionId_g, requestUri_s,
ruleId_s, action_s, details_message_s, details_data_s
| order by TimeGenerated desc
- 失敗しているリクエストのトランザクションを特定します。 貢献するルールはアクション
Matchedを持つことができますが、別の異常スコアリング ルールによってトランザクションがブロックされます。 そのトランザクションのすべての一致を検査するには、ルール ID フィルターをtransactionId_gのフィルターに置き換えます。 寄与ルールではなく、異常スコアリングルールを除外しないでください。 - 確認された誤検知の場合は、特定のフィールドに対して除外を構成し、貢献するルール ID のみを構成します。 ルールごとの除外には、OWASP CRS 3.2 など、サポートされている WAF ポリシー ルールセットが必要です。 フィールド セレクターに
Equalsを使用し、他のルールと既存のポリシー設定を保持します。 ルール単位の CLI および PowerShell の手順とルールごとの除外の例を参照してください。 ルールの検出については、 PowerShell カスタマイズ ガイド と CLI カスタマイズ ガイドを参照してください。 - ポリシーを読み戻して、除外に目的のルール セットのバージョン、グループ、ルール ID、一致変数、セレクターが含まれていることを確認します。 そのフィールドを既にカバーしているグローバル除外は引き続き適用されます。より狭い除外を追加しても削除されません。 すべての除外をクリアするのではなく、既存の広範な除外を個別に確認します。
- 同じ正当な要求を繰り返し、その応答と新しいトランザクション ログを確認します。 選択したルールが除外されたフィールドと一致しなくなったかどうかを確認し、要求がブロックされたままの場合は、他の投稿ルールを調査します。 トラフィックが再現されず、診断収集が機能しない空のクエリでは、成功は確立されません。 制御されたテスト環境で、関連のないフィールドが検査されたままであることを検証します。
3 つの ID すべてまたはすべての認証フィールドを自動的に除外しないでください。 この対象となる変更については、WAF を防止モードのままにします。 元に戻す必要がある場合は、ポリシーを確認した後に追加したルールスコープの除外のみを削除します。既存の除外を保持します。
除外リストを使用する
誤検知の処理に関する情報に基づいた意思決定を行うには、アプリケーションで使用されるテクノロジを理解してください。 たとえば、テクノロジ スタックに SQL サーバーが含まれていない場合に、それらの規則に関連する誤検知を受けている場合、それらの規則を無効にしても、セキュリティが必ずしも弱まるわけではありません。
除外では、選択した要求属性が検査から除外されます。 グローバル除外はすべての管理対象ルールに適用されますが、ルールごとの除外は、サポートされているルールセット内の選択したルールにのみ適用されます。 両方とも WAF ポリシーが関連付けられている場所に適用されるため、ポリシーを変更する前に、ポリシーのアプリケーションとパスを確認してください。 たとえば、フィールドを除外すると、 1= 1 が 1 つのアプリケーションに対して有効であり、ポリシーを共有する別のアプリケーションでは有効でない場合にリスクが発生する可能性があります。 要求全体を除外する場合は、狭い範囲の除外を選択します。
場合によっては、直感的ではない方法で特定のパラメーターが WAF に渡されることがあります。 たとえば、Microsoft Entra IDを使用して認証するときに渡されるトークンがあります。
__RequestVerificationToken は通常、要求 Cookie として渡されます。 ただし、Cookie が無効になっている場合、このトークンは要求属性または argとしても渡されます。 このような場合は、 __RequestVerificationToken が 要求属性名 として除外リストに追加されるようにする必要があります。
この例では、text1 と等しい要求属性名を除外します。 この属性名は、ファイアウォール ログに属性名 ( data: Matched Data: 1=1 found within ARGS:text1: 1=1) が表示されるため、明らかです。 属性は text1 です。 この属性名は、他のいくつかの方法でも確認できます。要求 属性名の検索を参照してください。
Application Gateway では、さまざまなスコープ レベルで WAF の除外を作成できます。 詳細については、「Web Application Firewall除外リストを参照してください。
ルールを無効にする
誤検知を処理するもう 1 つの方法は、WAF が悪意があると考えた入力に一致するルールを無効にすることです。 WAF ログを解析し、ルールを 942130 に絞り込んだので、Azure ポータルで無効にすることができます。 Azure ポータルを使用して Web アプリケーション ファイアウォール規則をカスタマイズするを参照してください。
通常ブロックされている特定の条件を含むすべてのトラフィックが有効なトラフィックであることがわかっている場合は、WAF 全体に対してそのルールを無効にすることができます。 ただし、特定のユース ケースで有効なトラフィックのみである場合は、グローバル設定であるため、WAF 全体に対してそのルールを無効にすることで脆弱性を開きます。
Azure PowerShellを使用するには、「PowerShell を使用して Web アプリケーション ファイアウォール規則をカスタマイズする」を参照してください。 Azure CLIを使用するには、Azure CLIを使用した Web アプリケーション ファイアウォール規則のカスタマイズに関するページを参照してください。
HAR ファイルを記録する
ブラウザーまたは Fiddler などの外部ツールを使用して、HTTP アーカイブ (HAR) ファイルを記録できます。 HAR ファイルには、Web ページを読み込むときにブラウザーが行う要求と応答に関する情報が含まれています。 この情報は、WAF の問題のトラブルシューティングに役立ちます。
ヒント
サポートに問い合わせるときは、HAR ファイルを準備することをお勧めします。 サポート チームは HAR ファイルを使用して問題の診断に役立てることができます。
HAR ファイルをMicrosoft Edgeに記録して保存するには、次の手順に従います。
F12 または Ctrl+Shift+I を押して、Edge の開発者ツールを開きます。 ツール バー メニューの [その他のツール] >開発者ツールでツールを開くこともできます。
[ コンソール ] タブで、[ コンソールのクリア ] を選択するか、 Ctrl キーを押しながら L キーを押します。
[ ネットワーク ] タブを選択します。
[ ネットワーク ログのクリア] を選択するか、 Ctrl キーを押しながら L キーを押し、記録していない場合は [ ネットワーク ログの記録 ] を選択します。
WAF で保護されている、トラブルシューティング対象の Web ページを開きます。
[ネットワーク ログの記録の停止] を選択して 、記録を停止します。
[ HAR のエクスポート (サニタイズ済み)]を 選択し、HAR ファイルを保存します。
要求属性名を検索する
Fiddler を使用して個々の要求を検査し、Web ページの特定のフィールドが呼び出されているかを判断します。 この情報を使用すると、除外リストを使用して特定のフィールドを検査から除外できます。
この例では、 1= 1 の文字列が入力されたフィールドが text1 と呼ばれることがわかります。
これは除外できるフィールドです。 除外リストの詳細については、Web アプリケーション ファイアウォールの除外リストに関するページを参照してください。 この場合、次の除外を構成することで、評価を除外できます。
ファイアウォール ログを調べて情報を取得し、除外リストに追加する必要がある内容を確認することもできます。 ログ記録を有効にするには、 Application Gateway のバックエンドの正常性、リソース ログ、メトリックを参照してください。
ファイアウォール ログを調べて、検査する要求が発生した時間の PT1H.json ファイルを表示します。
この例では、同じ TransactionID を持つ 4 つのルールがあり、すべてがまったく同時に発生していることがわかります。
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "920350",
"message": "Host header is a numeric IP address",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"^[\\\\\\\\d.:]+$\\\" at REQUEST_HEADERS:Host. ",
"data": "40.90.218.160",
"file": "rules\/REQUEST-920-PROTOCOL-ENFORCEMENT.conf\\\"",
"line": "791"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "942130",
"message": "SQL Injection Attack: SQL Tautology Detected.",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"(?i:([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)([\\\\\\\\d\\\\\\\\w]++)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)(?:(?:=|\\u003c=\\u003e|r?like|sounds\\\\\\\\s+like|regexp)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)\\\\\\\\2|(?:!=|\\u003c=|\\u003e=|\\u003c\\u003e|\\u003c|\\u003e|\\\\\\\\^|is\\\\\\\\s+not|not\\\\\\\\s+like|not\\\\\\\\s+regexp)([\\\\\\\\s'\\\\\\\"`\\\\\\\\(\\\\\\\\)]*?)(?!\\\\\\\\2)([\\\\\\\\d\\\\\\\\w]+)))\\\" at ARGS:text1. ",
"data": "Matched Data: 1=1 found within ARGS:text1: 1=1",
"file": "rules\/REQUEST-942-APPLICATION-ATTACK-SQLI.conf\\\"",
"line": "554"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "",
"ruleSetVersion": "",
"ruleId": "0",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Score: 8)",
"action": "Blocked",
"site": "Global",
"details": {
"message": "Access denied with code 403 (phase 2). Operator GE matched 5 at TX:anomaly_score. ",
"data": "",
"file": "rules\/REQUEST-949-BLOCKING-EVALUATION.conf\\\"",
"line": "57"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
{
"resourceId": "/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_3",
"clientIp": "203.0.113.139",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "",
"ruleSetVersion": "",
"ruleId": "0",
"message": "Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded (Total Inbound Score: 8 - SQLI=5,XSS=0,RFI=0,LFI=0,RCE=0,PHPI=0,HTTP=0,SESS=0): SQL Injection Attack: SQL Tautology Detected.",
"action": "Blocked",
"site": "Global",
"details": {
"message": "Warning. Operator GE matched 5 at TX:inbound_anomaly_score. ",
"data": "",
"file": "rules\/RESPONSE-980-CORRELATION.conf\\\"",
"line": "73"
},
"hostname": "vm000003",
"transactionId": "AcAcAcAcAKH@AcAcAcAcAyAt"
}
}
CRS ルールセットの仕組み、そして CRS ルールセット 3.0 が異常スコアリングシステムを使用していることを知っていれば(Azure Application Gateway の Web Application Firewallを参照)、action: Blocked プロパティの最後の 2 つのルールが異常スコアの合計に基づいてブロックされていることがわかるはずです。 注目するルールは上位 2 つです。
ユーザーが数値 IP アドレスを使用して Application Gateway に移動したため、最初のエントリがログに記録されます。この場合は無視できます。
2 番目のエントリ (ルール 942130) は、パターン (1=1)と一致し、フィールドの名前は text1 であるため、詳細に表示されます。 同じ前の手順に従って、と等しいtext1を除外します。
要求ヘッダー名の検索
Fiddler を使用して要求ヘッダー名を検索します。 次のスクリーンショットでは、この GET 要求のヘッダー ( Content-Type、User-Agent、およびその他 のヘッダーを含む) を確認できます。
Microsoft Edgeまたは Google Chrome の開発者ツールを使用して、要求ヘッダーと応答ヘッダーを表示することもできます。 詳細については、 HAR ファイルの記録を参照してください。
リクエストクッキーの名前を見つける
要求に Cookie が含まれている場合、[Cookie] タブを選択して Fiddler で表示します。
グローバル パラメーターを制限して誤検知をなくす
要求本文の検査を無効にする
リクエスト本文の検査をオフにすると、WAF はトラフィックのリクエスト本文を検査しません。 この設定は、要求本文がアプリケーションに対して悪意を持たないことがわかっている場合に便利です。
このオプションを無効にすると、要求本文のみが検査をバイパスします。 除外リスト機能を使用して個々のヘッダーと Cookie を除外しない限り、ヘッダーと Cookie は引き続き検査されます。
リクエスト本文の最大値制限を無効にする
最大要求本文の制限を無効にすると、WAF はサイズ制限を超えた場合に拒否することなく、大きな要求本文を処理できます。 この設定は、定期的に大量の要求がある場合に便利です。
このオプションを無効にすると、要求本文は最大要求本文検査制限までしか検査されません。 要求に最大要求本文検査制限を超える悪意のあるコンテンツがある場合、WAF はそれを検出しません。
最大ファイル サイズ制限を無効にする
WAF のファイル サイズ制限を無効にすると、WAF がこれらのファイルのアップロードを拒否することなく、大きなファイルをアップロードできます。 大きなファイルをアップロードできるようにすることで、バックエンドが圧倒されるリスクが高まります。 ファイルアップロードできる最大サイズがわかっている場合は、予想される最大サイズをわずかに上回るファイルアップロードのサイズ制限を設定します。 ファイル サイズをアプリケーションの通常のユース ケースに制限することは、攻撃を防ぐもう 1 つの方法です。 ただし、ファイルのアップロードが、強制可能な最大ファイル アップロード サイズ制限を定期的に超えている場合は、誤検知を回避するために、ファイル アップロード サイズの制限を完全に無効にする必要がある場合があります。
注
アプリで特定のサイズを超えるファイルのアップロードが必要ないことがわかっている場合は、制限を設定することで、そのサイズを制限できます。
Warnung
WAF ポリシーに新しいマネージド ルールセットを割り当てると、ルールの状態、ルール アクション、ルール レベルの除外など、既存のマネージド ルールセットから以前のすべてのカスタマイズが、新しいマネージド ルールセットの既定値にリセットされます。 ただし、カスタムルール、ポリシー設定、グローバル除外は、新しいルールセットの割り当て中に影響を受けません。
ファイアウォール メトリック (WAF v1 のみ)
v1 Web アプリケーション ファイアウォールの場合、ポータルは次のメトリックを提供するようになりました。
- Web Application Firewall ブロックされた要求数 ブロックされている要求の数。
- Web Application Firewall[ブロックされたルール数] 一致するすべてのルールがブロックされ、要求がブロックされます。
- Web Application Firewall評価中に一致するすべてのルールの合計分布です。
メトリックを有効にするには、ポータルで [メトリック] タブを選んで、3 つのメトリックのいずれかを選びます。