WAF

WAFとは

WAF(Web Application Firewall)は、Web アプリへの HTTP/HTTPS 通信の中身を検査し、攻撃パターンを検知・遮断する防御の仕組みです。[[XSS(クロスサイトスクリプティング)]] や [[SQLインジェクション]] のような、[[Webセキュリティ]] で扱うアプリケーション層の攻撃から Web サイトを守ります。

利用者と Web サーバーの間に置かれ、リクエストの URL・パラメータ・ヘッダーなどを見て「攻撃らしさ」を判定します。

ファイアウォール・IDS/IPSとの違い

「壁」系の防御は守備範囲が異なります。

[[ファイアウォール]][[IDSとIPS]]WAF
見るものIPアドレス・ポート番号ネットワーク通信のパターンHTTPリクエストの中身
防げる例不要ポートへのアクセス不正侵入の兆候XSS・SQLインジェクション
ネットワーク層中心ネットワーク〜OSアプリケーション層(Web特化)

ファイアウォールは「80番ポートへの通信」を通すか遮るかしか判断できません。その通信の中身が攻撃かどうかを見るのが WAF の役割で、互いに代替ではなく補完関係にあります。

検知の方式

  • シグネチャ型(ブラックリスト): 既知の攻撃パターンに一致する通信を遮断する。主流の方式
  • ホワイトリスト型: 正常なリクエストの形を定義し、それ以外を遮断する。強力だが定義の維持が大変
  • 誤検知(正常な通信の遮断)と検知漏れのバランス調整(チューニング)が運用の肝になります

提供形態は、クラウド型(CDN 事業者などが提供、導入が容易)・アプライアンス型・ソフトウェア型があります。まずはクラウド型が定番です。

WAFの限界: 根本対策ではない

WAF はアプリの脆弱性そのものを直すわけではありません。パターンをすり抜ける攻撃は通してしまいます。

  • 根本対策 = アプリ側の修正(エスケープ処理、プレースホルダなど)
  • WAF = 修正が終わるまでの時間稼ぎ+多層防御の一層

「WAF を入れたから脆弱性を放置してよい」にはならない、と覚えておきましょう。

関連技術とのつながり

  • [[ファイアウォール]] — ネットワーク層の壁。WAF とは見る場所が違う
  • [[IDSとIPS]] — 侵入の検知・防御。WAF と並ぶ多層防御の一員
  • [[XSS(クロスサイトスクリプティング)]] / [[SQLインジェクション]] — WAF が守る代表的な攻撃
  • [[Webセキュリティ]] — WAF の位置づけを理解する全体像
Q: WAFが検査するものはどれ?
- [ ] IPアドレスとポート番号だけ
- [x] HTTPリクエストの中身(URL・パラメータなど)
- [ ] サーバーのCPU使用率
解説: WAF はアプリケーション層に特化し、HTTP 通信の中身を見て攻撃パターンを判定します。

Q: ファイアウォールとWAFの関係として正しいのはどれ?
- [ ] WAFがあればファイアウォールは不要になる
- [ ] 両者は同じものの別名である
- [x] 見る層が異なり、互いに補完し合う関係にある
解説: ファイアウォールはIP・ポートの制御、WAF は HTTP の中身の検査と守備範囲が異なり、併用が基本です。

Q: WAFの限界として正しいのはどれ?
- [x] アプリの脆弱性そのものを修正するわけではない
- [ ] HTTPS通信にはいっさい対応できない
- [ ] 導入すると通信が二度と遮断できなくなる
解説: WAF は攻撃パターンの遮断による時間稼ぎ・多層防御であり、根本対策はアプリ側の修正です。