このページは過去に掲載していたものをそのまま使用しています。

Contents


Documents top page
README
API
Sample Scripts
 

Network Intrusion Detection System 実験室

基本形から簡単な応用まで載せてみました。

サンプル スクリプト 〜いきなり応用編〜

日本発のNIDSとして pakemonがあります。pakemon用のsignatureはwhite hatsから"vision-pakemon.conf"の名前で入手可能です。 今回はこのsignature fileを入力とする不完全互換patemon.rbを作成しました。 論文を書く合間に一日で作ったので、ちゃんとした動作の検証は2001年4月以降に なるでしょう。

PATIMON

最初に「パチモン」という名前で作成していたのですが、 機能が貧弱でバグバグなので、作成から5時間後にはゴミ箱に移動しました。

PATEMON

さてpatemonですが、一応signatureはTCPコネクション時の双方のポートを 見てデータ部分に'=~'でアクセスするように作成しました。 TCPのみに対応しています。signatureは多少は効率がよくなるような気がする 方法で実装されていますが、一つのコネクションを見張っている間に 他のコネクション上のパターンを検出できない可能性が高いと思います。 検出できないとしてもそれは仕様です。

独自のsignatureを書く場合には、16進表現以外は正しくrubyの正規表現 に変換されない事を理解する必要があります。現在のところsignatureの文字列は 大文字、小文字の区別をして、Regexp::escape()を使って変換されます。

[ patemon.rb (latest version) ]

動作方法

いまのところlinux以外のOSではまともに動くかどうかの検証が できていません。またルート権限が必要ですので、sudoなどを 使えるように設定しておくと良いかもしれません。この例ではsudoを 使いました。なければsuをして"sudo"の記述は無視してください。

まずwhote hatsにある vision-pakemon.confなどのpakemonで使用されるルールに従ったsignatureを 用意してください。rnids.soを作成したディレクトリで以下のようにして 実行します。

% sudo ruby examples/patemon.rb vision-pakemon.conf

動作の確認にはたとえば以下のようにします。 くれぐれもInternetに直接接続しているコンピュータ上での動作には 慎重になってください。他のサイトから攻撃だと勘違いされないように してください。

% wget http://192.168.1.20/this_is_test_request/phf.cgi

これによって"detected"の文字が表示された場合には、 ちゃんと 動作をしているということの一つの証明になります。Pentium II 350MHzと いう PCで作成とテストを行なっていますが、十分なパフォーマンスが発揮できる条件 が存在するのかどうか現在探しているところです。


Yasuhiro ABE <yasu@dengaku.org>
Last modified: Sun Feb 11 23:02:06 JST 2001