エンタープライズ:特集 | 2003/01/15 16:59:00 更新 |
rootkitによるハッキングとその防御
第1回 rootkitの概要と検知 (1/5)
システムをクラックする手段として「rootkit」というツールが存在する。ほとんどのrootkitはインストーラー形式になっており、簡単かつ短時間で改ざん作業を完了できるようになっている。攻撃者が利用するrootkitについて、その概要を知るとともに、防御方法について考えていこう。
ターゲットサーバの侵入に成功したクラッカーは、侵入後にどんな行動をとるだろうか。単純に考えれば、侵入を隠蔽するためにログを改ざんしたり、裏口(バックドア)を仕掛ける、また、管理者に侵入を気づかれないためにシステムコマンドの改ざんを行うなど、いくつかの項目が思い浮かぶだろう。しかし、こういった作業を、侵入してから細々とやっていては手間がかかるうえ、管理者に気付かれてしまう可能性もある。そこで、クラッカーは「rootkit」と呼ばれる、侵入に利用するための各種ツールや、トロイの木馬などが満載されたパッケージキットを用いることが多い。ほとんどのrootkitはインストーラー形式になっており、簡単かつ短時間で、これらの改ざん作業を完了させることができるからだ。
rootkitには各プラットホーム向けにいくつかの種類があるほか、それらを検出するためのソフトウェア(Tripwireもそのうちのひとつ)ももちろん存在する。そこで、今回から数回に渡り、Linuxのrootkitの概要と検出について解説していこう。
rootkitにはどんなものが含まれているのか
実際のrootkitに含まれるツールは、大まかに以下のように分類できる。
■改変されたシステムコマンド(ps、netstat、ls、find、locate、syslogdなど) ■バックドア ■ネットワーク盗聴のためのスニッファ ■ログの改ざんツール |
上記のもの以外にも、IRCのリレー接続サーバ(psybnc)、他のサーバをスキャンや侵入、攻撃するためのツールなどが含まれているものもある。
システムへの侵入とrootkitのインストール
Linux向けに作成されたrootkitの中で代表的なものとしては、「LinuxRootkit」、「t0rnkit」などがあり、これらはインターネット上で簡単に手に入れることができてしまう。今回は、t0rnkitに類似している「tuxkit-1.0」というrootkitを利用し、それを実際のシステムにインストールしたうえで、rootkitの概要について解説していこう。
tuxkit-1.0はオランダのTuxtendoというグループの作成したrootkitで、RedHat8.0でも組み込むことができる。また、一部のツール類を省いたtuxkit-shortというものも配布されている。
ここでは、イメージが沸きやすいようにサンプルとしてwu-ftpdの古いセキュリティホールを利用し、実際にテスト用のシステムへ侵入し、rootkitを組み込むことにしよう。ターゲットとなるシステムは下記のような構成とした。
■RedHat Linux 7.1 ■wu-ftpd-2.6.1-16を起動し、外部向けにAnonymous FTPサーバを運営している ■起動しているサービスはsshdとftpdのみ ※wu-ftpd-2.6.1-16はバッファーオーバーフローのセキュリティホールがある |
このシステムは、単純にRedHat Linux 7.1をインストールしてFTPサーバ(wu-ftpd)とSSHを起動しただけの状態だ。
なお、今回はあくまでもrootkitの概要と、その防御方法を探るためにインストールして実行している。家庭内ネットワークなど、個人的に管理しているネットワーク以外では絶対にテストしないでほしい。もちろん、外部サーバに対して実際に利用した場合には法律により処罰される。
セキュリティホールを利用してシステムへ侵入する
wu-ftpdのセキュリティホールを利用してターゲットのシステムへ侵入するわけだが、この侵入も、インターネット上で簡単に入手できるスクリプトを利用している。このツールはターゲットとなるFTPサーバのIPアドレスを入力すれば侵入が完了し、root権限でコマンドを入力することが可能になる。つまりこのような状況では、なんの知識も必要せずに侵入できてしまうというのがお分かり頂けるだろう。
■wu-ftpdのセキュリティホールを利用した侵入./wu 192.168.1.19 7350wurm - x86/linux wuftpd <= 2.6.1 remote root (version 0.2.2) team teso (thx bnuts, tomas, synnergy.net !). Compiled for MnM 01/12/2001..pr0t! # trying to log into 192.168.1.19 with (ftp/mozilla@) ... connected. # banner: 220 linux FTP server (Version wu-2.6.1-16) ready. # successfully selected target from banner ### TARGET: RedHat 7.1 (Seawolf) [wu-ftpd-2.6.1-16.rpm] # 1. filling memory gaps # 2. sending bigbuf + fakechunk building chunk: ([0x0807314c] = 0x08085f98) in 238 bytes # 3. triggering free(globlist[1]) # # exploitation succeeded. sending real shellcode # sending setreuid/chroot/execve shellcode # spawning shell ############################################################################ uid=0(root) gid=0(root) groups=50(ftp) Linux localhost.localdomain 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT 2001 i686 unknown |
これだけで侵入に成功し、このあとはroot権限でシステムを操作することが可能になる。既知のセキュリティホールを放置していると、このような侵入を許してしまう可能性があることも理解しておく必要があるだろう。
[TTS,ITmedia]