Oinkmaster

Oinkmasterとは、Snortのルールファイルを最新に保つためのツールである。
同じようなツールには、Pulled_Pork(http://code.google.com/p/pulledpork/)がある。

インストール

OinkmasterはSnortには含まれていないため、オフィシャルページ(http://oinkmaster.sourceforge.net/download.shtml)より、ソースファイルをダウンロードする。

Oinkmaster用のユーザを作成する。
LionではOpen Directoryでユーザを管理しており、adduserやuseraddといったコマンドは存在しない。コマンドラインでは、代わりにdscl(Directory Service command line utility)を使用する。
※snortグループのGIDは601とする。
# dscl . -create /Users/oinkmaster
# dscl . -create /Users/oinkmaster UserShell /bin/bash
# dscl . -create /Users/oinkmaster RealName "oinkmaster"
# dscl . -create /Users/oinkmaster UniqueID 602
# dscl . -create /Users/oinkmaster PrimaryGroupID 601
# dscl . -create /Users/oinkmaster NFSHomeDirectory /Users/oinkmaster
# createhomedir -b -u oinkmaster

$ id oinkmaster
uid=602(oinkmaster) gid=601(snort) groups=601(snort),403(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),402(com.apple.sharepoint.group.1)

Perlスクリプトの本体をインストールする。
# cp oinkmaster.pl /usr/local/bin
# chown oinkmaster:snort /usr/local/bin/oinkmaster.pl

設定ファイルをインストールする。
# cp oinkmaster.conf /etc/snort/conf.d/
# chown oinkmaster:snort /etc/snort/conf.d/oinkmaster.conf

バックアップ用ディレクトリを作成する。
# mkdir /etc/snort/backup
# chown snort:snort /etc/snort/backup
# chmod -R 775 /etc/snort

sudo su - oinkmaster -c '/usr/local/bin/oinkmaster.pl -o /etc/snort/rules.d -b /etc/snort/backup -C /etc/snort/conf.d/oinkmaster.conf'

http://www.snort.org/pub-bin/oinkmaster.cgi/Oink Code貼り付け/snortrules-snapshot-CURRENT.tar.gz

[Get an Oinkcode]

oinkmaster.confにOinkcodeを貼り付ける。2922という数字の部分は、使用するSnortに合わせて変更する。これはSnort-2.9.2.2を使用する例。
# URL examples follows. Replace <oinkcode> with the code you get on the 
# Snort site in your registered user profile.
url = http://www.snort.org/pub-bin/oinkmaster.cgi/<ここにOinkcodeを貼り付ける>/snortrules-snapshot-2922.tar.gz
う〜ん、ダウンロードできんな

と思っていたらできた。ユーザのアクティベートと実際にダウンロードできるまでにタイムラグがあるからかも?
$ sudo su - oinkmaster -c '/usr/local/bin/oinkmaster.pl -o /etc/snort/rules.d -b /etc/snort/backup -C /etc/snort/conf.d/oinkmaster.conf'
Loading /etc/snort/conf.d/oinkmaster.conf
Downloading file from http://www.snort.org/pub-bin/oinkmaster.cgi/*oinkcode*/snortrules-snapshot-2922.tar.gz... done.
Archive successfully downloaded, unpacking... done.
Setting up rules structures... 
WARNING: duplicate SID in your local rules, SID 3017 exists multiple times, you may need to fix this manually!
done.
Processing downloaded rules... disabled 0, enabled 0, modified 0, total=13695
Setting up rules structures... 
WARNING: duplicate SID in your local rules, SID 3017 exists multiple times, you may need to fix this manually!
done.
Comparing new files to the old ones... done.
Creating backup of old rules... saved as /etc/snort/backup/rules-backup-20120701-221038.tar.gz.
Updating local rules files... done.

[***] Results from Oinkmaster started 20120701 22:10:38 [***]

[///]    Modified inactive rules:    [///]

     -> Modified inactive in exploit.rules (1):

        old: #alert tcp $EXTERNAL_NET any -> $HOME_NET 42 (msg:"EXPLOIT Microsoft Windows WINS overflow attempt"; flow:to_server,established; byte_test:1,&,64,6; byte_test:1,&,32,6; byte_test:1,&,16,6; byte_test:1,&,8,6; pcre:!"/^.{8}(\x05\x37(\x1E[\x90-\xFF]|[\x1F-\x2F].|\x30[\x00-\x70])|\x00\x00\x00[\x00-\x65]|\x02\x68\x05\xC0)/s"; reference:bugtraq,11763; reference:cve,2004-1080; reference:url,technet.microsoft.com/en-us/security/bulletin/MS04-045; reference:url,www.immunitysec.com/downloads/instantanea.pdf; classtype:misc-attack; sid:3017; rev:13;)
        new: #alert tcp $EXTERNAL_NET any -> $HOME_NET 42 (msg:"EXPLOIT WINS overflow attempt"; flow:to_server,established; byte_test:4,>,204,0; byte_test:1,&,64,6; byte_test:1,&,32,6; byte_test:1,&,16,6; byte_test:1,&,8,6; reference:url,www.immunitysec.com/downloads/instantanea.pdf; classtype:misc-attack; sid:3017; rev:2;)

[*] Non-rule line modifications: [*]
    None.

[*] Added files: [*]
    None.

メンバーのみ編集できます