エンタープライズ:特集 | 2003/02/12 17:54:00 更新 |
rootkitによるハッキングとその防御
第2回 ログファイルの改ざん (1/4)
第1回では、Linuxのrootkitの中からtuxkitを取り上げ、その概要として改ざんされたシステムコマンド一部を紹介した。今回はその続きとして改ざんされたsyslogdと、ログファイルの改ざんなどについて見ていこう。
改ざんされたsyslogd
侵入したシステムでrootkitの組み込みに成功したとしても、そのあとの接続手段がログとして残されてしまっては、侵入者にとっては具合が悪い。そこで、侵入者はsyslogdをトロイの木馬のsyslogdとすり替えることで、ログに特定の文字が含まれるもの(たとえば特定IPアドレスからの接続やバックドアの起動など)は出力させないようにしている。
tuxkitの場合は、前回のシステムコマンドの改ざんなどと同様に、「/dev/tux/」以下にsyslogd(トロイの木馬)の設定ファイル「/dev/tux/.log」があり、このファイルにログに出力されたくないものが記述されている。ここに指定されたものはトロイの木馬のsyslogdではログとして記録されない。つまり、管理者がログを参照したとしても、そこからは侵入があったことや、バックドアの組み込みを検知されることを逃れようとしているわけだ。
※ログファイルはどこにあるの? syslogdによって出力されるログファイルは、「/etc/syslog.conf」設定ファイルで確認することができる。Red Hat系のLinuxであれば、「/var/log」ディレクトリ内にあるだろう |
■syslogdの設定ファイル
dev/tux/.logを見てみよう。ここに記述された文字を含むログは、改ざんされたsyslogdでは出力されない。下記はデフォルトで記述されているものだが、/dev/tux/.logの一番上にある「24.」というのは「24.xxx.xxx.xxx」からのアクセスはすべてログに出力させないための設定となっている。ほかにも、ntpdとxsf(tuxkitのバックドアーsshd)のログが出力されないようになっている。
# cat /dev/tux/.log 24. ntpd xsf |
■正常のsyslogdでの出力
ここでは、仮にFTPログイン時に記録されたログ(/var/log/messages)を、通常のsyslogdと改ざんされたsyslogdで比較してみよう。
通常のログインがあった際のログには、当然ログイン情報が記録される。ここでは正常なsyslogdを起動し、下記のように「192.168.1.3」というアドレスから、ユーザー「hoge」のログインと、匿名のログインを行った際の/var/log/messagesのログを抜粋した。
〜省略〜 Dec 24 10:59:47 localhost ftpd[6101]: FTP LOGIN FROM 192.168.1.3[192.168.1.3], hoge Dec 24 11:02:10 localhost ftpd[6101]: FTP session closed Dec 24 02:02:18 localhost ftpd[6113]: ANONYMOUS FTP LOGIN FROM 192.168.1.3 [192.168.1.3],exampke@example.com Dec 24 02:04:40 localhost ftpd[6113]: FTP session closed |
■syslogd(トロイの木馬)での出力
次に、tuxkitに含まれるsyslogdに置き換えてsyslogを再起動したあと、/dev/tux/.logに「192.」と記述し、同じように、192.168.1.3というアドレスからユーザーhogeのログインと、匿名のログインを行ってみる。改ざんされたsyslogdでは接続記録はログには出力されず、以後192.xxx.xxx.xxxのアドレスからのアクセスはすべて出力されなくなる。
〜省略〜 Dec 24 10:59:47 localhost ftpd[6101]: FTP LOGIN FROM 192.168.1.3[192.168.1.3], hoge Dec 24 11:02:10 localhost ftpd[6101]: FTP session closed Dec 24 02:02:18 localhost ftpd[6113]: ANONYMOUS FTP LOGIN FROM 192.168.1.3 [192.168.1.3],exampke@example.com Dec 24 02:04:40 localhost ftpd[6113]: FTP session closed Dec 24 11:09:30 localhost kernel: Kernel logging (proc) stopped. Dec 24 11:09:30 localhost kernel: Kernel log daemon terminating. Dec 24 11:09:31 localhost 12月 24 11:09:31 syslog: klogd shutdown succeeded Dec 24 11:09:31 localhost exiting on signal 15 Dec 24 11:09:31 localhost syslogd 1.3-31: restart. Dec 24 11:09:31 localhost 12月 24 11:09:31 syslog: syslogd startup succeeded ←改ざんされたsyslogdを起動 Dec 24 11:09:31 localhost 12月 24 11:09:31 syslog: klogd startup succeeded |
再起動したあと192.168.1.3というアドレスから、ユーザーhogeのログインと、匿名のログインを行っているのだが、ログには出力されていない。以後192.xxx.xxx.xxxからの接続はsyslogdでは出力されない。
[TTS,ITmedia]