Azure Application Gateway の Web アプリケーション ファイアウォール (WAF) のトラブルシューティングTroubleshoot Web Application Firewall (WAF) for Azure Application Gateway

Web アプリケーション ファイアウォール (WAF) を通過する必要がある要求がブロックされている場合、いくつかのことを実行できます。There are a few things you can do if requests that should pass through your Web Application Firewall (WAF) are blocked.

最初に、WAF の概要WAF の構成に関するドキュメントを必ずお読みください。First, ensure you’ve read the WAF overview and the WAF configuration documents. また、WAF の監視を有効にしていること確認してください。これらの記事では、WAF がどのように機能するか、WAF 規則セットの仕組み、および WAF ログへのアクセス方法について説明しています。Also, make sure you’ve enabled WAF monitoring These articles explain how the WAF functions, how the WAF rule sets work, and how to access WAF logs.

WAF ログの理解Understanding WAF logs

WAF ログの目的は、WAF によって一致したかブロックされたすべての要求を示すことです。The purpose of WAF logs is to show every request that is matched or blocked by the WAF. これは、一致したかブロックされたすべての評価対象要求の台帳です。It is a ledger of all evaluated requests that are matched or blocked. ブロックしてはならない要求を WAF がブロックしていること (誤検出) に気づいた場合は、いくつかのことを実行できます。If you notice that the WAF blocks a request that it shouldn't (a false positive), you can do a few things. まず、絞り込みを行って、特定の要求を見つけます。First, narrow down, and find the specific request. ログを調べて、要求の特定の URI、タイムスタンプ、またはトランザクション ID を見つけます。Look through the logs to find the specific URI, timestamp, or transaction ID of the request. 関連するログ エントリが見つかったら、誤検出に対処することができます。When you find the associated log entries, you can begin to act on the false positives.

たとえば、WAF を通過させたい正当なトラフィックに 1=1 という文字列が含まれているとします。For example, say you have a legitimate traffic containing the string 1=1 that you want to pass through your WAF. 要求を試すと、 WAF はパラメーターまたはフィールドに 1=1 という文字列を含むトラフィックをブロックします。If you try the request, the WAF blocks traffic that contains your 1=1 string in any parameter or field. これは、SQL インジェクション攻撃に関連することが多い文字列です。This is a string often associated with a SQL injection attack. ログを調べて、要求のタイムスタンプと、ブロックされた/一致した規則を確認できます。You can look through the logs and see the timestamp of the request and the rules that blocked/matched.

次の例では、同じ要求時に (TransactionId フィールドを使用して) 4 つの規則がトリガーされていることを確認できます。In the following example, you can see that four rules are triggered during the same request (using the TransactionId field). 1 つ目は、ユーザーが要求に数値/IP URL を使用したために一致したことを示しています。これは警告であることから、これにより、異常スコアが 3 増加します。The first one says it matched because the user used a numeric/IP URL for the request, which increases the anomaly score by three since it's a warning. 一致した次の規則は 942130 で、これが探しているものです。The next rule that matched is 942130, which is the one you’re looking for. details.data フィールド内で 1=1 を確認できます。You can see the 1=1 in the details.data field. これも警告であるため、これにより異常スコアがさらに 3 増加します。This further increases the anomaly score by three again, as it's also a warning. 一般に、Matched アクションを含むすべての規則は異常スコアを増やし、この時点で異常スコアは 6 になります。Generally, every rule that has the action Matched increases the anomaly score, and at this point the anomaly score would be six. 詳細については、異常スコアリング モードに関するページをご覧ください。For more information, see Anomaly scoring mode.

最後の 2 つのログ エントリは、異常スコアが十分高いため、要求がブロックされたことを示しています。The final two log entries show the request was blocked because the anomaly score was high enough. これらのエントリには、他の 2 つとは異なるアクションがあります。These entries have a different action than the other two. それらは、要求を実際に "ブロックした" ことを示しています。They show they actually blocked the request. これらの規則は必須であり、無効にすることはできません。These rules are mandatory and can’t be disabled. これらは規則と考えるのではなく、むしろ WAF 内部のコア インフラストラクチャであると考える必要があります。They shouldn’t be thought of as rules, but more as core infrastructure of the WAF internals.

{ 
    "resourceId": "/SUBSCRIPTIONS/A6F44B25-259E-4AF5-888A-386FED92C11B/RESOURCEGROUPS/DEMOWAF_V2/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2", 
    "operationName": "ApplicationGatewayFirewall", 
    "category": "ApplicationGatewayFirewallLog", 
    "properties": { 
        "instanceId": "appgw_3", 
        "clientIp": "167.220.2.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/A6F44B25-259E-4AF5-888A-386FED92C11B/RESOURCEGROUPS/DEMOWAF_V2/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2", 
    "operationName": "ApplicationGatewayFirewall", 
    "category": "ApplicationGatewayFirewallLog", 
    "properties": { 
        "instanceId": "appgw_3", 
        "clientIp": "167.220.2.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/A6F44B25-259E-4AF5-888A-386FED92C11B/RESOURCEGROUPS/DEMOWAF_V2/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2", 
    "operationName": "ApplicationGatewayFirewall", 
    "category": "ApplicationGatewayFirewallLog", 
    "properties": { 
        "instanceId": "appgw_3", 
        "clientIp": "167.220.2.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/A6F44B25-259E-4AF5-888A-386FED92C11B/RESOURCEGROUPS/DEMOWAF_V2/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2", 
    "operationName": "ApplicationGatewayFirewall", 
    "category": "ApplicationGatewayFirewallLog", 
    "properties": { 
        "instanceId": "appgw_3", 
        "clientIp": "167.220.2.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" 
    }
}

誤検出の修正Fixing false positives

この情報と、規則 942130 が 1=1 文字列に一致した規則であるという情報を使用して、これによってトラフィックがブロックされないようにするために、いくつかのことを実行できます。With this information, and the knowledge that rule 942130 is the one that matched the 1=1 string, you can do a few things to stop this from blocking your traffic:

  • 除外リストを使用するUse an Exclusion List

    除外リストの詳細については、WAF 構成に関するページをご覧ください。See WAF configuration for more information about exclusion lists.

  • 規則を無効にする。Disable the rule.

除外リストの使用Using an exclusion list

誤検出の扱いについて情報に基づいた判断を行うには、お使いのアプリケーションで使用されるテクノロジに習熟することが重要です。To make an informed decision about handling a false positive, it’s important to familiarize yourself with the technologies your application uses. たとえば、テクノロジ スタックに SQL サーバーがなく、それらの規則に関連する誤検出が発生しているとします。For example, say there isn't a SQL server in your technology stack, and you are getting false positives related to those rules. それらの規則を無効にしても、セキュリティが低下するとは限りません。Disabling those rules doesn't necessarily weaken your security.

除外リストを使用する利点の 1 つは、要求の特定の部分のみが無効になることです。One benefit of using an exclusion list is that only a specific part of a request is being disabled. ただしこれは、グローバル設定であるために、特定の除外が、WAF を通過するすべてのトラフィックに適用されることを意味します。However, this means that a specific exclusion is applicable to all traffic passing through your WAF because it is a global setting. たとえば、1=1 が特定のアプリの本文では有効な要求であるが、他のアプリでは無効である場合、これが問題につながる可能性があります。For example, this could lead to an issue if 1=1 is a valid request in the body for a certain app, but not for others. もう 1 つの利点は、要求全体を除外するのではなく、特定の条件が満たされた場合に本文、ヘッダー、Cookie の中から除外対象を選択できることです。Another benefit is that you can choose between body, headers, and cookies to be excluded if a certain condition is met, as opposed to excluding the whole request.

直感的ではないような方法で、特定のパラメーターが WAF に渡される場合があります。Occasionally, there are cases where specific parameters get passed into the WAF in a manner that may not be intuitive. たとえば、Azure Active Directory を使用して認証するときに渡されるトークンがあります。For example, there is a token that gets passed when authenticating using Azure Active Directory. このトークン __RequestVerificationToken は通常、要求の Cookie として渡されます。This token, __RequestVerificationToken, usually get passed in as a Request Cookie. ただし、Cookie が無効になっている場合は、このトークンも要求の属性、つまり "引数" として渡されます。However, in some cases where cookies are disabled, this token is also passed as a request attribute or "arg". このような場合は、 __RequestVerificationToken を除外リストに [要求の属性名] として追加する必要もあります。If this happens, you need to ensure that __RequestVerificationToken is added to the exclusion list as a Request attribute name as well.

除外

この例では、text1 と等しい [要求の属性名] を除外しようとしています。In this example, you want to exclude the Request attribute name that equals text1. これは、次のファイアウォール ログ内で属性名を確認できるので、識別できます: data:Matched Data:1=1 found within ARGS:text1:1=1This is apparent because you can see the attribute name in the firewall logs: data: Matched Data: 1=1 found within ARGS:text1: 1=1. 属性は、text1 です。The attribute is text1. この属性名は、他のいくつかの方法で見つけることもできます。「要求の属性名の検索」をご覧ください。You can also find this attribute name a few other ways, see Finding request attribute names.

WAF 除外リスト

規則の無効化Disabling rules

誤検出を回避する別の方法は、WAF が悪意ありと判断した入力に対して一致した規則を無効にすることです。Another way to get around a false positive is to disable the rule that matched on the input the WAF thought was malicious. WAF ログを解析して規則を 942130 に絞り込んだので、Azure portal でそれを無効にすることができます。Since you've parsed the WAF logs and have narrowed the rule down to 942130, you can disable it in the Azure portal. Azure portal を使用した Web アプリケーション ファイアウォール ルールのカスタマイズ」をご覧ください。See Customize web application firewall rules through the Azure portal.

ルールを無効にする利点の 1 つは、通常はブロックされる特定の条件を含むすべてのトラフィックが有効なトラフィックであるとわかっている場合に、WAF 全体でその規則を無効にできることです。One benefit of disabling a rule is that if you know all traffic that contains a certain condition that will normally be blocked is valid traffic, you can disable that rule for the entire WAF. ただし、特定のユース ケースでのみ有効なトラフィックである場合、これはグローバル設定であるために、WAF 全体で規則を無効にすることで脆弱性が発生します。However, if it’s only valid traffic in a specific use case, you open up a vulnerability by disabling that rule for the entire WAF since it is a global setting.

Azure PowerShell を使用する場合は、「PowerShell を使用した Web アプリケーション ファイアウォール ルールのカスタマイズ」をご覧ください。If you want to use Azure PowerShell, see Customize web application firewall rules through PowerShell. Azure CLI を使用する場合は、「Azure CLI を使用した Web アプリケーション ファイアウォール ルールのカスタマイズ」をご覧ください。If you want to use Azure CLI, see Customize web application firewall rules through the Azure CLI.

WAF の規則

要求の属性名の検索Finding request attribute names

Fiddler を利用して、個々の要求を検査し、Web ページのどの特定のフィールドが呼び出されているかを判別します。With the help of Fiddler, you inspect individual requests and determine what specific fields of a web page are called. これは、除外リストを使用して検査から特定のフィールドを除外するのに役立ちます。This can help to exclude certain fields from inspection using Exclusion Lists.

この例では、1=1 文字列が入力されたフィールドが text1 と呼ばれることを確認できます。In this example, you can see that the field where the 1=1 string was entered is called text1.

Fiddler

これは、除外できるフィールドです。This is a field you can exclude. 除外リストの詳細については、「Web アプリケーション ファイアウォール要求サイズ制限と除外リスト」をご覧ください。To learn more about exclusion lists, See Web application firewall request size limits and exclusion lists. この場合、次の除外を構成することで、評価を除外することができます。You can exclude the evaluation in this case by configuring the following exclusion:

WAF の除外

ファイアウォールのログを調べて、除外リストに追加する必要があるものを確認するための情報を取得することもできます。You can also examine the firewall logs to get the information to see what you need to add to the exclusion list. ログ記録を有効にするには、「Application Gateway のバックエンドの正常性、診断ログ、およびメトリック」をご覧ください。To enable logging, see Back-end health, diagnostic logs, and metrics for Application Gateway.

ファイアウォール ログを調べて、検査対象の要求が発生した時間について PT1H.json ファイルを確認します。Examine the firewall log and view the PT1H.json file for the hour that the request you want to inspect occurred.

この例では、同じ TransactionID を持つ 4 つの規則があり、すべてがまったく同時に発生していることがわかります。In this example, you can see that you have four rules with the same TransactionID, and that they all occurred at the exact same time:

-   {
-       "resourceId": "/SUBSCRIPTIONS/A6F44B25-259E-4AF5-888A-386FED92C11B/RESOURCEGROUPS/DEMOWAF_V2/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
-       "operationName": "ApplicationGatewayFirewall",
-       "category": "ApplicationGatewayFirewallLog",
-       "properties": {
-           "instanceId": "appgw_3",
-           "clientIp": "167.220.2.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/A6F44B25-259E-4AF5-888A-386FED92C11B/RESOURCEGROUPS/DEMOWAF_V2/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
-       "operationName": "ApplicationGatewayFirewall",
-       "category": "ApplicationGatewayFirewallLog",
-       "properties": {
-           "instanceId": "appgw_3",
-           "clientIp": "167.220.2.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/A6F44B25-259E-4AF5-888A-386FED92C11B/RESOURCEGROUPS/DEMOWAF_V2/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
-       "operationName": "ApplicationGatewayFirewall",
-       "category": "ApplicationGatewayFirewallLog",
-       "properties": {
-           "instanceId": "appgw_3",
-           "clientIp": "167.220.2.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/A6F44B25-259E-4AF5-888A-386FED92C11B/RESOURCEGROUPS/DEMOWAF_V2/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/DEMOWAF-V2",
-       "operationName": "ApplicationGatewayFirewall",
-       "category": "ApplicationGatewayFirewallLog",
-       "properties": {
-           "instanceId": "appgw_3",
-           "clientIp": "167.220.2.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 アプリケーション ファイアウォール」を参照) を理解すると、 action:Blocked プロパティを持つ下部の 2 つの規則が、合計異常スコアに基づいてブロックしていることがわかります。With your knowledge of how the CRS rule sets work, and that the CRS ruleset 3.0 works with an anomaly scoring system (see Web application firewall for Azure Application Gateway) you know that the bottom two rules with the action: Blocked property are blocking based on the total anomaly score. 注目すべき規則は、上部の 2 つです。The rules to focus on are the top two.

最初のエントリは、ユーザーが数値 IP アドレスを使用して Application Gateway に移動したためにログ記録されています。この場合、これは無視できます。The first entry is logged because the user used a numeric IP address to navigate to the Application Gateway, which can be ignored in this case.

興味深いのは 2 つ目 (規則 942130) です。The second one (rule 942130) is the interesting one. これがパターン (1=1) と一致したことと、フィールドが text1 という名前であることを詳細で確認できます。You can see in the details that it matched a pattern (1=1), and the field is named text1. 前と同じ手順に従って、1=1 と等しい [要求の属性名] を除外します。Follow the same previous steps to exclude the Request Attribute Name that equals 1=1.

要求ヘッダー名の検索Finding request header names

Fiddler は、要求ヘッダー名を検索する場合にも便利なツールです。Fiddler is a useful tool once again to find request header names. 次のスクリーン ショットで、Content-typeUser-Agent などを含む、この GET 要求のヘッダーを確認できます。In the following screenshot, you can see the headers for this GET request, which include Content-Type, User-Agent, and so on.

Fiddler

要求ヘッダーと応答ヘッダーを表示する別の方法は、Chrome のデベロッパー ツール内で調べることです。Another way to view request and response headers is to look inside the developer tools of Chrome. F12 を押すか、右クリック -> [検証] -> [デベロッパー ツール] を選択して、 [Network] タブを選択します。Web ページを読み込み、検査する要求をクリックします。You can press F12 or right-click -> Inspect -> Developer Tools, and select the Network tab. Load a web page, and click the request you want to inspect.

Chrome での F12

要求に Cookie が含まれている場合、 [Cookie] タブを選択して、Fiddler でそれらを表示できます。If the request contains cookies, the Cookies tab can be selected to view them in Fiddler.

グローバル パラメーターを制限して誤検出を排除するRestrict global parameters to eliminate false positives

  • 要求本文の検査の無効化Disable request body inspection

    [要求本文の検査] をオフに設定すると、お使いの WAF で、すべてのトラフィックの要求本文が評価されなくなります。By setting Inspect request body to off, the request bodies of all traffic will not be evaluated by your WAF. これは、要求本文がお使いのアプリケーションに対して有害ではないことがわかっている場合に役立つ可能性があります。This may be useful if you know that the request bodies aren’t malicious to your application.

    このオプションを無効にすると、要求本文のみが検査されません。By disabling this option, only the request body is not inspected. 除外リストの機能を使用して個々のヘッダーや Cookie を除外しない限り、それらは依然として検査されます。The headers and cookies remain inspected, unless individual ones are excluded using the exclusion list functionality.

  • ファイル サイズ制限File size limits

    お使いの WAF のファイル サイズを制限することで、Web サーバーへの攻撃の可能性が限定されます。By limiting the file size for your WAF, you’re limiting the possibility of an attack happening to your web servers. 大きなファイルのアップロードを許可すると、バックエンドに過負荷がかかるリスクが高まります。By allowing large files to be uploaded, the risk of your backend being overwhelmed increases. ファイル サイズをアプリケーションの通常のユース ケースに制限することも、攻撃を防ぐ方法の 1 つです。Limiting the file size to a normal use case for your application is just another way to prevent attacks.

    注意

    特定のサイズを超えるファイルのアップロードがアプリで全く必要ないことがわかっている場合は、上限を設定することでそれを制限できます。If you know that your app will never need any file upload above a given size, you can restrict that by setting a limit.

次の手順Next steps

Application Gateway で Web アプリケーション ファイアウォールを構成する方法に関するページをご覧ください。See How to configure web application firewall on Application Gateway.