TDSS の変種
Kaspersky Anti-Virus が TDSS として検知するマルウェアは、現在最も高機能な脅威です。TDSS は、シグネチャ、ヒューリスティック分析、およびプロアクティブ検知を回避するための、さまざまな手法を用いています。また、自身のボットとコマンド & コントロールセンター間の通信には、暗号を使用して円滑化を図っています。また、強力なルートキットコンポーネントをインストールして、システム内の他のマルウェアの存在を隠します。
TDSS マルウェアの作成者は、このプログラムを TDL と呼んでいます。2008 年に初めて TDL を世に出してから、少しずつ改良を加えて完成度を高めてきました。2010 年の時点での最新バージョンは TDL-3 でしたが、この詳細については、2010 年 8 月の記事で説明しています。
TDSS の作者達は、2010 年の年末まで、作成したプログラムを販売することはありませんでした。しかし、12 月に TDSS のサンプルの分析中に、我々はある奇妙な発見をしました。TDL-3 により暗号化されたディスク内に、別の悪意あるプログラム「Shiz」を発見したのです。

TDL-3 により暗号化されたディスク - Shiz モジュールが発見された
当時、インターネット上では、検索エンジンから自分のページにリダイレクトさせる、新手のアフィリエイトプログラムが出回り始めたばかりでした。このアフィリエイトプログラムは、Shiz の作者によるものでしたが、そこで使用されていたのは TDL-3 でした。
TDL-3 の構成が変更されていたこと、また新しいアフィリエイトマーケティングプログラムが出現したことは、TDL-3 のソースコードが、かつて Shiz マルウェアの開発に携わっていたサイバー犯罪者に売却されていたことを示しています。
TDL の作者は、なぜバージョン 3 の売却を決めたのでしょうか。その理由は、その頃すでに TDL-4 が登場し始めていたことからわかります。おそらく、バージョン 4 の新機能の出来が非常に良かったので、TDL-3 の購入者との競合を心配する必要はないと踏んだのでしょう。
2010 年後半、ビャチェスラフ・ルサコフは、TDSS ルートキットの当時の最新バージョンに関する記事を発表し、OS 内での TDSS の動作を中心に解説しました。今回の記事では、TDL-4 が 450 万台を超える感染コンピューターで構成されるボットネットとどのように通信し、データをアップロードしているのか、その手口を深く探ろうと思います。
ひとひねり効いた アフィリエイトプログラム
「アフィリエイトの利用」というTDLの拡散方法に、それほど大きな変化は見られませんでした。 これまでのように、アフィリエイトプログラムが提供する「TDL 配信クライアント」によって、まず標的としたコンピューターの OS バージョンをチェックし、その後 TDL-4 をダウンロードします。

TDL を拡散させるアフィリエイト
アフィリエイトは、TDL を 1,000 件 インストールするごとに、約 20 〜 200 米ドルを受け取ります。この金額は感染コンピューターの所在地によって異なります。インストールの手口は、アフィリエイト自身が決定します。多くのケースでは、アダルトサイトや、海賊版ソフト販売サイト、ビデオやファイルのストレージサービスサイトなどに TDL を埋め込みます。
TDL-4では、ほぼすべてのマルウェアコンポーネントに変更が加えられ、Web 上での動作にもある程度の変化が見られます。マルウェアの作者は、プログラムの機能拡張を行い、ボットとコマンド & コントロールサーバー間の通信プロトコルの暗号化を行うアルゴリズムを変更しました。また、ボットネットのコントロールセンターが閉鎖された場合にも、感染コンピューターへのアクセスが確保できるようにしました。彼らが目指していたのは、ライバルプログラムや、アンチウイルスベンダーからの攻撃にも耐えうる「破壊不能」なボットネットでした。
「破壊不能」なボットネット
暗号化されたネットワーク接続
TDL-4 での主な変更点の 1 つは、感染コンピューターとボットネットのコマンド & コントロールサーバー間の通信に使用するプロトコルの暗号化アルゴリズムです。これまでの RC4 から、XOR 交換/演算を用いた独自の暗号化アルゴリズムに変更されています。また、接続先のドメイン名と、cfg.ini ファイル内の bsh パラメーターが暗号化キーとして使用されています。
TDSS マルウェアファミリーの特徴の 1 つは、各種モジュールがアクティビティログの記録やコマンド & コントロールサーバーへの通信で使用したキーパラメーターの記述が設定ファイルに含まれていることです。
設定ファイルの一部の例
バージョン 3 との比較では、設定ファイルの形式にほぼ変化はありません。大きな変更点は、マルウェアコピーの識別子である bsh パラメーターの追加です。このパラメーターは、コマンド & コントロールサーバーにボットが初めて接続すると付与され、それ以降の接続の際に、暗号化キーの 1 つとして使用されます。
TDL-4 プロトコルに合わせて変更されたコードの一部
プロトコルの初期化時に、ボットの HTTP 送信リクエスト用の変換テーブルが作成されます。このテーブルは、コマンド & コントロールサーバーのドメイン名、および bsh パラメーターの 2 つのキーでアクティブになります。ソースリクエストは暗号化され、Base64 方式に変換されます。受信されたメッセージの前後には、ランダムな Base64 文字列が付加されます。以上が完了すると、このリクエストは HTTPS を使用してサーバーに送信されます。
ボットネットコントロールセンターと感染コンピューター間の通信に採用したこの新しい暗号化アルゴリズムにより、ネットワークトラフィック監視ツールから感染コンピューターを保護しつつ、ボットネットの円滑な動作を確保できるようになりました。また、ボットネットの乗っ取りを企む他のサイバー犯罪者からの攻撃も阻止します。
自前のアンチウイルスプログラム
TDL は Sinowal と同様のブートキットです。つまり、MBR に感染して自身を起動させることで、OS の起動前に悪性コードを確実に実行させます。これは、マルウェアのライフサイクルを伸ばし、セキュリティプログラムから発見されにくくする、ダウンローダーの典型的な手法です。
TDL は、自身とダウンロードした悪意あるプログラムを、アンチウイルス製品から即座に隠します。TDL-4 は、自身に関係のないマルウェアが、感染コンピューターのユーザーの注意を引くことがないように、全種類とまではいかないものの、一般的なマルウェアを削除する機能も備えています。
システムレジストリ内で自身以外のマルウェアを検索する TDSS モジュールコード
TDSS には、Gbot、Zeus、Clishmic、Optima といったおよそ 20 種類ものマルウェアを削除するためのコードが含まれています。TDSS はレジストリ内で特定のファイル名を検索し、他のボットネットのコマンド & コントロールセンターのアドレスをブラックリストに登録して、感染コンピューターがそれらと接触することを阻止します。
この「アンチウイルス的な活動」は、TDSS に利点をもたらします。まずは、サイバー犯罪における競争で優位に立てること。そして、感染コンピューター上で、他のマルウェアによる不要な干渉から、自身と配下のマルウェアを保護できることです。
では、TDL-4 がダウンロードするのは、どのようなマルウェアでしょうか。今年の初めから、このボットネットは、偽のアンチウイルスプログラム、アドウェア、スパム配信ボットの「Pushdo」など、約 30 種類のマルウェアをインストールしています。

TDSS がダウンロードするプログラム
TDL-4 は、他のマルウェアのインストール後に自身を削除せず、ダウンロードしたマルウェアは、r.dll モジュールを使用していつでも削除できるという性質を備えています。
Kad ネットワークへのボットネットアクセス
TDL-4 の新機能の中でも特に注目すべきは、kad.dll モジュールです。このモジュールは、TDSS ボットネットから Kad ネットワークへのアクセスを可能にするものですが、サイバー犯罪者はこの誰でも利用可能なファイル交換ネットワークを、どのように悪用しようとしているのでしょうか。
ボットネットが P2P 経由で制御されることは以前から知られています。これまでは、サイバー犯罪者自らが作成したプロトコルによるクローズドな接続が使用されていましたが、TDSS では公共の P2P ネットワークを利用してボットネット内のすべての感染コンピューターにコマンドを送信しています。以下に、TDSS が Kad を利用するまでの手順を説明します:
- サイバー犯罪者が、ファイル ktzerules を Kad ネットワーク上に保存し、アクセス可能な状態にします。このファイルには、TDSS が使用するコマンドのリストが暗号化されて格納されています。
- TDSS に感染したコンピューターが kad.dll モジュールのダウンロードとインストールを行うコマンドを受信します。
- インストールされた kad.dll モジュールが、ファイル nodes.dat をダウンロードします。このファイルには、Kad ネットワークのサーバーとクライアントにアクセスするための IP アドレスが含まれています。
- kad.dll モジュールから Kad ネットワークへ、ファイル ktzerules を検索するようリクエストが送信されます。
- ファイル ktzerules がダウンロードされ、復号化 されると、kad.dll がファイル ktzerules 内のコマンドを実行します。
Kad ネットワーク上で発見した暗号化された kad.dill モジュール
以下は、暗号化されたファイル ktzerules に格納されるコマンドの一覧です:
- SearchCfg - Kad ネットワーク内の新しいファイル ktzerules を検索する
- LoadExe - 実行ファイルのダウンロードと実行を行う
- ConfigWrite - cfg.ini への書き込みを行う
- Search - Kad ネットワーク内のファイルを検索する
- Publish - Kad ネットワーク上にファイルをパブリッシュする
- Knock - Kad のサーバーとクライアント(TDSS 感染したものを含む)の IP アドレスのリストを格納する新しいファイル nodes.dat を、コマンド & コントロールサーバーにアップロードする
この中で最も興味深いコマンドは、Knock です。このコマンドにより、サイバー犯罪者は、TDSS に感染したコンピューターのみが属する自分達専用の Kad P2P ネットワークを構築可能です。

公共の KAD と クローズド KAD の重複部分
TDSS ボットネットの kad.dll モジュールと cmd.dll は、制御機能においては基本的にほぼ相違ありません。サイバー犯罪者のサーバーから新しいファイル nodes.dat をダウンロードするコマンドを格納するファイル ktzerules を実行した上で、Kad クライアントの IP アドレスリストを格納するファイル nodes.dat を実行することで、ボットネットの所有者は、感染させたコンピューターを公共の Kad ネットワークに組み込んだり、逆にそこから削除することが可能です。公共の Kad ネットワークには、10 台程度の TDSS 感染コンピューターを残します。こうすることで、ファイル ktzerules を置き換えられにくくし、自分のボットネットが別のサイバー犯罪者に乗っ取られるのを防ぎます。クローズドネットワーク上での TDSS 感染コンピューターの合計数は、何万台にものぼります。
TDL-4 作者からのコマンドを送信する役割を担う Kad.dll コード
さらに、Kad にアクセスすることにより、犯罪者は、あらゆるファイルをボットネット内のコンピューターにダウンロード可能になり、さらに、そうしたファイルに P2P ユーザーがアクセス可能にもなります。たとえば、アダルトコンテンツや盗まれたデータベースなどのファイルです。
この種のボットネットが大きな脅威となる理由は、たとえ彼らのコマンド & コントロールセンターが閉鎖されたとしても、ボットネットの所有者は感染コンピューターへの支配力を失うことがないという点です。しかし、このシステムにも、問題点が 2 つあります:
- 公共の Kad ネットワークを使用するため、偽のボットネットコマンドが出現するリスクがある。
- 2. Kad ネットワークとの通信を行う kad.dll モジュールの開発時に、GPL ライセンス適用のコードが使用された。これは作者のライセンス契約違反にあたる。
拡張された機能
既知のアドウェア機能に加え、TDL-4 では新しいモジュールが武器として加わりました。本記事では、すでにこのマルウェアの「アンチウイルス的な」機能と、P2P モジュールについて触れました。TDSS の所有者は、さらに別のモジュールを追加し、感染コンピューター経由での匿名性を確保したネットワークアクセスサービスの提供を始め、さらに 64 ビットへの対応も開始しています。
プロキシサーバーモジュール
TDSS の svchost.exe に、Socks.dll と呼ばれるファイルが付加されました。このファイルは、感染コンピューター上でプロキシサーバーを立ち上げるために使用されます。このモジュールにより、感染コンピューター経由で正体を隠してインターネットリソースを閲覧することが簡単にできるようになります。
このように多数のコンピューターを手中に収めた犯罪者は、1か月あたり約 100 米ドルで、匿名のインターネットアクセスサービスの提供を始めました。さらに、ブラウザ上でプロキシサーバーを簡単に切り替えることのできる Firefox 向けアドオンを開発して利便性を高めました。
TDSS ボットネット経由の匿名インターネットアクセスを行うための Firefox アドオン
64 ビットへの対応
2010 年のマルウェアにおける技術革新の 1 つには、TDSS に加わった 64 ビットシステム向けの悪質なドライバーが挙げられます。64 ビットシステム内のユーザーモードでの運用に対応するために、TDL-4 からは、64 ビットシステム用の cmd.dll である「cmd64.dll」が 採用されました。ただし、64 ビットプログラムでの制約により、cmd64.dll コードでは、コマンド & コントロールサーバーとの通信しか行えません。
ボットネットコマンド & コントロールセンターのコマンドリスト
検索エンジンとの連携
cmd.dll モジュールについては、改変の形跡がほとんど見られませんでした。このモジュールの役割は、コマンド & コントロールサーバーとの通信を簡素化することと、広告システムや検索エンジンを不正に操作して、検索結果をすり替えることです。TDSS のコマンドの中でも最新の技術革新と言えるのは、SetName コマンドです。このコマンドは、各感染コンピューターに番号を割り振ります。クリックとトラフィックを偽装する技術を採用するマルウェアは、TDSS の他にも存在しますが、検索結果のすり替えが可能な検索エンジンの数では、TDSS が群を抜いています。

TDSS が対応する検索エンジンのリスト
ボットネットのコマンド & コントロールサーバー
TDSS では、コマンド & コントロールサーバーのアドレスを取得する際に、複数のソースが参照されます。通常ではまず cmd.dll を参照しますが、このリスト内のアドレスにアクセスできない場合は、cfg.ini 内のリストを参照します。何らかの理由により、このリスト内のアドレスにもアクセスできない場合には、コマンド & コントロールサーバーに最初に接続した際に受信する、bckfg.tmp という暗号化されたファイルから別のリストが作成されます。今年に入ってから、世界各国で約 60 ものコマンド & コントロールセンターが発見されました。
コントロールサーバー のアドレス | 2 月初め時点での サーバーアドレス | 3 月初め時点での サーバーアドレス | リスト内に 出現した割合(%) |
| 01n02n4cx00.cc | noip | noip | 0,05% |
| 01n02n4cx00.com | 91.212.226.5 | noip | 0,43% |
| 01n20n4cx00.com | 91.212.226.5 | 91.193.194.9 | 0,21% |
| 0imh17agcla.com | 77.79.13.28 | 91.207.192.22 | 0,80% |
| 10n02n4cx00.com | 194.28.113.20 | 194.28.113.20 | 0,22% |
| 1il1il1il.com | 91.212.158.72 | 91.212.158.72 | 6,89% |
| 1l1i16b0.com | 91.193.194.11 | 91.193.194.11 | 0,43% |
| 34jh7alm94.asia | 205.209.148.232 | noip | 0,03% |
| 4gat16ag100.com | noip | noip | 2,07% |
| 4tag16ag100.com | 178.17.164.129 | 91.216.122.250 | 6,69% |
| 68b6b6b6.com | noip | noip | 0,03% |
| 69b69b6b96b.com | 91.212.158.75 | noip | 6,89% |
| 7gaur15eb71.com | 195.234.124.66 | 195.234.124.66 | 6,85% |
| 7uagr15eb71.com | noip | noip | 2,07% |
| 86b6b6b6.com | 193.27.232.75 | 193.27.232.75 | 0,14% |
| 86b6b96b.com | noip | noip | 0,24% |
| 9669b6b96b.com | 193.27.232.75 | 193.27.232.75 | 0,22% |
| cap01tchaa.com | noip | noip | 2,19% |
| cap0itchaa.com | noip | noip | 0,58% |
| countri1l.com | 91.212.226.6 | 91.212.158.72 | 6,89% |
| dg6a51ja813.com | 91.216.122.250 | 93.114.40.221 | 6,85% |
| gd6a15ja813.com | 91.212.226.5 | 91.212.226.5 | 2,07% |
| i0m71gmak01.com | noip | noip | 0,80% |
| ikaturi11.com | 91.212.158.75 | noip | 6,89% |
| jna0-0akq8x.com | 77.79.13.28 | 77.79.13.28 | 0,80% |
| ka18i7gah10.com | 93.114.40.221 | 93.114.40.221 | 6,85% |
| kai817hag10.com | noip | noip | 2,07% |
| kangojim1.com | noip | noip | 0,14% |
| kangojjm1.com | noip | noip | 0,24% |
| kur1k0nona.com | 68.168.212.21 | 68.168.212.21 | 2,19% |
| l04undreyk.com | noip | noip | 0,58% |
| li1i16b0.com | noip | noip | 0,05% |
| lj1i16b0.com | noip | noip | 0,05% |
| lkaturi71.com | noip | noip | 0,14% |
| lkaturl11.com | 193.27.232.72 | 193.27.232.72 | 0,22% |
| lkaturl71.com | 91.212.226.6 | 91.212.158.72 | 7,13% |
| lo4undreyk.com | 68.168.212.18 | 93.114.40.221 | 2,19% |
| n16fa53.com | 91.193.194.9 | noip | 0,05% |
| neywrika.in | noip | noip | 0,14% |
| nichtadden.in | noip | noip | 0,02% |
| nl6fa53.com | noip | noip | 0,03% |
| nyewrika.in | noip | noip | 0,03% |
| rukkeianno.com | noip | noip | 0,08% |
| rukkeianno.in | noip | noip | 0,08% |
| rukkieanno.in | noip | noip | 0,03% |
| sh01cilewk.com | 91.212.158.75 | noip | 2,19% |
| sho1cilewk.com | noip | noip | 0,58% |
| u101mnay2k.com | noip | noip | 2,19% |
| u101mnuy2k.com | noip | noip | 0,58% |
| xx87lhfda88.com | 91.193.194.8 | noip | 0,21% |
| zna61udha01.com | 195.234.124.66 | 195.234.124.66 | 6,85% |
| zna81udha01.com | noip | noip | 2,07% |
| zz87ihfda88.com | noip | noip | 0,43% |
| zz87jhfda88.com | 205.209.148.232 | 205.209.148.233 | 0,05% |
| zz87lhfda88.com | noip | noip | 0,22% |
上記のリストを注意深く見ると、コマンド & コントロールセンターの IP アドレスが絶えず変更されていることと、一部のセンターが段階的に消滅していることがわかります。このようなアドレスの変更は、コマンド & コントロールセンターの本来の場所を隠蔽するためにプロキシサーバーが使用されていることを意味しています。
コマンド & コントロールサーバーに関する統計情報
サイバー犯罪者達は、あらゆる手段でコマンド & コントロールセンターを保護しようとしてきましたが、我々 Kaspersky Lab のエキスパートは、TDL-4 がサーバーとの通信に使用したプロトコルの分析を通して、特殊なリクエストを作成し、感染コンピューターの数に関する統計情報を得ることに成功しました。このデータを分析すると、モルドバ、リトアニア、そして米国で、3 種類の異なる MySQL データベースが発見されました。これらのデータベースには、ボットネットを維持するために使用されたプロキシサーバーのデータが格納されていました。
これらのデータベースを解析すると、2011 年の最初のわずか 3か月の間に、TDL-4 が世界中の 4,524,488 台のコンピューターを感染させたことがわかりました。
国別の TDL-4 感染コンピューターの割合
感染コンピューターの約 3 分の 1 は米国に集中しています。アフィリエイトプログラムの相場を参考にすると、米国内でこれだけの数のコンピューターを感染させるには、25 万米ドル必要であると算出できます。そしてこの金額は、おそらく TDSS の作者に流れたのでしょう。驚くことに、この統計にはロシア人ユーザーが含まれていません。このことは、アフィリエイトマーケティングプログラムではロシア国内のコンピューターへの感染に対して報酬を支払わない、という事実によって説明がつくと考えます。
ストーリーは続く
TDSS の進化が今後も続くと考えるのには、理由があります。 64 ビットシステム向けのルートキット、OS 起動前に実行されるマルウェア、Stuxnet で使用されるエクスプロイトの活用、P2P テクノロジー、独自の「アンチウイルス的な」サービスの採用など、TDL-4 は絶え間ない進化を見せています。TDSS は、現在最も技術的に高度で、最も分析が困難なマルウェアとしてその地位を確立しています。450 万台以上の感染コンピューターを巻き込んだボットネットは、アドウェアや検索エンジンを操作し、匿名のインターネットアクセスを提供する目的で使用され、他のマルウェアの足がかりともなっています。
TDSS と感染させたすべてのコンピューターを統合するボットネットは、今後もユーザーと IT セキュリティのプロの両方にとって厄介な存在であり続けるでしょう。分散型でサーバー非依存型のボットネットは、実質的に破壊不可能であり、Kido の大流行を彷彿とさせます。