![]() |
【連載】
セキュアなWebサイトを運営するための
Webアプリケーションに潜むセキュリティホール
第11回 Webアプリケーションファイアウォールによる防御
中村隆之
三井物産セキュアディレクション
2004/8/7
| ※ご注意 他社および他組織のWebサイトなどへのポートスキャンおよびデータの取得などの行為で得た情報を侵入などに悪用するか、または同じ目的を持つ第三者に提供した時点で違法となります。ご注意ください。 本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。 また、本稿を利用した行為による問題に関しましては、筆者および株式会社アットマーク・アイティは一切責任を負いかねます。ご了承ください。 |
前回は、アプリケーション開発において、セキュリティを向上させる方法について説明した。今回は、Webアプリケーションのセキュリティを向上させるためのプロダクトやツールなどについて紹介しよう。
| Webアプリケーションファイアウォール |
Webアプリケーションのセキュリティは、アプリケーションそのものがセキュアに作られていて、Webサーバやアプリケーションサーバなどに問題がなければ、クロスサイトスクリプティングやセッションハイジャックなどの攻撃を受けることはない。しかし、どんなアプリケーションにも、1つや2つの問題は存在するのが現実である。これらの問題はもちろん最終的には直す必要があるのだが、まずはフタをして攻撃を受けないようにしてしまうという方法もある。これを行うのが「Webアプリケーションファイアウォール」(以下、WAFと記す)と呼ばれるものである。
なお、筆者はすべてのWAF製品を試用、評価したわけではないので、個々の製品の詳細機能には踏み込まないことにする。本稿では、一般的なWAFに関する説明を行った後、オープンソースのWAFの1つである、mod_securityについて説明していく。
WAFは通常のファイアウォールと同じように、すべてのHTTP/HTTPSトラフィックを中継する構成をとる。WAFは、HTTP(S)通信を中継する際、中身を精査し、不正な文字列が含まれている場合にエラーページを表示したり、リダイレクトしたりする。HTTP(S)通信の中継機能については、通常のWebプロキシとほとんど同じである。唯一異なるのは、HTTPSの場合は暗号化された通信を復号する必要がある点である。WAFを導入した場合の基本的な構成を図1に示す。
![]() |
| 図1 基本的なネットワーク構成 |
| ポジティブモデルとネガティブモデル |
WAFには、ポジティブモデルとネガティブモデルの2通りがある。ポジティブモデルとは、
| ・指定された入力のみ許可 ・デフォルトは拒絶 |
という設定であり、これは一般的なファイアウォールの設定と同じ考え方である。
一方、ネガティブモデルとは、
| ・危険な文字列が検出された場合、拒絶 ・デフォルトは許可 |
という設定である。IDSのように不正入力を表すシグネチャを使い、シグネチャに引っ掛かった場合には通信を拒絶する。以降で、それぞれの方式について詳しく説明する。
●ポジティブモデルの場合
ポジティブモデルは、すべてのアプリケーション、すべてのパラメータそれぞれについて、「正しい値」の情報をあらかじめWAFに教えておくことにより、不正な入力をはじく方法である。Webアプリケーションにおける入力チェックと同じ考え方であり、不正な文字をはじく方法より確実である。
すべてのアプリケーション、すべてのパラメータの設定を行うのは非常に大変であるように思えるが、WAFの製品によっては、ユーザーが巡回する際に送信するパラメータ値の種類を自動的に記録し、「正しい値」を自動的に設定してくれるものもあるようだ。
「正しい値」をWAFに登録するときに、「数字4けた」のような場合は正規表現を使うことで実現できる。しかし、「正しい値」の設定はこのような設定だけではない。例えばFORMのhidden内に入っている情報は、ユーザーによって改ざんされずにそのまま送信されなければならない値である。
ショッピングサイトで価格がhiddenの中に入っていたとしよう。
|
|
悪意のあるユーザーがこの値を以下のように書き換えて送信した場合、どうなるだろうか。
|
|
パラメータ「price」が取り得る値は価格であるので、「198」はアプリケーション的には問題ない値である。そのため、このままではWAFはこの値を不正として検知することができない。
ここでは価格の改ざんを例に挙げたが、同様の改ざんとして、セッションハイジャック/リプレイなどがある。いわゆるロジック系の攻撃である。これらの攻撃はアプリケーション的に正しい値を入れるため、攻撃検知用のシグネチャでは検知できない。ロジック系の脆弱性は危険度が非常に高いものが多いため、この攻撃を防御できる製品が望ましい。
このようなロジック系の攻撃を検知するためには、WAF自身がセッション管理を行う必要がある。同一ユーザーからのリクエストを判別する仕組みはもちろんのこと、サーバがクライアントに返したページの内容をサーバ側で保持していなければならない。改ざんされていないかどうかチェックするためである。この仕組みを図2に示す。
![]() |
| 図2 WAFが行うセッション管理(拡大画像) |
ここまでの機能を備えていると、その防御はほぼ完ぺきに近くなるが、場合によっては、正当な操作なのに不正として処理されてしまうこともあるかもしれない。また、当然のことながらその分コストも高くなる。大量のアクセスがあるサイトなら、WAFのパフォーマンスも考慮しなければならなくなるだろう。
●ネガティブモデルの場合
ネガティブモデルは、不正文字やパターンを登録しておき(これをシグネチャという)、ユーザー入力が登録済シグネチャのどれかにマッチする場合、そのユーザー入力を不正としてはじく方式である。
シグネチャは入力全体に対するものなので、設定はサイト規模には依存しない。ただし、攻撃に使うような文字をあえて許可しているアプリケーションが存在する場合には設定が多少面倒になるだろう。
この方式の場合、基本的にIDSと同じ理論であるので、WAFであるからといって特別なことは行っていない。そのため、それほど知識がなくても導入できるだろう。
| WAFの種類 |
現在、販売・公開されているWAFをいくつか紹介しておこう。
【商用】
・Sanctum AppShield ( http://www.sanctuminc.com/
)
・TEROS APS ( http://www.teros.com/
)
・NetContinuum NCシリーズ ( http://www.netcontinuum.com/
)
・CheckPoint Web Intelligence ( http://www.checkpoint.co.jp/
)
・eeye SecureIIS ( http://www.eeye.com/
)
・iMPERVA SecureSphere ( http://www.imperva.com/
)
・KaVaDo InterDo ( http://www.kavado.com/
)
・F5 TrafficeShield ( http://www.f5networks.co.jp/
)
・Multinet SecureWeb ( http://www.elitesecureweb.com/
)
【フリーソフト】
・mod_security ( http://www.modsecurity.org/
)
・Guardian@JUMPERZ.NET ( http://www.jumperz.net/
)
・CodeSeeker ( http://www.owasp.org/
)
本稿では、この中でフリーのWAFである「mod_security」について説明する。mod_securityは、apacheのモジュールとして組み込む形をとるため、手軽に試すことができる。apache+CGIもしくはPHPなどで運用しているサイトでは、かなり有用になると思う。
|
1/2
|
| Index | |
| Webアプリケーションファイアウォールによる防御 | |
| Page1 Webアプリケーションファイアウォール ポジティブモデルとネガティブモデル WAFの種類 |
|
| Page2 mod_securityとは mod_securityの主な機能 設定サンプル 動作確認 |
|
Webアプリケーションに潜むセキュリティホール バックナンバー
- 第1回 サーバのファイルが丸見え?!
- 第2回 顧客データがすべて盗まれる?!
- 第3回 気を付けたい貧弱なセッション管理
- 第4回 エラーメッセージの危険性
- 第5回 Webアプリケーションの検査テクニック
- 第6回 Webサイトのセッションまわりを調べる方法
- 第7回 攻撃されないためのセッション管理の検査方法
- 第8回 Webサイトの問い合わせ画面に含まれる脆弱性
- 第9回 オンラインショッピングにおける脆弱性の注意点
- 第10回 安全なWebアプリケーション開発のススメ
- 第11回 Webアプリケーションファイアウォールによる防御
- 第12回 mod_securityのXSS対策ルールを作成する
- 第13回 OSコマンドインジェクションを防ぐルールを作成する
- 最終回 Webアプリケーションの脆弱性を総括する
| Profile |
| 中村隆之(なかむらたかゆき) 三井物産セキュアディレクション株式会社勤務。 セキュリティコンサルタントとして主にWebアプリケーションのセキュリティ検 査に従事しており、大手ポータルサイト、オンラインバンキングなどの数多くの 検査実績を持つ。また、セキュアネットワーク及び暗号関連の研究に携わり、大 手製造、官公庁、金融機関へのセキュリティシステム導入など数多くの実績を持 つ。 三井物産セキュアディレクション株式会社 主に、不正アクセス監視サービス、セキュリティ検査、セキュリティポリシー策定支援などのサービス提供している。また、セキュリティに関する教育サー ビスも実施中。 |
|
||||||||
| Security&Trust記事一覧 |
TechTargetジャパン
- Facebook タイムライン利用時の「鉄則」 (2012/2/9)
ユーザーインターフェイスの変更措置に伴い浮上した、Facebookの「過剰な情報提供」のリスクと対策とは - 無料サービスなら通信内容を記録してもいいの? (2012/1/13)
無料の公衆無線LANサービスが、ユーザーに無断で通信履歴を記録していたことが判明し、話題に - 攻撃はまるでレーザービーム (2011/12/26)
2011年に話題となった標的型攻撃は「人」という弱点ををねらい打ちにしました。では、人に教育さえしておけば防げるものなのでしょうか? - 見せたくないなら「持たせない」が鉄則! (2011/12/15)
逆コンパイル対策で難読化したのに、大事なデータが解析されちゃった? Androidアプリのセキュリティの道は深い
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



