書いてる人と愉快な脳筋たち
参考記事元
内容
- 参考記事元のWAF Application Gatewayを設定しアクセスの簡易監視まで
Azure WAF
- 一般的な脆弱性やその悪用から Web アプリケーションを一元的に保護する Web アプリケーション ファイアウォール (WAF) を提供
- Web アプリケーション ファイアウォールを一元化することで、セキュリティの管理がはるかに簡単になる
- WAF を使用すると、アプリケーション管理者にとっては脅威や侵入に対する保護がより確実になります。
StandardとWAF違い
Applicaiton Gatewayのコンポーネント要素
- フロントエンドIP
- リスナー
- ルール
- バックエンドプール
- HTTP設定
- 正常性プローブ
- 書き換え(Rewrite)
Azure Application Gateway 構成の概要
- フロントエンドIP
- フロントエンドIPはApplicaiton Gateway作成時に一緒の作成したPublic IP Addressがデフォルトでバインドされています。
バックエンドプール(振り分けされるサイトの設定)
- IPアドレスまたはホスト名
- 仮想マシン
- VMSS
- AppService
- App ServiceはApplication Gatewayが作成された同一リージョン内に存在するApp Serviceの中から選択することができます。
正常性プローブ(正常性監視の概要)
- バックエンドプールにあるすべてのリソースに対して正常性確認を行うもの
-
プローブの機能により正常性が確認とれないリソースに関しては自動的にバックエンドプールから外し、正常性が確認取れたらバックエンドプールに戻します。
HTTP設定
画面にあるインフォメーションにも記載がありますが「/」を入力しないとURLパスベースでルールを設定した時に、URLが想定外の上書きにより正常にルーティングされなくなります。
ルール
Basicとパスベース
-
Basic
- 基本的なルーティングの設定
-
パスベース
- パスベースはURLパスでルーティングを行う設定
- Basicより少し複雑な設定
例)
例えばHTTP(80)のHTTPS(443)リダイレクトを設定する場合なんかはBasicを利用して作成します。
80のリスナーにアクセスがきたら443のリスナーに301リダイレクトするようにルールを設定することができます。
- URLパスベースの場合はパスに応じてバックエンドプールとHTTP設定を紐づける必要があるため設定方法の難易度は若干高めになります。
WAF対策編
-
WAFの機能を一時的にOFFにしたい場合はファイヤーウォールの状態を無効にします。
-
モードは検出か防止の2種類があります。
- 「検出」 は不正なアクセスを検出するがスルーします。
- 「防止」 を選べば不正なアクセスが来た場合にそのリクエストをブロックします。
-
グローバルパラメータの設定ではファイルのアップロードを除くリクエストの全体的な要求サイズを制限します。
- 8k~128kの中で選択でき、初期値として最大サイズが設定されています。
URL:Web アプリケーション ファイアウォール要求サイズ制限と除外リスト
- WAFのルールではルールセット
- OWASP3.0
- OWASP2.9
OWASP - Open Web Applicaiton Security Project
OWASP コミュニティのNPO団体の意
この団体が策定したセキュリティルールに準拠しますというのがルールセットOWASPについては参照
- 基本的な設定はすでにされているため特に弄る必要があるところは少ない
- リクエスト情報の容量制約にだけ気をつけておけばハマることは少ない
- 防止機能をオンにしている場合は通信の構成によってリクエストをブロックされることがあるので注意
- クロスサイトスクリプティングやSQLインジェクションのみを対応したいということであればルールの詳細構成でその項目だけをオンにする必要があります。
Azure ペネトレーションテスト
- マイクロソフトが提唱しているルールに準拠して行うようにしてください。
WAF対策~監視編
- WAFの監視方法についてはLog Analiticsを利用することで簡単に設定
手順
-
Log Analiticsの作成をしてからApplicaiton Gatewayの診断設定を構築。
-
Log Analiticsの設定を行って情報の可視化を行います。
-
ストレージアカウントは任意のものに設定
-
Log Analiticsへの送信では先ほど作成したワークススペースを選択します。
-
リテンション期間は任意の日数
- 0を入れれば永続的にログが保管される。
-
診断設定を行ったら次にLog Analitics側の設定を行います。先ほど作成したワークスペースに移動。