連載
» 2006年03月02日 00時00分 公開

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

[草薙伸, 伴崇博,F5ネットワークスジャパン株式会社]
前のページへ 1|2|3       

バッファオーバーフロー対策

 バッファオーバーフローを引き起こす予期せぬ長さのリクエスト送信に対しては、オブジェクトタイプ(URIの拡張子)ごとのリクエスト長設定によって防御することができる。また、ワームのようなサーバの任意のコードを実行させてしまうようなタイプのバッファオーバーフローに関しては、必要なオブジェクトタイプを登録し、それ以外のアクセスを許さないことによって限定的に防御することができる。

オブジェクトタイプの設定画面 オブジェクトタイプの設定画面

強制ブラウジング対策

 強制ブラウジングを防ぐためには、オブジェクトタイプのチェックによる意図しないファイルタイプへのアクセスからの防御と、正規表現を使用したネガティブセキュリティモデルによるディレクトリトラバーサルからの防御を行う。ディレクトリトラバーサルとは、パスをさかのぼることによって、本来、管理者がユーザーに見せるつもりのないファイルやディレクトリを閲覧したり実行したりする攻撃である。「../」という文字列などをリクエストパスの中に入れる手法がよく使われる。

エラーコードをそのまま返すのは危険

 ユーザーがWebサーバにアクセスした結果として、HTTPのレスポンスコードが返されてくる。レスポンスコードには、動作が正常に受け入れられたことを示す「200」や、リクエストに何らかのエラーがあるためにサーバが処理できなかったことを示す「4xx」、サーバ側で何らかのエラーが発生したことを示す「5xx」などが定められている。

 アプリケーションによっては、レスポンスコードだけではなくスクリプトのエラーメッセージを返すものがある。エラーメッセージには悪意のあるユーザーにとってWebアプリケーションの脆弱性の糸口となる情報が含まれている場合がある。

 そこで、WAFには「200」以外のレスポンスコードがWebサーバから返される場合、これを任意のレスポンスコードに置き換える機能を持つものがある。例えば、ASMでは標準で設定されているメッセージまたは管理者が設定したコンテンツをそのレスポンスコードとともにクライアントに返すことや、特定のURLへリダイレクトさせることができる。

 エラーメッセージと同じく、Webサーバが返す「Serverヘッダ」も攻撃の手掛かりとなることがある。そこでWAFは、Serverヘッダを削除し、クライアント側が「そのWebアプリケーションが、どのWebサーバの、どのバージョンで稼働しているのか」を知られないようにする機能を持つものがある。ASMの場合、BIG-IPの機能を使用することによって指定したヘッダ以外を返さないようにすることもできる。

 次回はパラメータレベルの設定や、学習機能、管理機能について紹介する。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。