2005年12月18日
川俣晶の縁側ソフトウェア技術雑記total 6083 count

tina.piedey.co.jpへの侵入発見と対策の記録

Written By: 川俣 晶連絡先

概要 §

 12月17日深夜(18日早朝)、tina.piedey.co.jpにおいてps axコマンドで不審プロセスを発見し、調査の結果psyBNC 2.3.2と判明。

 主要コマンドの置き換え等の行われていないことから、一般ユーザー権限しか奪われていないと推定。実際の被害はpsyBNCによるIRCの踏み台に限定されると思われる。

 侵入経路は、約10年前のセキュリティ的にまだおおらかでも問題がなかった時代に、何らかの理由で作成したdummyアカウントに対するIDとパスワードの総当たり攻撃によるものと推定。侵入成功後に、侵入者はパスワードを変更しているため、他のクラッカーによる侵入は無いと推定。また、他の侵入の痕跡も特に発見できず。

 dummyアカウントの除去、psyBNC関連ファイルの移動(調査のため削除せず保管)、psyBNCを起動するcrontabファイルの除去により、対策は完了。

dummyアカウントとは何か §

 FreeBSD 1.x時代に、FreeBSDを試用する際に何らかの理由で作成したアカウントと推定。パスワードの総当たりスキャンなどは行われていない時代であり、さほど強固なパスワードを設定していなかった可能性がある。

 なお、不用アカウントの停止は何回か実行されているが、その作業においても見落とされていた可能性が高い。

 tina.piedey.co.jpは、メーリングリストの受信メールサーバとして使用されるため、多数のメールボックスを持つ。これらを円滑に移行するために、OSの再インストールが行われる場合でも、アカウント情報だけは丸ごと移行するという作業が行われていた。これにより、dummyアカウントも強固ではないパスワードごと残されていた可能性が高い。

スキャンの記録 §

 アカウントdummyが総当たりスキャンの対象であったことは、以下のような記録が無数に残されていることから妥当な推定と思われる。

Dec 15 20:21:31 tina sshd[82722]: Failed password for dummy from XXX.XXX.XXX.XXX port 38698 ssh2

侵入者によるパスワード変更の記録 §

 2005/03/26のtina.piedey.co.jp daily run outputにおいて以下のパスワード変更が記録されている。この時点で侵入者のアカウントdummyへの侵入は完了し、他の侵入者に侵入されないようにパスワードを堅牢なものに変更したものと推定。つまり、侵入はこの日付よりさほど遠くない手前の時点で行われたことが推定される。

tina.piedey.co.jp passwd diffs:

22c22

< dummy:(password):1011:1011::0:0:Dummy:/home/dummy:/usr/local/bin/bash

---

> dummy:(password):1011:1011::0:0:Dummy:/home/dummy:/usr/local/bin/bash

CPU消費記録 §

 tina.piedey.co.jp monthly run outputによると、アカウントdummyのCPU消費が記録されている月は以下の通り。

  • 3月, 4月, 5月, 6月, 9月, 12月(monthly run outputはまだ届いていないが推定)

 全ての月で記録されていないこと。それからps axによる不審プロセスの目視チェックはメンテナンス等の理由でログインしたときにほぼ毎回実行していることから考えて、dummyアカウントは常時利用されていたわけではなく、必要な時期に限ってピンポイントで利用されていたことが推定される。

 (仮にそうだとすると、今回の発見は幸運ということになる)

psコマンド向けの(不完全な)偽装 §

 ps axコマンドで見たとき、侵入者が仕掛けたpsyBNCのプロセスは、デーモンのパス名ではなく[httpd]という表記になっていた。これは、httpdのプロセスへの偽装を意図したものと思われる。しかし、これは不完全であり、若干の注意力があれば容易に発見できる。

 tina.piedey.co.jpはそもそもメール専用のサーバであり、httpdがインストールされていないので、明らかに不審である。

 それだけでなく、仮にApacheがインストールされ、稼働していたとしても、Apacheのプロセスは[httpd]ではなく、/usr/local/sbin/httpd等として表示される。若干の注意力があれば気付くのは容易と思われる。

 (それゆえに、常時プロセスを実行しないことで隠蔽を試みた可能性がある)

ディレクトリの偽装方法 §

 侵入者はアカウントdummyのホームディレクトリには手を付けていない。

 その代わり、"/var/tmp/ /.access.log/"にpsyBNC 2.3.2をインストールしている。

 そして、アカウントdummy権限でcronに対して以下の設定を行っている。

* * * * * /var/tmp/ /.access.log/y2kupdate >/dev/null 2>&1

 ここで注意が必要であるのは、このパス名には半角空白1文字のディレクトリ名が含まれることである。一見して、"/var/tmp/ /.access.log/y2kupdate"は2つのパス名のように見えるがそうではない。実はこれ全体で1つのパスを形成している。

 このパス名は通常のシェルの操作によって扱うことができないので、存在を隠蔽する効能が期待できる。たとえば、以下の操作は意図した通りに機能しない。空白文字がパスの区切りと認識されてしまうためである。

cd /var/tmp/ /.access.log/

 しかし、以下のような操作を行うと、不自然な表示を見ることになる。

cd /var/tmp

ls

 本来何らかのファイル名が表示されるべき箇所に空白が表示され、不自然なリスト表示が得られる。

 空白文字ディレクトリをシェルで操作可能にするには以下の操作で実現できた。

cd /var/tmp

mv ? x

 cronからの除去はroot権限でsu dummyとしてcrontabを実行するか、あるいは/var/cron/tabsよりファイルdummyを除去する。

継続的な監視 §

 chkrootkitなどのツールをcronによって定期的に実行されることは、完全とは言わないまでも行う価値のある作業と言えるだろう。

 ちなみに、chkrootkitは、portsから入れるのではなく、最新版を公式サイトから随時取得して入れるべきだろう。

被害の推定 §

 psyBNCによるIRCの踏み台にされたという以外に、特に被害は発見されていない。

 おそらく、侵入者は一般ユーザー権限しか取得できていないため、派手なことをすると気付かれる可能性が高いことをよく理解していたと考えられる。そのため、極めて限定的な用途にのみ侵入したアカウントを使用していたことが推定される。

 そのため重要情報の削除、プライバシー情報の漏洩等の問題は発生していないと推定している。

反省および考察 §

 安易なアカウントの作成は、今なら絶対に実行しないことである。現時点でゼロからインストールしたサーバであれば、このような問題は起こらない。(実際、ゼロからインストールしている別のサーバでは起こっていない)

 このような問題は、前提となる常識が異なる過去の資産の安易な継承によって起こったと言えるだろう。テスト的に立ち上げたシステムが、上手く動作しているからと何年も継続的に稼働してしまうケースが多いことは、1つの反省点として認識する。

 不審プロセスをチェックするために、ログインしたときにはできるだけps axを実行するという習慣は効能があったと言える。しかし、root権限を奪われて隠蔽された場合は、この方法では発見できない可能性がある。システムの健全性のチェックという観点からは十分ではない。

 侵入者の行動パターンも変化していることが強く感じられる。不正侵入を行っても、何ら派手なことは行わず、むしろ気付かれないように静かに潜伏している。彼の目的は、侵入したシステムを壊すことではなく、むしろ既得権として守ることにあると言えるかもしれない。侵入者が行ったパスワードの変更によって、逆にシステムの脆弱性が解消され、安全性が向上したとすら言えるのである。もちろん、これは比較級の問題であって、意図せざる侵入者を抱えたシステムはいかなる意味でも「安全」と呼ぶに値しない。むしろ、問題発生を即座に察知できない可能性が上がるために、危険度は高まっているという評価もできるだろう。

 つまり、このような侵入は一切許すべきではない。

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2005年
12月
19日
C++/CLI 言語仕様 日本語訳
3days 0 count
total 5046 count
【技術雑記】の前のコンテンツ
2005年
12月
10日
XMLもダメなのか! responseTextだけではなかった、OperaのXMLHttpRequestオブジェクトの文字化け問題
3days 0 count
total 5619 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20051218122008
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.