メインコンテンツへスキップ

WAFとは

この記事は約 2 分で読めます

WAF (Web Application Firewall) とは、 Web アプリケーションへの HTTP/HTTPS トラフィックを検査し、SQL インジェクションXSS などの攻撃を検知・遮断する専用のファイアウォールです。通常のファイアウォールがネットワーク層 (IP アドレス、ポート番号) で通信を制御するのに対し、 WAF はアプリケーション層 (HTTP リクエストの内容) を解析します。 2025 年現在、 API セキュリティに特化した WAF 機能の強化が進んでいます。

現場での使用例

「 EC サイトのログインページに対するクレデンシャルスタッフィング攻撃を WAF で検知しました。 1 分間に同一 IP から 200 回以上のログイン試行があり、 WAF のレートベースルールで自動ブロック。正規ユーザーへの影響なく攻撃を遮断できています。」

WAF の検知方式

シグネチャベース方式は、既知の攻撃パターン (例: SQL 文を含むリクエストパラメータ) をルールで定義して検知します。スコアリング方式は、複数の疑わしい特徴にスコアを付け、閾値を超えたリクエストをブロックします。機械学習ベース方式は、正常なトラフィックを学習して異常なリクエストを自動検知します。 AWS WAF 、 Cloudflare WAF 、 Akamai などのクラウド WAF は、グローバルな脅威情報をリアルタイムにルールに反映できる点が強みです。

同じ 1 件のリクエストを、どこまで見て判断するか

ネットワーク層 - 通常のファイアウォールが判断に使える範囲
送信元 IP アドレス宛先ポート番号
この範囲だけでは、ログインページに届いた送信が正規の入力なのか攻撃なのかを区別できません。
WAF は同じリクエストの中身まで解析する
アプリケーション層 - WAF が解析する範囲 (HTTP リクエストの内容)
URL パスとメソッド
EC サイトのログインページへの送信
同一 IP から 1 分間に 200 回を超えるログイン試行があれば、レートベースルールで自動的に遮断します (クレデンシャルスタッフィング)。
クエリパラメータ
検索フォームに入力された文字列
リクエストパラメータに SQL 文が含まれていれば、既知の攻撃パターンとしてシグネチャベース方式で検知します (SQL インジェクション)。
リクエストの本文
レビュー投稿として送られた内容
投稿本文に仕込まれたスクリプトを検知して遮断します (XSS)。
攻撃と判断されなければ、リクエストは Web サーバーへ転送されます。
攻撃と判断されれば、リクエストはここで遮断され Web サーバーには届きません。

1 つのパターンに一致しなくても、スコアリング方式では疑わしい特徴のスコアの合計が閾値を超えた時点で遮断されます。機械学習ベース方式では、学習した正常なトラフィックからの逸脱そのものが判断材料になります。なお、導入直後のモニタリングモードでは、攻撃と判断しても遮断せず Web サーバーへ転送します。

導入シナリオと運用

EC サイトでは、ログインページへのクレデンシャルスタッフィング攻撃、検索フォームへの SQL インジェクション、レビュー投稿への XSS を WAF で防御します。導入直後はモニタリングモード (検知のみ、遮断なし) で運用し、誤検知のパターンを把握してからブロックモードに切り替えるのが安全です。正規のリクエストが誤ってブロックされるフォルスポジティブへの対処が、 WAF 運用の最大の課題です。DNS セキュリティと WAF を組み合わせることで、多層的な Web 防御を実現できます。

WAF の限界

WAF はあくまで防御層の 1 つであり、アプリケーション自体の脆弱性を修正する代わりにはなりません。 WAF を回避する高度な攻撃手法も存在するため、セキュアコーディングと WAF の両方が必要です。強力なランダムパスワードで WAF の管理コンソールを保護し、ルールの変更履歴を監査ログに記録しましょう。

関連用語

この記事は役に立ちましたか?