「TROJ_INDUC.AA」により開発ツール「Delphi」が汚染、「PE_INDUC.A」の脅威広がる

 ボーランド社のプログラム開発環境「Delphi(デルファイ)」がウイルス「TROJ_INDUC.AA」により汚染される事例が相次いで報告されています。

 リージョナルトレンドラボでは、汚染された環境にて作成(コンパイル)され、ウイルス化した(汚染環境にてコンパイルした際に悪意あるコードが組み込まれた)プログラム「PE_INDUC.A」について多数報告を受けており、その一部はオンラインソフトとして正規に配布されているものであることを特定しています。

図1
図1 「TROJ_INDUC.AA」によって汚染された「Delphi」にて作成された「PE_INDUC.A」

 攻撃の発端は、プログラム作成者の開発環境「Delphi」が「TROJ_INDUC.AA」により汚染されることにはじまります。「TROJ_INDUC.AA」は「Delphi」でプログラムを作成する際に使用するライブラリ「SysConst.dcu」(特定の機能をもったプログラムを再利用可能な形で部品化したもの)を「TROJ_INDUC.AA」と置き換えます。この置き換え行為をここでは、「Delphi開発環境への汚染」と呼んでいます。

  1. $(DELPHI)\lib にある「SysConst.pas」ファイルに悪意あるコードをコピーする。
  2. 正規の「SysConst.dcu」を「SysConst.bak」という名前に変更する。
  3. 悪意あるコードを含む「SysConst.pas」をコンパイルすることで、新たな「SysConst.dcu」(「TROJ_INDUC.AA」)を作成する。
  4. 作成後、元の「SysConst.pas」ファイルは削除する。

この汚染は、Delphiバージョンが4.0、5.0、6.0、7.0の場合に発生します。

 このため、「TROJ_INDUC.AA」により汚染されたDelphi環境ではコンパイル時に悪意あるコードを含む部品(ライブラリ:「SysConst.dcu」)を都度使用することとなり、この部品を含むプログラムはすべて「PE_INDUC.A」ウイルス化することとなります。

 ウイルス汚染状態のオンラインソフトが正規に公開される事例は過去にも数多く報告されています。古くは1999年1月の「TCP Wrapper」にバックドアが仕掛けられたインシデントなどがあげられます(CERT/CCによる警告:CERT Advisory CA-1999-01 Trojan horse version of TCP Wrappers)。

 しかし、今回のインシデントはより根が深いものといえます。

 「PE_INDUC.A」ウイルスは既存のDelphiで作成されたプログラムに感染するわけではありません。「TROJ_INDUC.AA」によって汚染されたDelphi開発環境で、汚染以後に作成(コンパイル)されたプログラムがすべて「PE_INDUC.A」ウイルスとして変貌を遂げていきます。

 汚染された汎用化部品(ライブラリ)を取り込んでいってウイルス化していく様子は、汚染されたテンプレートファイルを使うことで以後に作成する文書がすべてウイルス化するマクロウイルスの採る感染手法に類似しているといえます。

 「PE_INDUC.A」が検出された場合、まず確認すべきは当該プログラムの作成者をあげます。作成者がプログラム利用者自身である場合、自身が利用している開発環境が汚染されていないか最新のパターンファイルへアップデートを行った上で、ウイルス検索を実施してください。

 これとは反対に、プログラムが第三者が作成したサードパーティプログラムである場合には、そのソフトウェアの利用を中断し、作者へ報告を行ってください。

オンラインソフトのダウンロードサイト各社による告知文

【訂正と追記】

2009/08/24 11:00 オンラインソフトのダウンロードサイト各社による告知文のリンクを追記いたしました。