Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年12月30日

WAF を導入すべきかどうか

システム設計時に、WAF (Web Application Firewall) を Web アプリケーションサーバーに導入すべきか検討することがあると思います。

WAF は、導入すべき製品なのでしょうか?

私は、以前は WAF に対して否定的でした。

その理由は、設計とコーディング規約でセキュリティ対策を行った上で、Web アプリケーション脆弱性診断を受けてパスしていれば対策としては十分だと考えていたからです。

ですが、実験的に WordPress のサイトに ModSecurity というオープンソースの WAF を導入しました。

様子を見るために、ModSecurity の全てのルールを導入するのではなく、影響の大きい、SQL インジェクションとクロスサイト・スクリプティングにルールを絞って導入しました。

ルールを絞ったのは、全てのルールを導入すると偽陽性(誤検知)の解消が大変になってしまうからです。

ModSecurity の導入をして実際に感じたことは、ModSecurity は偽陽性によって正常なリクエストがブロックされることが多く、運用が大変だなということでした。

一方で、ModSecurity がブロックしている攻撃も多くあることも分かりました。

以下は、LogWatchによる Apache のログですが、403 でリクエストを拒絶しているものが多数あります。

/cgi-bin/php...というリクエストは、「アパッチマギカ」と呼ばれている攻撃です。この攻撃は、CGI 版 PHP がインストールされているだけで影響を受けてしまいます。いくら Web アプリケーションで脆弱性対策をしていても、この攻撃には無力です。

今回は、「アパッチマギカ」という攻撃でしたが、今後、どのような攻撃手法が出てくるか分かりません。

その攻撃に対して、ModSecurity が対応できるかも現時点では不明ですが、ModSecurity を入れていないと攻撃の影響を受けてしまうのは確実です。

また、Web アプリケーションの脆弱性は、どんなに手をつくしても、100% 完璧に脆弱性をなくすことはできません。脆弱性を完璧になくそうとすれば、大きなコストがかかります。

以上のことを踏まえると、Web アプリケーションを守るためには、多層防御という観点からも WAF の導入は十分検討に値します。

脆弱性対策が行われていない古い Web アプリケーションであれば導入は必須でしょう。

WAF を導入するにあたっては、当然コストもかかりますし、工数もかかります。また、偽陽性(偽陰性)が発生するというデメリットも考慮する必要があります。ですが、それを上回るメリットがあります。

試しに導入するのであれば、Linux であれば ModSecurity、Windows Server であれば WebNight というオープンソースの製品がありますので導入しやすいと思います。

ModSecurity と WebKnight については、以下のページにインストール方法などのトピックをまとめてあるので、参考にしてみてください。

オープンソースの製品を使用していて、WAF の効果を実感でき、運用コストを減らしたいと考えられるようになったら、商用製品の検討をするとよいでしょう。

WAF を頭ごなしに否定するのではなく、Web アプリケーションをどうすれば安全に守ることができるかという視点で考えてみてください。


スポンサーリンク




カテゴリー:ブログ

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA