「WAFって普通のファイアウォールと何が違うの?」「なぜWebサイトにWAFが必要なの?」
Webサイトやアプリケーションを運営していると、WAFという言葉を耳にすることがあります。サイバー攻撃からWebアプリを守る重要な仕組みですが、普通のファイアウォールとは役割が異なります。
この記事では、WAFとは何か、なぜ必要なのかを初心者向けに解説します。
WAFとは?
Webアプリ専門の「門番」
WAF(Web Application Firewall)は、Webアプリケーションへの攻撃を検知・防御するセキュリティ対策です。日本語では「Webアプリケーションファイアウォール」と呼ばれます。
通常のファイアウォールが「建物の入口のセキュリティゲート」だとすると、WAFは「各部屋の前に立つ警備員」のようなイメージです。より細かいレベルでチェックを行います。
通常のファイアウォールとの違い
| 項目 | 通常のファイアウォール | WAF |
|---|---|---|
| 動作レイヤー | ネットワーク層(L3/L4) | アプリケーション層(L7) |
| 検査対象 | IPアドレス、ポート番号 | HTTP/HTTPSの中身 |
| 防げる攻撃 | 不正なアクセス元からの接続 | SQLインジェクション、XSSなど |
| 例え | 建物の入口ゲート | 各部屋の前の警備員 |
通常のファイアウォールは「どこから来たか」を見ますが、WAFは「何をしようとしているか」を見ます。
WAFが防ぐ攻撃
WAFは、Webアプリケーションを狙った様々な攻撃を防ぎます。
SQLインジェクション
データベースを不正に操作する攻撃。入力フォームに悪意のあるSQL文を入力して、データを盗んだり改ざんしたりします。
例:ログインフォームに「' OR '1'='1」と入力
クロスサイトスクリプティング(XSS)
悪意のあるスクリプトをWebページに埋め込む攻撃。他のユーザーの情報を盗んだり、偽の画面を表示したりします。
クロスサイトリクエストフォージェリ(CSRF)
ユーザーに意図しない操作をさせる攻撃。ログイン中のユーザーに、知らないうちに送金や設定変更をさせます。
DDoS攻撃(一部)
大量のリクエストでサービスを停止させる攻撃。WAFは、アプリケーション層のDDoS攻撃を緩和できます。
ディレクトリトラバーサル
サーバー上のファイルに不正アクセスする攻撃。「../」を使ってディレクトリを遡り、機密ファイルを読み取ろうとします。
| 攻撃名 | 概要 |
|---|---|
| SQLインジェクション | データベースを不正操作 |
| XSS | 悪意のあるスクリプトを実行 |
| CSRF | ユーザーに意図しない操作をさせる |
| DDoS(L7) | 大量リクエストでサービス停止 |
| ディレクトリトラバーサル | ファイルへの不正アクセス |
WAFの仕組み
WAFはどのように攻撃を検知しているのでしょうか?
シグネチャベース(ブラックリスト方式)
既知の攻撃パターン(シグネチャ)と照合して、一致したらブロックする方式。
- メリット:既知の攻撃に対して確実に防御
- デメリット:未知の攻撃は検知できない
スコアリング方式
複数のルールでチェックし、スコアが閾値を超えたらブロックする方式。
- メリット:柔軟な判定が可能
- デメリット:チューニングが必要
機械学習ベース
正常な通信を学習し、異常なパターンを検知する方式。
- メリット:未知の攻撃にも対応できる可能性
- デメリット:誤検知のリスク、学習期間が必要
WAFの種類
WAFには、設置形態によっていくつかの種類があります。
クラウド型WAF
クラウドサービスとして提供されるWAF。導入が簡単で、運用の手間も少ないです。
代表的なサービス:
- AWS WAF
- Cloudflare WAF
- Azure Web Application Firewall
アプライアンス型WAF
専用のハードウェアとして提供されるWAF。高性能で、大規模環境向け。
ソフトウェア型WAF
サーバーにインストールして使うWAF。
代表的なソフトウェア:
- ModSecurity(オープンソース)
| 種類 | メリット | デメリット |
|---|---|---|
| クラウド型 | 導入が簡単、運用負荷が低い | カスタマイズに制限 |
| アプライアンス型 | 高性能、細かい制御が可能 | 高価、運用スキルが必要 |
| ソフトウェア型 | コストが低い | サーバーに負荷がかかる |
WAF導入の注意点
誤検知(フォルスポジティブ)
正常な通信を攻撃と誤判定してブロックしてしまうことがあります。導入後はログを確認して、必要に応じてルールを調整しましょう。
パフォーマンスへの影響
WAFはリクエストを検査するため、多少のレイテンシ(遅延)が発生します。ただし、クラウド型WAFなら影響は最小限です。
WAFだけでは不十分
WAFは万能ではありません。アプリケーション側のセキュリティ対策(入力値検証、パラメータ化クエリなど)と組み合わせることが重要です。
まとめ
この記事のポイントを整理します。
| 項目 | 内容 |
|---|---|
| WAFとは | Webアプリケーションへの攻撃を防ぐセキュリティ対策 |
| 通常のFWとの違い | HTTPの中身を検査(アプリケーション層) |
| 防げる攻撃 | SQLインジェクション、XSS、CSRFなど |
| 種類 | クラウド型、アプライアンス型、ソフトウェア型 |
| 注意点 | 誤検知の調整が必要、WAFだけでは不十分 |
WAFは、Webアプリケーションを守る重要な防御層です。特にECサイトや会員制サービスなど、個人情報を扱うサイトでは導入を検討しましょう。
クラウド型WAFなら導入のハードルも低いので、まずは試してみることをおすすめします!