基本的な役割の違い
ファイアウォール(Firewall)
ネットワーク層およびトランスポート層で通信を制御するための仕組み。
IPアドレス・ポート・プロトコルなどの情報を基準に、通信の許可/拒否を判断する。
WAF(Web Application Firewall)
Webアプリケーション層の通信内容(HTTP/HTTPS)を解析し、不正な要求を検知して遮断する仕組み。
Webアプリの脆弱性を悪用した攻撃への対策が主目的。
技術的に見た検査ポイントの違い
ファイアウォールが扱う情報
- 送信元・宛先IPアドレス
- ポート番号(80 / 443 / 22 など)
- TCP/UDP などのプロトコル
- セッションの状態(ステートフルな接続管理)
これらに基づいて、通信の経路やアクセス先を制限する。
WAFが扱う情報
- URL
- クエリパラメータ
- HTTPヘッダ
- POSTデータ
- Cookie
- JSON / XML の中身
- 攻撃シグネチャや挙動に関するルール
HTTP/HTTPSの内容を精査し、Webアプリケーションに対する不正な操作を防ぐ。
防御対象とレイヤーの違い
| 項目 |
ファイアウォール |
WAF |
| 主なレイヤー |
L3〜L4 |
L7 |
| 守る対象 |
ネットワーク / サーバ |
Webアプリケーション |
| 検査の粒度 |
IP・ポート・プロトコル |
HTTPメッセージの内容 |
| 想定攻撃 |
ネットワーク攻撃 |
アプリケーション攻撃 |
※次世代FWの一部はアプリケーション識別機能を備えるが、WAFのようにHTTPの詳細解析を主目的とはしていない。
防げる攻撃の違い
ファイアウォール
- 未承認IPからのアクセス
- 不要なポートへの接続
- 不正プロトコルの利用
- L3/L4レベルの単純なDoS攻撃への簡易的な対処
(大規模なDDoS攻撃の防御には通常別途対策が必要)
WAF
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- コマンドインジェクション
- ディレクトリトラバーサル
- 不正なHTTPリクエストによる各種攻撃
- Referer チェックなど、CSRF の一部補助的対策
アプリケーションの動作に影響を与える攻撃に対応する点が特徴。
配置位置と動作方式の違い
ファイアウォール
ネットワークの境界やサーバ群の前段に配置する。
L3/L4レベルでの接続管理を主な目的とする。
WAF
Webサーバの手前に配置する。
方式は以下のいずれか。
- リバースプロキシ型
- トランスペアレント(ブリッジ)型
- エージェント/ライブラリ埋め込み型
- クラウド型(CDN統合を含む)
HTTP/HTTPSの内容を監視する構造になっている。
両者の関係
ファイアウォールとWAFは、守るレイヤーと対象が異なるため、互いを代替するものではない。
ネットワーク層とアプリケーション層を分けて考える必要がある。
- ファイアウォール → ネットワーク通信の制御
- WAF → Webアプリケーションへの攻撃検知
どちらか片方だけでは防ぎきれない攻撃が存在するため、役割は明確に分かれている。
まとめ
- ファイアウォールは IP・ポート・プロトコルを基準にネットワーク通信を制御する。
- WAFは HTTP/HTTPS の中身を解析し、Webアプリに対する不正リクエストを防ぐ。
- 見ているレイヤーも、対策対象の攻撃種別も異なる。
- 補完関係にあり、どちらか一方で全ての攻撃を防げるわけではない。
以上、WAFとファイアウォールの違いについてでした。
最後までお読みいただき、ありがとうございました。