Young Leaves

CentOS 8にAIDE を導入しファイルの改ざんをチェックする方法

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

実施環境

OS

CentOS 8 最小限のインストール

AIDE

0.16.11

AIDEとは

AIDE

AIDEは1999年にRami LehtiとPablo Virolainenによって開発されたホスト型のIDSです。AIDEはホストの構成等をデータベースに保存しておき、データベースに保存された状態と現在の状態を比較することで、ファイルやディレクトリの整合性をチェックします。ファイルやディレクトリが不正に改ざんされていないか、見に覚えのないファイルやディレクトリが存在する、ファイルが削除されている等を検知することができるため、ファイルやディレクトリの不正な改ざんの検知に役立つソフトウェアです。

AIDEのインストール

CentOS 8 ではパッケージからインストールする方法とソースファイルからインストールを行う方法があります。今回はパッケージからインストールを行います。

# AIDEをインストールする。
dnf -y install aide

aide.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 a8020081d
Start 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!!」と表示された場合は、データベースの作成から何かしらの変更や改ざんがあるということです。改ざんを確認した場合、該当ファイルを確認し見に覚えのない変更等がないか確認してください。