10月29日付けの本コラムで,UNIX OSに同こんされるGUI環境「CDE(Common Desktop Interface,共通デスクトップ環境)」のセキュリティ・ホールを紹介した。そのCDEに,またもやセキュリティ・ホールが見つかった([関連記事])。CDE は多くのUNIXシステムで使用されているため,影響は大きいと考えられる。そこで,今回のコラムでは,このセキュリティ・ホールについて解説したい。

洗練されたGUIを提供する「CDE」

 多くのユーザーにとって,UNIX上で動作するアプリケーションは CUI(Character Based User Interface)から使いこなすものであった。CUI では,キーボードからコマンドや引数などを入力する必要がある。コマンドなどを覚えなくてはいけない半面,インタフェースは単純かつ軽快である。そして現在でも,UNIXで動作するアプリケーションの多くは,この“伝統”に従って設計されている。

 しかしながら,すべてのUNIXユーザーがこの伝統的なインタフェースを自在に操れるわけではない。自在に操るには,コマンドやディレクトリ構造など,UNIX固有の知識が必要である。そのため,GUI を使って視覚的に操作したいという要求が出るのはもっともなことである。

 その要求を満たすために,「X(X Window)」と呼ばれるウインドウ・システムが米MIT(マサチューセッツ工科大学)で開発された。そして,さらに洗練されたインタフェースを X に追加するために,いくつかの企業や団体が協調して開発したGUI環境が「CDE」である。CDE を使用すれば,Windows や Macintosh などのユーザーでも,UNIX固有の操作体系を意識せずに,ある程度の操作が可能となる。

 なお,CDEの詳細については,CDEの開発や保守を行っている「The Open Group」のWebサイトを参照してほしい。

問題は「CDE Subprocess Control Service(dtspcd)」

 以上のようにユーザーの利便性を向上するCDEに,またもやセキュリティ・ホールが発見された。CDE は複数のプログラムによって実現される。その中の1つである「CDE Subprocess Control Service(dtspcd)」にセキュリティ・ホールが見つかったのである。

 セキュリティ・ベンダーである米Internet Security Systems は2001年11月12日,複数の UNIX OS に含まれる dtspcd にセキュリティ・ホールがあることを指摘した。併せて,米CERT/CCからも同様のアドバイザリ(CERT/CC Advisory CA-2001-31) が公開された。

 dtspcd はroot権限で動作するデーモンであり,通常「inetd」などのスーパー・デーモンから呼び出される。そして,CDE上で動作するプログラムからのリクエストに応じて,サービスを提供する。

 今回指摘された問題は,送信されるリクエストの文字列の長さが妥当であるかどうかを,dtspcd がチェックしていないことが原因である。そのため,意図的に組み立てられた長いリクエストを送信することで,リモートからバッファ・オーバーフローを引き起こすことが可能となってしまう。

 なお,バッファ・オーバーフローは,dtspcd 自身ではなく,dtspcd が 使用するライブラリ「libdtsvc」 内で発生することが明らかとなっている。そのため,このライブラリを静的あるいは動的にリンクする,dtspcd 以外のCDE プログラムでも,同じ問題が発生する可能性がある。

ベンダーの対応はさまざま

 今回のセキュリティ・ホールを突けば,攻撃者はリモートから攻撃対象のコンピュータの管理者権限(root権限)を奪取することが可能となる。非常に深刻なセキュリティ・ホールであると認識する必要がある。

 この問題に関する,CDEを同こんするUNIX OSを提供している主要ベンダー,あるいは X サーバーにCDEを同こんして提供しているベンダーの対応状況は以下の通りである。

◆IBM
 AIX4.xでは,今回発見された問題,および類似の問題への対策として,以下の URL から APAR(「Authorized Program Analysis Report」の略,セキュリティ情報のこと)が公開されている。

◆SGI
 日本時間2001年11月15日現在,パッチは提供されていない。

◆Compaq
 日本時間2001年11月15日現在,パッチは提供されていない。

◆Hewlett Packard
 同社は今回のセキュリティ・ホールについてのアドバイザリ「HPSBUX0111-175」を公開している。他の技術情報同様,同社の「IT resource center」サイトから入手可能である。ただし,このサイトから情報を入手するには,ユーザー登録が必要である。

◆Sun
 日本時間2001年11月15日現在,パッチは提供されていない。

◆Caldera
 アドバイザリが公開されている。

◆Xi Graphics
 日本時間2001年11月15日現在,パッチは提供されていない。

 パッチが提供されている場合には,早急に適用する必要がある。パッチが提供されていない場合の対策としては,dtspcd を起動しないように設定変更することが挙げられる。例えば,inetd を利用して dtspcd を起動している場合には,inetd の設定ファイル「/etc/inetd.conf(パスはOSによって異なる場合がある)」において,以下の行をコメントアウトする。

dtspc stream tcp nowait root /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd

 この処理により,CDE アプリケーションの一部には支障が出る可能性がある。そのため,セキュリティ・ホールが存在するバージョンのdtspcdを利用し続ける必要がある場合には,dtspcdが使用する TCP 6112 番へのアクセス・コントロールを,ホスト単位(これが最も望ましい)あるいはネットワーク単位で行って回避する。

◇     ◇     ◇     ◇     ◇     ◇

 なお,最後に付け加えると,dtspcd に関する問題は以前にも発見されている。例えば,「CERT/CC Advisory CA-1999-11」で指摘された問題が挙げられる。ベンダーからのアドバイザリなどでは言及されていないが,今回の問題と過去に発見された問題は,本質的に同じであると筆者は考えている。ベンダーが dtspcd を見直し,潜在的な問題をすべて解決するようなパッチをリリースしない限り,類似のセキュリティホールが今後も発見される可能性は高いだろう。

 今回は CDE についてのセキュリティ・ホールについて解説したが,UNIX 関連ではプリンタ・デーモン「lpd」にもセキュリティ・ホールが見つかっている([関連記事])。米CERT/CCからはアドバイザリとして公開されている。dtspcd だけではなく,lpd についても,UNIX 管理者は今一度確認してほしい。


坂井順行(SAKAI Yoriyuki)
株式会社ラック 不正アクセス対策事業本部
sakai@lac.co.jp


 IT Proセキュリティ・サイトが提供する「今週のSecurity Check [一般編]」は,その週に起きたUNIX関連およびセキュリティ全般のニュースや動向をまとめた週刊コラムです。セキュリティ・ベンダーである「株式会社ラック」のスタッフの方を執筆陣に迎え,専門家の立場から解説していただきます。