AIDE(Advanced Intrusion Detection Environment) って
仕事が忙しくないので趣味を兼ねた、いまさらシリーズw。
オープンソースの AIDE(Advanced Intrusion Detection Environment)は、いわゆるホスト型(サーバにインストールする系)の監視ツールで、主に「ファイルとディレクトリが改ざんされたか」どうかを判定(整合性チェック)する監視ツールです。
監視するといっても常駐型でなくバッチ型なので、リアルタイムにファイルが改ざんされたことを検知することができないのでcronで定期的に実施し結果をメールで受け取るなどして(今時だとSlackに通知かな)サーバの状態を把握するということになりますね。
インストール
めっちゃ簡単ですw。
$ sudo yum install aide
検知対象ディレクトリと非検知ディレクトリの指定
/etc/aide.conf
に検知ルールが記述されているので、とりあえず下記のディレクトリは検知して欲しくないので追加します。※ !
でディレクトを指定すると非対象にになります。
!/tmp
!/proc
AIDEデータベースファイルの作成
まず初期化、これ大切あるね。
$ sudo aide --init
AIDE, version 0.15.1
### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
AIDEデータベースファイルのコピー
AIDEの仕組み上、前回のファイル整合性チェック結果
と 今回のファイル整合性チェック結果
を比較するため上記で初期化実施した結果ファイルをコピーしておきます。
こんな定義になっているので。
@@define DBDIR /var/lib/aide
database=file:@@{DBDIR}/aide.db.gz
database_out=file:@@{DBDIR}/aide.db.new.gz
コピーしないと怒られるですよww
$ sudo aide -C
Couldn't open file /var/lib/aide/aide.db.gz for reading
そんな訳で初期化で作成されたAIDEデータベースファイルをコピーします。
$ sudo mv -f /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
とりあえずチェックしてみる
コマンドを実行してみる。結果は、/var/log/aide/aide.log
ファイルに出力されるので実行が終わったらみてみるとよい。
$ sudo aide -C
AIDEを実行しかつAIDEデータベースファイルも更新するとかシェル
まあ普通作りますよねシェル。そしてcronで定期的に実行しますよね。
私の使用しているメールサーバのルールでは、英字だけのsubjectだと弾かれてしまうので漢字にしています。
#!/bin/bash
OK_MAIL="AIDEファイル改ざんチェックOK"
NG_MAIL="AIDEファイル改ざんチェックNG問題あり"
MAILTO=vagrant
LOGFILE=/var/log/aide/aide.log
AIDEDIR=/var/lib/aide
/usr/sbin/aide -u > $LOGFILE
/usr/bin/cp $AIDEDIR/aide.db.new.gz $AIDEDIR/aide.db.gz
x=$(/usr/bin/grep "Looks okay" $LOGFILE | /usr/bin/wc -l)
if [ $x -eq 1 ]
then
echo "OK" | /usr/bin/iconv -f utf-8 -t iso-2022-jp | /bin/mail -s `echo $OK_MAIL | /usr/bin/nkf -j | /usr/bin/nkf -M` $MAILTO
else
/usr/bin/cat $LOGFILE | /usr/bin/nkf -j | /bin/mail -s `echo $NG_MAIL | /usr/bin/nkf -j | /usr/bin/nkf -M` $MAILTO
fi
使った感想
こんな施策しても凄腕のハッカーにしたら「へっ」ってなもんですが、まあやらないよりはマシって感じですかね。あと改ざんではないけど不用意にファイルを変更しまった場合、このAIDEで監視できるのでそういう点ではいいかもしれない。
参考にさせて頂いたサイト様
CentOS にファイル改ざん検知システムを導入する【AIDE】
オープンソースの IDS である AIDE を CentOS にインストールする
ファイル改ざん検知システム(AIDE)を構築してみる