エンタープライズ:特集 | 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も検査対象になっており、改ざんされた実行ファイルが検出されている。
[TTS,ITmedia]