ロシアのKaspersky Labがグリニッジ標準時間4月7日に,Linuxと32ビット版Windows(Win32)の両システムに感染するコードについて警告を発した。両方のシステムに感染できることから,「Virus.Linux.Bi.a」および「Virus.Win32.Bi.a」という2つの名称で呼ぶ。

 問題のコードは,両環境に感染できることを技術的に示す「proof of concept code(脆弱性を実証するためのコード)」で,マルウエアとしては出回っていないという。アセンブラで記述されており,カレント・ディレクトリのファイルにしか感染しない。単一のコードで,Linuxのバイナリ・ファイル形式Executable and Linking Format(ELF)とWindowsのバイナリ・ファイル形式Portable Executable(PE)の両方に対応している。

 ELFファイルに感染する際,システム・コールINT 80を使い,ELFファイル・ヘッダーの直後から「.text」セクションのあいだにコードの本体を書き込む。そのうえで,元のファイルのエントリ・ポイントを書き換える。感染したファイルは,「0Bh」にある2バイトのシグネチャ「7DFBh」で識別できる。

 一方,PEファイルに対しては,Kernel32.dllを使い,コードを最終セクションに書き込み,エントリ・ポイントを変えて制御を奪う。感染したファイルには,ELFファイルと同じシグネチャが「TimeDateStamp」ヘッダー内に存在する。

 このコードを悪用するマルウエアはまだ出現していないものの,Kasperskyでは「実証コードが現れると,ウイルスの作者はすぐにそれを利用し,自分たちのコードに組み込む」として,注意を呼びかけている。

[発表資料へ]