エンタープライズ:特集 | 2003/03/11 17:23:00 更新 |
rootkitによるハッキングとその防御
第3回 rootkit検出ツールによる検査 (5/6)
RootkIDを利用する
chkrootkit以外のrootkit検出ツールも利用してみることにしよう。「RootkID」は、「The CyberAbuse Rootkit ID project」の作成したrootkit検出ツールだ。既知のrootkitに含まれるトロイの木馬やファイルなどの「SHA1値」をデータベースとして持っており、感染したシステムファイルのSHA1値と、データベースを比較することで異常を検出する。つまり既知のトロイの木馬などのファイルに対しての検出ツールということになる。そのため感染していてもデータベースにない場合にはまったく異常が検出されないという点には注意したい。RootkIDの導入や利用方法はchkrootkit同様に非常に簡単である。
RootkIDの導入
RootkIDを利用するには、tarballをダウンロードした後に解凍を行いrootkidディレクトリにてコンパイルを行えばよい。
# wget http://rk.cyberabuse.org/rootkid.tgz # tar xvzf rootkid.tgz # cd rootkid # make |
RootkIDによる検査
RootkIDによる検査には、ノーマル、ベター、ディープの3種類がある。これは、RootkIDのデーターベースにある下記のような種類のファイルから、どれを検査するかという組み合わせの違いである。
Type 1:検査を行うシステム(OS)のバイナリファイル(ex linux) Type 2:検査を行うシステム以外のバイナリファイル Type 3:他のタイプのバイナリファイル Type 4:テキストおよびスクリプトファイル |
■ノーマルスキャン [Type 1 のみ]
./rootkid.sh scan normal |
■ベタースキャン [Type 1+3+4]
./rootkid.sh scan plus |
■ディープスキャン [Type 1+2+3+4]
./rootkid.sh scan deep |
また、検査を行う際に、検査対象のサーバがインターネットに接続されていれば、検査時に最新のデータベース(checksumdb.txt)をダウンロードし、それを利用したスキャンが開始される。インターネットに接続されていない場合には、ローカルにあるデーターベースが使用される。
データーベースのアップデートのみを行いたい場合には
# ./rootkid.sh update Database downloaded successfully... Old one saved as checksumdb.txt.bak |
とすればよい。
tuxkitをインストールしたRedHat8.0での検査結果
下記は、RootkIDのベタースキャンにて検査を行った結果だ。疑わしいファイルとして検出されているのはcrontabのみであるが、トロイの木馬を検出し感染を警告している。
# ./rootkid.sh scan plus Database downloaded successfully... Old one saved as checksumdb.txt.bak Found suspicious file : /usr/bin/crontab [crontab] Results of this scan have been saved to log.txt |
念のためチェックしてみるには、下記のようにすればよい。RootkIDのデーターベースと一致していることがわかるだろう。
■RootkIDのデーターベースにあるcrontabのSHA1値8baadd81641968d74a2ced9ccba395cd59c112e1 29052 crontab Linux |
■tuxkitに含まれるトロイの木馬(crontab)のSHA1値
# /usr/bin/openssl sha1 /usr/bin/crontab SHA1(/usr/bin/crontab)= 8baadd81641968d74a2ced9ccba395cd59c112e1 |
■正常なcrontabのSHA1値
# /usr/bin/openssl sha1 /dev/tux/backup/crontab SHA1(/dev/tux/backup/crontab)= a591c6b08f55151021bc9435ba1d914811bd6c6d |
参考までにtuxkitにより改ざんされるファイルのSHA1値およびファイルサイズを記しておく。
表3■tuxkitにより改ざんされるファイルのSHA1値ファイル名 | サイズ (バイト) |
SHAI値 |
ps | 64652 | c9a2ad7943efd2d346e9a170aa14aee145707d7a |
ls | 42952 | 1b628c0c3433c6c57fe34f838bd40dc7d12cda47 |
crontab | 29052 | 8baadd81641968d74a2ced9ccba395cd59c112e1 |
df | 27112 | d6bd5134cb6eda80385fd3a131d2c8cbcfc3aa08 |
dir | 42952 | dd9081d37fa2287c59a2847fd70e5a45a4c022b9 |
dmesg | 6277 | c4499c0f6b114191365e340db29171a52c11ba98 |
du | 25592 | ff9eeb69af26eaa78dc8788e930e3d3311a858fa |
find | 55220 | 3d7edba3c8ead0d3151ab7be140b9ba98e7f6a14 |
killall | 14400 | e2d7e9e3c28f8787f0e22a2f1cad1e9635f42f09 |
login | 25942 | e426d07cd94c5e475c08605f017e62110e0ad485 |
netstat | 100858 | 37cfd4bcf1161924343073fdb288c883e285fbbd |
pstree | 16421 | 5538254164f962b3ab73f6627e617faf9072c01b |
syslogd | 33635 | 962a9d448bc3dba1fc303ba77ed372cf8d900709 |
tcpd | 33967 | 03fb5542a25a5bef47e4bb16350a08169437a881 |
top | 56406 | c39d57c8c945ac90c65fdc51d429d4a42f6f0a63 |
vdir | 67884 | 0cf146bedf4a01d12806dcc7741fbe8b1d82861c |
ifconfig | 36356 | 753e42786f960f53502c97d7b5f21d3453a9decc |
shkit v4での検査結果
次に先ほどchkrootkitでも検査したshkit v4をインストールしたシステムでの検査結果も見てみよう。tuxkitと比較すると多くのファイルが検出されていることがわかるだろう。
# ./rootkid.sh scan deep Database downloaded successfully... Old one saved as checksumdb.txt.bak Found suspicious file : /usr/bin/dir [crc-ls] Found suspicious file : /bin/netstat [crc-netstat] Found suspicious file : /bin/ls [crc-ls] Found suspicious file : /bin/ps [crc-ps] Found suspicious file : /lib/ldd.so/tks [tks] Found suspicious file : /lib/ldd.so/tksb [r0xsauber] Results of this scan have been saved to log.txt |
RootkIDは非常にシンプルな機能で検査し、データベースに登録されているファイルも決して多くはない(執筆時点で130ファイル)。しかし、既知のトロイの木馬などがファイルを単純に改ざんしただけならば検出することができるだろう。
[TTS,ITmedia]