改竄検知システム導入。

有名なのはTripwireかもしれないけど、ここでは昔から使い慣れたaideを導入する。

aideではコンフィグファイルに記述することで、どのファイル、ディレクトリについてどのような検知方法をするかを設定することができる。
改竄されてから導入しても意味がないので、aideやTripwireはインストールしたらすぐに導入するのがいいだろう。

aideが導入されているかを調べる。

# yum list aide
Loading "installonlyn" plugin
Setting up repositories
core                      100% |=========================| 1.1 kB    00:00
updates                   100% |=========================| 1.2 kB    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
primary.xml.gz            100% |=========================| 1.6 MB    00:05
################################################## 5232/5232
Available Packages
aide.i386                                0.12-2.fc6.1           extras

一見「インストールされているのかな?」と思ってしまうかもしれないが、aide.i386の行の一番右側を見ると「extras」となっており、インストールされていないことがわかる。

(インストールされている場合は、「extras」ではなく「installed」となる。)

インストールされている場合は、次の手順まで読み進む。

インストールされていない場合は、下記のようにyumを利用してインストールする。

「yum -y install aide」と入力することで、途中の「Is this ok [y/N]: y」部分での入力が不要になる。

# yum install aide
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for aide to pack into transaction set.
aide-0.12-2.fc6.1.i386.rp 100% |=========================| 6.0 kB    00:00
---> Package aide.i386 0:0.12-2.fc6.1 set to be updated
--> Running transaction check
--> Processing Dependency: libmhash.so.2 for package: aide
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mhash to pack into transaction set.
mhash-0.9.2-5.i386.rpm    100% |=========================| 4.2 kB    00:00
---> Package mhash.i386 0:0.9.2-5 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 aide                    i386       0.12-2.fc6.1     extras            113 k
Installing for dependencies:
 mhash                   i386       0.9.2-5          extras            141 k

Transaction Summary
=============================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 254 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): aide-0.12-2.fc6.1. 100% |=========================| 113 kB    00:00
(2/2): mhash-0.9.2-5.i386 100% |=========================| 141 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: mhash                        ######################### [1/2]
  Installing: aide                         ######################### [2/2]

Installed: aide.i386 0:0.12-2.fc6.1
Dependency Installed: mhash.i386 0:0.9.2-5
Complete!

インストールが完了したら、aideのデータベースを初期化する。

# aide --init

AIDE, version 0.12

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

初期化が完了したら、aideのデータベースファイルをコピーする。

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

これでファイルを改竄を検知する用意ができたので、早速チェックしてみる。

aideのオプションは「–update」を利用する。

「–check」では、新しくデータベースを作りなおさないので、1度検知したものが永遠に検知され続ける。

# aide --update

AIDE, version 0.12

### All files match AIDE database. Looks okay!

### New AIDE database written to /var/lib/aide/aide.db.new.gz

上の例では、改竄されたファイルが見つからなかった。

aideではupdateオプションを使用した際、/var/lib/aide/aide.db.new.gzというファイルが更新されるが、  /var/lib/aide/aide.db.gzに上書きしないと、いつまでも古いデータベースがつかわれ続けることになるので、スクリプトを作成し、自動的にチェックしたらデータベースを更新するようにする。

# mkdir /root/mainte
# vi /root/mainte/aide.sh
#!/bin/bash

/usr/sbin/aide --update
/bin/cp -fr /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
# chmod 755 /root/mainte/aide.sh

自動的にデータベースを更新するスクリプトを作成したら、crondを利用して定期的にチェックするようにする。

# vi /etc/cron.d/aide
00 02 * * * root /root/mainte/aide.sh

これで毎日、午前2時にチェックするように設定ができた。

00の部分が、分、02の部分が時を表しているので、環境によって変えても良い。

*の後ろに書いてあるrootは実行するユーザの名前だが、aideはroot権限でないと、読み込めないファイルがあるため、rootとする。

crondを利用した場合、標準出力があると実行したユーザ宛てに標準出力をメールで送信するため、この設定では、aideで検知した内容はroot宛てにメールで飛ぶようになっている。


  1. コメントはまだありません。

  1. トラックバックはまだありません。