TREND COMMENTARY

トレンド解説 | マルウェアに関する最新の動向、対処方法

ボットネット「Trickbot」を途絶えさせるための世界規模の取り組みにESET社も参加

この記事をシェア

バンキングマルウェアでもあるTrickbot(トリックボット)は、長きにわたって世界中のインターネットユーザーを標的にしています。本記事ではESET社がTrickbotの解体ために毎月数千件のサンプルを監視・分析した結果、浮かび上がったTrickbotの実態を詳細に解説します。

本記事はESET Japanが提供する「ESETブログ」に掲載された「ESET、Trickbot(トリックボット)を阻止するための世界規模の作戦に参加」を再編集したものです。

ボットネット「Trickbot」を途絶えさせるための世界規模の取り組みにESET社も参加

ESETは、パートナーであるMicrosoft社、Lumen社のBlack Lotus Labs、NTT社などと協力し、Trickbotボットネットを阻止する取り組みを行っています。ESETは、テクニカル分析、統計情報、既知のC&Cサーバーのドメイン名とIP情報を提供し、このプロジェクトに貢献しています。

Trickbotは2016年後半から世界各国の100万台以上のコンピューティングデバイスに影響を与えています。ESETは、Trickbotが登場した当初からこのボットネットの活動を追跡しています。2020年だけでも、ESETの自動プラットフォームは12万5000以上の悪意のある検体を分析しています。さまざまなTrickbotモジュールが使用している4万以上の構成ファイルをダウンロードして復号化し、このボットネットが使用する異なるC&Cサーバーについて有用な分析結果を提供しています。

長く活動を続けるボットネット「Trickbot」

Trickbotは、長きにわたってインターネットユーザーにとって危険な活動を続けています。ESETが、Trickbotを最初に検出したのは2016年後半でした。それから数年間、Trickbotによるセキュリティ侵害は継続して報告されています。Trickbotは、世界で最大かつ最も長期間活動を続けているボットネットの1つです。ESETの2020年第1四半期「サイバーセキュリティ脅威レポート」で報告しているように、Trickbotは最も拡散しているバンキングマルウェア(銀行を標的とするマルウェア)でもあり、図1に示すように、ESETのテレメトリ(監視チームデータ)データから、このマルウェア系統が全世界のインターネットユーザーにとって脅威であることがわかります。

図1:2019年10月から2020年10月までの世界各国におけるTrickbotの検出

図1:2019年10月から2020年10月までの世界各国におけるTrickbotの検出

Trickbotマルウェアは、これまでの活動期間中、さまざまな方法で配信されてきました。ESETが最近頻繁に確認しているのは、別の大規模なボットネットであるEmotetにより乗っ取られたシステムに、Trickbotが仕込まれるという負の連鎖です。これまでは、Trickbotマルウェアはそのオペレータによって、主に銀行情報を盗むトロイの木馬として利用されており、オンラインの銀行口座の認証情報を盗み出し、不正な送金を行っていました。

Trickbotはモジュール方式のアーキテクチャを採用しており、各種のプラグインを使用し、さまざまな悪意のある活動を行います。Trickbotは、感染させたコンピュータからあらゆる種類の認証情報を盗むことができます。最近では、ランサムウェアなどの深刻な被害を与える攻撃の配信メカニズムとして主に利用されるようになっています。

Trickbotのプラットフォーム向けに開発された最も古いプラグインの1つはWebインジェクションを可能にします。これは、乗っ取られたシステムのユーザーが特定のWebサイトにアクセスしたとき、表示するコンテンツを動的に変更する技術です。このプラグインを動作させるためには、メインモジュールによってダウンロードされる構成ファイルが必要となります。これらの構成ファイルには、どのWebサイトをどのように変更するかという情報が含まれています。図2は、ターゲットのURLと、ユーザーがこのターゲットURLにアクセスしたときにTrickbotボットが通信する必要のある悪意のあるC&CサーバーのURLが記述されている復号化された構成ファイルの一部を示しています。

図2:復号化されたdinj構成ファイルの一部(一部編集済)

図2:復号化されたdinj構成ファイルの一部(一部編集済)

ESETは、Trickbotによる攻撃を監視し、数万種の異なる構成ファイルを収集し、TrickbotのオペレータがターゲットにしているWebサイトを特定できました。図3は、2020年に構成ファイルから抽出されたWebサイトの数を示しています。

図3:2020年にターゲットになったWebサイトの数

図3:2020年にターゲットになったWebサイトの数

ターゲットになっているこれらのURLは、ほとんどが金融機関のものです。3月に入ってからは、これらの構成ファイルに含まれるターゲットの数は急減しました。これは、Trickbotのオペレータが、メインモジュールによって自動的にダウンロードされるデフォルトのプラグインリストからWebInjectモジュールを除外したときと一致しています。3月のデータがないのは、このためです。ESETは、ターゲットのURLを継続して可視化するために、調査のプロセスを調整することを余儀なくされました。ターゲットURL数が減少したのは、Trickbotを操るサイバー犯罪者が、この時期にマネタイズのための別手段であるランサムウェアに注目し始めたためと考えられます。

このようなケースでは、Trickbotによってセキュリティが侵害されると、組織のネットワーク環境が偵察され、水平移動が実行され、可能な限り多くのシステムにRyukランサムウェアがドロップされます。ESETが収集したデータから、Trickbotのオペレータは、銀行口座から不正に金銭を盗み出す方法から、Trickbotを使用して組織全体のシステムのセキュリティを侵害し、Ryukランサムウェアによってシステムを暗号化し、復号化のために身代金を要求する戦略に転換したと考えられます。

また、ESETは、Trickbotのオペレータが関わっていると考えられる新たなマルウェア開発プロジェクトも確認していますが、これもTrickbotをバンキングトロイとして運用することに突然止めた理由の1つかもしれません。これらのプロジェクトの1つは、Anchorプロジェクトと呼ばれており、クライムウェアというよりはむしろ偵察活動を主眼としたプラットフォームです。Trickbotのオペレータはまた、ランサムウェアなどのマルウェアを展開したり、感染したシステムから機密データを盗んだりするために使用されるローダーやバックドアであるマルウェアBazarの開発にも関与している可能性があります。

Trickbotの詳解

Trickbotがこれほど多機能であるのは、プラグインを使用して機能を大幅に拡張できるためです。ESETは、Trickbotを追跡し、28種類のプラグインを収集して分析できました。ブラウザ、電子メールクライアント、そして、さまざまなアプリケーションからパスワードを盗み出すプラグインや、ネットワークトラフィックを変更したり、自己増殖したりすることを目的としているプラグインもあります。Trickbotプラグインは標準的なWindows DLLとして実装されており、通常、少なくともStart、Control、Release、およびreeBuffer.の4つの特徴的なエクスポートが含まれています。

興味深いことに、Richヘッダがあるプラグインと、このヘッダがないプラグインが存在しています。Richヘッダは、Microsoft Visual Studio 97 SP3以降でビルドされたすべてのバイナリに追加されるデータ構造で、文書化されていません。これには、実行ファイルがビルドされた開発環境に関する情報が含まれています。Richヘッダがプラグインに常に存在するわけではなく、存在する場合でも別の開発環境を示していることから、これらのプラグインは別々の開発者によって作成されたものであると考えられます。

ESETは、これらのさまざまなプラグインが開発され実環境で使用されるようになってからは、多くの異なる検体を観察していません。最も大きな変化があったのは、静的な構成ファイルがバイナリに埋め込まれているものです。これらの静的な構成ファイルには、C&Cサーバーの情報が含まれているため、今後、その内容は変化することが予想されます。図4は、ESETのボットネット追跡プラットフォームで収集した各モジュールの亜種の数を示しています。新しいモジュールの亜種のほぼすべてが対になっていますが、これは収集したモジュールの約半数は32ビット版で、残りの半数は64ビット版になっているためです。本書の最後の付録では、これらのモジュールについて簡単に説明しています。

図4:各Trickbotプラグインの亜種の数

図4:各Trickbotプラグインの亜種の数

共通の構成ファイル

Trickbotのインストール環境にはダウンロードされたさまざまな構成設定ファイルが存在している場合がありますが、メインモジュールには暗号化されハードコーディングされた構成ファイルが含まれています。この構成ファイルには、C&Cサーバーのリストと、ダウンロードするべきプラグインのデフォルトリストが含まれます。

前述したように、いくつかのプラグインは構成ファイルがなければ、適切に動作できません。これらのプラグインは、C&Cサーバーから構成ファイルをダウンロードするためにメインモジュールを利用しています。プラグインは、プラグインのバイナリのオーバーレイセクションに保存されている小さなモジュール構成構造を渡して、メインモジュールがダウンロードする必要がある構成ファイルを通知します。

ESETは、これらの構成ファイルを収集することで、Trickbotのネットワークインフラストラクチャをマッピングすることができました。メインモジュールは、ハードコードされているC&Cサーバーのリストを使用し、それらのサーバーのうちの1つに接続し、C&Cサーバーの第2リストであるpsrvリストをダウンロードします。メインモジュールは、この第2リストにあるC&Cサーバーに接続して、ハードコードされた構成ファイルで指定されたデフォルトのプラグインをダウンロードします。他のモジュールは、Trickbotのオペレータからコマンドを受信して、後でダウンロードされる場合があります。たとえば、injectDllプラグインなどのいくつかのプラグインには、独自のC&Cサーバーが設定されており、構成ファイルも含まれています。また、プラグイン専用のC&Cサーバーもあります。このようなサーバーで最も利用されているのは、dpostサーバーです。これは、認証など盗み出したデータを外部に送信するために使用されます。付録で詳しく説明しますが、このようなサーバーは他にも存在します。これらのように異なるレイヤーが組み合わされることで、攻撃の破壊力が増しています。図5は、この初期の通信プロセスを説明しています。

図5:Trickbotネットワークの通信プロセス

図5:Trickbotネットワークの通信プロセス

ESETは、2017年の初めから、これらの異なるC&Cサーバーを追跡しています。ESETがもたらしたこのナレッジは、サイバー攻撃者が使用しているネットワークインフラのマッピングを明らかにすることができ、Trickbotの解体に非常に大きく貢献しました。

ボットネットを調査することで収集できたもう1つの興味深いアーチファクトは、Trickbotの各検体で確認された特殊な識別子であるgtagです。これは、初期のハードコード化された構成ファイルに存在する文字列で、Trickbotの攻撃キャンペーンやセキュリティ侵害のモードによって異なります。たとえば、morキャンペーンは、EmotetがTrickbotを使用してセキュリティを侵害していることを示していると考えられ、gtagsは、キャンペーンの標的を示している場合があります。たとえば、gtag「uk03-1」は、イギリスの金融機関を主に標的としていました。

図6は、2019年9月から2020年9月まで、Trickbotの構成ファイルから抽出したすべてのgtagを時系列に示しています。morグループを見てみると、2020年4月にEmotetキャンペーンが突然停止したことがわかります。また、特定のモジュールによって使用されているグループも存在します。最近のUnit42のブログによると、tot、jim、libグループは継続的に確認されている代表的なgtagであり、それぞれ、mshare、nworm/mworm、tabモジュールに関連しています。これらのすべては、水平方向への移動に使用されていることから、同じようなタイムラインになっていることは驚くべきことではありません。

図6:gtagsグループのタイムライン

図6:gtagsグループのタイムライン

まとめ

Trickbotのような捉えどころのない脅威を解体するときには、非常に困難で複雑な作業が必要となります。Trickbotはさまざまなフォールバック(切り替え)の仕組みを確立しており、アンダーグラウンドで活動する他のサイバー犯罪者とも連携しているため、全体的な運用の仕組みは非常に複雑です。ESETは今後もTrickbotの脅威を追跡していきます。また、長期的に、このような対策が、拡散するボットネットに与える影響を評価していきたいと考えています。

この調査に尽力されたJakub Tomanek、Jozef Dúc、Zoltán Rusnák、Filip Mazánに感謝します。

ESETの検出名

Win32/TrickBot
Win64/TrickBot

MITRE ATT&CK の手法

注:この表は、MITRE ATT&CKフレームワークのバージョン7を使用して作成されています。

手法 ID 名称 説明
初期アクセス T1566.001 フィッシング:スピアフィッシングのための添付ファイル Trickbotは、悪意のあるマクロが追加されたExcelシートを電子メールに添付し、マルウェアを展開します。
実行 T1059.003 コマンドおよびスクリプトのインタプリタ:Windowsコマンドシェル Trickbotはcmd.exe /cを使用して、ユーザーのマシンにマルウェアをダウンロードして展開します。
T1059.005 コマンドおよびスクリプトのインタプリタ:Visual Basic TrickbotはExcelドキュメント内のマクロを使用して、ユーザーのマシンにマルウェアをダウンロードして展開します。
T1106 ネイティブAPI TrickbotはWindows APIのCreateProcessWを使用して実行フローを管理します。
T1204.002 ユーザーの実行:悪意のあるファイル Trickbotは、ユーザーに悪意のあるExcel添付ファイルを開かせて、ペイロードを配信します。
T1059.007 コマンドおよびスクリプトのインタプリタ:JavaScript/Jscript Trickbotのグループは、Trickbotローダーをダウンロードするために難読化したJavaScriptを使用していました。
T1559.001 プロセス間通信:コンポーネントオブジェクトモデル Trickbotは、COMを使用し、定期的に実行するタスクを設定して常駐化します。
常駐化 T1547.001 起動やログオンの自動実行レジストリ実行キー/スタートアップフォルダ Trickbotは、スタートアップフォルダに自身を設定して常駐化します。
T1053.005 定期的に実行されるタスク/ジョブ:定期的に実行されるタスク Trickbotは、システムで定期的に実行するタスクを作成して、常駐化します。
権限昇格 T1055.012 プロセス挿入:プロセスハロウィング Trickbotは、svchost.exeプロセスに自身を挿入します。
防御対策の回避 T1140 ファイルや情報の難読化解除/デコード Trickbotは、構成データとモジュールをデコードします。
T1562.001 防御機能の弱体化:ツールの無効化や改変 Trickbotは、Windows Defenderを無効にできます。
T1112 レジストリの変更 Trickbotは、レジストリエントリを変更できます。
T1027 ファイルや情報の難読化 Trickbotは、その機能を隠蔽するために解読が困難な名前を使用し、ローダーと構成ファイルにAES-CBC(256ビット)暗号化アルゴリズムを使用しています。
T1027.002 ソフトウェアのパッキング Trickbotは、機能を難読化するために独自のパッカーを使用しています。
T1553 信頼性コントロールの破壊 Trickbotは、盗み出した有効な証明書で署名したローダーを使用します。
認証情報へのアクセス T1555.003 パスワードストアの認証情報:Webブラウザの認証情報 Trickbotは、Chrome、Firefox、Internet Explorer、Microsoft EdgeなどのWebブラウザに保存されているパスワードを取得できます。
T1056.004 入力内容の取得:認証情報APIのフック Trickbotは、CredEnumerateA APIを取得し、RDPの認証情報を取得できます。
T1552.001 保護されていない認証:ファイル内の認証情報 Trickbotは、Outlook、Filezilla、WinSCPなどのアプリケーションに保存されているパスワードを取得できます。さらに、接尾辞.vnc.lnkを検索してVNCの認証情報を盗み出します。
T1552.002 保護されていない認証:レジストリの認証情報 Trickbotは、Software\SimonTatham\Putty\SessionsレジストリキーからPuTTYの認証情報を取得できます。
T1110 ブルートフォース Trickbotは、rdpscanDllモジュールを使用してRDPにブルートフォース攻撃を実行します。
検出 T1087.001 アカウントの検出:ローカルアカウント Trickbotは、システムのユーザー情報を収集します。
T1087.003 アカウントの検出:電子メールアカウント Trickbotは、Outlookの電子メールアドレスを収集します。
T1082 システム情報の検出 Trickbotは、ユーザーマシンからOSバージョン、CPUの種類、利用可能なRAMの量を収集します。
T1083 ファイルとディレクトリの検出 Trickbotは、以下のすべてのファイル拡張子を検索します。.avi、.mov、.mkv、.mpeg、.mpeg4、.mp4、.mp3、.wav、.ogg、.jpeg、.jpg、.png、.bmp、.gif、.tiff、.ico、.xlsx、.zip。ブラウザの閲覧履歴、Cookie、プラグイン情報も取得できます。
T1016 システムネットワーク構成の検出 Trickbotは、ユーザーのマシンからIPアドレスや他のネットワーク情報を取得します。
T1007 システムサービスの検出 Trickbotは、システムのマシンにインストールされているプログラムやサービスのリストを収集します。
T1135 ネットワーク共有の検出 TrickbotのモジュールshareDll/mshareDllは、WNetOpenEnumA APIを介してネットワーク共有を検出します。
T1057 プロセスの検出

Trickbotは、networkDllモジュールを使用して、プロセスリストを検出します。

水平方向への移動 T1210 リモートサービスの攻撃 Trickbotは、WormwinDll, wormDll, mwormDll, nwormDll, tabDllのモジュールで、EthernalBlueとEthernalRomanceを使用して水平方向に移動します。
収集 T1005 ローカルシステムのデータ Trickbotは、ユーザーのローカルマシンからローカルファイルや情報を収集します。
T1185 中間者攻撃 Trickbotは、Webインジェクションやブラウザリダイレクトを利用して、偽のWebページや改変したWebページにログイン認証情報を入力するようにユーザーを誘導します。
C&C T1071.001 アプリケーションレイヤプロトコル:Webプロトコル Trickbotは、HTTPSを使用してC&Cサーバーと通信し、マルウェアの更新、マルウェアの重要なロジックを実行するモジュール、および各種の構成ファイルを取得します。
T1573.001 チャネルの暗号化:対称暗号 Trickbotは、C&Cトラフィックを暗号化するために、MicrosoftのCryptoAPIを利用した独自の暗号化ツールを使用します。
T1105 ツールの入手と転送 Trickbotは、いくつかの追加ファイルをダウンロードし、ユーザーのマシンに保存します。
T1571 非標準ポート 一部のTrickbotの検体は、ポート447と8082を使用してHTTPプロトコルでC&Cと通信します。
T1219 リモートアクセスソフトウェア Trickbotは、vncDllモジュールを使用して、ユーザーのマシンをリモートから操作します。
データの流出 T1041 C2チャネルを介したデータの流出 TrickbotはHTTP POSTリクエストを使用して、C&Cチャンネルからデータを流出させます。

付録

水平方向の移動を実行するモジュール

  • shareDll、mshareDll、tshareDll
    攻撃を受けたマシンに接続しているネットワーク共有に、Trickbotローダーを展開するモジュール。
  • wormwinDll, wormDll, mwormDll, nwormDll
    SMBを介して、感染したマシンのローカルネットワークにマルウェアを拡散するモジュール。EternalBlueエクスプロイトを使用します。
  • tabDll
    EternalRomanceを利用してネットワークにマルウェアを拡散するモジュール。

情報を盗み出すモジュール

  • pwgrab
    パスワードを盗み出すモジュール。
  • systeminfo
    ユーザーのマシンに関する情報を収集するモジュール。
  • domainDll
    LDAPを介してドメインコントローラから認証情報などのデータを盗むモジュール。
  • networkDll
    システム情報やネットワークトポロジを収集するモジュール。
  • outlookDll
    Microsoft Outlookの認証情報を盗むために使用されるモジュール。
  • importDll
    Cookies、ブラウザの履歴、構成などのブラウザ情報を盗むモジュール。
  • mailsearcher
    ユーザーのマシンに保存されている、ハードコードされた拡張子(ドキュメント、画像、ビデオ)リストにあるファイルを検索するモジュール。
  • cookiesDll
    WebブラウザのCookieを盗み出すモジュール。
  • squlDll
    Mimikatzユーティリティを使用して、SQL サーバーから電子メールアドレスを大量に取得し、感染したシステムから認証情報をスクレイピングするモジュール。
  • aDll
    Active Directoryデータベースを盗みます。
  • psfin
    このモジュールは、販売時点情報ソフトウェアに関連する特定の文字列定数をActive Directoryに照会します。

ネットワークの悪用

  • injectDll
    Webinjectモジュール。
  • NewBCtestDll、NewBCtestnDll
    リバースプロキシであり、コマンドを実行できるモジュール。
  • vncDll
    ユーザーのマシンでRATとして使用されるモジュール。
  • vpnDll
    指定されたアドレスにルーティングされるVPNプロキシを作成するモジュール。
  • rdpscanDll
    特定のターゲットリストに対してRDPブルートフォース攻撃を実行するモジュール。
  • bcClientDllTestTest
    Trickbotオペレータのトラフィックをユーザーのマシン経由でプロキシする古いモジュール。
  • shadnewDll
    中間者攻撃モジュール。IcedIDメインモジュールの完全な実装が含まれます。
    ユーザーのマシンのWebトラフィックを傍受できます。

その他

  • mexecDll
    「ダウンロードと実行」のための汎用モジュール
モジュール名 サブ構成 Richヘッダ
shareDll、mshareDll、tshareDll   なし
wormwinDll、wormDll、mwormDll、nwormDll   なし
tabDll dpost あり
pwgrab dpost あり
systeminfo   あり
domainDll   なし
networkDll dpost あり
outlookDll   なし
importDll   なし
mailsearcher mailconf なし
cookiesDll dpost あり
squlDll   あり
aDll   あり
psfin dpost あり
injectDll dinj、sinj、dpost あり/なし
NewBCtestDll、NewBCtestnDll bcconfig3 あり
vncDll vncconf あり
vpnDll vpnsrv あり
rdpscanDll srv あり
bcClientDllTestTest   あり
shadnewDll dom あり
mexecDll   あり

参照リンク:
マイクロソフトのブログ: blogs.microsoft.com/on-the-issues/

この記事をシェア

業務PCのセキュリティ対策に

マルウェア情報局の
最新情報をチェック!