WAF とは
WAF (Web Application Firewall) とは、クロスサイト・スクリプティングや SQL インジェクションといった、Web アプリケーションに対する攻撃を防御する製品のことです。
WAF は Web アプリケーションにリクエストが届く前にリクエストを検査し、攻撃だと検知したらブロックしてくれます。そのため、Web アプリケーションに潜在的な脆弱性が含まれている場合の多層防御として有効に機能します。特に、事情により改修ができなくなった Web アプリケーションの保護に役立ちます。
WAF にはネットワーク型とホスト型があり、ネットワーク型はネットワーク上にサーバーもしくはアプライアンスを設置して、複数台のサーバーに対する攻撃を防ぐことができます。ホスト型は、各サーバーごとに WAF を導入して単体のサーバーのみを防御します。
ネットワーク型とホスト型は、コスト、運用負荷、パフォーマンスなど、それぞれにメリット・デメリットがあるので、導入対象のシステムに最適な WAF を選定する必要があります。
オープンソースの WAF として利用できるものには、Linux/Apache 向けの ModSecurity と、Windows Server/IIS 向けの WebKnight があります。
このページでは、無償で利用できる ModSecurity と WebKnight と、商用の SiteGuard Lite を取り上げます。
ModSecurity
ModSecurity は、オープンソースで開発されている、Linux/Apache 環境で利用できるホスト型 WAF です。無償で利用できるため広く利用されています。
ModSecurity はオープンソースで開発されていますが、本体以外に OWASP で作成されている CRS (Core Rule Set) というシグネチャを導入する必要があります。この CRS に記載されたシグネチャでリクエストを検査します。CRS は最新の攻撃に対応するなどの理由でバージョンアップされるため、CRS の保守作業が必要になります。
以前は、ソースコードからビルドしてインストールしなければならなかったため敷居が高かったですが、最近は、EPEL リポジトリから yum コマンドでインストールすることができるようになったので導入も楽になりました。
なお、以前の Windows 版は IIS 7 向けのみでしたが、バージョン 2.8 から最新版の IIS8.5 まで対応したようです(公式アナウンスはなし)。
ModSecurity Tips (CentOS 版)
- オープンソースの WAF である ModSecurity を CentOS にインストールする
- ModSecurity で攻撃を検知してもブロックせずログ出力のみする方法
- WordPress が動作している CentOS に ModSecurity を導入する
- ModSecurity で IP アドレスをホワイトリストに追加しチェックをスルーする方法
- ModSecurity のホワイトリストに IP アドレスをサブネットの範囲指定で追加する方法
- ModSecurity を無効にする方法
- ModSecurity を使用して Apache のサーバー名を偽装する
- ModSecurity をアンインストールする
- ModSecurity (WAF) を導入して分かること
- ModSecurity の導入・運用はやっぱり大変
ModSecurity Tips (Windows 版)
WebKnight
WebKnight は AQTRONIX 社がオープンソースとして開発している Windows Server/IIS 向けのホスト型 WAF です。無償で利用でき、インストールも簡単なので手軽に導入できます。有償になりますがサポートを受けることもできます(英語)。
WebKnightは、知名度はあまり高くありません。そのため、インターネット上の情報もあまり多くはありません。日本語情報に至ってはほとんどない状態です。
ですが、WebKnight は WAF として基本的な機能をもっているだけでなく、DoS, DDoS 攻撃を防御する機能もあるのが大きな特徴です。これだけでも、導入する価値があります。
また、サポートする IIS も IIS 5/6/7/(8) と幅広く、ISAPI をサポートしている Web サーバーになら導入可能です。そのため、最新の Windows Server 2012 R2 の IIS 8.5 でも問題なく動作します。
WebKnight Tips
- オープンソースの WAF である WebKnight を Windows Server 2012 R2 にインストールする
- WebKnight で攻撃を検知してもブロックせずログ出力のみする方法
- WebKnight のエラー画面を表示させず、403 エラーを返すようにする
- WebKnight を導入して、IIS のバージョンを隠すまたは偽装する
- WebKnight で IIS への DoS, DDoS 攻撃への対策を行う
- WebKnight をアンインストールする
- WordPress が動作している Windows Server に WebKnight を導入してみる
- WebKnight を導入した IIS で、WordPress の URL に日本語が含まれるとエラーになる問題の解決法
SiteGuard Lite
SiteGuard Lite は商用の WAF ですが、さくらVPS のように無償で提供されている場合もあるので、使い勝手がよいですし導入できるなら導入することをお勧めします。
SiteGuard Lite は Linux の Apache と Windows Server の IIS の両方に対応しているのもメリットになります。
詳しくは下記記事を参考にしてください。