WAF(Webアプリケーションファイアウォール)

技術の仕組み | Webセキュリティの基礎

← 技術の仕組み

WAFは、Webサーバの手前に立って要求の中身を読み、攻撃らしいものを止める装置・サービスです。名前が似ているファイアウォールとは見ている層が違います。ここを取り違えると「FWがあるのになぜWAFが要るのか」に答えられません。

先に押さえる

ファイアウォールは宛先と入口(アドレスとポート番号)で通す・通さないを決めます。ところがWebの攻撃は、通してよい入口(Webの窓口)から、通常の形の要求として入ってきます。宛先で見ている限り、正常な閲覧と区別が付きません。そこで要求の中身(パラメータや本文)まで読むのがWAFです。層が違うので、どちらかで代替できません

止める場所が違う

ファイアウォール

  • 見るもの:宛先・送信元・ポート番号
  • 止めるもの:開けていない入口への接続
  • Web宛の要求は中身を見ずに通す

WAF

  • 見るもの:要求の中身(入力値・本文・ヘッダー)
  • 止めるもの:注入や不正な操作を狙う要求の形
  • 正常な閲覧は通し、攻撃らしいものだけ落とす

動きで見る

1要求はWAFを通ってからサーバへ届く
利用者・攻撃者同じ入口へ、同じ形の要求を送る
入力値に注入を狙う文字列が混ざっていないか
WAF中身を検査し、合致すれば遮断・記録するここで判定
通ったものだけが到達する
Webサーバ/アプリ本来の処理を行う

判定の作り方は2通りあります。攻撃の型を集めて「これに合ったら落とす」とするやり方(既知の手口に強く、未知に弱い)と、正常な形を定義して「それ以外を落とす」やり方(未知にも効くが、定義の手間が大きい)。実務では前者を土台に、必要な箇所で後者を足します。

つまずきポイント

WAFは暗号化されたままの通信の中身を読めません。読むには手前で一度ほどく必要があり、その分だけ「平文が見える場所」が増えます。また、止める判定を厳しくすると正常な利用まで落ち(誤検知)、緩めると攻撃が通り抜けます。導入後に何もしなくてよい装置ではなく、調整が前提です。

本命はアプリの修正、WAFは時間を買う手段

見抜きどころ

設問では、脆弱性が見つかった直後に「修正までの間どうするか」という形で出ます。答えの向きは暫定対策:アプリを直すには影響調査と試験の時間が要るので、その間だけWAFで該当の要求を止める。逆に「WAFを入れたから直さなくてよい」は誤りで、根本対策はアプリ側の修正です。この暫定と恒久の切り分けがそのまま得点になります。

置き方で変わること

手前に置く(経路上)

  • 通信が必ず通るので漏れがない
  • 止まるとサービスも止まるため冗長化が要る

サーバに同居させる

  • 機器を増やさずに済む
  • サーバの負荷を食う。台数分の設定が要る

つながる仕組み

中身を見る前提← TLS通信の傍受と復号 アプリ側の守りレスポンスヘッダーとCSP →

この仕組みを使う設問