攻撃者がコンピュータに侵入した後によく利用するツール類をまとめたrootkitと呼ばれるツールキットがあります。rootkitは攻撃者の足跡を消し去り、バックドアを設置します。また、rootkit自体の存在を隠すために、psコマンドやlsコマンドなどのシステム自体を改ざんします。
rootkitには様々種類が存在するために、それらを手動で検出することは非常に困難ですが、chkrootkit を使うことにより自動的な検出ができます。現在のところ、chkrootkitでは60種類以上のrootkitを検出することができます。
詳細は以下のサイトを参照してください。
chkrootkit — locally checks for signs of a rootkit
http://www.chkrootkit.org/
1. インストール
上記のサイトより最新のソースをダウンロードしてインストールします。(一般ユーザ権限でもインストール可能です。)
$ cd chkrootkit-0.46a
$ su
# make sense
# cp ./chkrootkit /usr/local/bin/
chkrootkitプログラムが作業ディレクトリ内に出来上がります。コマンドから実行しやすいように、/usr/local/binディレクトリにコピーしておくとよいでしょう。
2. chkrootkitの実行
root権限で実行します。
ROOTDIR is
/'
Checking
amd’… not infectedChecking
basename'... not infected
Checking
biff’… not foundChecking
chfn'... not infected
Checking
chsh’… not infectedChecking
cron'... not infected
Checking
date’… not infected(省略)
…
rootkitが検出された場合は、「INFECTED」と表示されます。
3. cronで実行
chkrootkitをcronに登録して定期的に実行させます。
また、実行結果を記録するとともに、rootあてにメールを送信します。
/etc/cron.dailyディレクトリにchkrootkitを実行するシェルスクリプト /etc/cron.daily/chkrootkitを作成します。
▼/etc/cron.daily/chkrootkit
/usr/local/bin/chkrootkit > /var/log/chkrootkit.log
grep “INFECTED” /var/log/chkrootkit.log | mail -s “chkrootkit log” root
chmod 600 /var/log/chkrootkit.log
スクリプトに実行権を付加します。
注2: 攻撃者にrootkitそのものを改ざんされてしまったら意味がありません。chkrootkitをCD-ROMなどの書き込みできないメディアに移しておくとよいでしょう。
また、chkrootkitが呼び出すコマンドは、awk、cut、egrep、find、head、id、ls、netstat、ps、strings、sed、unameですが、これらのコマンドが汚染されている場合もありますので、汚染されていないと想定できるシステム(KNOPPIXなど、CDブートできるディストリビューション)で一時的にブートし、そのシステムのコマンドを使ってchkrootkitを実行するのがより望ましいでしょう。