セキュリティ・ベンダーである米Internet Security Systems は2001年10月2日,複数の UNIX系オペレーティング・システム(OS)に含まれる「CDE ToolTalk RPC データベース・サーバー」にぜい弱性があることを指摘した。この問題の影響を懸念して,米CERT/CCも10月5日にアドバイザリを発行した。今回のコラムでは,「Format String Vulnerability」に分類されるこのぜい弱性について解説したい。

syslog() 関数の呼び出し方に原因

 今回報告されたぜい弱性を述べる前に,「Format String Vulnerability」について簡単に説明しよう。まず,「Format String」とは,C および C++ プログラミング言語において,変数の出力形式を決めるためのものである。これは「変換指定記号」あるいは「書式文字列」とも呼ばれる。例えば,printf() 関数における“%d”,“%f”,“%p”などがこれにあたる。「Format String Vulnerability」とは,文字通り Format String に関連するぜい弱性である *1

*1:Format String Vulnerability の詳細については,次の文献を参照してほしい。
Tim Newsham, "Format String Attacks"

 一般的に,Format String Vulnerability は,printf() 系関数の呼び出し方に原因があると思われている。実際,その例は多い *2。しかし,今回のぜい弱性はそれとは異なり,syslogd(ログ収集機能)にメッセージを送信するための関数「syslog()」が,Format String を欠いた形で呼び出されているために発生するものである。

*2:顕著な例は, FTPサーバー・ソフト「wu-ftpd」のバージョン 2.6.0 以前に存在したぜい弱性である(詳細はCERT Advisory などを参照)。なお,2001年1月に出現した「Ramen Worm」は,このぜい弱性を悪用した(同ワームについては,Max Vision氏の「Ramen Internet Worm Analysis」に詳しい)。

 Format String Vulnerability の特徴は,メモリー中の任意の位置を“ピンポイント”で上書きすることができる点にある。攻撃者がこれを悪用すれば,メモリー中に保存された特定の値を上書きすることができる。その結果,プログラムの制御を乗っ取り,システムに対して悪影響を与える機械語コード(ペイロード *3)を実行させることができる。この点は「Buffer Overflow」と非常によく似ている。

*3:「ペイロード」とは,「攻撃者によって作成された悪意ある機械語コード」であり,「シェルコード(shellcode)」あるいは「エッグ(egg)」とも呼ばれる。

 攻撃者が可能な行為としては,次のようなものが挙げられる。

  1. ターゲット・ホストでの特定プログラムの実行
  2. ターゲット・ホストでのファイル書き換えと削除
  3. ターゲット・ホストのシステム停止および再起動
  4. トロイの木馬やウイルスなどのアップロードとその実行

 今回の問題を発生させる「CDE ToolTalk RPC データベース・サーバー(rpc.ttdbserverd)*4」は,多くの UNIX 系OSでは通常有効となっており,root 権限で実行されている。そのため,同プログラムの制御を乗っ取られれば,任意のペイロードを root 権限で実行されることになる。

*4:CDE(Common Desktop Environment)とは,UNIX 系OS上で動作する,統合的なGUI である。そして,CDE ToolTalk は,異なるホストやプラットフォーム間で通信を行うアプリケーションを仲介するシステムである。ToolTalk RPC データベース・サーバーである「rpc.ttdbserverd」は,このToolTalk アプリケーション間の通信を管理するプログラムである。

 さらに悪いことに,通常 CDE ToolTalk RPC データベース・サーバーに対しては,RPC ポートマッパー・サービスを経由することで,外部から自由にアクセスすることができる。つまり,今回のぜい弱性を悪用すれば,リモートからターゲット・ホストを完全に乗っ取ることができるのである。

各ベンダーの対応状況

 上記のように,今回のぜい弱性は深刻なものである。そのため,各OSベンダーはパッチや回避策を公開している。以下,各ベンダーの対応状況を示す。ただし,下記以外のOSも影響を受ける可能性がある。下記以外のOSを使用している場合には,各自ベンダーなどに問い合わせてほしい。

【Caldera, Inc.】

 Caldera UNIX および UnixWare はこの問題の影響を受けることが確認されており,この問題に対するアドバイザリが Caldera より発行されている。

 同アドバイザリによると,同社が公開する修正済みプログラムをインストールすれば,問題を解消できるとしている。

【Compaq Computer Corporation】

 Compaq Computer Corporation はこの問題に関するアドバイザリを発行した。

 同アドバイザリによると,Compaq Tru64 Unix 上では再現されなかったものの,潜在的な脅威と考え,パッチをリリースすることにした。パッチに関する詳細な説明が同社のWebページに掲載されている。

【Hewlett-Packard Company】

 Hewlett-Packard Company も同様に,この問題に関するアドバイザリを発行するとともに,パッチを公開した。

【IBM Corporation】】

 IBM AIX 5.1 および 4.3 はこの問題の影響を受けることが確認され,同社は emergency fix (efix)をリリースした。同efixは同社FTPサイトから入手できる。

【SGI】

 SGI 製 IRIX も影響を受けることが懸念されているが,同社は現在調査中としている。影響を回避するには,ファイアウオールなどで,信頼できないネットワークからの RPC ポートマッパー・サービスと ToolTalk RPC データベース・サービスへのアクセスを遮断する必要がある。また,rpc.ttdbserverd を停止することでも回避できる。

【Sun Microsystems】

 Sun Microsystems 製 Solaris は,この問題の影響を受けることが確認されている。現在,同社はこの問題に対する修正プログラムを作成中とのことである。修正プログラムがリリースされるまでの間,SGI IRIX と同様の対策を施して,影響を最小限に抑える必要がある。

◇     ◇     ◇     ◇     ◇     ◇

 リモートからアクセス可能なネットワーク・サーバー・プログラムのぜい弱性は,過去に発生した多くの事例が示している通り,最悪の結果をもたらす恐れがある。影響を受ける可能性があるOSを使用しているシステム管理者は,今回の情報を基に対策を取られるよう,強くお勧めする。


新井悠 (ARAI Yuu)
株式会社ラック コンピュータセキュリティ研究所
y.arai@lac.co.jp


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