エンタープライズ:特集 2003/01/15 16:59:00 更新

rootkitによるハッキングとその防御
第1回 rootkitの概要と検知 (5/5)

netstatコマンドの改ざん

 ネットワークの情報を表示するコマンドである「netstat」コマンドも、バックドアなどを検出する可能性があるため、改ざんされたものに置き換えられている。tuxkitではpsコマンドなどと同様に、「/dev/tux/.addr」にnetstatで表示させたくないものを記述するようになっている。改ざんされたnetstatコマンドでは、ここに記述された内容は表示されずに隠蔽される。記述方法は/dev/tux/.procと同様だ。

Type 0:隠蔽したいUIDを指定する
Type 1:隠蔽したいローカルアドレスを指定する
Type 2:隠蔽したいリモートアドレスを指定する
Type 3:隠蔽したいローカルポートを指定する
Type 4:隠蔽したいリモートポートを指定する
Type 5:隠蔽したいUNIX socketのパスを指定する

■デフォルトで記述されているもの
# cat /dev/tux/.addr
1 24 
2 24
4 6668
3 2600
3 2700
※1および2には24と記述されているため、24.X.X.Xは全て隠蔽されている。また3にはtuxkitのインストール時に指定したポート(sshd及びpsybncのポート)が自動的に記述される。

実際のネットワークの情報を表示してみる

 psコマンドなどと同様に、実際に正常なnetstatコマンドと、改ざんされたnetstatコマンドで違いを見てみよう。改ざんされたシステムにはSSHDのバックドアから侵入されている状態でnetstatコマンドを実行している。

■正常なnetstatコマンドでの表示
# /dev/tux/backup/netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:2600            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:2700            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 192.168.1.19:2600       192.168.1.20:32774      ESTABLISHED
raw        0      0 0.0.0.0:1               0.0.0.0:*               7
raw     1248      0 0.0.0.0:1               0.0.0.0:*               7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     1401   /dev/log
unix  3      [ ]         STREAM     CONNECTED     12439  /dev/log
unix  3      [ ]         STREAM     CONNECTED     12438
unix  3      [ ]         STREAM     CONNECTED     1207   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1206
unix  3      [ ]         STREAM     CONNECTED     1183   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1182
unix  3      [ ]         STREAM     CONNECTED     1086   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1085
unix  3      [ ]         STREAM     CONNECTED     1042   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1041
unix  2      [ ]         DGRAM                    951
unix  2      [ ]         STREAM     CONNECTED     685

 バックドアとpsybncのポートが待ち受けになっており、192.168.1.20からバックドアに接続されているのがわかる。

■改ざんされたnetstatコマンド
# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
raw        0      0 0.0.0.0:1               0.0.0.0:*               7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     1401   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1207   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1206
unix  3      [ ]         STREAM     CONNECTED     1183   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1182
unix  3      [ ]         STREAM     CONNECTED     1086   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1085
unix  3      [ ]         STREAM     CONNECTED     1042   /dev/log
unix  3      [ ]         STREAM     CONNECTED     1041
unix  2      [ ]         DGRAM                    951
unix  2      [ ]         STREAM     CONNECTED     685

 正常なコマンドと比較すれば一目瞭然だが、バックドアやpsybncの待ち受け、および現在バックドアに接続されている情報も表示されていない。

ファイルの隠蔽

 次にファイルの隠蔽を見てみよう。たとえば、tuxkitであれば、/dev/tuxやバックドアのxsfは「ls」コマンド、「find」コマンドなどで表示されては困るファイルということになる。これまでと同様に、tuxkitの設定ファイル/dev/tux/.fileには表示させたくないファイルおよびディレクトリを記述している。改ざんされたlsコマンド、findコマンドなどでは、ここに記述された内容は表示されずに隠蔽される。記述方法はフルパスではなく名前のみが記述される。

■デフォルトで記述されているもの
# cat /dev/tux/.file
.tux
.ssh
.proc
.addr
.file
.log
.iface
.df
.cron
.pw
xsf
ssh
ssh2

実際にファイルを表示してみる

 これまでと同様に、正常なlsコマンドと、改ざんされたlsコマンドで違いを見てみよう。バックドアである/usr/bin/xsfが改ざんされたlsコマンドでは表示されていないことがわかるだろう。

■正常なlsコマンドでバックドア/usr/bin/xsfのある/usr/bin以下を表示する
# /dev/tux/backup/ls -la
〜省略〜
-rwxr-xr-x    1 root     root        74456  4月  3  2001 wvdialconf
-rwxr-xr-x    1 root     root         4308  2月  8  2001 wx2_conv
-rwxr-xr-x    1 root     root        11612  2月  9  2001 xargs
-rwxr-xr-x    1 root     root        89828 12月 26 22:37 xchk
-rwxr-xr-x    1 root     root        62140  2月 26  2001 xgettext
-rwxr-xr-x    1 root     root          957  2月 23  2001 xminicom
-rwxr-xr-x    1 root     root      1040220  4月  8  2001 xsf ←バックドアが表示される
-rwxr-xr-x    1 root     root         4930  4月  7  2001 xtrace
-rwxr-xr-x    1 root     root        10972  4月  2  2001 xxd
-rwxr-xr-x    1 root     root        61136  1月  6  2001 yacc
-rwxr-xr-x    1 root     root         5400  1月 16  2001 yes
〜省略〜

■改ざんされたlsコマンドで/usr/bin以下を表示する

〜省略〜
-rwxr-xr-x    1 root     root        74456  4月  3  2001 wvdialconf
-rwxr-xr-x    1 root     root         4308  2月  8  2001 wx2_conv
-rwxr-xr-x    1 root     root        11612  2月  9  2001 xargs
-rwxr-xr-x    1 root     root        89828 12月 26 22:37 xchk
-rwxr-xr-x    1 root     root        62140  2月 26  2001 xgettext
-rwxr-xr-x    1 root     root          957  2月 23  2001 xminicom
-rwxr-xr-x    1 root     root         4930  4月  7  2001 xtrace
-rwxr-xr-x    1 root     root        10972  4月  2  2001 xxd
-rwxr-xr-x    1 root     root        61136  1月  6  2001 yacc
-rwxr-xr-x    1 root     root         5400  1月 16  2001 yes
〜省略〜

 このように、改ざんされたlsコマンドでは/usr/bin/xsfが表示されていないことがわかる。

 今回はrootkitの概要として、ファイルの構成やコマンドの改ざんなどの一部を紹介した。rootkitを使ってどんなことが行われているのか、なんとなくは理解できたのではないだろうか。第2回では、今回紹介しきれなかった、改ざんされたsyslogdによるアクセスログの隠蔽やログクリアーツール、そしてtuxkit自体の検知方法などについて解説していこう。


バックナンバー

第5回 kernel rootkitの概要
[2003.6.10 UP] 今回から解説する「kernel rootkit」は、ps、ls、netstatなどのコマンド類は改変せずに、Application rootkitと同じように、クラッカー側にとって必要な機能(バックドア、ファイル・プロセスの隠蔽など)を提供するものだ。このためApplication rootkitに比べて管理者からの発見を逃れられる可能性が高い。その概要について解説しよう。

第4回 rootkitを利用した侵入
[2003.3.28 UP]  kernel rootkitの解説に移る前に、今回はクラッカーがシステムに侵入し、rootkitをインストールするまでの流れを見ながら、一般的なクラッカーがどのようにしてシステムに侵入し、なぜrootkitを用いるのかについて考えてみよう。

第3回 rootkit検出ツールによる検査
[2003.3.11 UP] これまではrootkitの概要について実例を出して説明してきたが、今回はrootkitの検出ツールを利用して、rootkitのインストールされたシステムから、rootkitを洗い出す作業を行ってみよう。

第2回 ログファイルの改ざん
[2003.2.12 UP] 第1回では、Linuxのrootkitの中からtuxkitを取り上げ、その概要として改ざんされたシステムコマンド一部を紹介した。今回はその続きとして改ざんされたsyslogdと、ログファイルの改ざんなどについて見ていこう。

第1回 rootkitの概要と検知
[2003.1.15 UP] システムをクラックする手段として「rootkit」というツールが存在する。ほとんどのrootkitはインストーラー形式になっており、簡単かつ短時間で改ざん作業を完了できるようになっている。攻撃者が利用するrootkitについて、その概要を知るとともに、防御方法について考えていこう。

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

[TTS,ITmedia]