●不要なルールをコメントアウトする

 すでに各ユーザーの環境にあわせてルールセットの編集を行っている場合、ルールセット内のコメントアウトしたはずのルールが、アップデートによって元にもどってしまっては意味がない。そこでOinkmasterの設定ファイル(oinkmaster.conf)に、不要なルールのsid(※1)を記述しておく。これにより、アップデート時には自動的にコメントアウトが入り、不要なルールは読み込まないように設定される。また、各自で作成したオリジナルのルールセットをバックアップファイルにしないよう、スキップする設定も可能だ。

※1:sidは各ルールに割り振られたIDで、ルールを見れば記述されている(黄色の文字の部分)。

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-CGI HyperSeek hsx.cgi directory traversal attempt"; uricontent:"/hsx.cgi"; content:"../../";
content:"%00"; flags:A+; reference:bugtraq,2314; reference:cve,CAN-2001-0253; cl
asstype:web-application-attack; sid:803;rev:6;)

○ルールファイルの編集
 それでは実際に読み込ませないルールを記述し、Oinkmasterを実行してみよう。例として、上記の「WEB-CGI HyperSeek hsx.cgi directory traversal attempt"-sid 803」を読み込まないように設定する。

 sidの1-6まではデフォルトで使用されていないため、すでに設定ファイルoinkmaster.confに「disable」設定が記述されている。下記のようにカンマ区切りか、一行づつのどちらかに、読み込ませたくないsidを記述しておけばよい。

・一行ずつで記述する場合

# vi /usr/local/oinkmaster/oinkmaster.conf
###############################################
# SIDs to comment out after each update.#
# Syntax:disablesid SID #
# or:disablesid SID1, SID2, SID3, ... #
###############################################
# SID 1-6 are disabled by default, just as an example.
# You can specify one SID per line:
disablesid 1
disablesid 2
disablesid 3
↓
disablesid 1
disablesid 2
disablesid 3
disablesid 803 ←追加、編集して保存する

・カンマ区切りで記述した場合

# And also as comma-separated lists: disablesid 4,5,6
↓
disablesid 4,5,6,803 ←追加、編集して保存

○編集の実行
 読み込ませたくないルールを設定したら、Oinkmasterを再実行して、ルールセットを更新しよう。

# su oinkmaster
$ ./oinkmaster.pl -o /etc/snort -r

 「-r」オプションを付けることで、ダウンロードしたルールセットは、アップデートされず自動的に削除される。編集を行う際に利用すればよいだろう。

Downloading rules archive from http://www.snort.org/dl/signatures/snortrules.tar.gz...
08:37:36 URL:http://www.snort.org/dl/signatures/snortrules.tar.gz [79501/79501]
-> "/tmp/oinkmaster.16760/snortrules.tar.gz" [1]
Archive successfully downloaded, unpacking... done.
Disabling rules according to ./oinkmaster.conf... 1 rules disabled.
Comparing new files to the old ones... done.

[***] Results from Oinkmaster started Sat Jun 29 05:40:22 2002 [***]

[*] Rules added/removed/modified: [*]

[---] Disabled: [---]

-> File "web-cgi.rules":
#alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-CGI H yperSeek hsx.cgi directory traversal attempt"; uricontent:"/hsx.cgi"; content:"../../"; content:"%00"; flags:A+; reference:bugtraq,2314; reference:cve,CAN-2001-
0253; classtype:web-application-attack; sid:803;rev:6;)


[*] Non-rule lines added/removed: [*]
None.

[*] Added files: [*]
None.

 以上のように、ログから「Disabled:…」で不要なルールがコメントアウトされているのが確認できる。実際にルールファイルからコメントアウトされているか(#が追加されているか)チェックしてみよう。

# cd /etc/snort
# grep sid:803 *.rules

web-cgi.rules:
#alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WE
B-CGI HyperSeek hsx.cgi directory traversal attempt"; uricontent:"/hsx.cgi"; content:"../../"; content:"%00"; flags:A+; reference:bugtraq,2314; reference:cve,CA
N-2001-0253; classtype:web-application-attack; sid:803;rev:6;)

 不要なルールのsidを確認してoinkmaster.confへ記述しておけば、更新のたびに再編集を行う手間が省ける。コメントアウトする前にチェックのみ行いたい場合は「-c」オプションをつけて実行すればよい。

○バックアップしたくないルールセットのスキップ
 同様にしてoinkmaster.confで、アップデート時にスキップするファイルも指定する。たとえば、手動で作成したルールファイルが「test.rules」だった場合は、下記のようにoinkmaster.confの「skipfile」部分に加えることになる。

# vi /usr/local/oinkmaster/oinkmaster.conf
########################################################################
# Files to totally skip (i.e. never update them or check for changes). #
# Syntax: skipfile filename#
# or: skipfile filename1, filename2, filename3, ...#
########################################################################
# Ignore (skip) "local.rules" from the rules archive by default, since we might
# have put some local rules into our own "local.rules", and we don't want
# it to get overwritten by the empty one from the archive after every update.
skipfile local.rules test.rules ←skipfileの箇所に、スキップするルールセットを加えて保存する

フォントサイズを 大きくする / 小さくする(※Internet Explorer4.0以上)

 これでアップデート時には「local.rules」、「test.rules」はバックアップされることなく、そのまま利用することができる。そのほかのオプションについては、「-h」オプションで表示されるヘルプファイルを見てほしい。

 実際にアップデートしたあとには、必ずsnortが正常に動作しているかどうか、ログなどを見ながら確認しておこう。正常な動作が確認できれば、あとはCronで定期的にアップデートさせればよいだろう。ただし、snort.confはスキップされて変更されないためsnort.confで行うルールセットの読み込み設定は手動で行っておく必要がある。

 次回はルールの中身や作成方法について解説していく予定だ。

[TTS、ITmedia]

PREV 3/3