-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 karin.namazu.orgセキュリティ侵害についての報告 Namazu Project のメインサーバであった karin.namazu.org が受けた セキュリティ侵害について、詳細を報告します。 時間経過 (JST) 5/19 今回の侵害に用いられたと見られる、CVS の heap overflow 問題と修正 パッケージが公開される。 5/23 02:04 CVS による最初の侵入が発生する。ttymon などの監視ツールが送 りこまれる。 05:03 同じく CVS 経由で keylogger などの監視ツールが送りこまれる。 18:04〜18:40 test アカウントを作成され、passwd, shadow がコピーされる。 18:42 passwd, shadow を ftp 経由で奪取される。 19:07 アカウント jitterbug にて ssh login される。 19:56 CVS にアクセスがある。詳細は不明だが、これにより jitterbug から root への権限昇格が可能となる。 19:58 rootkit が仕込まれる。 5/24 19:00頃 karin.namazu.org と同一サブネット内のトラフィックが増大する。 20:00頃 侵入されていることが発覚 5/25 02:00頃 karin.namazu.org をネットワークから遮断 これ以降のサービス復旧状況については http://www.namazu.org/#restoration を参照して下さい。 障害時のマシンとサービス構成 karinでは、inetd経由によりCVS pserverがroot権限で動作していました。こ のCVSで公開されていたソフトウェアは多岐に渡り、多くのユーザがpserver, もしくはssh経由でアクセスしていました。anonymousユーザも用意され、ソー スコードの取得も自由に行なうことができました。 karinはDebian 3.0を採用しており、19日の時点でCVSの修正パッケージも公開 されていましたが、侵入がなされるまで管理チームは未対応の状態でした。 この状況下で、karinが収容されているネットワークセグメントの別マシンか ら「ネットワークが重い」という報告がありました。調査の結果、トラフィッ クを発生させているのがkarinであることが判明しました。 その後、スイッチレベルでkarinを遮断し、ハードディスクを保全して別マシ ン上で解析しました。 解析の結果、rootkitがいくつか設置されていることが判明しました。rootkit のctimeとテンポラリディレクトリに残されていたCVSの一時ディレクトリの ctimeから、最初の侵入時刻を5/23 02:04と推定しました。 CVSがroot権限で動作していたため、侵入者は容易にpasswd, shadowを奪取す ることができました。また、spamfilterを設定するために一時的にshellアカ ウントを有効にしていたjitterbugがその状態のままになっており、容易に推 測可能なパスワードが設定されたままでした。そのため、侵入者はすぐにシェ ルアクセスを入手できてしまいました。 サービスの復旧 karin自体既に老朽化しており、新しいネットワーク上の新しいマシン vaj.namazu.org に移行する計画は以前からあり、既にある程度の準備ができ ていました。そこで、全てのサービスをvajに移行させました。 現在まだ一部のサービスが復旧できていませんが、徐々に行なってゆく予定です。 CVSの検証 karinには2つのハードディスクが接続されており、オリジナルのCVSリポジト リを毎日定期的に別ディスクにrsyncでバックアップしていました。オリジナ ルレポジトリはChangeLogグラフを作成するため、常にある特定の時間に checkoutが行なわれていました。そのため、リポジトリ内のファイルは全てほ ぼ同一のatimeが記録されていました。 一方、rsyncでバックアップされていたリポジトリはディレクトリを除き、変 更があったファイル以外はatimeが保持されていました。これは、ディレクト リの走査をrsyncが行なうためにディレクトリのatimeは変更が発生し、その結 果変更のなかったディレクトリ内のファイルはまったく触れられないために atimeが保持される、という挙動を示していたからだと考えられます。 atimeを保持したまま内容を改竄することは可能ですが、そのためには改竄前 のatimeを記録する必要があります。そこまでの手間をかけてオリジナルとバッ クアップ両方のリポジトリを矛盾なく改竄する可能性は低いと考え、バックアッ プはそれなりに信頼できると結論づけました。その結論に基きオリジナルとの 差を比較した結果、新規にcommitした変更以外の違いを見付けることができま せんでした。 また、Namazu 2.0.12 および 2.0.13 のリリース時点でのソースファイルと PGP検証済みの配布アーカイブとの比較も試み、一致することを確認しました。 さらに STABLEブランチの先頭について、5/13 時点のワーキングディレクトリ が開発者のマシンに残っていましたので、その時点での比較を行い一致を確認 しました。また、5/13 以降の変更点についてすべてのソースコードを検証し、 不正な変更がなされていないことを確認しました。HEAD についても、開発者 のマシンに残ってた 3/17 時点でのワーキングディレクトリおよび検証済みの STABLEブランチの先頭を基に、それ以降のすべてのソースの変更点に問題がな いことを確認しました。 以上をもってCVSリポジトリはある程度安全であると考え、利用を継続するこ とにしました。 今後の運用について これまでの問題点を踏まえ、現在は以下のようなポリシーで運営を行なっています。 - - pserverで公開するリポジトリはオリジナルのコピーとし、chroot環境内で root権限をもたせない運用とした。 - -- chroot cvs は sid から backport した cvsd パッケージを用いた。これ により、新しいcvsパッケージが提供された場合にも、容易にchroot内に反 映させることができる。 - - サーバ管理チーム体制を強化し、管理チーム用MLには常にセキュリティアナ ウンスが流れるようにした。 - - 管理チーム以外は、cvs over sshのみ実行できるよう、アカウント付与ポリ シーを変更した。 - - いくつかの独立したリモートホストからバックアップを行なうようにした。 この経験を生かし、今後はより安全にサーバ運営を進めてゆきたいと考えています。 また、検証を行なうにあたって検証用マシンを提供して下さった株式会社ネッ トビレッジ様には、この場を借りて感謝の意を表明します。 2004年7月23日 野首貴嗣 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFBAKe1K6gmAsLOgJkRAlqpAJ0bI0gTr7DgMhLCbomgq0B0WcbdbACgkZYG lBILnZHve+D+MckAIzYbr84= =c+Dt -----END PGP SIGNATURE-----