分析および投稿:Mikko Suominen

 2年前、Tinbaはマルウェアのシーンに参入した。目下のところ、もっとも一般的なバンキング型トロイの木馬の1つとしてシーンに存在している。Tinbaの機能の中でも、あらかじめ設定が組み込まれている点と高度な暗号化方式を実装している点は注目に値する。これにより運用中の効率が高まり、分析される可能性が抑えられる。

 この記事では設定データについて、特に処理メモリから設定データを展開する方法に焦点を合わせる。当社(と読者のみなさんの一部)が設定データに関心を持つ理由は、Tinbaがどのように動作するか、また標的にしているのは誰か、ということを理解する一助となるためだ。

XOR暗号化のクラック

 Tinbaは、フォームグラビングやWebインジェクションといった機能で知られる。この機能は、侵害されたサイトに知らずに訪れたユーザから、銀行の認証情報を盗むために使われる。システムへ侵入する経路は、大半がスパムメールかエクスプロイトキットだ。

 ダウンロードされた時点でフォームグラビングやWebインジェクションの設定がディスク上に格納され、4バイトのキーによるXOR、続いてRC4、最後にApLibでの圧縮により保護される。XORのキーはTinbaのファイル群があるフォルダ名で、文字列から整数に変換したものだ。設定ファイルが一切ダウンロードされなかった場合、Tinbaは自身のバイナリにある、あらかじめ作成された設定データを使用するという手段に出る。このデータは、XORの暗号化を除き設定ファイルと同じ暗号化が用いられている。

 XORの暗号化は、設定ファイルを特定のマシンと紐づけるためのものだ。マシンとボットネットの特定データとの組み合わせをXORキーとして使用することで、感染したマシンへのアクセス権限を持たない人が設定ファイルの復号を試みると、難題に直面することになる。

設定ファイルの復号

 しかしながら、設定ファイルの復号は不要かもしれない。Tinbaが設定データを隠ぺいする方法が、現在の標準に比べると著しくお粗末だからだ。フォームグラビングのデータおよびWebインジェクションのデータの両方は、完全に復号された状態でWebブラウザのメモリに恒久的に格納される。これは非常にうかつである。他のバンキング型トロイの木馬は設定データを用心しながら保護する傾向にあり、必要なときにのみデータを復号し、もはや不要となれば直ちに復号されたデータをメモリから一掃する。

メモリ割り当てにおけるうっかりミス?

 Tinbaの作者は、物事をさらに簡単にするため、非常に怠惰な方法で設定データのメモリ割り当てをコーディングした。データに必要な量だけメモリを割り当てるのではなく、どんな設定データでも確実に格納できるほど十分に大きなメモリ容量をハードコーディングで割り当てることにしたのだ。その結果、0x1400000バイトという巨大なメモリブロックが、Webブラウザのメモリ空間の中でひどく目立っている。フォームグラビングの設定データはこの領域の先頭に保持されるが、Webインジェクションのデータはオフセットが0xa00000の位置に配置される。両方のデータ塊は設定データのサイズから始まる。

 一例に、サンプル「9c81cc2206c3fe742522bee0009a7864529652dd」が受け取ったWebインジェクションのデータの1エントリを挙げる。

Tinda web injection data
ポーランドの金融機関が標的であることをこのサンプルは示している

Zeusのフォーマットとの類似性

 Tinbaの設定データが不気味なほどZeusにそっくりに見えるのだとすれば、それはZeusや他の多数のマルウェアファミリーが使用しているのと同一のフォーマットをTinbaが採用しているからだ。このフォーマットは、どうもクライムウェア業界のちょっとした標準となりつつあるようだ。同一の悪意あるWebインジェクションを異なるボットネットで使用することが可能になるためだ。

 別々のマルウェアの作者が、自分のマルウェアの設定データに同一のフォーマットを使用するようになった経緯を解明するのは興味がそそられる。Webインジェクションのデータはボットネットの保有者が開発したのではなく、サードパーティーから購入したものだと仮定する。もしそうなら、特定の設定のフォーマットが一致するには、Webインジェクションの開発者らと、マルウェアの開発者らの間で連携することが求められる。数年前、Zeusは大きな市場シェアを握っていたので、おそらくこれは単に組織的に行われたのだ。顧客がWebインジェクションをより簡単に達成することを目的に、他の作者たちが同一のフォーマットを使用することは道理にかなっていた。


 Mikko Suominenは当社のレメディエーションチームのシニアアナリストである。

 詳細はJean-Ian Boutinによる論文「The Evolution Of Webinjects」(VB2014)を参照のこと。

>>原文へのリンク