【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷



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


早川勇太
日本Snortユーザ会
2005/1/8



 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に書かれている情報や設定例を読むだけでも、有益な情報を得られるはずである。

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

2/2
第6回」へ

Index
Snortで使用可能なプリプロセッサを理解する
  Page1
プリプロセッサとは何か
flow
frag2
stream4
Page2
http_inspect


関連記事
Snort
5分で絶対に分かる侵入検知システム(IDS)
特集:不正侵入対策最前線
特集:続 不正侵入対策最前線
ネットワーク型IDS「Snort」の導入 (Linux Square)
ネットワーク型IDS「Snort」のシグネチャ作成法 (Linux Square)

Security&Trust記事一覧

ホワイトペーパーTechTargetジャパン

Security&Trust フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています