2019Tweet本ブログ記事は、2019年9月10日に米国で公開された抄訳版です。原文はこちらからご覧頂けます。情報を盗むマルウェアボットであるTrickBotは、2016年から感染が報告されています。Dyreを前身とするこのボットは、通常は不正なスパムと広告技法を用いて配布されます。ユーザーが悪意のある電子メールをクリックするか、不正なWebサイトにリダイレクトされると、このマルウェアはドロップされます。した悪意のある電子メールの多くは、よく知られたオンラインのホスティングサービスや支払いサービスを詐称した偽の銀行取引通知の形態をとり、ユーザーを騙してクリックさせます。多くの場合、クリックして開いたドキュメントは、疑いを持たないユーザーに対し、ドキュメントを編集可能にするよう要求を行います。編集可能になると、そのマクロは小さな.batスクリプトを使用し、このスクリプトがPowerShell.exeを利用してマルウェアをダウンロードします。水平移動するワームモジュールにより、このマルウェアはローカルネットワーク上のデバイスに感染を広げることもできます。ダウンロードされたマルウェアは、コマンドアンドコントロール(C2)インフラストラクチャへの接続を試み、C2サーバーとの接続に成功すると、多数のファイルを取得し始めます。これらのDLLファイルは、マルウェアが窃取できる機密情報や個人情報の量を増やすための独自の機能をそれぞれ持っています。このマルウェアには、感染した被害者のデバイスとネットワークについて情報を得る、偵察用のDLLファイルもいくつか含まれています。ネットワーク経由で攻撃をさらに拡大するため、このマルウェアは2つの異なるワームモジュールを備えています。これらのモジュールは、横方向に拡散してローカルネットワーク全体の被害をさらに増大させます。このマルウェアはモジュール方式をとっているので、システムでの削除や検知が困難になっています。コンポーネントの1つを強制的に削除しても、永続化手法により、そのコンポーネントの別のインスタンスがC2インフラストラクチャからすぐに取得されることになります。新しいモジュールだけでなく、DLLの最新バージョンもダウンロードされます。これが過去3年間における実状です。感染が報告されてから現在に至るまで、このマルウェアは多くの新しい亜種とその機能を高める多くの新しいDLLモジュールをドロップしています。このマルウェアの主な機能は、ユーザーがアクセスする銀行取引のWebサイトで中間者(MITM)攻撃を使用し、そのサイトの外観をWebインジェクトで偽ることです。その結果、被害者は偽りの銀行取引サイトに機密情報を入力し、その銀行口座を危険にさらすことになります。2017年以降、このマルウェアはイギリスやフランスなどヨーロッパ諸国の銀行を標的にするようになりました。TrickBotは、時間とともに発展してさらに効果を高めています。図1:ボットネットのさまざまな機能マルウェアボットネットボットネットのサイズと機能は多岐にわたっています。マルウェア作成者は、分散型サービス拒否(DDoS)攻撃でWebサイトを停止させるためにボットネットを使用できます。侵害されたデバイスを使用してスパムを拡散し、ボットネットの規模を拡大する作成者もいます。多くのボットネットがマルウェアドロッパーとして使用されています。システムが侵害されると、ボットは将来的に、望ましくないファイルや他のマルウェアもドロップできます。ボットネットでよく見られるもう1つの機能が、フィッシングキャンペーンの展開です。TrickBotの主な目的は情報を盗むことであり、金融機関のログイン情報などの個人情報や機密情報を取得することです。した情報を入手することで、マルウェア作成者は多くの不正な行動を起こすことができます。TrickBotの複数のモジュールはそれぞれ個別の役割を担っており、資格情報と個人情報をできるだけ多く取得するよう設計されています。メインのマルウェアファイルが複雑であるため、脅威アクターは独自のカスタムパッカーを作成しています。その目的は、静的分析の観点からファイルの分析を困難にすることです。このマルウェアがドロップする各種のDLLは、多くの主要コンポーネントが明確に確認可能であり、多くの場合、静的分析による分析が容易です。このマルウェアの古いバージョンでは、コンポーネントのほとんどがAESで暗号化されています。最近のバージョンでは、AESで暗号化されたデータに加えてXORエンコードの使用も確認されています。Hollowing)を使用してマルウェア自体をsvchost.exeに挿入するさまざまなアンチウイルス(AV)ソフトウェアをシステムから削除する永続性を確保するため、スケジュールされたタスクをシステム上で作成するインターネット接続をテストするトランスポート層セキュリティ(TLS)を使用して通信を暗号化する成功すると、C2サーバーに接続するさまざまなモジュールと更新が取得されるモジュールはシステムの情報を収集し、オンラインバンキングを主な対象として資格情報を閲覧するマルウェアはネットワーク全体に広がり、さまざまなワームモジュールを使用して、さらに多くのボットと被害者を得ようとするメインファイルが実行されると、マルウェアは目標達成を試みる前に悪意のあるアクティビティをいくつか実行します。デバッガや、Microsoft独自の組み込みのマルウェア防御ソフトウェアなど、さまざまなAVソリューションが最初にチェックされます。Defenderを無効化して削除AVサービスが実行されている場合は、検知を回避するため、その停止と無効化を試み、最終的に削除しようとします。次に、このマルウェアは、自身を%APPDATA%\Roaming\{フォルダー名}にコピーします。この操作が完了すると、プロセスハロウイングの手法を用いてマルウェア自体をsvchost.exeインスタンスに挿入し、偵察のために基本システム情報を取得します。最後に、このマルウェアは多数のC2インフラストラクチャへの接続を試みます。接続に成功すると、マルウェアの初期モジュールであるsysteminfo.dllとinjectdll.dllがドロップされます。TrickBotのリリース以降、その一連のツールは増加しており、現在では多岐にわたるモジュールがさらなる偵察の試行、有益な情報の窃取、ユーザーのネットワーク全体への感染の拡大を図っています。ある種のモジュールは、専用の個別フォルダーに格納されている構成をダウンロードします。永続性このマルウェアは、%APPDATE%\Roaming\{フォルダー名}にあるボットのメインファイルを永続化手法として10分間隔で実行する、スケジュールされたタスクの作成を試みます。その目的は、ダウンロードしたすべてのモジュールをシステムで確実に実行することにあります。モジュールこのマルウェアがデータを盗み出そうとするシステムのアーキテクチャは、どのモジュールがドロップされるかによって決まります。システムが32ビットの場合、ダウンロードされるモジュールは、そのシステムの正確なアーキテクチャに従って命名、設計されます。Zip図3:各種のモジュールをすべてダウンロードした後のTrickBot現在、このマルウェアは9種類のモジュールをドロップできます。それぞれのモジュールは固有の機能を持ち、さまざまなタスクを実行して情報窃取という全体的な目標を達成するよう設計されています。TrickBotがこうしたモジュール方式を採用しているのは、検知を回避し、脅威アクターによるマルウェアの更新とアップグレードを大幅に容易にするためです。実行しているTrickBotのコンポーネントごとに、対応するsvchost.exeのインスタンスを実行する必要があります。これは、ユーザーに真の意図が悟られないようプロセスハロウイングを使用するためです。3年以上にわたって感染が報告されているにもかかわらず、このマルウェアの作成者たちはその発展と進化に絶えず取り組み、さらに多くの被害をもたらそうと努めています。そのため、以下に列挙した悪意のあるモジュールは今後も増え続けていくことになります。SystemInfoこれは、TrickBotがドロップした最初のモジュールの1つであり、その発見は2016年にまで遡ります。この.DLLファイルの主な目的は、ボットネットの一部となった感染ホストの偵察です。この.DLLはシステムに関する情報を収集し、新しい被害者のマシンについて把握できるよう攻撃者に返送します。できるだけ多くの情報をシステムから引き出すため、さまざまな手法が使われています。取得される情報には、オペレーティングシステム(OS)のバージョンと情報、CPU、エラーログなどがあります。図5:SystemInfoが取得するシステムOSに関するその他の情報InjectDLLこれは、TrickBotのメインファイルです。このモジュールは悪意のある各種スクリプトを格納し、マルウェアによるWebインジェクト使用の役割を担います。このモジュールには、世界中の500を超える銀行取引サイトがスクリプトとして格納されています。感染したボットが、マルウェアが攻撃対象とするそれら銀行取引サイトの1つにユーザーをアクセスさせると、Webインジェクトが利用されます。このDLLは、銀行のWebページに追加フィールドを挿入し、本物のように見せかけます。これにより、被害者はこのDLLによって資格情報を盗まれることになります。これは、挿入された追加フィールドに被害者が機密情報を入力することで行われます。ハードコードされたさまざまな文字列の静的分析により、DLLファイルは多くの国々のドメイン名と、データ窃取の標的となるChrome、Firefoxなどの各種ブラウザーを参照します。図6:Chrome情報のコピーを試みるInjectDLLこのモジュールには、"injectDll32configs"というラベルが付いた、Webインジェクトの個別フォルダーが含まれています。このフォルダーには、暗号化された2つのファイルsinj(静的インジェクト)とdinj(動的インジェクト)が格納されています。復号されたこれらのファイルには、世界中のさまざまな銀行取引Webサイトへの参照が何百件も格納されています。</sinj>MailSearcherこのDLLは、DLLの処理関数でシステムをさらに偵察し、感染したホストファイルシステムをくまなく調べるために使用されます。これは、検索対象とするハードコードされたファイル拡張子をいくつか持っています。このDLLによるシステムの調査が完了すると、C2アーキテクチャに報告が返されます。ShareDLLこの2つのモジュールは2017年の半ばにドロップされ、マルウェアの伝播に使用されました。Windowsのサーバーメッセージブロック(SMB)の脆弱性(MS17-010)や、ライトウェイトディレクトリアクセスプロトコル(LDAP)のクエリを利用して、ネットワーク全体に拡散する機能をマルウェアに付与します。このワームモジュールは、感染ホストのローカルネットワークを介してマルウェアをさらに拡散し、マルウェアが取得できるボットネットの数を増やすために使用されます。深刻な被害は出ていませんが、その拡散の試みには同じエクスプロイトとコードが使用されています。図10:ワームをダウンロードするPowerShellコマンドImportDLLこのモジュールの主な目的は、Cookie、HTML5ローカルストレージ、ブラウザー履歴、URLアクセスに関する有益な情報を盗み出すことです。2017年初頭に初めて感染が報告されたImportDLLは、できるだけ多くのWebサイトから可能な限り多くのデータを盗み出そうとします。被害者のデスクトップの仮想インスタンスを非表示で作成し、機能を拡張することもできます。このDLLにハードコードされているURLのリストには、世界中のショッピングWebサイトのURLが多く見られ、また博物館などのさまざまなアトラクションのWebサイトのURLも含まれていました。図11:ハードコードされている、何百ものWebサイトのさまざまなURLTabDLL2018年から感染が報告されているこのモジュールは、Mimikatzを使用してWDigestの資格情報を盗み出そうとします。このモジュールは、\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest\を有効にすることで、Microsoftによるこれらの資格情報の保護を回避します。WDigest認証プロトコルが有効な場合、プレーンテキストのパスワードがローカルセキュリティ機関サブシステムサービス(LSASS)に保存されるため、マルウェアに窃取されるおそれがあります。10ではデフォルトでWDigestが無効になっていますが、マルウェアはこれを有効化します。このモジュールはロック画面コンポーネントを備えており、マルウェアがデバイスからユーザーをログアウトするときにこのコンポーネントが使用されます。ユーザーがそれぞれのアカウントに再ログインすると、WDigestサポートが有効になっているため、マルウェアはその資格情報を窃取できます。このモジュールのもう1つの要素として、ワームモジュールとは別個に、NSAエクスプロイトのEternalRomanceを使用した拡散があります。これにより、マルウェアは水平移動の第2の手段を持つことになり、これはマルウェアをさらに拡散させることを目的としています。NetworkDLLこれは、このマルウェアで2018年にドロップされた偵察用のDLLです。多くのシステム情報を収集し、そのシステムが存在するネットワークに関する情報の取得を試みます。このDLLは、マルウェアが存在するシステムでクエリを実行し、以下の情報を引き出せるかどうか確かめます。CSNameサービスパックのバージョンOSアーキテクチャブートデバイス組織ここに挙げたのはほんの数例です。このDLLは、Windowsの基本的なネイティブシェルコマンドを使用します。all"で見つけ出します。PWGrab32このDLLは、2018年後半にこのマルウェアがドロップした、もう1つのパスワード窃取コンポーネントです。このDLLはシステムで使われているさまざまなブラウザーを探知し、そこに保存されているログイン情報を盗み出そうとします。Webサイトホスト|ログインID|ログインパスワードこのコンポーネントは、OutlookやFileZillaのクライアント資格情報を盗むこともできます。このDLLがユーザーの情報を収集すると、マルウェアはC2サーバーからコマンドを受信してこの情報を引き出します。使用する人工知能(AI)に基づくエージェントは、何百万もの安全なファイルと安全でないファイルによる脅威検知のトレーニングを積んでいます。そのため、CylancePROTECT®は特定のファイルシグネチャではなく、無数のファイル属性に基づいて脅威を発見し、TrickBotをブロックできます。ゼロデイ脅威に対する予測優位性をもたらすCylancePROTECTは、TrickBotのようなレガシーマルウェアに対するトレーニングを重ねて効果を上げています。侵入の痕跡(IOC)マルウェアの相互関係2018年から2019年にかけて、TrickBotの作成者たちは、ドロッパーを使用してマルウェアを拡散しようとかなり多忙な日々を送っていました。EmotetがTrickBotとIcedID(別のインフォスティーラー)をドロップしていることが確認されており、この2つのインフォスティーラーはどちらも、互いをドロップし合っていることが確認されています。この記事のパート2では、こうした挙動についてさらに明らかにする予定です。C2インフラストラクチャこのマルウェアがセキュアなインターネットアクセスを確立すると、Config.confファイルがドロップされます。このファイルはAESで暗号化されていますが、このマルウェアのC2インフラストラクチャの詳細とマルウェア作成者によるオペレーションの規模に関する情報が含まれています。2017年後半に、あるファイルデコーダーがGitHubを通じてオンラインで無償提供されました。https://github.com/hasherezade/malware_analysis/blob/master/trickbot/trick_config_decoder.pyこのデコーダーはPythonベースでスクリプト化されており、TrickBotと関連付けられているconfigファイルを取り込んで、それを求めるすべての者に向けてデコードします。このマルウェアのC2インフラストラクチャは、このデコーダーを使用することで明らかになります。デモリクエストCylancePROTECT®に関する製品紹介およびデモをご希望の企業様は、以下のフォームにご入力いただき、送信してください。追って弊社もしくは弊社販売代理店よりご連絡申し上げます。頂戴した個人情報は弊社プライバシーポリシーに基づき、販売代理店に共有されることがございます。