Snort SnortSnarfによるログ解析

SnortSnarf

Snort のログファイル /var/log/snort/alert を解析して、HTML ファイルを出力。

・インストール

http://sourceforge.net/projects/snortsnarf/ から取得。

    [root]# cpan Time::ParseDate
    [root]# mkdir /usr/local/snortsnarf
    [root]# tar xvfz SnortSnarf-1.0.tar.gz
    [root]# cp -v SnortSnarf-1.0/snortsnarf.pl /usr/local/snortsnarf
    [root]# cp -vrf SnortSnarf-1.0/include/ /usr/local/snortsnarf
    [root]# vim /usr/local/snortsnarf/snortsnarf.pl

      use lib qw(./include); を  
      use lib qw(/usr/local/snortsnarf/include); に変更
・修正
    [root]# vim /usr/local/snortsnarf/include/SnortSnarf/HTMLMemStorage.pm

      290行目 return $arr->[($first-1)..$end];  # @ を $ に変更

    [root]# vim /usr/local/snortsnarf/include/SnortSnarf/HTMLAnomMemStorage.pm

      266行目 return $arr->[($first-1)..$end];  # @ を $ に変更
・日本語化
    /usr/local/snortsnarf/include/SnortSnarf/HTMLOutput.pm を日本語化する。 

    文字化け対策
    1577 行目 print "<html>\n<head>\n"; の次の行に、
    1578 行目 print "<meta charset='utf-8' />\n"; を追加。

    出力部分を日本語に変換。文字化けする場合には、utf-8 に変換が必要。

    [root]# nkf -w --overwrite HTMLOutput.pm
・解析結果出力ディレクトリ作成
    [root]# mkdir /var/www/html/snortsnarf
    [root]# chown apache:apache /var/www/html/snortsnarf
・解析結果へのアクセス制御

ローカルホスト及び LAN 内以外からのアクセスを拒否。

    [root]# vim /etc/httpd/conf/httpd.conf

      apache 2.2
      <Directory  "/var/www/html/snortsnarf">
           order deny,allow
           deny from all
           allow from 127.0.0.1 192.168.1.0/24
      </Directory>

      apache 2.4
      <Directory  "/var/www/html/snortsnarf">
           require ip 127.0.0.1 192.168.1.0/24
      </Directory>
・実行
    [root]# /usr/local/snortsnarf/snortsnarf.pl /var/log/snort/alert -d /var/www/html/snortsnarf
・自動実行

cron にて、6時間毎に実行。

    [root]# crontab -e

      10 */6 * * * /usr/local/snortsnarf/snortsnarf.pl /var/log/snort/alert -d /var/www/html/snortsnarf
・解析結果
    ブラウザにて、http://localhost/snortsnarf/