エンタープライズ:特集 2003/03/11 17:23:00 更新

rootkitによるハッキングとその防御
第3回 rootkit検出ツールによる検査 (2/6)

 それでは、実際の検査を行ってみることにしよう。下記は、RedHat8.0をインストールしたシステムに本連載で取り上げている「tuxkit」をインストールしたうえで、chkrootkitをコマンドオプション「-p」を指定し、あらかじめフロッピーディスクに用意したコマンドを利用して検査を行った結果である。

■Tuxkitをインストールしたシステムでchkrootkitを実行
# ./chkrootkit -p /mnt/floppy
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `date'... not infected
Checking `du'... INFECTED←改ざんを検出
Checking `dirname'... not infected
Checking `echo'... not infected
Checking `egrep'... not infected
Checking `env'... not infected
Checking `find'... INFECTED←改ざんを検出
Checking `fingerd'... not found
Checking `gpm'... not infected
Checking `grep'... not infected
Checking `hdparm'... not infected
Checking `su'... not infected
Checking `ifconfig'... INFECTED←改ざんを検出
Checking `inetd'... not tested
Checking `inetdconf'... not found
Checking `identd'... not found
Checking `killall'... INFECTED←改ざんを検出
Checking `ldsopreload'... not infected
Checking `login'... not infected
Checking `ls'... not infected
Checking `lsof'... not infected
Checking `mail'... not infected
Checking `mingetty'... not infected
Checking `netstat'... INFECTED←改ざんを検出
Checking `named'... not infected
Checking `passwd'... not infected
Checking `pidof'... not infected
Checking `pop2'... not found
Checking `pop3'... not found
Checking `ps'... INFECTED←改ざんを検出
Checking `pstree'... INFECTED←改ざんを検出
Checking `rpcinfo'... not infected
Checking `rlogind'... not found
Checking `rshd'... not found
Checking `slogin'... not infected
Checking `sendmail'... not infected
Checking `sshd'... not infected
Checking `syslogd'... INFECTED←改ざんを検出
Checking `tar'... not infected
Checking `tcpd'... INFECTED←改ざんを検出
Checking `tcpdump'... not infected
Checking `top'... INFECTED←改ざんを検出
Checking `telnetd'... not found
Checking `timed'... not found
Checking `traceroute'... not infected
Checking `w'... not infected
Checking `write'... not infected
Checking `aliens'... 
/dev/tux/.addr /dev/tux/.proc /dev/tux/tools/mirkforce/realnames
↑tuxkitの設定ファイルおよび、tuxkitに含まれていた
IRC関連ツール(mirkforce)の設定ファイルを検出
Searching for sniffer's logs, it may take a while... nothing found
Searching for HiDrootkit's default dir... nothing found
Searching for t0rn's default files and dirs... nothing found
Searching for t0rn's v8 defaults... nothing found
Searching for Lion Worm default files and dirs... nothing found
Searching for RSHA's default files and dir... nothing found
Searching for RH-Sharpe's default files... nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
Searching for suspicious files and dirs, it may take a while... 
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/.packlist /usr/lib/perl5
/site_perl/5.8.0/i386-linux-thread-multi/auto/NKF/.packlist
Searching for LPD Worm files and dirs... nothing found
Searching for Ramen Worm files and dirs... nothing found
Searching for Maniac files and dirs... nothing found
Searching for RK17 files and dirs... nothing found
Searching for Ducoci rootkit... nothing found
Searching for Adore Worm... nothing found
Searching for ShitC Worm... nothing found
Searching for Omega Worm... nothing found
Searching for Sadmind/IIS Worm... nothing found
Searching for MonKit... nothing found
Searching for Showtee... nothing found
Searching for OpticKit... nothing found
Searching for T.R.K... nothing found
Searching for Mithra... nothing found
Searching for LOC rootkit ... nothing found
Searching for Romanian rootkit ... nothing found
Searching for anomalies in shell history files... nothing found
Checking `asp'... not infected
Checking `bindshell'... not infected
Checking `lkm'... You have    35 process hidden for ps command
Warning: Possible LKM Trojan installed
Checking `rexedcs'... not found
Checking `sniffer'... 
eth0 is not promisc
Checking `wted'... nothing deleted
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... 
nothing deleted

 結果を見ればわかるように、多数の実行ファイルが改ざんされ、またtuxkitの設定ファイルおよび、ツールの存在場所の一部が検出されているのがわかるだろう。

 たとえば、一番はじめに検出された「du」を見てみよう。

Checking `du'... INFECTED

 このように「INFECTED(感染している)」と表示されているものが異常が検出されたファイルということになる。

One Point
 chkrootkitの検査対象となっているファイルの中で、tuxkitが改ざんしているファイルは「du/find/ifconfig/killall/netstat/ps/pstree/syslogd/tcpd/top」の10個だが、今回の結果では、そのうちの9個が検出されている。検出が漏れているlsコマンドに関しては、スクリプトに小さなバグがあり正常に検出されていない。このバグについてはchkrootkitの作者Nelson Murilo氏にメールにて報告しており、次回のバージョンアップでfixするとの返答を得ている。スクリプトを修正した場合のtuxkitの検出結果は、後述するchkrootkitのコマンドオプションの「必要な情報のみを表示させる」を参照してほしい。検査項目においてはすべてにおいて検出に成功している。

 次に、

Checking `aliens'...
/dev/tux/.addr /dev/tux/.proc /dev/tux/tools/mirkforce/realnames

だが、これは、tuxkitの設定ファイルおよび、tuxkitに含まれていたIRC関連のツールの設定ファイルを検出している。「/dev/tux/.addr」は改ざんされたnetstatコマンドの設定ファイルであり、「/dev/tux/.proc」は改ざんされたpsコマンドの設定ファイルだ。「/dev/tux/tools/mirkforce/realnames」は「mirkforce」というIRC用のツールで、tuxkit本体ではなく、侵入後に利用するために含まれているツールだ。

 「/dev/tux」以下の設定ファイルの検出は、chkrootkitのスクリプトを見てみるとわかるが、findコマンドに「-type f」のオプションを指定して/dev以下のディレクトリを検査したものから抽出されている。(find /dev -type f)

 最後の方に検出されているのが、隠蔽されたプロセスだ。

Checking `lkm'... You have 35 process hidden for ps command
Warning: Possible LKM Trojan installed

 35プロセスというのは誤りだが(実際にはバックドアのみであるため一つ)隠蔽されたプロセスがあるという異常は検出されている。chkrootkit Version 0.38以下ではプロセス数も正常に検出されるため、今後のバージョンアップで改善されるだろう。

 ちなみに、tuxkitは前述した表1には記載されていない。しかし、chkrootkitのスクリプトを見る限りでは、tuxkitはOptickitとして検出されるように記述されているようだ。今回の検査では「Searching for OpticKit... nothing found」ということで検出されていないが、chkrootkitを後述するエキスパートモードで検査するか、スクリプトを修正するとバックドア(/usr/bin/xsfおよび/usr/bin/xchk)を検出する。また、実行ファイル(コマンド)類の検査の中には/dev/tuxも検査対象になっており、改ざんされた実行ファイルが検出されている。

前のページ | 1 2 3 4 5 6 | 次のページ

[TTS,ITmedia]