今回はCentOS8にrootkitを検出するスクリプト、chkrootkitを導入しスキャンを行う方法について説明します。
実施環境
OS | CentOS 8 最小限のインストール |
---|---|
chkrootkit | 0.53 |
rootkitとは
rootkitとは、攻撃者が対象への侵入等を手助けするためのソフトウェアの集合です。rootkit自体は特定のマルウェアを示しているわけではありません。
rootkitを設置されると、侵入経路を確保するバックドアを設置される、root権限を掌握される、コマンドを改ざんされる等、対象のホストを危険な状態にしてしまいます。rootkitの侵入を許してしまうと場合によってはOSの再インストールを行わなければいけない状態になることもあります。
また、rootkitは自身を隠蔽する機能を持っていることが多く、OSの奥深くへ侵入することもあるため通常のセキュリティ対策ソフトで検出が難しいとも言われています。そのため、rootkitの検出には専用のスキャンツールを使用して対策することがあります。
chkrootkitとは
・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 download
・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
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 | chkrootkitが利用可能なテストを表示して終了する |
-d | デバッグをする |
-q | quickモードでスキャンする |
-x | expertモードでスキャンする |
-r dir | 指定したディレクトリをルートとしてスキャンする |
-p dir1:dir2:dirN | chkrootkitが使用する外部コマンドを指定する |
-n | NFSでマウントされたディレクトリをスキップする |
chkrootkitの注意点
chkrootkitには以下のデメリットもあります。
■新しいバージョンが出るまで最新のrootkitに対応できない
chkrootkitの中身はシェルスクリプトであり、ウィルス対策ソフトのようにアップデートを行って最新のrootkitに対応できるように、という機能はありません。そのため、chkrootkitに記載されていない最新のrootkitをスキャンで検出することはできません。
■誤検知することがある
chkrootkitの実行結果でinfectedが表示されることがありますが、infectedが表示されたからといって絶対にrootkitがあるというわけではありません。chkrootkitも誤検知をすることがあるため、スキャン結果を参考にファイル等のチェックを行う必要があります。
次回はchkrootkitと同様のrootkit検出ツール、rkhunterについて説明します。