OSをインストールして極力すぐ導入したいのがchkrootkitです。
これは、ルートキットを検知するためのツールです。あくまで検知なので、検知された場合その後の対処は人力で行う必要があります。
(ルートキットとは悪意の第三者がサーバに侵入後、ログ・コマンドの改ざんを行いサーバ管理者の目を誤魔化したり、再侵入のための経路の確保をするためのプログラム群を指します。いわゆるバックドアをサポートする「キット」なわけです。)
実はこのchkrootkit。ネット上に転がっている導入手順が全く一緒だったりします。
まぁ問題は無いんですけど・・おまっ、コピペしただろ!って内容ばかりなので暇な方は調べてみてください。
(かく言う私もネットで拾ってきたソースを問題ないか確認して、そのままの内容で運用しています。)
そして、コピペした内容を書きます!(大声)
まぁ備忘録が主な目的だから良いよね・・・。
chkrootkitはyumにないのでソースを拾ってきてコンパイル・配置します。
1 2 3 4 5 |
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz tar zxvf chkrootkit.tar.gz rm chkrootkit.tar.gz mkdir ~/bin mv chkrootkit-0.50/chkrootkit ~/bin/ |
試しに実行してみます。
1 |
~/bin/chkrootkit | grep INFECTED |
感染の疑いがあると
(Searching for Suckit rootkit… Warning: /sbin/init INFECTED)
のように表示されます。(↑は誤検知ですが)
毎日chkrootkitを実行するようなスクリプトを書きます(超コピペ)
1 |
vi /etc/cron.daily/chkrootkit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/bin/bash PATH=/usr/bin:/bin:/root/bin TMPLOG=`mktemp` cat $TMPLOG | logger -t chkrootkit if [ ! -z "$(grep 465 $TMPLOG)" ] && \ [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then sed -i '/465/d' $TMPLOG fi if [ ! -z "$(grep Suckit $TMPLOG)" ] && \ [ -z $(rpm -V `rpm -qf /sbin/init`) ]; then sed -i '/Sucit/d' $TMPLOG fi [ ! -z "$(grep INFECTED $TMPLOG)" ] && \ grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root rm -f $TMPLOG |
実行権限をつけます。
1 |
chmod 700 /etc/cron.daily/chkrootkit |
ハイ、特に言うことありません。だって皆同じソース書いているんだもの・・・
実はこのchkrootkitはここ数年最新版に更新されていません。
つまり、最新のルートキットには対応出来ていない(と思う)のです。
更にルートキット検知の精度を上げたい!という方は、rkhunter(RootKit Hunter)を導入することをおすすめします。
epelに登録されているので、リポジトリさえ入れていればyum一発で入れることができます。
デフォルトだと誤検出もあるようなので初期設定は必要ですが、yumで入れれば定期実行のファイも作ってくれますし、confファイルで設定を書き換えられたりと結構使い勝手が良いです。
特徴としては、アンチウイルスソフトのように定義ファイル(?)をダウンロードしてスキャンする仕組みを取っています。
とはいえ当然駆除のためのツールではありませんので、検知した後は自分でなんとかするしかないですけど、比較的更新頻度が高いルートキット検出ツールなので、より安心かもしれません。
[…] CentOS7でルートキット検出(chkrootkit) […]