labunix's blog

labunixのラボUnix

wheezyにsnortの導入、「local.rules」の追加

■wheezyにsnortの導入、「local.rules」の追加。
 過去にLenny/Squeezeにも入れましたが
 バラバラになってて、探したり書き直したりするのが面倒なので。。。
 TORは「Emerging Threats(ET)」ルールから取得しなくても
 デフォルトのルールに入ったようですね。

■今回はDB無しでサクッと入れてしまいます。

$ sudo apt-get install -y snort
$ sudo dpkg-reconfigure snort

■Apache Killerはデフォルトにある。

$ grep -i "mod_jrun" /etc/snort/rules/*.rules | sed s/"; "/"&\n"/g | sed s/"(msg"/"\n&"/
/etc/snort/rules/community-web-misc.rules:alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS
(msg: "COMMUNITY WEB-MISC mod_jrun overflow attempt";
flow:to_server,established;
content:"|3A|";
pcre:"/^.*\x3a[^\n]{1000}/sm";
reference:bugtraq,11245;
reference:cve,2004-0646;
classtype:web-application-attack;
sid:100000122;
rev:1;)



■TORもあります。

$ grep -i "TOR" /etc/snort/rules/community-misc.rules | sed s/"; "/"&\n"/g
# Please see the file LICENSE in this directory for more details.
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 8008 (msg:"COMMUNITY MISC Novell eDirectory iMonitor access";
flow:to_server,established;
uricontent:"/nds/";
nocase;
reference:bugtraq,14548;
reference:cve,2005-2551;
reference:nessus,19248;
reference:url,www.osvdb.org/displayvuln.php?osvdb_id=18703;
classtype:web-application-attack;
sid:100000199;
rev:1;)
# TOR Rules by Dan Ramaswami
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"COMMUNITY MISC DLR-TOR Directory server response";
flow:established,to_client;
content:"|54 4f 52|";
offset:109;
depth:3;
content:"|06 03 55 04 03|";
distance:4;
within:5;
content:"|20 3C 69 64 65 6E 74 69 74 79 3E|";
distance:2;
within:30;
reference:url,tor.eff.org;
classtype:policy-violation;
sid:100000874;
rev:2;)
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"COMMUNITY MISC DLR-TOR Client Traffic";
flow:established,to_server;content:"|54 4f 52|";
content:"|06 03 55 04 03 14|";
distance:4;
within:6;
content:"|63 6c 69 65 6e 74 20 3C 69 64 65 6E 74 69 74 79 3E|";
distance:1;
within:17;
classtype:policy-violation;
reference:url,tor.eff.org;
sid:100000875;
rev:1;)


■DNSバージョンチェックもあります。

$ grep -i version /etc/snort/rules/dns.rules | sed s/"; "/"&\n"/g
alert tcp $EXTERNAL_NET any -> $HOME_NET 53 (msg:"DNS named version attempt";
flow:to_server,established;
content:"|07|version";
offset:12;
nocase;
content:"|04|bind|00|";
offset:12;
nocase;
reference:arachnids,278;
reference:nessus,10028;
classtype:attempted-recon;
sid:257;
rev:9;)
alert udp $EXTERNAL_NET any -> $HOME_NET 53 (msg:"DNS named version attempt";
content:"|07|version";
offset:12;
nocase;
content:"|04|bind|00|";
offset:12;
nocase;
reference:arachnids,278;
reference:nessus,10028;
classtype:attempted-recon;
sid:1616;
rev:7;)


■Javaのゼロデイ(CVE-2012-4681)とTポイントツールバーのルールがありません。
 これは追加します。

$ grep -i "applet.jar\|2014155\|14.128.18.212" /etc/snort/rules/*.rules | \
  sed s/"; "/"&\n"/g | wc -l
0

$ echo 'alert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any (
msg:"ET CURRENT_EVENTS JavaScript Obfuscation Using Dadong JSXX Script";
 flow:established,to_client;
 file_data;
 content:"Encrypt By Dadong";
 distance:0;
 classtype:bad-unknown;
 sid:2014155;
 rev:2;
)' | xargs echo -n | sudo tee /etc/snort/rules/local.rules >/dev/null

$ echo '#T-Point Toolbar 2012/08/11
  alert tcp $HOME_NET any -> 14.128.18.212 any (msg:"T-Point ToolBar Client Access"; sid:10000001; rev:1;)
  alert tcp 14.128.18.212 any -> $HOME_NET any (msg:"T-Point ToolBar Request Access"; sid:10000002; rev:1;)' | \
  sudo tee -a /etc/snort/rules/local.rules >/dev/null

■ローカルルールの「applet.jar」を追加。
 ※CVE-2012-4681以外の80ポートへの「applet.jar」を禁止するのは、
  環境によっては厳しいかも知れない。

$ echo 'alert tcp any 80 -> any any (
msg:"applet.jar";
uricontent:"applet.jar";
nocase;
 sid:202014155;
 rev:2;
)' | xargs echo -n | sudo tee -a /etc/snort/rules/local.rules >/dev/null

■テスト用のICMPルールを追加。
 ※テスト後にコメントアウト。

$ echo 'alert icmp any any -> any any (msg:"ICMP Test"; sid:200003851; rev:1;)' | \
  sudo tee -a /etc/snort/rules/local.rules >/dev/null

■おまけ。

 snortのログによるディスクフル、/tmpのオーバーフロー
 http://d.hatena.ne.jp/labunix/20111219

 Snortに「Emerging Threats(ET)」ルールを導入する。
 http://d.hatena.ne.jp/labunix/20121224

 Lenny 侵入検知システムsnortでApachekillerを検出
 http://d.hatena.ne.jp/labunix/20110917

 CVE-2012-4681をSnortで検出、アラート、SquidGuardとiptablesでブロック
 http://labunix.hateblo.jp/entry/2012/08/29/215603

 Squeezeにsnort-pgsqlの導入
 http://d.hatena.ne.jp/labunix/20120815

 Snortのalertログで遊ぶ(テスト用ICMPローカルルール)
 http://d.hatena.ne.jp/labunix/20120821

 Tポイントツールバーのブロック色々
 http://labunix.hateblo.jp/entry/2012/08/11/175214

 Snortの警告の対応方法のテンプレート
 http://d.hatena.ne.jp/labunix/20120512

 snort-mysqlの導入、DNSバージョンチェック、シグニチャの確認
 http://d.hatena.ne.jp/labunix/20120809

 Snortの動作中に統計を見る(正常性チェック)
 http://d.hatena.ne.jp/labunix/20120811

 bash+snort-pgsqlで健康状態、統計情報の確認。
 http://d.hatena.ne.jp/labunix/20121122

 SqueezeのSnortをスニッファとして使う。
 http://d.hatena.ne.jp/labunix/20120807

 snort-mysql/snort-pgsqlのレポートメール
 http://d.hatena.ne.jp/labunix/20120817