AIDE
AIDE はホストベースの侵入検知システム (HIDS) でファイルの整合性をチェックします。最初の実行時にファイルのベースラインとなるデータベースを作成して、次の実行時にはシステムに対してデータベースで確認することで侵入検知します。inode やパーミッション、変更日時やファイルの中身など、様々なファイルのプロパティをチェックできます。
AIDE はファイルの整合性の確認だけを行います。他の HIDS (OSSEC など) が行うように、rootkit がないかチェックしたり、ログファイルを解析して怪しい活動を見抜いたりはしません。そのような機能が必要なときは、別の HIDS を追加したり (やや偏見の入った比較は こちら を参照)、スタンドアロンの rootkit スキャナ (rkhunter, chkrootkit) やログ監視ソリューション (logwatch, logcheck) を使って下さい。
セットアップ
インストール
設定
デフォルトの設定ファイルは /etc/aide.conf
で、穏健なデフォルト設定となっており、コメントが大量に付されています。ルールを変更したいときは、man aide.conf
や AIDE マニュアル のドキュメントを見て下さい。
使用方法
設定をチェックするには、aide -D
を使います。
データベースを初期化するには、aide -i
または aideinit
を使います。環境や設定によって、コマンドが完了するまでしばらくかかることがあります。
ベースラインデータベースでシステムを確認するには aide -C
を使います。ベースラインデータベースを更新するときは aide -u
を使います。
詳しくは man aide
を見て下さい。
Cron
必要であれば AIDE を手動で実行することもできますが、基本的には自動的に実行させるのが良いでしょう。自動実行の設定は cron デーモンと (メール通知が必要な場合) MUA によります。
自動的に全てのジョブの出力をメールで送るように cron を設定している場合、以下のようにします:
#!/bin/bash -e # these should be the same as what's defined in /etc/aide.conf database=/var/lib/aide/aide.db.gz database_out=/var/lib/aide/aide.db.new.gz if [ ! -f "$database" ]; then echo "$database not found" >&2 exit 1 fi aide -u || true mv $database $database.back mv $database_out $database
もっと複雑な cron スクリプトの例は [1] や [2] を見て下さい。
セキュリティ
データベースは root ファイルシステムに保存されるため、たとえ攻撃者によってシステムが改変されても簡単にデータベースを編集することができるので攻撃者の足跡が消されてしまいます。データベースはオフラインの読み取り専用のメディアにコピーしてから、定期的にコピーを使ってチェックを実行すると良いでしょう。