連載
» 2005年01月08日 10時00分 公開

Snortでつくる不正侵入検知システム(5):Snortで使用可能なプリプロセッサを理解する (2/2)

[早川勇太,@IT]
前のページへ 1|2       

http_inspect:HTTPトラフィックおよびプロトコル上の例外の正規化・検出

 このプリプロセッサではHTTPトラフィックおよびプロトコル上の例外の正規化と検出を行う。Stream4と同様に、このプリプロセッサも大変強力であるため、多数の設定項目が存在する。柔軟な設定が可能な分、多少難しい面もあるが、1つ1つ見ていきたい。なお、大別してグローバルとサーバの2つの設定を行う必要がある。

 まずは、グローバル設定から見ていこう。

iis_unicode_map IIS用Unicodeマップと使用コードマップ番号を指定(必須)
Tarballに同梱されているunicode.mapとその中のコードマップ番号を指定すればよい
detect_anomalous_servers HTTPデフォルトポート以外でのHTTPトラフィックを監視し警告を発するよう指定
proxy_alert 使用を許可していないプロキシを使用しているクライアントを検出し警告を発するよう指定

 続いてサーバ設定を見ていこう。

profile IISまたはApache特有の設定を行うことができるように指定
IIS、Apache、allのいずれかを指定する

なお、この指定はサーバ設定のオプションの先頭にくる必要がある
また、下記のオプション以外と組み合わせることはできない
必須項目ではないため、省略可能である

ports/iis_unicode_map/allow_proxy_use/flow_depth/no_alerts/inspect_uri_only/ oversize_dir_length
ports HTTPサーバが使用しているポートを指定(複数指定化)
iis_unicode_map グローバル設定と同様
flow_depth サーバの応答に対して検査対象となるデータ長を数値で指定
ascii エンコードされたAscii文字列のデコードを行うか否かを指定
yesを指定するとデコード時のアラートを発生し、noを指定するとデコード時のアラートは発生しない
utf_8 URI中のUTF-8のうち、一般的なものについてデコードするか否かを指定
yesを指定するとデコード時のアラートを発生し、noを指定するとデコード時のアラートは発生しない
u_encode IISの%uエンコードをデコードするか否かを指定
yesを指定するとデコード時のアラートを発生し、noを指定するとデコード時のアラートは発生しない
bare_byte IISで用いられているHTTP標準と異なったエンコードを処理するか否かを指定
yesを指定すると処理時のアラートを発生し、noを指定すると処理時のアラートは発生しない
base36 IISで用いられている%de%adのようなエンコードをデコードするか否かを指定
yesを指定するとデコード時のアラートを発生し、noを指定するとデコード時のアラートは発生しない

u_encodeとの同時使用はできない(こちらが無効となる)
また、asciiが有効となる
iis_unicode unicodeコードポイントマップを有効にするか否かを指定
yesを指定すると処理時のアラートを発生し、noを指定すると処理時のアラートは発生しない
double_decode IISの2重デコードと同様のデコードを行うか否かを指定
yesを指定すると処理時のアラートを発生し、noを指定すると処理時のアラートは発生しない
non_rfc_char URI中に非RFC文字が存在した場合、アラートを発生させるか否かを指定
yesを指定するとアラートを発生し、noを指定するとアラートは発生しない
multi_slash 複数のスラッシュを正規化するか否かを指定
yesを指定するとアラートを発生し、noを指定するとアラートは発生しない
iis_backslash バックスラッシュをスラッシュに変換するか否かを指定
yesを指定するとアラートを発生し、noを指定するとアラートは発生しない
directory 「../」または「./」を正規化するか否かを指定
yesを指定するとアラートを発生し、noを指定するとアラートは発生しない

HTMLドキュメント中に「../」が存在した場合などもアラートを発生させるので注意する必要がある
apache_whitespace スペース区切りの代わりにTABが用いられている場合、解釈するか否かを指定
yesを指定するとアラートを発生し、noを指定するとアラートは発生しない
iis_delimiter IIS特有の区切り文字の解釈を行うか否かを指定
yesを指定するとアラートを発生し、noを指定するとアラートは発生しない
chunk_length チャンクエンコーディングされたデータサイズの閾(いき)値をより大きい整数値で指定
no_pipeline_req HTTPのパイプラインでコーディングを無効にするよう指定
non_strict URIの解釈を厳密に行わないよう指定
allow_proxy_use プロキシ使用時にアラートを発しないよう指定
グローバル指定のproxy_alertの指定は影響しない
また、proxy_alertの指定がない場合は機能しない
no_alerts このプリプロセッサによってすべてのアラートを発生しないよう指定
oversize_dir_length URI中のディレクトリを示す文字列の最大値を、0より大きい整数値で指定
(ここの値を超えた時点でアラート発生)
inspect_uri_only HTTPリクエストのURI部分のみを検査対象とする
(uricontent ルールオプションを用いていないルールセットではこのオプションは意味を持たない)

■次回予告

 今回、Snortで使用可能なプリプロセッサの種類とそれらで使用可能なオプションについて解説を行った。すべてについて解説ができず、また解説を行ったものについても、詳細なものではなかったため、理解しきれない部分があるかと思う。

 英語ではあるがTarball中のdoc/配下にREADME.〜というドキュメントが存在するものもあるため、それらを併せて読むと理解が深まると思う。また、snort.confに書かれている情報や設定例を読むだけでも、有益な情報を得られるはずである。

 次回は独自のルールセットの作成方法について紹介していきたい。

Index

Snortで使用可能なプリプロセッサを理解する

Page1

プリプロセッサとは何か

flow

frag2

stream4


Page2

http_inspect


Profile

早川勇太

日本Snortユーザ会


[an error occurred while processing this directive]
前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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