シカラボ

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

シカラボ編集部
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)

ブラックリストは「この書き方が来たら止める」という決め方です。反対にホワイトリストは「この書き方だけ通す」という決め方になります。

利用者とWebサーバのあいだにWAFが立ち、ブラックリストは危ない書き方を止め、ホワイトリストは許した書き方だけを通すことを示した図

ここで気をつけたいのが、WAFは万能ではなく、失敗のしかたが2方向あるということです。ひとつは止めすぎです。攻撃で使われがちな書き方に似ているというだけで、正当な通信を攻撃と判定して遮断してしまうことがあります。これをフォールスポジティブ(誤検知)といいます。もうひとつは見逃しです。仕様の穴を突かれて、攻撃を通してしまうことがあります。WAFが危険を減らす仕組みであって、ゼロにする仕組みではないのは、この見逃しがあるためです。

ファイアウォールとの違い

名前が似ているぶん、混同しやすい2つです。見ている情報が違うと考えると整理できます。表で並べてみましょう。

ファイアウォール(パケットフィルタリング型)WAF
見るもの送信元・宛先・ポート番号通信データの中身
止められる例許可していない相手やポートへの通信SQLインジェクションなど、入力に仕込まれた攻撃
苦手なこと許可した通信の中身までは判断しない中身を読むぶん、正当な通信を誤って止めることがある

平成30年春期の問18には「ステートフルインスペクション機能をもたない、静的なパケットフィルタリング型のファイアウォール」という書き方が出てきます。ファイアウォールにも方式がいくつかあることが、問題文からも読み取れます。ここでは基本になるパケットフィルタリング型と比べています。

パケットフィルタリング型のファイアウォールは送信元・宛先・ポート番号を見て、許可していない相手やポートへの通信を止めるが、Webサイト宛てのSQLインジェクションは通してしまい、通信の中身を見るWAFがそれを止めることを示した図

覚え方は「どこ宛てかを見るのがパケットフィルタリング型のファイアウォール、何を書いてきたかを見るのがWAF」です。どちらか一方があればよい、という関係ではありません。二段構えで使います。

ファイアウォールの方式については、ファイアウォールとDMZの違いでも扱っています。

試験ではこう出る

出題の形はいくつかあります。ここでは、WAFが何をするものかを選ばせる形と、誤検知を問う形を1問ずつ解いてみましょう。まずは基本形からどうぞ。

腕試し問題

出典:情報セキュリティマネジメント試験 平成29年秋期 問20

WAFの説明として、適切なものはどれか。

解答と解説

解説(解答せずに開けます)

正解はエです。

通信の中身に攻撃らしい特徴がないかを読み、見つけたら止める。これがWAFの働きです。ほかの3つは、通信の中身を検査して遮断するものではありません。

  • ❌ ア「Webサーバへの侵入を外部から実際に試みる」→ ペネトレーションテスト(侵入テスト)の説明です
  • ❌ イ「TLSの暗号化と復号を専用のハードウェアで行う」→ Webサーバの負荷を軽くする装置の説明です
  • ❌ ウ「質問に答える形式で自組織の対策レベルを診断する」→ 自己診断の説明で、通信は見ていません

もう1問、誤検知を問う形も解いてみましょう。

腕試し問題

出典:情報セキュリティマネジメント試験 令和元年秋期 問14

WAFにおけるフォールスポジティブに該当するものはどれか。

解答と解説

解説(解答せずに開けます)

正解はアです。

フォールスポジティブは、正当な通信を攻撃と判定して遮断してしまうことでした。アでは、ある記号を見つけたら遮断する設定にしたために、その記号を含む正しいリクエストまで止まっています。

  • ❌ イ「独自に追加されたフィールドを検査しない仕様を突かれ、遮断しない」→ 攻撃を見逃す側の話です
  • ❌ ウ「許可しない文字列を含む不正なリクエストを遮断する」→ 攻撃を正しく止めた場合です
  • ❌ エ「分割して送られたリクエストを遮断しない」→ これも見逃す側になります

まとめ

  • WAFは、Webアプリケーションへの通信の中身を検査して不正な通信を遮断する仕組み
  • 置き場所は利用者とWebサーバのあいだ。SQLインジェクションのように、許可された通信に紛れた攻撃を対象にする
  • 過去問でいうブラックリストは問題のある通信データパターンを止めるもの、ホワイトリストは許した書き方だけを通すもの
  • 誤検知(フォールスポジティブ=正当な通信を止めてしまう)と見逃し(攻撃を通してしまう)のどちらも起こりうる。危険を減らす仕組みであって、ゼロにする仕組みではない
  • ファイアウォールとは見ている情報が違う。どこ宛てかを見るのがパケットフィルタリング型のファイアウォール、何を書いてきたかを見るのがWAF

似た役割の仕組みが並ぶ分野なので、まずは「WAFはWebアプリの入力を読む」という一点を軸にしておきましょう。ファイアウォールや侵入テストとの区別も、そこから引き算で考えられます。

この記事のタグ

関連記事