WAFとファイアウォールの違い|WAFは通信の中身を読んで攻撃を止める

ファイアウォールを入れてあるのに、Webサイトの会員情報が抜かれた——。情報セキュリティマネジメント試験では、こうした場面がしばしば題材になります。おかしな話に聞こえるかもしれませんが、攻撃が「許可された通信」の中に隠れていれば、宛先やポート番号だけを見るファイアウォールは素通りさせます。そこを埋めるのがWAFです。守備範囲の違いから見ていきます。
WAFとは
WAF(ワフ、Web Application Firewall)とは、Webアプリケーションへの通信の中身を検査して、不正な通信を遮断する仕組みです。
Webサイトに対するアクセス内容を監視し、攻撃とみなされるパターンを検知したときに当該アクセスを遮断する。
(出典:情報セキュリティマネジメント試験 平成30年春期 問12)
簡単にいうと、Webサイトへの入力を1つずつ読んで、攻撃っぽい書き方をしていたら通さない装置です。名前に「ファイアウォール」と入っていますが、見ているものは別物です。
置き場所も過去問がはっきり書いています。
クライアントとWebサーバの間において、クライアントからWebサーバに送信されたデータを検査して、SQLインジェクションなどの攻撃を遮断するためのものはどれか。
(出典:情報セキュリティマネジメント試験 平成28年春期 問13)
この問題の正解がイ「WAF」です。利用者とWebサーバのあいだに立って、送られてきたデータを検査する。この位置関係を押さえておきましょう。
具体例でイメージをつかむ
たとえば、会員番号を入れる欄がある問合せフォームを思い浮かべてください。ここに攻撃者が、会員番号ではなくデータベースへの命令文を書き込むことがあります。これがSQLインジェクションです。
基本になるパケットフィルタリング型のファイアウォールから見ると、この通信は「Webサイトへの、許可された通信」です。宛先も使っているポート番号も正しいので、止める理由がありません。中身が命令文になっていることは、この方式のファイアウォールが見ている情報からは判断できないのです。
WAFは、そのデータの中身を読みます。命令文に使われがちな書き方が含まれていれば、そこで遮断します。
判断のしかたは2通りあります。
ブラックリストは、問題がある通信データパターンを定義したものであり、該当する通信を遮断する。
(出典:情報セキュリティマネジメント試験 平成30年秋期 問30)
ブラックリストは「この書き方が来たら止める」という決め方です。反対にホワイトリストは「この書き方だけ通す」という決め方になります。

ここで気をつけたいのが、WAFは万能ではなく、失敗のしかたが2方向あるということです。ひとつは止めすぎです。攻撃で使われがちな書き方に似ているというだけで、正当な通信を攻撃と判定して遮断してしまうことがあります。これをフォールスポジティブ(誤検知)といいます。もうひとつは見逃しです。仕様の穴を突かれて、攻撃を通してしまうことがあります。WAFが危険を減らす仕組みであって、ゼロにする仕組みではないのは、この見逃しがあるためです。
ファイアウォールとの違い
名前が似ているぶん、混同しやすい2つです。見ている情報が違うと考えると整理できます。表で並べてみましょう。
| ファイアウォール(パケットフィルタリング型) | WAF | |
|---|---|---|
| 見るもの | 送信元・宛先・ポート番号 | 通信データの中身 |
| 止められる例 | 許可していない相手やポートへの通信 | SQLインジェクションなど、入力に仕込まれた攻撃 |
| 苦手なこと | 許可した通信の中身までは判断しない | 中身を読むぶん、正当な通信を誤って止めることがある |
平成30年春期の問18には「ステートフルインスペクション機能をもたない、静的なパケットフィルタリング型のファイアウォール」という書き方が出てきます。ファイアウォールにも方式がいくつかあることが、問題文からも読み取れます。ここでは基本になるパケットフィルタリング型と比べています。

覚え方は「どこ宛てかを見るのがパケットフィルタリング型のファイアウォール、何を書いてきたかを見るのがWAF」です。どちらか一方があればよい、という関係ではありません。二段構えで使います。
ファイアウォールの方式については、ファイアウォールとDMZの違いでも扱っています。
試験ではこう出る
出題の形はいくつかあります。ここでは、WAFが何をするものかを選ばせる形と、誤検知を問う形を1問ずつ解いてみましょう。まずは基本形からどうぞ。
腕試し問題
出典:情報セキュリティマネジメント試験 平成29年秋期 問20
WAFの説明として、適切なものはどれか。
解答と解説
解説(解答せずに開けます)
正解はエです。
通信の中身に攻撃らしい特徴がないかを読み、見つけたら止める。これがWAFの働きです。ほかの3つは、通信の中身を検査して遮断するものではありません。
- ❌ ア「Webサーバへの侵入を外部から実際に試みる」→ ペネトレーションテスト(侵入テスト)の説明です
- ❌ イ「TLSの暗号化と復号を専用のハードウェアで行う」→ Webサーバの負荷を軽くする装置の説明です
- ❌ ウ「質問に答える形式で自組織の対策レベルを診断する」→ 自己診断の説明で、通信は見ていません
もう1問、誤検知を問う形も解いてみましょう。
腕試し問題
出典:情報セキュリティマネジメント試験 令和元年秋期 問14
WAFにおけるフォールスポジティブに該当するものはどれか。
解答と解説
解説(解答せずに開けます)
正解はアです。
フォールスポジティブは、正当な通信を攻撃と判定して遮断してしまうことでした。アでは、ある記号を見つけたら遮断する設定にしたために、その記号を含む正しいリクエストまで止まっています。
- ❌ イ「独自に追加されたフィールドを検査しない仕様を突かれ、遮断しない」→ 攻撃を見逃す側の話です
- ❌ ウ「許可しない文字列を含む不正なリクエストを遮断する」→ 攻撃を正しく止めた場合です
- ❌ エ「分割して送られたリクエストを遮断しない」→ これも見逃す側になります
まとめ
- WAFは、Webアプリケーションへの通信の中身を検査して不正な通信を遮断する仕組み
- 置き場所は利用者とWebサーバのあいだ。SQLインジェクションのように、許可された通信に紛れた攻撃を対象にする
- 過去問でいうブラックリストは問題のある通信データパターンを止めるもの、ホワイトリストは許した書き方だけを通すもの
- 誤検知(フォールスポジティブ=正当な通信を止めてしまう)と見逃し(攻撃を通してしまう)のどちらも起こりうる。危険を減らす仕組みであって、ゼロにする仕組みではない
- ファイアウォールとは見ている情報が違う。どこ宛てかを見るのがパケットフィルタリング型のファイアウォール、何を書いてきたかを見るのがWAF
似た役割の仕組みが並ぶ分野なので、まずは「WAFはWebアプリの入力を読む」という一点を軸にしておきましょう。ファイアウォールや侵入テストとの区別も、そこから引き算で考えられます。
この記事のタグ
- テクノロジ系
- セキュリティ実装技術
- WAF
- ファイアウォール
- SQLインジェクション


