WAFの仕組み
WAFは「Web Application Firewall(Webアプリケーションファイアウォール)」の略です。サイトに届くアクセスの中身を一つずつ確かめ、攻撃によく使われる文字列やパターンが含まれていれば、サイトに届く前に遮断します。
たとえるなら、建物の入口に立つ警備員のようなものです。来訪者の持ち物を確認し、危険な物を持ち込もうとする人を中に入れません。建物の中に弱い窓(脆弱性)が残っていても、そこにたどり着く前に止められる可能性が高まります。
一般的なファイアウォールは、通信の送信元や宛先などをもとに、通してよいかを判断します。WAFはそれに加えて、お問い合わせフォームの入力内容やURLの中身など、Webサイト特有のやり取りまで調べる点が異なります。
WordPressサイトでの例
WordPressサイトで使われるWAFには、主に次の3種類があります。
- サーバー型:レンタルサーバーに備わっているもの。サーバーの管理画面で、有効・無効を切り替えられることが多くあります
- クラウド型:サイトの手前に外部のサービスを置き、アクセスをいったんそこに通すもの。ドメインの設定(DNS)を変更して使います
- プラグイン型:WordPressのプラグインとして導入するもの。ログイン画面の保護などの機能と一緒に提供されることがよくあります
WAFが遮断する攻撃の例は、SQLインジェクションやクロスサイトスクリプティング、脆弱性を悪用した不正なファイルのアップロードなどです。
一方で、正常な操作を攻撃と誤って判断する「誤検知」が起こることもあります。たとえば、記事の本文にプログラムのコードを書いて保存しようとしたら、エラーになって保存できない、といったケースです。
見つけ方・確認方法
- 契約しているサーバーの管理画面で、WAFの機能があるか、有効になっているかを確認する
- WAFのログ(遮断の記録)を見られる場合は、どのようなアクセスが止められているかを確認する
- 記事の保存や設定の変更で原因のわからないエラーが出る場合は、WAFの誤検知を疑い、ログと照らし合わせる
対策
- サーバーにWAFの機能があれば、有効にしておく
- 誤検知で一時的にWAFを無効にした場合は、作業が終わったら必ず元に戻す
- WAFは脆弱性そのものを直すものではないため、WordPress本体・テーマ・プラグインの更新は欠かさない
- 修正版が出る前のゼロデイ攻撃への備えとして、WAFと改ざん検知を組み合わせる
WAFは万能ではなく、すべての攻撃を止められるわけではありません。更新・パスワードの管理・バックアップといった基本的な対策と組み合わせて使うことが大切です。

