CentOS8 にchkrootkit を導入しrootkit のスキャンを行う方法
今回はCentOS 8 にrootkit のスキャンを行うchkrootkit を導入し、実際にスキャンする方法について書いていきます。本記事の内容は2023年11月11日現在、サポート切れのOS での手順のため、手順を参考にする時はOS の内容を考慮した上で参考にいただくようお願いします。
実施環境
OS | CentOS 8 最小限のインストール |
---|---|
chkrootkit | 0.53 |
rootkit とは
rootkit とは、攻撃者が対象への侵入等を手助けするためのソフトウェアの集合です。rootkit 自体は特定のマルウェアを示しているわけではありません。rootkit を設置されると、侵入経路を確保するバックドアを設置される、root 権限を掌握される、コマンドを改ざんされる等、対象のホストを危険な状態にしてしまいます。rootkit の侵入を許してしまうと場合によってはOS の再インストールを行わなければいけない状態になることもあります。また、rootkit は自身を隠蔽する機能を持っていることが多く、OS の奥深くへ侵入することもあるため通常のセキュリティ対策ソフトで検出が難しいとも言われています。そのため、rootkit の検出には専用のスキャンツールを使用して対策することがあります。
chkrootkit とは
chkrootkit はUnix ベースのrootkit を検出するスクリプトです。chkrootkit の実行ファイルの中身はシェルスクリプトであり、コアシステムのシグネチャからファイルシステムのトラサーバルをコマンドの出力内容と比較し不一致となる部分を探し出す仕組みでrootkit を検出します。
chkrootkit のダウンロード
chkrootkit スクリプトは以下のコマンドを使用するため、事前にインストールを行う必要があります。
- awk
- cut
- echo
- egrep
- find
- head
- id
- ls
- netstat
- ps
- sed
- strings
- uname
CentOS8 の最小限のインストールでは、netstat とstrings コマンドが入っていないためインストールします。また、tarball をダウンロードし展開するためにwget とtar コマンドもインストールします。
# wget、tar、netstat、stringsコマンドをインストールする
dnf -y install wget tar net-tools binutils
各種コマンドをインストール後、chkrootkit のtarball をダウンロードします。ダウンロード後は/usr/bin 配下にスクリプトを配置します。
# chkrootkitのtarballをダウンロードし展開する
cd /usr/local/src
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxf chkrootkit.tar.gz
cd chkrootkit-0.53
# chkrootkitスクリプトを/usr/binへ移動する
mv chkrootkit /usr/bin
chkrootkit のスキャン
chkrootkit でスキャンを行うにはchkrootkit コマンドを実行します。
# chkrootkitスクリプトでrootkitのスキャンをする
chkrootkit
# chkrootkitスクリプトでrootkitのスキャンをする
chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
<省略>
Checking `z2'... not tested: can't exec ./chklastlog
Checking `chkutmp'... not tested: can't exec ./chkutmp
Checking `OSX_RSPLUG'... not tested
スキャン結果でinfected が表示された場合、rootkit に感染している可能性があります。not infected やnot found 等の場合、rootkit は見つからなかったということになります。
chkrootkit は毎日スキャンを実行しrootkit が無いかチェックする必要があるため、実行結果でinfected が表示された行だけログに出力するシェルをcron あたりに入れて行うのが良いかと思います。
chkrootkit のオプション
chkrootkit コマンドは以下のオプションがあります。
-h | chkrootkit のヘルプを表示する |
---|---|
-V | chkrootkit のバージョン情報を表示する |
-l | デバッグをする |
-d | chkrootkit が利用可能なテストを表示して終了する |
-q | quickモードでスキャンする |
-x | expertモードでスキャンする |
-r | 指定したディレクトリをルートとしてスキャンする |
-p dir1:dir2:dirN | chkrootkitが使用する外部コマンドを指定する |
-n | NFSでマウントされたディレクトリをスキップする |
chkrootkit の注意点
chkrootkit には以下のデメリットもあります。
新しいバージョンが出るまで最新のrootkit に対応できない
chkrootkit の中身はシェルスクリプトであり、ウィルス対策ソフトのようにアップデートを行って最新のrootkit に対応できるように、という機能はありません。そのため、chkrootkit に記載されていない最新のrootkit をスキャンで検出することはできません。
誤検知することがある
chkrootkit の実行結果でinfected が表示されることがありますが、infected が表示されたからといって絶対にrootkit があるというわけではありません。chkrootkit も誤検知をすることがあるため、スキャン結果を参考にファイル等のチェックを行う必要があります。