2013年2月9日土曜日

AIDEで改竄検知した情報をFluentdでまとめる

スズキです。

下記で改竄検知できるようになったのですが、
AIDEでファイルの改竄検知(CentOS6)
当然、その情報を元に検知や解析を行いたくなります。

ということで、改竄検知の情報を下記のようなFluentdのログになるようにしてみました。
2013-02-09T22:41:46+09:00       parsed.syslog   {"total":"384","added":"2","removed":"2","changed":"3"}
2013-02-09T22:42:41+09:00       parsed.syslog   {"total":"384","added":"2","removed":"2","changed":"3"}

AIDEの出力の確認

実行すると次のように、確認したファイル数、追加されたファイル数、
削除されたファイル数、変更されたファイル数、が出力されます。
# aide --update
...
Summary:
  Total number of files:	384
  Added files:			2
  Removed files:		2
  Changed files:		3
...

AIDEの出力をSyslogにも出力

下記のように設定することでSyslogにも出力できます。
# cat /etc/aide.conf 
...
report_url=syslog:LOG_AUTH
...
上記に該当する出力は、Syslog内では下記のように出力されます。
# cat /var/log/messages
...
Feb  9 21:23:43 ip-10-148-5-42 aide: #012Summary:#012  Total number of files:#011384#012  Added files:#011#011#0112#012  Removed files:#011#0112#012  Changed files:#011#0113#012
...

Fluentdでまとめる

上記のログを、下記のようになるようにまとめます。
2013-02-09T22:41:46+09:00       parsed.syslog   {"total":"384","added":"2","removed":"2","changed":"3"}
2013-02-09T22:42:41+09:00       parsed.syslog   {"total":"384","added":"2","removed":"2","changed":"3"}
今回はログのParseが必要なので"fluent-plugin-parser"をインストールして利用しました。
# /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-parser
最終的な設定ファイルは下記のようにしています。
<source>
    type     tail
    format   syslog
    path     /opt/suz-lab/var/log/syslog/all.log
    pos_file /opt/suz-lab/var/lib/td-agent/pos/tail.syslog.pos
    tag      tail.syslog
</source>
<match tail.syslog>
    type copy
    <store>
        type file
        path /tmp/tail.syslog
    </store>
    <store>
        type     parser
        key_name message
        format   /011(?<total>[^ ]*).012.+011(?<added>[^ ]*).012.+011(?<removed>[^ ]*).012.+011(?<changed>[^ ]*).012/
        tag      parsed.syslog
    </store>
</match>
<match parsed.syslog>
    type file
    path /tmp/parsed.syslog
</match>
※正規表現が"#"を入れると、どうしてもエラーになってしまい、ダサくなってしまった...

ログの確認

何回もでてますが、下記のようなログになります。
2013-02-09T22:41:46+09:00       parsed.syslog   {"total":"384","added":"2","removed":"2","changed":"3"}
2013-02-09T22:42:41+09:00       parsed.syslog   {"total":"384","added":"2","removed":"2","changed":"3"}

ということで、次はCloudWatchにこのデータを登録して...
--------
http://www.suz-lab.com

0 コメント: