WAF(Web Application Firewall)のホワイトリスト・ブラックリストは、 **Webアプリケーションへの攻撃を防ぐために定義する「許可ルール」や「遮断ルール」です。 これらのリストは、HTTPリクエストに含まれるパターン(条件)**に基づいて登録・制御されます。
✅ ホワイトリストとブラックリストの違い| 種類 | 概要 | 特徴 |
|---|
| ブラックリスト | 「これが含まれていたらブロックする」 | 攻撃パターンを登録 | | ホワイトリスト | 「これだけ許可する」 | 信頼されたものだけを許可 |
✅ ブラックリストの登録パターン(ブロック対象)ブラックリストは、攻撃とみなす特徴的な入力パターンや動作を登録します。 ● 登録対象例| 対象 | 具体例 |
|---|
| URLパス | /admin, /etc/passwd, /wp-login.php | | HTTPメソッド | DELETE, PUT(許可していない場合) | | User-Agent | sqlmap, curl, wget など自動ツールのもの | | IPアドレス | 不正アクセスがあったIPアドレスや海外IPレンジ | | 文字列パターン | UNION SELECT, 1=1, <script> など | | リクエストヘッダ | 攻撃ツール特有のヘッダや不正な形式 | | POSTボディの内容 | 特定のフィールドにJavaScriptやSQL文が含まれる |
● パターン例(ルール記述).*<script>.* → クロスサイトスクリプティング(XSS)
.*UNION\s+SELECT.* → SQLインジェクション
.*\.\./.* → ディレクトリトラバーサル
.*cmd=.* → OSコマンドインジェクション
✅ ホワイトリストの登録パターン(許可対象)ホワイトリストは、許可したい通信内容やリクエスト形式を限定的に登録します。 ● 登録対象例| 対象 | 具体例 |
|---|
| IPアドレス | 社内IPだけアクセス許可:192.168.0.0/24 | | URLパス | /api/v1/products, /login のみ許可 | | HTTPメソッド | GET と POST のみ許可、PUT や DELETE はブロック | | Content-Type | application/json のみ許可 | | ホスト名 | example.com ドメインからの通信のみ許可 |
● 使いどころ
✅ どうやって登録するのか?● 方法例(製品・OSSによって異なる)| 方法 | 説明 |
|---|
| GUI設定 | AWS WAF、Cloudflare、F5 BIG-IPなどで、Web画面からルールを追加 | | YAML/JSON定義 | ModSecurityやAWS WAFではポリシーをファイルで管理 | | 正規表現(RegEx) | 攻撃パターンやURL形式を柔軟に設定できる | | シグネチャ方式 | OWASP Core Rule Set (CRS) を使って標準攻撃パターンを一括登録 |
✅ 登録時の注意点| ポイント | 内容 |
|---|
| 誤検知と過検知 | ブラックリストで正規ユーザーをブロックしないように精度調整が必要 | | 例外の管理 | ホワイトリストは必要な通信だけ許可するため、抜けがないか確認 | | パターンの継続的更新 | 攻撃手法は進化するため、定期的なメンテナンスが必須 | | ログの確認 | WAFのログをチェックし、意図しないブロックがないか監視する |
✅ まとめ| 観点 | ブラックリスト | ホワイトリスト |
|---|
| 考え方 | 「これは危険」だから遮断 | 「これだけ安全」だから許可 | | 対応範囲 | 攻撃パターンに広く対応 | 通信パターンを限定する | | メリット | 多様な攻撃を検知・遮断可能 | 厳格な制御で高いセキュリティ | | デメリット | 誤検知が多くなりやすい | 通信漏れがあると機能不全になる |
|
この記事へのコメント