CentOS 8にAIDE を導入しファイルの改ざんをチェックする方法
今回はCentOS 8 にAIDE を導入しファイルの改ざんをチェックする方法について説明します。本記事は2020年6月9日の記事であり、現在ではOS のサポートが切れているため、手順などに違いがある可能性があるため、そのあたりを考慮の上確認をお願いします。

実施環境
OS | CentOS 8 最小限のインストール |
|---|---|
AIDE | 0.16.11 |
AIDEとは
AIDEは1999年にRami LehtiとPablo Virolainenによって開発されたホスト型のIDSです。AIDEはホストの構成等をデータベースに保存しておき、データベースに保存された状態と現在の状態を比較することで、ファイルやディレクトリの整合性をチェックします。ファイルやディレクトリが不正に改ざんされていないか、見に覚えのないファイルやディレクトリが存在する、ファイルが削除されている等を検知することができるため、ファイルやディレクトリの不正な改ざんの検知に役立つソフトウェアです。
AIDEのインストール
CentOS 8 ではパッケージからインストールする方法とソースファイルからインストールを行う方法があります。今回はパッケージからインストールを行います。
# AIDEをインストールする。
dnf -y install aideaide.confの設定
AIDEの設定ファイルは/etc/aide.conf です。チェックする項目やファイル等を設定することができます。チェックする項目については、項目に「+」を指定する形で設定します。
#/etc/aide.confを編集する
vi /etc/aide.conf
■ aide.conf
データベースとログフォルダを変数で指定
@@define DBDIR /var/lib/aide@@define LOGDIR /var/log/aide
データベースファイルを指定
database=file:@@{DBDIR}/aide.db.gz
データベース作成時の出力先を指定
database_out=file:@@{DBDIR}/aide.db.new.gz
スキャン後のログファイル出力先を指定
report_url=file:@@{LOGDIR}/aide.log
チェックする項目を指定
#p: パーミッション#i: iノード#n: リンクの数#u: ユーザー#g: グループ#s: サイズ#b: ブロックカウント#m: mtime#a: atime#c: ctime#S: 拡張サイズ#acl: ACL#selinux SELinuxのセキュリティコンテキスト#xattrs: ファイルの拡張属性#md5: md5チェックサム#sha1: sha1チェックサム#sha256: sha256チェックサム#sha512: sha512チェックサム
NORMAL = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha512
<省略>
CONTENT_EX = sha512+ftype+p+u+g+n+acl+selinux+xattrs
<省略>
チェックするファイルとチェック項目を関連付ける
/etc/hosts$ CONTENT_EX/etc/host.conf$ CONTENT_EX/etc/hostname$ CONTENT_EX/etc/issue$ CONTENT_EX<省略>------------------------------------------------------------データベースの初期化
AIDEでスキャンを行うためには、初めにデータベースの初期化をします。
#データベースを初期化するaide --init
Start timestamp: 2020-06-09 04:25:06 -0400 (AIDE 0.16)AIDE initialized database at /var/lib/aide/aide.db.new.gz
Number of entries: 60752
The attributes of the (uncompressed) database(s):
/var/lib/aide/aide.db.new.gz MD5 : jt4XY4uEPcuhPDDTdOdxPw== SHA1 : vI1MFGowbSQClst69erThRhBNIg= RMD160 : VBfFYTAWxOVcZtouP/alfqSiCic= TIGER : r+hqDsqnktYnMRQbitOHeamkoblf1jrS SHA256 : Zc9NKy/Gyc2znMJqxrhGjS62gKYsCwaX ENdgWmmN1ng= SHA512 : Qr15PIFsAc/0b8cxCTZkWQZJ3vX79WX+ Z7fYqtuZSbp2L+oSnhpA0X0QALiFy2bZ aPh3BLRAlitMMDI0apmi0w==
End timestamp: 2020-06-09 04:25:28 -0400 (run time: 0m 22s)
データベースが作成されたことを確認する
ls /var/lib/aide/データベースの適用
データベースの初期化後、データベースを適用します。適用する名前は/etc/aide.confで指定したdatabaseの項目の名前を指定します。
# データベースを適用するcp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gzファイルシステムの改ざんをチェック
データベース適用後、AIDEでチェックを行います。
#ファイルの改ざんをチェックするaide --check
Start timestamp: 2020-06-09 04:44:18 -0400 (AIDE 0.16)AIDE found NO differences between database and filesystem. Looks okay!!
Number of entries: 60752
The attributes of the (uncompressed) database(s):
/var/lib/aide/aide.db.gz MD5 : FL5r5T9A8m6SuMz7nj+MZw== SHA1 : qdpuNd/eZ2oq1O9VZtzEDApytnI= RMD160 : jZh7GGZqGZC8iY4f0YfCH6CeAsk= TIGER : SZ6sPDBglWRBSPorAznfwnyQuDCORiJd SHA256 : u0Bri7Fb1Zzy4cqV/EMNwb+vuOucPgvK 7lu8+SMPIc0= SHA512 : NZKCjCnFfpzf+hf38BzZWcNiPltjopWY Wz5TINSRGxYeochS9fAfxZrieeYGTQwz iqwdEZOMLAFARLLZcJIuEw==
End timestamp: 2020-06-09 04:44:39 -0400 (run time: 0m 21s)改ざんが何もない場合は「AIDE found NO differences between database and filesystem. Looks okay!!」と表示されます。
次に改ざんがある場合の表示をします。今回は/etc/hosts を意図的に変更しチェックをします。
# /etc/hostsを変更後、ファイルの改ざんをチェックするaide --check
Entry /etc/hosts in databases has different attributes: b8020081d a8020081dStart timestamp: 2020-06-09 04:48:29 -0400 (AIDE 0.16)AIDE found differences between database and filesystem!!
Summary: Total number of entries: 60752 Added entries: 0 Removed entries: 0 Changed entries: 1
Changed entries:
f ... .C..- : /etc/hosts
Detailed information about changes:
File: /etc/hosts SHA512 : YobgpcvAMPey0QX1lK4K+5EFySF1xrB/ | mTQ22WqW13gkuAhKY2WwE2mB9D6bDdgn 9FRzTCPNC93+13Y5/lm2inC4x4rydlf2 | vnJlgr+NzyUecZHSR5yYe0D+Bf9Y3GE8 EcvonCf3pHuXj6lEmAjBnw== | CIokmmN2JlTyu3X7y3qVRA==
The attributes of the (uncompressed) database(s):
/var/lib/aide/aide.db.gz MD5 : FL5r5T9A8m6SuMz7nj+MZw== SHA1 : qdpuNd/eZ2oq1O9VZtzEDApytnI= RMD160 : jZh7GGZqGZC8iY4f0YfCH6CeAsk= TIGER : SZ6sPDBglWRBSPorAznfwnyQuDCORiJd SHA256 : u0Bri7Fb1Zzy4cqV/EMNwb+vuOucPgvK 7lu8+SMPIc0= SHA512 : NZKCjCnFfpzf+hf38BzZWcNiPltjopWY Wz5TINSRGxYeochS9fAfxZrieeYGTQwz iqwdEZOMLAFARLLZcJIuEw==
End timestamp: 2020-06-09 04:48:51 -0400 (run time: 0m 22s)「AIDE found differences between database and filesystem!!」と表示された場合は、データベースの作成から何かしらの変更や改ざんがあるということです。改ざんを確認した場合、該当ファイルを確認し見に覚えのない変更等がないか確認してください。
