結論: WAF(ワフ)は、Webサイトへの通信の中身を見て、SQLインジェクションなどの攻撃を検知・遮断する仕組みです。IPアドレスやポート番号を見るファイアウォールとは、見る場所が違います。ただし、WAFは万能ではなく、脆弱性の修正の代わりにはなりません。時間を稼ぎ、被害を減らす補助として使います。
WAFとは
WAFは、Web Application Firewall(ウェブ・アプリケーション・ファイアウォール)の略です。Webサイトやアプリへの通信(HTTP/HTTPS)を、サーバーの手前で受け止めて、中身を検査します。
たとえば、次のような通信を、攻撃の疑いがあるとして止めます。
- 入力欄に、データベースへの命令のような文字列が含まれている(SQLインジェクション)
- 入力欄に、スクリプトのような文字列が含まれている(XSS)
- 短時間に、大量のログインを試す通信
ファイアウォールとの違い
| ファイアウォール | WAF | |
|---|---|---|
| 見るもの | IPアドレス、ポート番号 | HTTP/HTTPSの中身(URL・入力値) |
| たとえると | 建物の入口の警備員 | 荷物の中身を調べる検査 |
| 得意なこと | 不要な入口を閉じておく | SQLインジェクションなどの検知 |
ファイアウォールの基本は、ファイアウォールとはで解説しています。Webサイトの「入口(80番・443番)」は、ファイアウォールも開けているため、その先の中身を見るのが、WAFの役割です。ポート番号については、ポート番号とはをご覧ください。
WAFの種類
| 種類 | 特徴 | 向く場面 |
|---|---|---|
| クラウド型 | サービスを契約し、通信をそこ経由にする。導入が早い | 小規模なサイト、早く始めたい場合 |
| ネットワーク型(専用機器) | 専用の機器を、サーバーの手前に置く | 大規模なシステム、自社で管理したい場合 |
| ホスト型(ソフトウェア) | サーバーに、ソフトウェアを入れる | サーバーの設定を細かく調整したい場合 |
レンタルサーバーやCDNに、WAFの機能が付いていることもあります。リバースプロキシの仕組みを使って、通信を中継するタイプもあります。
どうやって攻撃を見分けるのか
| 方式 | 考え方 | 特徴 |
|---|---|---|
| シグネチャ型 | 既知の攻撃のパターンと、照らし合わせる | 導入しやすい。新しい形の攻撃は、見逃すことがある |
| ホワイトリスト型 | 許可する通信の形を決めておき、それ以外を止める | 精度が高いが、設定に手間がかかる |
| 振る舞い・学習型 | 通常の通信を学習し、外れたものを疑う | 設定の手間は減るが、誤検知もある |
防げるもの・防げないもの
| 防げる(得意) | 防ぎにくい |
|---|---|
| SQLインジェクション、XSSなどの、既知のパターン | 正規のログインに見える、不正な操作 |
| 脆弱性を狙う、既知の攻撃(一時的な対策として) | 設計の不備(権限の設定ミスなど) |
| 大量のアクセスや、機械的な試行の一部 | 新しい形の攻撃(パターンにない) |
盗まれた認証情報で、正規にログインされた場合は、通信の中身が正常に見えるため、WAFでは見分けにくくなります。多要素認証や、権限の管理と組み合わせて守ります。
導入する時の注意
① まずは「検知モード」から
WAFは、**正常な通信を、攻撃と誤って判断する(誤検知)**ことがあります。いきなり遮断すると、投稿画面や、決済が、使えなくなることがあります。
- **検知(記録のみ)**で動かし、誤検知を確認する
- 必要な例外を設定する
- 遮断に切り替える
② 脆弱性の修正は、省略しない
WAFで、一時的に攻撃を止めて、時間を稼ぐことはできます。ただし、原因の脆弱性が残っていれば、攻撃の形を変えられると、すり抜けることがあります。
- プログラムは、プレースホルダなどで、根本から対策する(SQLインジェクション対策)
- ソフトウェアは、更新を適用する(脆弱性とは)
- 修正版が出る前の脆弱性は、ゼロデイ脆弱性といいます
③ ログを見る体制をつくる
WAFは、何を止めたかを記録します。記録を見ないと、攻撃の兆候に、気づけません。
小規模サイトの運営者へ
個人や小規模なサイトでは、次の順番で、確認するとよいでしょう。
- 使っているレンタルサーバーやCDNに、WAFの機能がないか確認する(設定ひとつで使えることがあります)
- WordPressなどのソフトウェアとプラグインを、最新に保つ
- 管理画面を、多要素認証や、IP制限で守る
- 通信はHTTPSにする(SSL/TLSとは)
まとめ
- WAFは、Webサイトへの通信の中身を見て、攻撃を検知・遮断する仕組み
- ファイアウォールは入口(IP・ポート)、WAFは中身(URL・入力値)を見る。役割が違い、組み合わせて使う
- SQLインジェクションやXSSなどの既知の攻撃は得意。正規のログインに見える不正は苦手
- 導入は検知モードから。脆弱性の修正は省略しない
関連記事:ファイアウォールとは、SQLインジェクションとは、XSSとは、リバースプロキシとは、CDNとは
あわせて読みたい:IDS・IPSとは