Azure Application Gateway の Web アプリケーション ファイアウォールWeb application firewall for Azure Application Gateway

Azure Application Gateway は、一般的な脆弱性やその悪用から Web アプリケーションを一元的に保護する Web アプリケーション ファイアウォール (WAF) を提供します。Azure Application Gateway offers a web application firewall (WAF) that provides centralized protection of your web applications from common exploits and vulnerabilities. Web アプリケーションが、一般的な既知の脆弱性を悪用した悪意のある攻撃の標的になるケースが増えています。Web applications are increasingly targeted by malicious attacks that exploit commonly known vulnerabilities. よくある攻撃の例として、SQL インジェクションやクロスサイト スクリプティングが挙げられます。SQL injection and cross-site scripting are among the most common attacks.

アプリケーション コードでのこのような攻撃の阻止は困難です。Preventing such attacks in application code is challenging. アプリケーション トポロジの複数の層で厳格な保守、パッチ適用、監視が必要になる場合があります。It can require rigorous maintenance, patching, and monitoring at multiple layers of the application topology. Web アプリケーション ファイアウォールを一元化することで、セキュリティの管理がはるかに簡単になります。A centralized web application firewall helps make security management much simpler. また、WAF を使用すると、アプリケーション管理者にとっては脅威や侵入に対する保護がより確実になります。A WAF also gives application administrators better assurance of protection against threats and intrusions.

WAF のソリューションでは、個々の Web アプリケーションをセキュリティで保護するのではなく、一元的に既知の脆弱性の修正プログラムを適用することで、さらに迅速にセキュリティの脅威に対応できます。A WAF solution can react to a security threat faster by centrally patching a known vulnerability, instead of securing each individual web application. 既存の アプリケーション ゲートウェイは、ファイアウォール対応のアプリケーション ゲートウェイに簡単に変換できます。Existing application gateways can easily be converted into fire wall-enabled application gateways.

Application Gateway の WAF は、OWASP (Open Web Application Security Project) のコア ルール セット (CRS) 3.0 または 2.2.9 に基づいています。The Application Gateway WAF is based on Core Rule Set (CRS) 3.0 or 2.2.9 from the Open Web Application Security Project (OWASP). WAF は、追加構成を必要とすることなく、新たな脆弱性に対する保護を含めるために自動的に更新します。The WAF automatically updates to include protection against new vulnerabilities, with no additional configuration needed.

Application Gateway の WAF の図

Application Gateway は、アプリケーション配信コントローラー (ADC) として機能します。Application Gateway operates as an application delivery controller (ADC). Application Gateway は、アプリケーション配信コントローラー (ADC) として機能します。 Secure Sockets Layer (SSL) ターミネーション、Cookie ベースのセッション アフィニティ、ラウンドロビンの負荷分散、コンテンツ ベースのルーティング、複数の Web サイトをホストする機能、セキュリティ強化機能を提供します。It offers Secure Sockets Layer (SSL) termination, cookie-based session affinity, round-robin load distribution, content-based routing, ability to host multiple websites, and security enhancements.

Application Gateway によるセキュリティの強化には、SSL ポリシーの管理、エンド ツー エンド SSL のサポートが含まれます。Application Gateway security enhancements include SSL policy management and end-to-end SSL support. アプリケーション セキュリティは、WAF を Application Gateway に統合することによって強化されています。Application security is strengthened by WAF integration into Application Gateway. この組み合わせにより、Web アプリケーションが一般的な脆弱性から保護されます。The combination protects your web applications against common vulnerabilities. また、管理するための構成を、1 か所で簡単に設定できます。And it provides an easy-to-configure central location to manage.

メリットBenefits

このセクションでは、Application Gateway とその WAF によって得られる主なメリットについて説明します。This section describes the core benefits that Application Gateway and its WAF provide.

保護Protection

  • バックエンド コードを変更しなくても、Web アプリケーションを Web の脆弱性および攻撃から保護できます。Protect your web applications from web vulnerabilities and attacks without modification to back-end code.

  • 同時に複数の Web アプリケーションを保護できます。Protect multiple web applications at the same time. Application Gateway のインスタンスは、Web アプリケーション ファイアウォールによって保護されている最大 100 個の Web サイトをホストできます。An instance of Application Gateway can host of up to 100 websites that are protected by a web application firewall.

監視Monitoring

  • リアルタイムの WAF ログを使用して、Web アプリケーションに対する攻撃を監視できます。Monitor attacks against your web applications by using a real-time WAF log. このログは Azure Monitor と統合されているため、WAF のアラートを追跡し、傾向を簡単に監視できます。The log is integrated with Azure Monitor to track WAF alerts and easily monitor trends.

  • Application Gateway の WAF は Azure Security Center と統合されています。The Application Gateway WAF is integrated with Azure Security Center. Security Center は、すべての Azure リソースのセキュリティ状態を一元的に表示します。Security Center provides a central view of the security state of all your Azure resources.

カスタマイズCustomization

  • ご使用のアプリケーションの要件に合わせて WAF の規則と規則グループをカスタマイズし、誤検出を排除できます。You can customize WAF rules and rule groups to suit your application requirements and eliminate false positives.

機能Features

  • SQL インジェクションからの保護。SQL-injection protection.
  • クロスサイト スクリプティングからの保護。Cross-site scripting protection.
  • その他の一般的な Web 攻撃からの保護 (コマンド インジェクション、HTTP 要求スマグリング、HTTP レスポンス スプリッティング、リモート ファイル インクルードなど)。Protection against other common web attacks, such as command injection, HTTP request smuggling, HTTP response splitting, and remote file inclusion.
  • HTTP プロトコル違反に対する保護。Protection against HTTP protocol violations.
  • HTTP プロトコル異常に対する保護 (ホスト ユーザー エージェントと承認ヘッダーが見つからない場合など)。Protection against HTTP protocol anomalies, such as missing host user-agent and accept headers.
  • ボット、クローラー、スキャナーに対する保護。Protection against bots, crawlers, and scanners.
  • 一般的なアプリケーション構成ミスの検出 (Apache や IIS など)。Detection of common application misconfigurations (for example, Apache and IIS).
  • 下限と上限を指定した、構成可能な要求サイズ制限。Configurable request size limits with lower and upper bounds.
  • 除外リストを使用すると、WAF の評価から特定の要求属性を省略できます。Exclusion lists let you omit certain request attributes from a WAF evaluation. 一般的な例として、認証フィールドまたはパスワード フィールドにおいて使用される、Active Directory で挿入されたトークンが挙げられます。A common example is Active Directory-inserted tokens that are used for authentication or password fields.

コア ルール セットCore rule sets

Application Gateway では、CRS 3.0 と CRS 2.2.9 の 2 つのルール セットをサポートします。Application Gateway supports two rule sets, CRS 3.0 and CRS 2.2.9. これらの規則は、悪意のあるアクティビティから Web アプリケーションを保護します。These rules protect your web applications from malicious activity.

Application Gateway の WAF は、既定で CRS 3.0 を使用するように事前構成されています。The Application Gateway WAF comes preconfigured with CRS 3.0 by default. ただし、代わりに CRS 2.2.9 を使用することも選択できます。But you can choose to use CRS 2.2.9 instead. CRS 3.0 では、CRS 2.2.9 と比較して誤検出が減少しています。CRS 3.0 offers reduced false positives compared with CRS 2.2.9. また、ニーズに合わせて規則をカスタマイズすることもできます。You can also customize rules to suit your needs.

WAF は、次の Web の脆弱性から保護します。The WAF protects against the following web vulnerabilities:

  • SQL インジェクション攻撃SQL-injection attacks
  • クロスサイト スクリプティング攻撃Cross-site scripting attacks
  • その他の一般的な攻撃 (コマンド インジェクション、HTTP 要求スマグリング、HTTP レスポンス スプリッティング、リモート ファイル インクルードなど)Other common attacks, such as command injection, HTTP request smuggling, HTTP response splitting, and remote file inclusion
  • HTTP プロトコル違反HTTP protocol violations
  • HTTP プロトコル異常 (ホスト ユーザー エージェントと承認ヘッダーが見つからない場合など)HTTP protocol anomalies, such as missing host user-agent and accept headers
  • ボット、クローラー、スキャナーBots, crawlers, and scanners
  • 一般的なアプリケーション構成ミス (Apache や IIS など)Common application misconfigurations (for example, Apache and IIS)

OWASP CRS 3.0OWASP CRS 3.0

次の表に示すように、CRS 3.0 には 13 個の規則グループが含まれています。CRS 3.0 includes 13 rule groups, as shown in the following table. 各グループには、無効にできる複数の規則が含まれています。Each group contains multiple rules, which can be disabled.

規則グループRule group 説明Description
REQUEST-911-METHOD-ENFORCEMENTREQUEST-911-METHOD-ENFORCEMENT メソッド (PUT、PATCH) をロックダウンしますLock-down methods (PUT, PATCH)
REQUEST-913-SCANNER-DETECTIONREQUEST-913-SCANNER-DETECTION ポートや環境のスキャナーから保護しますProtect against port and environment scanners
REQUEST-920-PROTOCOL-ENFORCEMENTREQUEST-920-PROTOCOL-ENFORCEMENT プロトコルとエンコーディングの問題から保護しますProtect against protocol and encoding issues
REQUEST-921-PROTOCOL-ATTACKREQUEST-921-PROTOCOL-ATTACK ヘッダー インジェクション、要求スマグリング、応答分割から保護しますProtect against header injection, request smuggling, and response splitting
REQUEST-930-APPLICATION-ATTACK-LFIREQUEST-930-APPLICATION-ATTACK-LFI ファイル攻撃やパス攻撃から保護しますProtect against file and path attacks
REQUEST-931-APPLICATION-ATTACK-RFIREQUEST-931-APPLICATION-ATTACK-RFI リモート ファイル インクルージョン (RFI) 攻撃から保護しますProtect against remote file inclusion (RFI) attacks
REQUEST-932-APPLICATION-ATTACK-RCEREQUEST-932-APPLICATION-ATTACK-RCE リモート コード実行攻撃から保護しますProtect again remote code execution attacks
REQUEST-933-APPLICATION-ATTACK-PHPREQUEST-933-APPLICATION-ATTACK-PHP PHP インジェクション攻撃から保護しますProtect against PHP-injection attacks
REQUEST-941-APPLICATION-ATTACK-XSSREQUEST-941-APPLICATION-ATTACK-XSS クロスサイト スクリプティング攻撃から保護しますProtect against cross-site scripting attacks
REQUEST-942-APPLICATION-ATTACK-SQLIREQUEST-942-APPLICATION-ATTACK-SQLI SQL インジェクション攻撃から保護しますProtect against SQL-injection attacks
REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATIONREQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION セッション固定攻撃から保護しますProtect against session-fixation attacks

OWASP CRS 2.2.9OWASP CRS 2.2.9

次の表に示すように、CRS 2.2.9 には 10 個の規則グループが含まれています。CRS 2.2.9 includes 10 rule groups, as shown in the following table. 各グループには、無効にできる複数の規則が含まれています。Each group contains multiple rules, which can be disabled.

規則グループRule group 説明Description
crs_20_protocol_violationscrs_20_protocol_violations プロトコル違反 (無効な文字、要求本文がある GET など) から保護しますProtect against protocol violations (such as invalid characters or a GET with a request body)
crs_21_protocol_anomaliescrs_21_protocol_anomalies 不適切なヘッダー情報から保護しますProtect against incorrect header information
crs_23_request_limitscrs_23_request_limits 制限を超える引数やファイルから保護しますProtect against arguments or files that exceed limitations
crs_30_http_policycrs_30_http_policy 制限されているメソッド、ヘッダー、ファイルの種類から保護しますProtect against restricted methods, headers, and file types
crs_35_bad_robotscrs_35_bad_robots Web クローラーおよびスキャナーから保護しますProtect against web crawlers and scanners
crs_40_generic_attackscrs_40_generic_attacks 一般的な攻撃 (セッション固定、リモート ファイル インクルージョン、PHP インジェクションなど) から保護しますProtect against generic attacks (such as session fixation, remote file inclusion, and PHP injection)
crs_41_sql_injection_attackscrs_41_sql_injection_attacks SQL インジェクション攻撃から保護しますProtect against SQL-injection attacks
crs_41_xss_attackscrs_41_xss_attacks クロスサイト スクリプティング攻撃から保護しますProtect against cross-site scripting attacks
crs_42_tight_securitycrs_42_tight_security パス トラバーサル攻撃から保護しますProtect against path-traversal attacks
crs_45_trojanscrs_45_trojans バックドア型トロイの木馬から保護しますProtect against backdoor trojans

WAF のモードWAF modes

Application Gateway の WAF は、次の 2 つのモードで実行するように構成できます。The Application Gateway WAF can be configured to run in the following two modes:

  • 検出モード:すべての脅威アラートを監視してログに記録します。Detection mode: Monitors and logs all threat alerts. [診断] セクションで Application Gateway の診断ログの記録をオンにしてください。You turn on logging diagnostics for Application Gateway in the Diagnostics section. また、必ず WAF のログを選択してオンにしてください。You must also make sure that the WAF log is selected and turned on. Web アプリケーション ファイアウォールは、検出モードで動作しているときに受信要求をブロックしません。Web application firewall doesn't block incoming requests when it's operating in Detection mode.
  • 防止モード:規則で検出された侵入や攻撃をブロックします。Prevention mode: Blocks intrusions and attacks that the rules detect. 攻撃者に "403 不正アクセス" の例外が送信され、接続が終了します。The attacker receives a "403 unauthorized access" exception, and the connection is terminated. 防止モードでは、このような攻撃を WAF ログに記録します。Prevention mode records such attacks in the WAF logs.

異常スコアリング モードAnomaly Scoring mode

OWASP には、トラフィックをブロックするかどうかを決定するための 2 つのモードがあります。従来モードと異常スコアリング モードです。OWASP has two modes for deciding whether to block traffic: Traditional mode and Anomaly Scoring mode.

従来モードでは、いずれかの規則に一致するトラフィックが、他の規則の一致とは無関係に考慮されます。In Traditional mode, traffic that matches any rule is considered independently of any other rule matches. このモードは簡単に理解できます。This mode is easy to understand. しかし、特定の要求に一致する規則の数に関する情報が不足することが制限事項です。But the lack of information about how many rules match a specific request is a limitation. そのため、異常スコアリング モードが導入されました。So, Anomaly Scoring mode was introduced. OWASP 3.x ではこれが既定です。It's the default for OWASP 3.x.

異常スコアリング モードでは、ファイアウォールが防止モードの場合、いずれかの規則に一致するトラフィックがすぐにブロックされることはありません。In Anomaly Scoring mode, traffic that matches any rule isn't immediately blocked when the firewall is in Prevention mode. 規則には特定の重大度があります。 [重大][エラー][警告] 、または [通知] です。Rules have a certain severity: Critical, Error, Warning, or Notice. その重大度は、異常スコアと呼ばれる要求の数値に影響します。That severity affects a numeric value for the request, which is called the Anomaly Score. たとえば、1つの [警告] 規則の一致によって、スコアに 3 が与えられます。For example, one Warning rule match contributes 3 to the score. 1つの [重大] 規則の一致では 5 が与えられます。One Critical rule match contributes 5.

SeveritySeverity Value
重大Critical 55
ErrorError 44
警告Warning 33
注意事項Notice 22

異常スコアでトラフィックがブロックされるしきい値は 5 です。There's a threshold of 5 for the Anomaly Score to block traffic. そのため、防止モードであっても、Application Gateway の WAF が要求をブロックするには、 [重大] 規則の一致が 1 つあるだけで十分です。So, a single Critical rule match is enough for the Application Gateway WAF to block a request, even in Prevention mode. しかし、1 つの [警告] 規則の一致では、異常スコアは 3 増加するだけで、その一致だけではトラフィックをブロックするには不十分です。But one Warning rule match only increases the Anomaly Score by 3, which isn't enough by itself to block the traffic.

注意

WAF の規則がトラフィックと一致したときにログに記録されるメッセージには、アクション値 "ブロック" が含まれます。The message that's logged when a WAF rule matches traffic includes the action value "Blocked." ただし、トラフィックは、実際には 5 以上の異常スコアに対してのみブロックされます。But the traffic is actually only blocked for an Anomaly Score of 5 or higher.

WAF の監視WAF monitoring

Application Gateway の正常性を監視することは重要です。Monitoring the health of your application gateway is important. WAF および WAF の保護対象のアプリケーションの正常性の監視は、Azure Security Center、Azure Monitor、および Azure Monitor ログとの統合によってサポートされます。Monitoring the health of your WAF and the applications that it protects is supported by integration with Azure Security Center, Azure Monitor, and Azure Monitor logs.

Application Gateway の WAF 診断の図

Azure MonitorAzure Monitor

Application Gateway のログは、Azure Monitor と統合されます。Application Gateway logs are integrated with Azure Monitor. そのため、WAF のアラートやログなどの診断情報を追跡できます。This allows you to track diagnostic information, including WAF alerts and logs. この機能には、ポータルの Application Gateway リソースの [診断] タブからアクセスするか、またはAzure Monitor から直接アクセスできます。You can access this capability on the Diagnostics tab in the Application Gateway resource in the portal or directly through Azure Monitor. ログの有効化の詳細については、Application Gateway の診断に関する記事を参照してください。To learn more about enabling logs, see Application Gateway diagnostics.

Azure Security CenterAzure Security Center

Security Center は、脅威の防御、検出、対応を可能にする機能です。Security Center helps you prevent, detect, and respond to threats. Azure リソースのセキュリティに対する可視性と制御を強化します。It provides increased visibility into and control over the security of your Azure resources. Application Gateway は Security Center と統合されていますApplication Gateway is integrated with Security Center. Security Center では、環境をスキャンして、保護されていない Web アプリケーションを検出します。Security Center scans your environment to detect unprotected web applications. これらの脆弱なリソースを保護するために、Application Gateway の WAF が推奨されます。It can recommend Application Gateway WAF to protect these vulnerable resources. Security Center から直接ファイアウォールを作成します。You create the firewalls directly from Security Center. これらの WAF インスタンスは Security Center と統合されます。These WAF instances are integrated with Security Center. それらによって、アラートおよび正常性情報がレポートとして Security Center に送信されます。They send alerts and health information to Security Center for reporting.

Security Center の概要ウィンドウ

ログの記録Logging

Application Gateway の WAF は、検出した各脅威について詳細なレポートを提供します。Application Gateway WAF provides detailed reporting on each threat that it detects. ログ記録は Azure 診断ログに統合されています。Logging is integrated with Azure Diagnostics logs. アラートは json 形式で記録されます。Alerts are recorded in the .json format. これらのログは、Azure Monitor ログと統合できます。These logs can be integrated with Azure Monitor logs.

Application Gateway の診断ログ ウィンドウ

{
  "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupId}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{appGatewayName}",
  "operationName": "ApplicationGatewayFirewall",
  "time": "2017-03-20T15:52:09.1494499Z",
  "category": "ApplicationGatewayFirewallLog",
  "properties": {
    "instanceId": "ApplicationGatewayRole_IN_0",
    "clientIp": "104.210.252.3",
    "clientPort": "4835",
    "requestUri": "/?a=%3Cscript%3Ealert(%22Hello%22);%3C/script%3E",
    "ruleSetType": "OWASP",
    "ruleSetVersion": "3.0",
    "ruleId": "941320",
    "message": "Possible XSS Attack Detected - HTML Tag Handler",
    "action": "Blocked",
    "site": "Global",
    "details": {
      "message": "Warning. Pattern match \"<(a|abbr|acronym|address|applet|area|audioscope|b|base|basefront|bdo|bgsound|big|blackface|blink|blockquote|body|bq|br|button|caption|center|cite|code|col|colgroup|comment|dd|del|dfn|dir|div|dl|dt|em|embed|fieldset|fn|font|form|frame|frameset|h1|head|h ...\" at ARGS:a.",
      "data": "Matched Data: <script> found within ARGS:a: <script>alert(\\x22hello\\x22);</script>",
      "file": "rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf",
      "line": "865"
    }
  }
} 

Application Gateway の WAF SKU の価格Application Gateway WAF SKU pricing

Application Gateway の WAF は、新しい SKU で利用できます。The Application Gateway WAF is available under a new a SKU. この SKU を利用できるのは、クラシック デプロイ モデルではなく、Azure Resource Manager プロビジョニング モデルのみです。This SKU is available only in the Azure Resource Manager provisioning model, not in the classic deployment model. また、WAF SKU には、Medium および Large の Application Gateway インスタンス サイズしかありません。Additionally, the WAF SKU comes only in medium and large Application Gateway instance sizes. Application Gateway のすべての制限が WAF SKU にも適用されます。All the limits for Application Gateway also apply to the WAF SKU.

料金は、1 時間あたりのゲートウェイ インスタンスの料金とデータ処理の料金に基づいています。Pricing is based on an hourly gateway instance charge and a data-processing charge. WAF SKU の Application Gateway の価格は、Standard SKU の料金とは異なります。Application Gateway pricing for the WAF SKU differs from standard SKU charges. データ処理の料金は同じです。Data-processing charges are the same. 規則あたり、または規則グループあたりの料金は発生しません。There are no per-rule or rule-group charges. 同じ Web アプリケーション ファイアウォールの内側で複数の Web アプリケーションを保護できます。You can protect multiple web applications behind the same web application firewall. 複数のアプリケーションのサポートに対して課金されることはありません。You aren't charged for supporting multiple applications.

次の手順Next steps

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