Snortを利用してIDSを作成してみよう!


●前回の補足

・共通侵入検知フレームワーク(CIDF:Common Intrusion Detection Framework)のドキュメント

  →発信元(http://seclab.cs.ucdavis.edu/cidf/)へ行ったものの、すでにリンク切れ。
  →しかしwebarchiveを利用した結果、古めのドキュメントを発見。
入手源:http://web.archive.org/web/19980710221724/seclab.cs.ucdavis.edu/cidf/spec/cidf.txt


・ROCカーブを用いてTP・FP・TN・FNの関係を数値化して評価

 *ROC(Reciever Operating Characteristic)分析(参考資料[1],[2])

  誤判定(FPとFN)がどの程度であるのかというものを計算する指標。
  侵入かどうかの判断基準として閾値を設定し、その閾値より値が小さければ侵入行為ではないと判断する。また閾値を超えていれば侵入行為であると判断するしくみ。

  →ある程度の量のログがないことには実験結果として表しにくい。


●Snortの構成

 大きく分けて4つのしくみから成り立っている。

・パケットデコーダ

 データリンク層からトランスポート層レベルまでの解析とデコード処理を行い、次のプリプロセッサに渡す。


・プリプロセッサ

 ポートスキャンやDoS攻撃などを認識するための処理。Snortの場合、このしくみはプラグイン形式となっており、様々なプリプロセッサが用意されている。


・検知エンジン

 プリプロセッサから送られるパケットを取り出し、シグネチャ(ルール)の条件のいずれかに該当するか調査する。該当した場合はアラート(警告)などとしてアウトプットされる。


・出力プラグイン

 アラートをログファイル形式やデータベース形式などで記録する。


●Snortを利用してIDSを作成する

  ・インストール方法や設定ファイル等は省略。
  ・今回はSnortの最新バージョン(2.4.4)と最新ルールファイル(2006/ 4/25現在)を使用。
  ・参考資料[4]を利用してプリプロセッサとルールファイルを設定して稼働。
  ・最新のルールファイルの提供を受け続けるためには別途Snortユーザ登録が必要だったため、ユーザ登録を完了。
  ・ルールファイル・・・telnet,http,ftpなどサービスごとやポートスキャン・DoS攻撃等も対応。

設定ファイル


▼前回との変更点

・RULE_PATH宣言をしてルールファイルを設定
・各プリプロセッサの役割の概要をざっと理解し、数を増強。
※出力先は特に指定せずデフォルト(アラートファイル)のまま。

-----> 実行結果

●参考資料

[1] 牛窪裕一, "Tcpdump簡易表現形式によるネットワーク侵入検知," http://www.ail.cs.gunma-u.ac.jp/asaka-lab/data2005/%5BUshikubo%5Dmaster.pdf (※2012/ 1/ 8時点でリンク切れ), 群馬大学大学院, pp.21-24, Feb.2006

[2] 山下智志,川口昇,敦賀智裕, "信用リスクモデルの評価方法に関する考察と比較," http://www.fsa.go.jp/frtc/seika/discussion/2003/20031031.pdf, 金融庁, pp.19-21, Oct.2003

[4] 金山典世, "Snortの設定," http://www.wakhok.ac.jp/~kanayama/summer/02/site/node130.html, 稚内北星学園大学, 2002