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