Skip to content

Commit

Permalink
Update handle-waf-false-positive.md
Browse files Browse the repository at this point in the history
  • Loading branch information
yixzhuang authored May 2, 2024
1 parent d459be3 commit 127ab19
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions articles/network/handle-waf-false-positive.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,17 @@ Azure WAF の設定を使って誤検知を避ける方法には、主に3つの
### 設定方法1:除外を利用する
除外は、特定の Header や Request Body 内で誤検知が起こった部分を指定し、これらを誤検知として検出されたルールの評価から外す方法です。この方法は、本記事で紹介した 3 つの中で最も柔軟性が高いと考えられます。除外の設定は、WAF ポリシーの「管理されているルール」のページで見つけることができます。ただし、除外の設定が利用できない場合もあるので、その場合は他の設定方法の利用をご検討いただく必要があります。その具体的な設定方法については本記事他の箇所をご確認ください。

![](./handle-waf-false-positive/exclusion.png)
<img src="./handle-waf-false-positive/exclusion.png" alt="drawing" style="width:600px;"/>

### 設定方法2:カスタム ルールを利用する
カスタム ルールを使用することで、特定の IP アドレスからの通信や特定のパスへのアクセスを WAF の評価から除外し、通信を管理されたルールから ”Bypass” するルールを作成できます。カスタム ルールは管理されたルールよりも優先され、ここで設定したルールによって通信が許可または拒否されます。カスタム ルールの設定は、WAF ポリシーの「カスタム ルール」ページで行うことができます。

![](./handle-waf-false-positive/customruleportal.png)
<img src="./handle-waf-false-positive/customruleportal.png" alt="drawing" style="width:600px;"/>

### 設定方法3:特定のルールの無効化
WAF で特定のルールによる誤検知が発生した場合、そのルールを無効にすることも誤検知への対処法の一つです。ルールの無効化は、WAF ポリシーの「管理されているルール」ページで行うことができます。

![](./handle-waf-false-positive/disabledrules.png)
<img src="./handle-waf-false-positive/disabledrules.png" alt="drawing" style="width:700px;"/>

> [!NOTE]
> これらの方法以外にも、WAF の要求本文の検査を無効にすることが考えられますが、これを行うと WAF が Request Body の検査を行わなくなり、セキュリティ リスクが高まる可能性があります。この無効化を検討する場合は、サーバー側でのセキュリティ対策の実施をお勧めします。
Expand All @@ -54,7 +54,7 @@ AzureDiagnostics
```
このクエリを実行すると、次のような形式のログが出力されます。誤検知を避けるためには、WAF の設定で特定のログフィールドに注意を払う必要があります。該当するフィールドは下の図の赤い枠で示されています。詳しいについては、「WAF ログのフィールド」セクションをご覧ください。

![](./handle-waf-false-positive/examplelog.png)
<img src="./handle-waf-false-positive/examplelog.png" alt="drawing" style="width:900px;"/>

上記のクエリ以外にも、以下のドキュメントには様々な WAF ログのクエリ例が記載されています。ご参考いただければと存じます。

Expand All @@ -71,7 +71,8 @@ ruleId は、特定の通信がどのルールに一致しているかを示し

### フィールド3: details_data
ルールにマッチした原因は、WAF ログの details_data で確認できます。通常、以下の形式でマッチした内容を確認できます。
![](./handle-waf-false-positive/details.png)

<img src="./handle-waf-false-positive/details.png" alt="drawing" style="width:700px;"/>

#### 上図 ① の部分について
① は、通常、マッチした文字列です。例えば、Request Body に「#」が含まれているためにルールによって検出された場合、①には「#」が表示されます。
Expand Down Expand Up @@ -109,7 +110,7 @@ Log : 防止モードで記録される Action です。カスタムルールの

## 設定フィールド:適用対象

![](./handle-waf-false-positive/rule.png)
<img src="./handle-waf-false-positive/rule.png" alt="drawing" style="width:700px;"/>

OWASP 3.2 以降の WAF ポリシーの除外設定では、ログの ruleSetType & ruleSetVersion フィールドに記載された内容に基づいて、適切なルールセット バージョンを選択する必要があります。例えば、誤検知が発生した際に ruleSetType & ruleSetVersion が以下の値を表示している場合、適用対象として OWASP_3.2 を選択する必要があります。

Expand All @@ -128,15 +129,15 @@ OWASP 3.1 以前の WAF ポリシーの除外設定では、こちらのルー
## 一致変数
OWASP 3.2 以降の WAF ポリシーでは、以下の一致変数が設定できます。

![](./handle-waf-false-positive/32arg.png)
<img src="./handle-waf-false-positive/32arg.png" alt="drawing" style="width:200px;"/>

OWASP 3.1 以前の WAF ポリシーでは、以下の一致変数が設定できます。

![](./handle-waf-false-positive/30arg.png)
<img src="./handle-waf-false-positive/30arg.png" alt="drawing" style="width:200px;"/>

一致変数の選択は、details_data 内の ② の値に基づいて行います。

![](./handle-waf-false-positive/requestarg.png)
<img src="./handle-waf-false-positive/requestarg.png" alt="details_data_2"/>
② の値と一致変数の対応例は以下の通りです。

|②の値 |一致変数の選択 |
Expand Down

0 comments on commit 127ab19

Please sign in to comment.