Azure Web Application Firewall のしくみ

完了

Azure Web Application Firewall の基本的な機能と利点については理解できました。 次に、Azure Web Application Firewall のしくみについて調べてみましょう。 具体的には、ルール セットやルール グループなどの機能を使用して、Azure Web Application Firewall により Web アプリが一般的な悪用からどのように保護されるのかを考えてみます。 この情報は、Azure Web Application Firewall が会社に適したソリューションかどうかを評価するのに役立ちます。

配置オプション

Azure Web Application Firewall は、Web アプリ用の Azure フロントエンド ソリューションの一部としてデプロイできます。 最初に、Azure Web Application Firewall ポリシーを作成します。これには次の設定が含まれます。

  • 使用する製品統合
  • 使用するマネージド ルール セット
  • 追加するカスタム ルール
  • 使用するモード

Microsoft マネージド ルール セット、ルール グループ、ルール

アプリが受信する HTTP/HTTPS 要求に Azure Web Application Firewall によってルールが適用されることにより、既知の悪用は阻止されます。 ルールは、特定の脅威を認識して防止するように設計されたファイアウォール コードです。

一般的な脆弱性を検出してブロックするために Azure Web Application Firewall によって使用されるルールは、ほとんどがマネージド ルールです。 各ルール グループはルールのコレクションであり、マネージド ルール セットはルール グループのコレクションです。 マネージド ルール セットには、Microsoft 脅威インテリジェンス ベースのルール グループ、CVE (Common Vulnerabilities and Exposures) ルール グループ、コア ルール グループ (CRS) が含まれます。

CRS ルールは、Open Web Application Security Project (OWASP) によって定義されます。 マネージド ルールは、Microsoft のセキュリティ専門家チームによってコーディング、管理、更新されます。 ルールは、必要に応じて変更または追加されます。 マネージド ルールが変更されると、Azure Web Application Firewall は自動的に更新され、アプリのダウンタイムは発生しません。

次のスクリーンショットは、Microsoft 既定のルール セット 2.1 (DRS2.1) のルールとルール グループの一部を示しています。 これにより、Azure Web Application Firewall によって提供される保護の深さを感じていただけるはずです。

Screen shot show WAF managed rules.

ボットの規則

ボット ルールは、Microsoft 脅威インテリジェンスと独自の WAF ルールに基づいて、不適切なボット、優れたボット、不明なボットを識別します。

Screenshot showing WAF bot rules.

カスタム規則

Azure Web Application Firewall によって提供されるマネージド ルールでは、Web アプリケーションで発生する特定の脅威に対応できない場合があります。 その場合は、カスタム ルールを作成できます。 次のコンポーネントを含む条件を作成して、カスタム ルールを作成できます。

  • 地域、IP アドレス、サイズ、文字列などの一致の種類
  • RequestHeader、QueryString、RequestUri、RequestBody、Cookies、PostArgs などの一致変数
  • POST や PUT などの HTTP/HTTPS 要求メソッド
  • EqualContainsRegexBeginsAnyEnds with などの演算子
  • 許可ブロックログ、またはリダイレクトなどのアクション

geo フィルタリング

既定では、WAF は要求の発信元の場所にかかわらずすべてのユーザー要求に応答します。 一部のシナリオでは、国/地域ごとに Web アプリケーションへのアクセスを制限しなければならないことも考えられます。 ジオフィルタリングのカスタム ルールを使用すると、エンドポイントに特定のパスを定義して、指定した国または地域からのアクセスを許可またはブロックすることができます。 ジオフィルタリング ルールでは、関心のある国または地域の 2 文字のコードが使用されます。

ジオフィルタリング ルールの場合、一致変数は RemoteAddr または SocketAddr です。 RemoteAddr は、通常 X-Forwarded-For 要求ヘッダーを介して送信される元のクライアント IP です。 SocketAddr は、WAF で認識される発信元 IP アドレスです。 ユーザーがプロキシの内側にある場合、SocketAddr は通常、プロキシ サーバーのアドレスです。

GeoMatch 条件と REQUEST_URI 文字列の一致条件を組み合わせて、パス ベースの geo フィルタリング ルールを作成することができます。

IP 制限

Azure Web Application Firewall カスタム ルールは、IP アドレスまたは IP アドレス範囲のリストを指定して、Web アプリケーションへのアクセスを制御します。

IP 制限カスタム ルールを使用すると、ご自分の Web アプリケーションへのアクセスをコントロールすることができます。 これは、クラスレス ドメイン間ルーティング (CIDR) 形式で IP アドレスまたは IP アドレス範囲を指定して行われます。

既定では、Web アプリケーションにはインターネットからアクセスできます。 ただし、既知の IP アドレスまたは IP アドレス範囲のリストからクライアントへのアクセスを制限したい場合があります。 これを実現するには、カスタム ルールに記載されていない IP アドレスから Web アプリへのアクセスをブロックする IP 一致規則を作成します。

レート制限

Azure Web Application Firewall カスタム ルールでは、一致条件と受信要求のレートに基づいてアクセスを制御するためのレート制限がサポートされています。

このカスタム ルールを使用すると、異常に高いレベルのトラフィックを検出し、一部の種類のアプリケーション層のサービス拒否攻撃をブロックできます。 レート制限により、短時間で大量の要求を送信するように誤って構成されたクライアントから保護することもできます。 カスタム ルールは、レート制限カウント期間 (1 分または 5 分間隔) とレート制限しきい値 (レート制限期間で許可される要求の最大数) によって定義されます。

検出モードと防止モード

Azure Web Application Firewall は、2 つのモードのいずれかで動作できます。 選択するモードは、いずれかのルールと一致した受信 HTTP/HTTPS 要求をファイアウォールで処理する方法によって異なります。

  • 検出モード: 要求をログに記録しますが、要求の通過は許可します。
  • 防止モード: 要求をログに記録し、要求の通過を許可しません。

一般的なシナリオとして、アプリをテストするときは、検出モードで Azure Web Application Firewall を実行します。 検出モードでは、2 種類の問題を確認できます。

  • 擬陽性: 正当な要求に、ファイアウォールで悪意ありのフラグが付けられる場合。
  • 偽陰性: 悪意のある要求が、ファイアウォールで許可される場合。

アプリをデプロイする準備ができたら、防止モードに切り替えます。

Microsoft Sentinel と Azure WAF を併用する

Microsoft Sentinel と Azure WAF を組み合わせると、WAF リソースのセキュリティ情報イベントを管理できます。 Microsoft Sentinel を使用すると、Log Analytics を使用して Sentinel への WAF データ コネクタにアクセスできます。 WAF ブックに、Azure Front Door の WAF と Application Gateway の WAF の分析が表示されます。 WAF 分析ルールは、AFD および Application Gateway ログからの SQLi および XSS 攻撃を検出します。 WAF Notebook を使用すると、Azure Front Door での SQL インジェクション インシデントを調査できます。

Screenshot showing Sentinel WAF settings.

Screenshot showing WAF events.