サポート情報 | フォーカスシステムズ サイバーフォレンジックセンター

お問い合わせはこちら
東京証券取引所 プライバシーマーク ISMS JUSE

サポート情報

ホーム > サポート情報一覧 > svchost上のImportテーブル

svchost上のImportテーブル

目次へ

 それでは、svchost上のコード解析を行っていきたいと思います。いよいよ、不審な通信と暗号化の処理が行われることになります。中で行われている様々な処理も興味深いものが多いですが、それぞれを深く説明していると、一冊の本になってしまいそうなほどの要素があるため、なるべくトピックを要約していきます。なお、筆者による実際の解析は、「仮想メモリ内のWindows API使用フロー」のようなことを延々と続けて解析しています。

 svchostでCryptoWallのコードが開始された直後は、「再展開されたプログラムのImportテーブル」と「PC毎固有の「ハッシュ値」の計算」で行った処理と同じことを行います。ただし、ここで以前と少し異なった部分があったので紹介しておきます。

 svchost上に展開された自作のImportテーブルを参照したところ、「再展開されたプログラムのImportテーブル」で挙げたAPIから、さらにAPIが増えていました(【図96】参照、0x000202A0移行)。追加されたAPIのリストを【表3】に示します。

 追加されたAPIのうち、最も特徴的なのは、通信に関するAPIです。Internetに接続し、送受信を行うためのAPIから、「マルウェアを動作させてみる」で観察された通信の実行を行うことが予想されます。

 また、「ObtainUserAgentString」も追加されており、ブラウザ情報文字列を用いることにより、ブラウザによる通信を偽装することが考えられます。通信先もphpであることを考えると、受信したWebサーバが動作するためにも、通信のデータレイアウトの整合性を取るために必要な情報とも考えられるでしょう。

 CryptAPIに関しては、どうも公開鍵の利用に関係しそうなAPIを追加しており、これも注視すべきポイントです。【表2】のAPIと【表3】のAPIで、ランサムウェアを作成するのに十分なOS機能が揃った、ということが分かるのではないでしょうか。

 内部Importテーブルを作成後、「PC毎固有の「ハッシュ値」の計算」で解説した処理を再び行っています。内容については既に前述しているために省略します。

 また、さらにこの後イベントの生成を行っています。このイベントの生成には、再び「PC毎固有の「ハッシュ値」の計算」で求めたハッシュ値を利用しています。このイベントに関しては、現在のところ残念ながら目的を詳しく解析はできていません。

 イベントの生成後、Roamingの下にハッシュ値6文字を利用したファイルの存在チェックを行っています(今回用いている環境では、「93cfef」)。このファイルについては、後に生成する処理があり、またこのファイルがある重要な役割を果たすため、このファイルを生成する処理の解説で触れたいと思います。

 

< コード上の「int 3」目 次通信先URLの展開 >

 

IDA_Cryptowall_ImportTableAdd

【図96】追加された自作Importテーブルのポインタ

 

【表3】自作のImportテーブル(追加分)

オフセット  Windows API オフセットWindows API 
 0x02A0 InternetOpenA 0x02E0 InternetSetOptionA
 0x02A4 InternetOpenW 0x02E4 InternetSetOptionW
 0x02A8 InternetConnectA 0x02E8 ObtainUserAgentString
 0x02AC InternetConnectW 0x02EC CoInitializeEx
 0x02B0 InternetOpenUrlA 0x02F0 CoUninitialize
0x02B4 InternetOpenUrlW0x02F4 CoCreateInstance
0x02B8 HttpOpenRequestA0x02F8 CreateStreamOnHGlobal
 0x02BC HttpOpenRequestW 0x02FC CryptDecodeObjectEx
 0x02C0 HttpSendRequestA 0x0300 CryptStringToBinaryA
0x02C4 HttpSendRequestW0x0304 CryptStringToBinaryW
0x02C8 InternetReadFile0x0308 CryptImportPublicKeyInfo
0x02CC InternetCloseHandle  
0x02D0 HttpAddRequestHeadersA  
 0x02D4 HttpSendRequestExA  
0x02D8 HttpEndRequestA  
 0x02DC InternetWriteFile