WAFとは|Webアプリケーションへの不正な通信を防ぐ仕組み

当ページは検証・整備中のドラフトです。
内容は実環境での検証や追加調査により変更される予定です。
参照:ページ公開・更新ポリシー

WAFとは

WAF(Web Application Firewall)とは、WebサイトやWebアプリケーションへの通信を検査し、不正なリクエストを検知・遮断する仕組みである。

Webサイトには、ページの表示だけでなく、ログイン、検索、フォーム送信、ファイルアップロードなど様々なHTTP/HTTPS通信が送られる。WAFはこれらの通信を検査し、攻撃と判断したものを遮断する。

名称には「Firewall」が含まれるが、一般的なファイアウォールとは主な保護対象が異なる。

WAFはどのようにWebサイトを守るのか

WAFは、利用者とWebサイトの間でHTTP/HTTPS通信を検査する。

概念的な位置関係は次のようになる。

利用者
  ↓
 WAF
  ↓
Webサイト・Webアプリケーション

WAFはURL、HTTPヘッダー、パラメータ、リクエスト本文などを検査し、定義されたルールや攻撃パターン、検知ロジックに基づいて通信を許可または遮断する。

検査方法や判定方法はWAFによって異なる。

WAFはどのような攻撃を防ぐのか

WAFはWebアプリケーションを狙った攻撃への防御に利用される。

代表例には次がある。

  • SQLインジェクション
  • クロスサイトスクリプティング(XSS)
  • 不正なHTTPリクエスト
  • 既知の攻撃パターンを利用したアクセス
  • 悪質なBotによるアクセス

実際に検知・遮断できる攻撃は、WAFが備える機能やルールによって異なる。

WAFとファイアウォールは何が違うのか

WAFと一般的なファイアウォールは、主に検査・制御する対象が異なる。

種類主に検査・制御するもの主な保護対象
ファイアウォールIPアドレス、ポート、通信状態などネットワークや機器
WAFHTTP/HTTPS通信の内容Webアプリケーション

例えば、Webサイトを公開するにはHTTPSで使用する443番ポートへの通信を許可する。

ファイアウォールは、この通信を許可するか遮断するかを制御する。WAFは許可されたHTTP/HTTPS通信の内容を検査し、その中に攻撃が含まれていないかを判定する。

両者は異なる範囲を防御する。

WAFにはどのような提供形態があるのか

WAFには複数の提供形態がある。

  • クラウドサービスとしてWebサイトの前段に配置する
  • Webサーバー上のソフトウェアとして動作させる
  • 専用のセキュリティ機器として設置する
  • レンタルサーバーやホスティングサービスの機能として利用する

小規模なWebサイトでは、レンタルサーバーやクラウドサービスに組み込まれたWAFも利用できる。

専用機器を設置せず、サービス提供者が用意した検知ルールを利用できる。

WAFによって機能や設定範囲は異なる

WAFは製品やサービスによって機能が異なる。

主な違いには次がある。

  • 検知ルールと更新方法
  • 独自ルールの作成
  • IPアドレスや国・地域による制御
  • Bot対策
  • 一定時間内のアクセス数を制限するレート制限
  • ログの保存と確認
  • 誤検知した通信の除外設定
  • API通信への対応
  • DDoS対策など他の防御機能との連携

レンタルサーバー付属のWAFには、有効・無効など限られた設定だけを利用者に提供するものもある。高機能なWAFでは、URLや通信内容などを条件に独自のルールを設定できる。

機能だけでなく、利用者が管理する範囲にも違いがある。

WAFのデメリット

WAFは、正常な通信を攻撃と判断して遮断することがある。このような誤検知を偽陽性(False Positive)という。

例えば、WordPressで投稿を保存した際、本文に含まれる文字列をWAFが攻撃パターンと判断すると、保存処理が遮断されることがある。

WordPressで投稿を保存
        ↓
       WAF
        ↓
攻撃パターンと誤認
        ↓
      遮断
        ↓
投稿を保存できない

誤検知が発生した場合は、ログから遮断された通信やルールを確認し、必要に応じて除外設定を行う。

高機能なWAFほど設定項目も増える。厳しいルールは正常な通信まで遮断し、緩いルールは攻撃を通過させる範囲を広げる。

提供形態によっては利用料金も発生する。

WAFで防げないもの

WAFはWebアプリケーションへの通信を検査する仕組みであり、Webサイトに関係するすべての脅威を防ぐものではない。

例えば、次の脅威はWAFだけでは防げない。

  • 管理者アカウントの認証情報漏洩
  • サーバーや管理端末への攻撃
  • 正規の認証や機能を悪用した操作
  • 管理端末のマルウェア感染
  • WAFが検知できない攻撃

WordPressでWAFを利用していても、WordPress本体、テーマ、プラグインの脆弱性管理は必要。WAFは、Webサイトを多層的に防御する仕組みの一つである。

大量アクセスへの対策とWAF

WAFには、悪質なBotの遮断や一定時間内のアクセス数を制限する機能を持つものがある。これらは大量のリクエストによるWebサーバーへの負荷も抑える。

一方、大量の通信によって回線やサーバーの処理能力を使い切る攻撃では、CDN、DDoS防御サービス、通信事業者側など、WAFより前段での対策も使われる。

WAFは大量アクセス対策の一部になり得るが、DDoS対策そのものではない。

まとめ

WAFは、WebサイトやWebアプリケーションへのHTTP/HTTPS通信を検査し、不正なリクエストを遮断する仕組みである。

一般的なファイアウォールとは主な保護対象が異なり、SQLインジェクションやクロスサイトスクリプティングなどWebアプリケーションを狙う攻撃への防御に使われる。

機能、検知方法、設定範囲はWAFによって異なる。正常な通信を遮断する誤検知もある。

WAFだけですべての攻撃を防ぐことはできない。脆弱性管理、認証、バックアップ、DDoS対策などと役割を分けて使用する。