Webアプリケーション・セキュリティ
WAFによる脆弱性対策
WAFとは、Webアプリケーションの脆弱性を悪用した攻撃などからWebアプリケーションを保護するネットワーク製品です。ソフトウエアとして提供されているものと、ハードウエア・アプライアンスとして提供されているものがあります。
セキュリティの検査機能でWAFを大別した場合、以下の2つがあります。
- ホワイト・リスト型WAF
- 正しい通信をホワイト・リストとして定義し、合致しないときに通信を遮断
- ブラック・リスト型WAF
- 既知の攻撃パターンをブラック・リスト(シグネチャなど)として定義し、合致した時に通信を遮断
以下では、ホワイト・リストとブラック・リストを併用する、米Imperva(インパーバ)製の「SecureSphere WAF」(セキュアスフィアWAF)を例に、Webサイトの脆弱性対策としてWAFがどのように有効なのかを説明します。
図3は、SecureSphere WAFでホワイト・リストを設定している画面です。URLごとに、それぞれ許可するHTTPメソッドを定義しているほか、パラメータごとに、それぞれ許可する文字タイプ/長さ/特殊文字を定義しています。現在の多くのWAFがそうであるように、SecureSphereもまた、ホワイト・リストを自動学習します。
図3: SecureSphere WAFにホワイト・リストを設定する(クリックで拡大) |
ホワイト・リストを用いて前述のSQLインジェクションを防御するやり方は、パラメータの特殊文字として「=」や「>」や「'」を許可しなければよいのです。しかし、ホワイト・リストだけでセキュリティを保つためには、前提としてホワイト・リストの記述内容が適切であることが必要です。適切でない場合は、正常な通信も含めて遮断(誤検知)してしまうからです。
ホワイト・リストの自動学習は完全ではありません。どのベンダーのWAFも、100%正しいホワイト・リストを生成できるわけではありません。このため、ホワイト・リストの運用は、手動による確認と調整が必要になり、多大な作業が生じてしまいます。
このような背景から、多くのWAFは、ブラック・リスト(シグネチャ)を使うことがトレンドとなっています。しかし、前述したように、ブラック・リストの場合、シグネチャの回避手法が数多くあり、十分なセキュリティを保つことができません。
SecureSphere WAFの場合、相関攻撃検証と呼ぶ独自技術により、ブラック・リストを使いつつも、セキュリティを犠牲にしていません。相関攻撃検証とは、複数のイベントの相関関係を分析し、高い精度で攻撃を検知する技術です。例えば、「防御対象外のSQLインジェクションのシグネチャ違反と、ホワイト・リストの違反が、同一のHTTPリクエスト内で発生した場合、防御する」などの相関ルールを持っています。
まとめ
ここまで、Webサイトの脆弱性対策にWAFが有効であることを説明してきましたが、WAFでは防御できない脆弱性もあります。例えば、容易に推測可能なセッションIDの付与などが相当します。また、WAFは決して安価な製品でないため、導入の際は、十分に検討することが肝要です。
WAFの導入を検討する際には、以下の資料が参考になります。
- Web Application Firewall 読本(IPA)
- Web Application Firewall Evaluation Criteria(The Web Application Security Consortium)
WAFを自社で運用したくないという場合でも、WAFを導入できる体制が整ってきています。具体的には、WAFの運用アウト・ソーシングを請け負うサービス(MSS: Managed Security Service)が、WAFの普及によって各社から提供されるようになってきています。