セキュリティー・インテリジェンス

TrickBotの仮想通貨への欲望:標的はビットコインの購入者

記事をシェアする:

TrickBotというトロイの木馬型マルウェアは、2016年の終盤に出現して以来ずっと、サイバー犯罪の場でグローバルな脅威を増大させてきました。TrickBotの運営者たちは、組織化されたサイバー犯罪集団であり、活動の範囲を世界中で数十カ国に広げてきました。彼らは、不正送金から得られる豊富な金銭を狙い、銀行や与信会社などの金融機関を標的にして、法人対象の銀行業務やプライベート・バンキングに焦点を合わせてきました。

しかし、TrickBotの多方面にわたる関心は、ここで終わりではありません。仮想通貨の価値や人気が急速に高まり続けるにつれ、仮想通貨をできるだけ手っ取り早い方法、つまり盗難で手に入れることにサイバー犯罪集団の関心も高まっています。TrickBotの構成は、2017年の半ば頃から、人気のある仮想通貨取引所のURLを扱うようになっており、私たちIBM X-Forceは、マルウェアに感染したユーザーから仮想通貨を盗む、最新の攻撃スキームを調査してきました。

仮想通貨のプラットフォームにはいくつかのタイプがあり、それぞれがさまざまなサービスを提供しています。例えば、ある通貨と別の通貨の交換や異なるウォレット間の送金、クレジット・カードによる通貨の購入などです。当社の分析によると、このようなサービスの1つに、クレジット・カードによるビットコインやビットコイン・キャッシュの購入を可能にするものがあり、これが現在、TrickBotの標的にされています。

私たちが調査してきた攻撃は、TrickBotのWebインジェクションによって可能になり、正当な決済カード取引のフローの途中に入り込みます。

通常の決済シナリオでは、通貨を購入しようとするユーザーが、公開されているビットコイン・ウォレットのアドレスとビットコインの購入額を入力します。この最初のWebフォームを送信すると、ユーザーは、ビットコインの取引所プラットフォームから、決済サービス・プロバイダーが運用する、別のドメインの決済ゲートウェイにリダイレクトされます。そこでユーザーは、個人情報と共にクレジット・カードと支払の明細を入力し、通貨の購入を確定します。

ここでTrickBotが入り込み、仮想通貨を奪います。この記事では、BTC交換所サイトとその決済サービスの両方を標的に、仮想通貨を横取りして攻撃者自身のウォレットに送る、TrickBotの仮想通貨攻撃について説明します。

Webインジェクションの基本

TrickBotによる仮想通貨攻撃内部の動きは、既存のTrickBot攻撃の戦術であるWebインジェクションに依存しています。多くのバンキング型トロイの木馬が好んで用いる、この昔ながらのツールは、ユーザーに表示されているWebページをマルウェアが改ざんできるようにする、マン・イン・ザ・ブラウザー攻撃の形式です。マルウェアの作者は、ブラウザー内の主要なAPI機能にフックをしかけることにより、改ざんを可能にします。このようなフックは、ブラウザーを出入りする情報を横取りし、中間で改ざんします。

どのWebページを攻撃すべきかを命令するコードは通常、マルウェアの実行コードには記載されていません。そうではなく、個別に保管される構成(各ファイルやレジストリーなど)内にルールの形式で記載されています。各ルールは、どのURLをどのように改ざんするかを定義しています。このようなルールは通常、Webページの外観を改ざんしたり、ユーザーの機密情報を不正なサーバーに送信したりする行為をつかさどる、悪意のあるJavaScriptコードの大きなセクションに潜んでいます。

TrickBotは、多くの金融マルウェアとは異なり、注入されたコードを構成そのものの中では露出させません。その代わりに、リモートのコマンド&コントロール・サーバーのWeb URLが標的の各URLと通信しています。この手口は、サーバーサイドWebインジェクションと呼ばれ、2016年にTrickBotが仕掛けられて以降、利用されています。サーバーサイドWebインジェクションにより、TrickBotは、感染マシンの構成を更新する必要なく、注入されるコードをサーバー側でリアルタイムで変更できるようになります。

ターゲット:ビットコイン

標的サイトに対してTrickBotが用意している攻撃ルールを見るためには、最初にTrickBotの構成にアクセスする必要があります。感染マシン上では、TrickBotの構成は暗号化されています。これを読み取り、標的エンティティのリストを明らかにするためには、構成ファイルを復号化するか、マルウェアが構成ファイルの復号化を行った後にブラウザーのメモリー内で構成を調べます。

この攻撃にかかわるTrickBotの構成の関連部分を調査すると、ここでは2枚のWebページが、コインの購入プロセスに関与していることが分かります。1枚目のページでは、ユーザーが、自身のビットコインのウォレット・アドレスとビットコインの希望購入額の情報を提供します。2枚目のページでは、決済プロセスが実行されます。

以下の画像で、TrickBotの構成に含まれる一連のルールをそのまま例示します。これらの各ルールは、標的ページに対応しており、TrickBotのサーバー上でのURLが含まれています。これによりTrickBotは、適切なWebインジェクションのデータをフェッチして、正当なトランザクションを改ざんし、その代わりに入札を行います。

図1:TrickBotの構成に含まれる攻撃ルール(出典:X-Force Research)

感染マシンのWebブラウザーの制御権を奪う目的で、TrickBotのモジュールがブラウザーにあらかじめ注入され、Webインジェクションを実行するためのフックが事前に用意されます。

図2:ブラウザーに読み込まれたTrickBotのdll(TrickBotモジュールの詳細についてはこちらを参照)

図3:PR_ReadおよびPR_Write関数(TrickBotのフックが用意されている)

Webセッションの最中に何が起きたかを見るため、私たちは、標的URLを開いたときの感染マシン上におけるHTTPネットワーク・トラフィックをスニッフィングしました。これにより、マルウェアのダイナミック・インジェクション法(TrickBotの“dinj”)による攻撃フローが明らかになりました。

TrickBotが置き換えを望むすべてのリソース(HTMLページ、JavaScriptまたはCSSファイル)について、HTTP POSTリクエストが、コマンド&コントロール(C&C)サーバーに送られます。このリクエストには、該当するリソースの以下の属性データが含まれます。

  1. “sourcelink”:置き換え対象のリソースの完全なURL
  2. “sourcequery”:該当リソースに関するブラウザーのHTTPリクエスト(すべてのヘッダーを含む)
  3. “sourcehtml”:正当なホストから返されるオリジナルのコード

インジェクション#1 – 被害者データの収集

TrickBotが置き換えるリソースの1つは、ビットコインWebサイトのHTMLコードです。被害者の仮想通貨のウォレットと購入されるコインの数に関するデータを収集するために、コードがすり替えられます。

Wiresharkを使用すると、ページがTrickBotのC&Cに送信され、変更されたものが攻撃サーバーから返されることがわかります。

図4:標的サイトからC&Cに送信されたHTTPパケットのキャプチャー

図5:標的サイトのHTMLページに対するインジェクション要求

図5:標的サイトのHTMLページに対するインジェクション要求

注入されたスクリプトを特定するために、元のページ・ソースとTrickBotのC&Cから返されたものの間で単純なdiffを実行しました。

図6:元のHTMLページとTrickBotから返されたものの間のDiff

図6:元のHTMLページとTrickBotから返されたものの間のDiff

イベントのフロー

スクリプトは最初にID “btcAddress”の付いたHTML要素をフェッチします。この要素は、ユーザーがウォレット・アドレスを入力する入力フィールドです。ページにこの要素があることが検出された場合は、標的となるWebページとの対話を変更するために、以下のアクションがマルウェアによって実行されます。

  1. Enterキー(キー・コード13)に関連付けられた既存のロジックが削除されます。これはおそらく、キーボードによるフォームの送信を制限し、TrickBotが生成した送信ボタンを被害者がクリックするように仕向けるためです。
  2. 元の送信ボタンが複製されます。新しいコピーはHTML DOMに配置され、元のボタンは被害者から隠されます。
  3. イベント・リスナーを含む不正なフォーム送信プロセスが新しい送信ボタンに登録されます。クリックすると、ユーザーが入力したウォレット・アドレスとビットコインの希望購入額がフェッチされ、AJAX要求を使用してマルウェア・サーバーに送信されます。
図7:TrickBotが仮想通貨の購入取引を乗っ取るために使用する、注入されたコードの一部(コードのコメントがX-Force Researchによって追加されています)

図7:TrickBotが仮想通貨の購入取引を乗っ取るために使用する、注入されたコードの一部(コードのコメントがX-Force Researchによって追加されています)

HTMLページへのインジェクションは、情報収集にのみ使用されます。この情報は、正当なユーザーのビットコイン・ウォレット・アドレスとビットコイン購入額であり、攻撃者はこの情報を使用して、不正操作を進めるかどうか判断できます。

その後、決済プロセスにリダイレクトされてから、TrickBotによってさらに情報が収集されます。これを行う目的はおそらく、将来のアカウント乗っ取り攻撃を可能にするためです。この攻撃では、正当なユーザーのウォレット資格情報と決済カードの詳細を使用して、詐欺師が制御するマシンから購入/コイン転送を実行できます。

インジェクション#2 – コインの盗み取り

TrickBot攻撃の第2段階では、正当なオンライン取引のために決済プロバイダーによって定義されているWebロジックにつけ込んで、仮想通貨を盗みやすくします。

実際のビットコイン盗難は、サイトの別のリソースを変更するWebインジェクションによってさらに一層簡単になります。このリソース“bundle.js”は、決済処理ロジックのほとんどを含んでいます。

図8:bundle.jsは元のHTMLページによってロードされる

図8:bundle.jsは元のHTMLページによってロードされる

図9:bundle.jsへのダイナミック・インジェクション要求

図9:bundle.jsへのダイナミック・インジェクション要求

bundle.jsの元のバージョンと変更されたもののdiffを確認すると、関数sendPaymentRequestが変更されていることに気付きました。この関数は、決済要求を決済サービス・プロバイダーに送信する処理を行うものですが、ユーザーによって挿入されたものの代わりにハードコーディングされたビットコイン・アドレスを含むように変更されていました。

図10:TrickBotによる変更の前と後のsendPaymentRequest

図10:TrickBotによる変更の前と後のsendPaymentRequest

walletaddress”属性は、取引が完了した後で購入済みコインが送信されるビットコイン・ウォレットのアドレスです。このインジェクションによって、ビットコインは被害者が指定した元のアドレスには送信されず、TrickBotの運営者が所有するアドレスに送信されるようになります。

以後、被害者はいくつかの身元確認ステップに誘導され、その過程で電話番号、Eメール・アドレス、使用するクレジット・カードと一緒に写した顔写真、および国内IDカードの写真を提示します。

ただし、これらのステップは個人の身元確認のみに使用され、ウォレット・アドレスの所有権は確認されません。この時点でウォレット・アドレスはすでに設定済みで、被害者に表示されることは二度とありません。こうして、被害者はクレジット・カードの請求を受けて、取引が正常に行われたと信じ込み、ウォレットに新しいコインが現れることを期待します。ビットコインが指定のウォレットに届くことはなく、代わりにTrickBotの運営者のウォレットに送られます。

まとめ

TrickBotがこの仮想通貨の窃盗に応用した攻撃戦術を調査したところ、この企みは既存の仕組みに依存している一方で、標的サイト、そのサイトのWebロジック、使用しているセキュリティー制御を詳細に調査する必要があったことがわかりました。このマルウェア集団についてすでにわかっていたことですが、このグループが新しい標的の調査と攻撃対象の拡大を続けていることを際立たせる結果となりました。

仮想通貨の窃盗は金融マルウェア運営者の間でますます流行しているため、仮想通貨分野のさまざまなプラットフォームとサービス・プロバイダーを標的とした活動は、さらに数多く発生することが予想されます。

金融マルウェアのリスクを軽減するために役立つ適応制御について詳しくお知りになりたい場合は、ぜひIBM Trusteer’s Pinpoint™ Detectをご覧ください。

IOC

この調査では、MD5 65b593cc02be43ca870042eb2daa2d49のTrickBotサンプルを使用しました。

(出典:Security Intelligence より訳出 “TrickBot’s Cryptocurrency Hunger: Tricking the Bitcoin Out of Wallets” By Ophir Harpaz Co-authored by Magal Baz | Limor Kessem 2018年2月15日)

More セキュリティー・インテリジェンス stories
2024-02-27

大規模言語モデル(LLM)の隠れたリスク:催眠術をかけられたAIの実状

この記事は英語版 Security Intelligenceブログ「Unmasking hypnotized AI: The hidden risks of large language models」(2023年8月8 […]

さらに読む

2024-01-26

AIと人間の不正搾取対決:新時代のフィッシングの手口を解明する

※この記事は、IBM X-Force Redに所属するエシカル・ハッカーのStephanie Carruthersにより執筆された文章を翻訳しています。   攻撃者の技術革新は、テクノロジーの発展とほぼ同じスピ […]

さらに読む

2023-02-22

IBM Security Trusteer Rapport (ラポート)のダウンロードおよび購入を騙る不審サイトにご注意ください

架空の団体から贈与金を受け取れる等のフィッシング・メールが届き、メール本文に記載されたリンクをクリックすると不正サイトへ誘導され、金銭を安全に受け取るためと称して IBM Security Trusteer Rappor […]

さらに読む