製品紹介

AIDE(Advanced Intrusion Detection Environment) はファイルおよびディレクトリの差分をチェックする、ファイル改ざん検知ツールです。
CentOS などの主要なディストリビューションで無償で利用することができます。
類似製品としては、Tripwireが有名です。
AIDEはファイル改ざんチェックを行いたい対象サーバにインストールして、動作させます。

 

公式ホームページ

http://aide.sourceforge.net/

 

検証内容

WebサーバにAIDEをインストールします。
ファイル改ざんを検知するか、検証します。

 

検証環境

VMWare Workstation 12 Plyaer
仮想Webサーバ1台
CentOS Linux release 7.2.1511 (Core) minimal install PKG

 

事前にインストール/使用するパッケージ

firewalld
httpd
ntpd(時刻同期のため)
crond(デフォルトインストール済み)

事前に行っておく設定

postfix
改ざん検知をメールで転送するための準備となります。

 

目次

1.AIDEインストール

2.設定ファイル編集

3.起動

 

導入手順

1.AIDEインストール

公式ホームページを確認すると、現在のバージョンは0.16となっています。

aide_sozai2
ソースからインストールする方法とyumでインストールする方法があります。
AIDEはディストリビューションパッケージに含まれているため、今回は簡単に導入できるyumでインストールを行います。
公式ホームページに、下記の通り各ディストリビューションのインストールコマンドが記載されています。

aide-sozai8

以下の公式ホームページにある手順を参照して実施しました。
http://aide.sourceforge.net/stable/manual.html

まず、AIDEをインストールをします。
# yum -y install aide
すぐにインストールが完了しました。

コマンドのヘルプを確認します。
※以降のAIDEコマンドの引数は「-i」、「-h」など省略したものを使用します。
# aide -h
Aide 0.15.1

Usage: aide [options] command

Commands:
-i, –init Initialize the database
-C, –check Check the database
-u, –update Check and update the database non-interactively
–compare Compare two databases

Miscellaneous:
-D, –config-check Test the configuration file
-v, –version Show version of AIDE and compilation options
-h, –help Show this help message

Options:
-c [cfgfile] –config=[cfgfile] Get config options from [cfgfile]
-B “OPTION” –before=”OPTION” Before configuration file is read define OPTION
-A “OPTION” –after=”OPTION” After configuration file is read define OPTION
-r [reporter] –report=[reporter] Write report output to [reporter] url
-V[level] –verbose=[level] Set debug message level to [level]

最初にバージョンが表示されました。インストールされたバージョンは0.15.1のようです。(最新版を入手するにはソースからインストールする必要があるようです。)

念のため、バージョン確認を行います。
# aide -v
Aide 0.15.1

Compiled with the following options:

WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_E2FSATTRS
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = “/etc/aide.conf”

 

 

2.設定ファイル編集

設定ファイルを編集して、監視項目を設定します
先ほどバージョンを確認した際に出力されたログでは、設定ファイルは/etc/aide.confにあります。
# view /etc/aide.conf
~省略~
@@define DBDIR /var/lib/aide
@@define LOGDIR /var/log/aide ←ログファイル出力先

database=file:@@{DBDIR}/aide.db.gz ←データベースファイルの出力先

デフォルトルールとなり、検査の対象を確認します。
# These are the default rules.
#
#p: permissions
#i: inode:
#n: number of links
#u: user
#g: group
#s: size
#b: block count
#m: mtime
#a: atime
#c: ctime
#S: check for growing size
#acl: Access Control Lists
#selinux SELinux security context
#xattrs: Extended file attributes
#md5: md5 checksum
#sha1: sha1 checksum
#sha256: sha256 checksum
#sha512: sha512 checksum
#rmd160: rmd160 checksum
#tiger: tiger checksum

#haval: haval checksum (MHASH only)
#gost: gost checksum (MHASH only)
#crc32: crc32 checksum (MHASH only)
#whirlpool: whirlpool checksum (MHASH only)

FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256

#R: p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5
#L: p+i+n+u+g+acl+selinux+xattrs
#E: Empty group
#>: Growing logfile p+u+g+i+n+S+acl+selinux+xattrs
~省略~
FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
~省略~
NORMAL = FIPSR+sha512

デフォルトではNORMALは「p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256」と「sha512」を検査する設定になっています。

各ルールを確認します。

自分でルールを作成することも可能となっております。

~省略~
# You can create custom rules like this.
# With MHASH…
# ALLXTRAHASHES = sha1+rmd160+sha256+sha512+whirlpool+tiger+haval+gost+crc32
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
# Everything but access time (Ie. all changes)
EVERYTHING = R+ALLXTRAHASHES

# Sane, with multiple hashes
# NORMAL = R+rmd160+sha256+whirlpool
NORMAL = FIPSR+sha512

# For directories, don’t bother doing hashes
DIR = p+i+n+u+g+acl+selinux+xattrs

# Access control only
PERMS = p+i+u+g+acl+selinux

# Logfile are special, in that they often change
LOG = >

# Just do sha256 and sha512 hashes
LSPP = FIPSR+sha512

# Some files get updated automatically, so the inode/ctime/mtime change
# but we want to know when the data inside them changes
DATAONLY = p+n+u+g+s+acl+selinux+xattrs+sha256

~省略~

監視対象を確認します。
# Next decide what directories/files you want in the database.

/boot NORMAL
/bin NORMAL
/sbin NORMAL
/lib NORMAL
/lib64 NORMAL
/opt NORMAL
/usr NORMAL
/root NORMAL
※デフォルトでも使用は可能ですが、このままですと、OSを起動するたびにチェックが入ってしまうため、誤検知が発生することが予想されます。
加えて、デフォルトのまま使用しますと、処理が重たくなり、チェックに時間がかかります。
そのため、必要なディレクトリだけ検査対象とすることをお勧めします。
行頭に「!」を加えることで、監視除外設定が可能です。

今回はwebサーバ上にあるサイト改ざんを検知する目的のため、/var/www/htlmを監視設定として追加し、他は除外します。
# cp -p /etc/aide.conf /etc/aide.conf.org
# vi /etc/aide.conf
~省略~
# Next decide what directories/files you want in the database.

!/boot NORMAL
!/bin NORMAL
!/sbin NORMAL
!/lib NORMAL
!/lib64 NORMAL
!/opt NORMAL
!/usr NORMAL
!/root NORMAL
/var/www/html NORMAL

~省略~

公式ホームページ内にある「Configuration」内に設定例が記載してあります。

 

3.起動

AIDEはデータベースを参照して、差分をチェックする動作となっています。まず最初に、データベースを作成します。
# aide -i
/etc atime in future
/etc/yum.repos.d atime in future
/etc/cron.hourly atime in future
/etc/httpd mtime in future
/etc/httpd ctime in
~~~~
AIDE, version 0.15.1

### AIDE database at /var/lib/aide/aide.db.new.gz initialized.

作成された /var/lib/aide/aide.db.new.gz はをマスターのデータベースにするためにコピーします。

# cp -p /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

 

AIDE検証ページへ