検索
連載

WAFはどのように脆弱性を防御するのかWebアプリケーションファイアウォールの必要性(3)(1/3 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 本連載の1回目および2回目では、Webアプリケーションの脆弱性について例を挙げて説明した。第1回にも書いたとおりWebアプリケーションの脆弱性を防御することができるのは、セキュアプログラミングとWebアプリケーションファイアウォール(WAF)である。

 セキュアプログラミングが、アプリケーションプログラム自体の対策方法であるのに対して、WAFはアプリケーションからは独立した外付けの対策である。これら2つは排他的な関係にあるわけではなく、WAFはセキュアプログラミングを補完するものであるといえる。

 プログラム自体をセキュアに作成していくことは、どのWebアプリケーションにおいても必要である。しかし、現実的にはWebアプリケーションのすべての脆弱性をセキュアプログラミングだけで防ぎきれるものではない。そこで必要となってくるのがWAFであり、セキュアプログラミングとの2重の防御によって脆弱性にさらされる危険性を減らしてゆくのである。

 今回はいよいよWAFを利用した具体的な対策について解説していこう。現在、市場に出回っているWAFには、大きく分けてアプライアンス製品とソフトウェア製品がある。以下のリストはそれぞれのメジャーな製品をリリースしているベンダのリストである。

アプライアンス製品ベンダ(アルファベット順)

ソフトウェア製品ベンダ(アルファベット順)

 このほかに、Apacheのモジュールとして組み込める「mod_security」がある。

ポジティブモデルとネガティブモデル

 WAFにはセキュリティモデルの違いとして、ポジティブセキュリティモデルとネガティブセキュリティモデルが存在する。

 ポジティブセキュリティモデルとは、設定をしていない場合はすべてのトラフィックを不通過とし、管理者が明示的に設定したトラフィック(ホワイトリスト)のみを通過させるものである。WAFの多くはポジティブセキュリティモデルをベースに動作する。

 これに対しネガティブセキュリティモデルは、管理者による明示的な設定ないし管理システムから定期的にダウンロードするシグネチャにマッチしたトラフィック(ブラックリスト)のみを遮断するものである。不正侵入検知システム(IDS)や不正侵入防御システム(IPS)、クライアントPCにおけるウイルス対策ソフトなどがネガティブセキュリティモデルに相当する。WAFでもこの機能を補助的に使用するものが多い。

 Webアプリケーションの脆弱性は、従来のHTTPDやOSへの攻撃とは違い、Webアプリケーションごとに異なっており、開発者の想定外の動作を引き起こすものである。WAFがポジティブセキュリティモデルを主に使用する理由は、管理者の想定外のトラフィックを遮断する仕組みがWebアプリケーションの脆弱性を突く攻撃を防ぐのにマッチするからである。ちなみにネガティブセキュリティモデルは、ある程度の攻撃パターンがあらかじめ把握できる攻撃に対して有効である。

 それでは、ネットワーク上への配置からセキュリティポリシーを含めたWAFの機能と、WAFでWebアプリケーションに対する攻撃をどのように防御するかを紹介する。解説していくに当たり、サンプルとしてF5 NetworksのBIG-IP用セキュリティモジュールである「Application Security Module(ASM)」を見ていくことにする。ASMは、ポジティブセキュリティモデルを採用し、補助的にネガティブセキュリティモデルを使用するWAFである。

ネットワーク構成とWAFの役割

 WAFには、リバースプロキシとして動作しWebサーバの前段でHTTPの通信を終端するものと、透過デバイスとして使用できるものがある。両者のネットワーク構成を以下に示す。BIG-IP ASMを含むいくつかの製品は、透過デバイスとしての設置が可能であり、Webサーバに対するロードバランス機能などを備えている。

図1 リバースプロキシ型と透過デバイス型
図1 リバースプロキシ型と透過デバイス型

 WAFの基本的な役割とは、クライアントからWebサーバに向けて送信されるデータおよび入力のチェックを行い、不正な入力がWebサーバに渡されないようにすることである。そこでWAFはWebアプリケーションが稼働するサーバの前段階に配置され、不正な入力があれば通信を遮断し、内部のWebアプリケーションを防御する。なお、製品によっては設定次第でレスポンスのチェックもできるものがある。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る