インターネットに公開するシステムを Azure で構築する際、Application Gateway と Web Application Firewall ポリシー(以降、WAF と表記)を利用する事も多いかと思います。
実際に私が WAF を利用している際、WAF のマネージドルール有効化時にアクションが初期化される、という挙動がありました。
本記事では、この挙動について詳しく解説します。
はじめに
当時、私は一部無効化していたマネージドルールを、先にアクションを変更してから有効化したいと考えておりました。
しかし、実際は先に変更したアクションの設定値のままマネージドルールは有効化されず、アクションが初期値に戻された状態でマネージドルールが有効化されました。
初期化を避けるためには、マネージドルールが有効化された状態でアクションの変更を行う必要があるようです。
今回は、以下の流れで改めてこの挙動を確認します。
- マネージドルールが有効化された状態でアクション(初期値)を変更
- マネージドルールを無効化
- マネージドルールを再度有効化
マネージドルールが有効化された状態でアクション(初期値)を変更
まず、Azure ポータルにアクセスし、WAF のマネージドルールの設定画面から、今回は以下の各アクションを変更します。
| ルール ID | アクション(初期値) |
|---|---|
| 100100 | ブロック |
| 200100 | 許可 |
| 300100 | ログ |
| 930100 | 異常スコア |

次の通り、各アクションを変更しました。
| ルール ID | 変更前のアクション | 変更後のアクション |
|---|---|---|
| 100100 | ブロック | ログ |
| 200100 | 許可 | ログ |
| 300100 | ログ | 許可 |
| 930100 | 異常スコア | ブロック |

マネージドルールを無効化
アクションを変更した 4つのルールを無効化します。

この時点ではアクションはまだ初期化されておりません。
マネージドルールを再度有効化
無効化したルールを再度有効化します。

次の通り、変更していたアクションがすべて初期化されていることがわかります。
| ルール ID | 変更前のアクション | 変更後のアクション | マネージドルール再度有効化後のアクション |
|---|---|---|---|
| 100100 | ブロック | ログ | ブロック |
| 200100 | 許可 | ログ | 許可 |
| 300100 | ログ | 許可 | ログ |
| 930100 | 異常スコア | ブロック | 異常スコア |
まとめ
今回は WAF のマネージドルール有効化時にアクションが初期化される挙動について解説しました。
検証結果の通り、無効化していたマネージドルールを「アクションを変更してから有効化する」ことはできず、「マネージドルールを有効化した上でアクションを変更する」必要があることがわかりました。
例えば、初期アクションが「ブロック」となっている無効化されたあるマネージドルールを、「ログ」アクションに変更した上で有効化したとします。
検証前は、「ログ」アクションに変更された状態でマネージドルールが有効化されるため、そのマネージドルールによってトラフィックがブロックされることはない想定でした。*1
ですが、実際には「ブロック」アクションに初期化された状態でマネージドルールが有効化されてしまいます。
そのため、その後に「ログ」アクションに変更するまでの間は、該当のマネージドルールによってトラフィックを予期せずブロックしてしまう可能性があり、設定変更を行う時間帯によってはネットワーク障害となり得ます。
今回の挙動については、実際に WAF を触っていないと気付きにくい部分かと思いましたのでご紹介させていただきました。
以上、参考になれば幸いです。
*1:「ログ」アクションは、マネージドルールの条件に一致したトラフィックをログ出力のみ行います。
上岡 史典(日本ビジネスシステムズ株式会社)
西日本事業本部 クラウドサービス部に所属。AzureやMicrosoft 365、AWSなどのクラウド関連を扱っており、最近はAzureの基盤設計やクラウドガイドラインの策定などを担当しております。ラーメンとモンスターハンターシリーズが好きです。
担当記事一覧