Video Screencast Help
Symantec to Separate Into Two Focused, Industry-Leading Technology Companies. Learn more.
Security Response

Trojan.Zbot.B!inf での Crypto API の使われ方

Created: 19 Oct 2010 01:50:03 GMT • Translations available: English
Kazumasa Itabashi's picture
0 0 Votes
Login to vote

2010 年 10 月 1 日に発見された Trojan.Zbot.B!inf は、Windows Crypto API を使用して Trojan.Zbot を更新する機能を有しています。Crypto API は、Windows にバンドルされている PKI を使用するための関数群で、今までにもいくつかの悪意のあるプログラムに使用されてきました。このトロイの木馬は Crypto API を使用してダウンロードするための URL を作成します。

次の図では、CSP(Cryptographic Service Provider)として RSA を使用し、MD5 ハッシュ値を計算しています。ハッシュ値は、感染したコンピュータの時刻を基本とした数値を元に計算しています。

作成されたハッシュ値を CryptGetHashParam 関数で取り出した後、アスキー文字列に変換し、トップレベルドメイン(TLD)である .biz、.info、.org、.com、.net のいずれかをその文字列に追加して DNS 名を作成しています。

作成された URL の一部を次に示します。

このトロイの木馬は、1 秒間に 1 個、ハッシュ値を計算し、トータルで 800 個の URL を作成しダウンロードを試みます。目下のところ、そのうち 3 個の URL だけが有効であり、それ以外は無効な URL でした。その 3 個の URL に使われているドメインに登録されている IP アドレスは同じ 1 つのアドレスで、現在、ウクライナにあるサーバーを指しています。私が確認したドメインは 10 月 10 日に登録されているものです。日付を元に URL が作成されており、作成される DNS は日付により異なります。

このトロイの木馬は、ダウンロードしたファイルを検証するためにも Crypto API を使用しています。ダウンロードされたファイルに署名を添付させておき、ダウンロード時に CryptVerifySignatureW 関数とこのトロイの木馬が持つ公開鍵を用いてファイルの検証を行っています。

Windows で使用されているデジタル署名とは異なり、実行可能ファイルに署名と署名のサイズが格納されているバイト列からなるファイル形式は、簡素ではありますが、独自の検証システムを使用していることがわかります。署名の検証に成功し、署名が有効であった場合は、CreateProcess API を用いて、そのファイルを実行します。

シマンテック製品により、ダウンロードされるファイルは Trojan.Zbot.B として検出され、感染したファイルは Trojan.Zbot.B!inf として検出され修復することが可能です。