WAF(Webアプリケーションファイアウォール)について調べてみよう

WAFとはWebサイト(Webアプリケーション)に特化したファイアウォールのことで、脆弱性を悪用した攻撃からWebサイトを保護します。Webサイトと訪問者間で不正なデータのやりとりがないかを監視し、問題があればアクセスを制限します。一般的なファイアウォールとは異なり、データの内容からアクセスの正当性を判断します。

WAFの種類にもよりますが、不正アクセスの検出はシグネチャベースとなっています。過去の攻撃(不正アクセス)はパターン化されデータベースに蓄積されています。アクセスに応じてデータベースに蓄積されたパターンと照合し、もし一致すれば不正なアクセスと見なします。他にも、検出パターンに特徴的な個人情報(クレジットカード番号等)を登録しておくことで、個人情報の漏洩を防ぐことができます。

レンタルサーバー採用されることの多い国産の「SiteGuard Lite」はWebサーバーにインストールするタイプなので、既存のシステムにあまり手を加えることなく導入できます。SiteGuard Liteは下記の攻撃に対応します。

  • SQLインジェクション
    • データベースの改ざん検出と防御
  • クロスサイトスクリプティング
    • サイト改ざん検出と防御
  • ディレクトリトラバーサル
    • データ情報漏洩検出と防御
  • OSコマンドインジェクション
    • 不正操作の検出と防御
  • HTTPヘッダインジェクション
    • HTTPヘッダの改ざん検出と防御
  • ブルートフォース(ログインアタック等)
    • アカウント(IDとパスワード)の総当たり攻撃の検出と防御

例えば、Webアプリケーションへの通信内容に、データベースを不正に操作する「SQL インジェクション」の特徴的なパラメーターが含まれていた場合、その通信を遮断します。

デメリットもあります。WAFは通信内容を機械的に検査するため、正常な通信であっても不正と見なすことがあります。例えば、WordPressの管理画面で何かしらの更新を行うと、不正アクセスと見なされ403エラーが発生することも過去にありました。WAFの特徴を知らなければ、原因を特定するのに時間がかかるでしょう。

レンタルサーバーのWAFはユーザー自身で細かな設定ができません。もし、Webサイトの運営に支障があるなら利用を諦めるしかありません。

WAFはWebサイトの脆弱性を修正するような、根本的な対応を行うわけではありません。あくまでも脆弱性への攻撃を低減するための対策となっています。不正アクセスの検出は機械的に行われるため、新しい攻撃パターンであれば防げない可能性もあります。あくまでもWAFは保険と考え、Webサイトにセキュリティ上の問題があれば、すぐに対応することが大事です。

ファイアウォールとの違い

WAFは名称にファイアウォールが付きますが、一般的なファイアウォール(FW)とは異なります。FWは、公開する必要がないサービスへのアクセスを制限することで不正な攻撃を防ぎます。多くはアクセス元やアクセス先(IPアドレスやポート番号、プロトコルなど)により制限するため、通信内容は関係ありません。

例えば、社内用ファイル共有サービス等、外部へ公開する必要のないサービスを組織内部のみに制限することができます。このように、FWを利用すればインターネット(外部)から公開したくないサービスを隔離することができます。

ただし、企業等のWebサイトの様にインターネットへの公開が必要なサービスも多くあります。FWでは、悪意のあるアクセスと通常のアクセスを判別して、個別に制限することはできません。

このような場合にWAFを利用します。WAFは、HTTPやHTTPSの通信内容を監視しているため、Webサイトへの様々なアクセスを細かく制御することができます。