TA410グループの攻撃の軌跡:サイバースパイのための戦術・技術・手順(TTP)とアクティビティ

ESETの研究者はTA410の詳細なプロフィールを公開しました。3つのチームで構成されたサイバースパイの統括組織であるTA410は、ESETが発見したスパイ活動用バックドア「FlowCloud」の新バージョンを含む、さまざまなツールセットを使用していると考えられます。

Alexandre Côté Cyr, Matthieu Faou 27 April 2022

ESETの研究者は、2019年にまでさかのぼり、TA410の活動を文書化し、分析してきました。TA410は、中国を拠点にしているグループと考えられているAPT10と緩やかに結び付いているサイバースパイ統括組織であり、主に米国に拠点を置く公共事業分野の組織や、中東やアフリカの外交機関を標的としています。TA410は少なくとも2018年から活動しており、初めて公に明らかになったのは2019年8月にProofpoint社が公開したLookBackマルウェアに関するブログ記事でした。その1年後には、FlowCloudと呼ばれる当時出現したばかりの非常に複雑なマルウェアファミリも、TA410によるものであることが特定されました。

本ブログ記事では、ESETが発見したFlowCloudの新バージョンを含む、このAPTグループの手口やツールセットなど、詳細情報を解説します。この非常に複雑なバックドアには、注意が必要なスパイ機能が搭載されています。ESETは、Botconf 2022において、現在進めている調査の結果を含め、TA410に関する最新情報を発表する予定です。YARAおよびSnortのルールについては、ESETのGitHubアカウントを参照してください。

本ブログ記事の要点:
  • TA410は、FlowingFrog、LookingFrog、JollyFrogという3つのチーム(ESETの研究者が命名)からなる統括組織であり、チームごとに使用するツールセットと標的が異なります。
  • ESETのテレメトリからは、主に政府機関や教育機関など、世界中に被害者がいることが分かっています。
  • TA410は、2021年3月のProxyLogon、2021年8月のProxyShellなど、Microsoft Exchangeに存在する最新のリモートコード実行の脆弱性にアクセスしていました。
  • ESETの研究者が、複雑でモジュール式のC++ RATであるFlowCloudの新バージョンを発見しました。このバージョンには、以下のような危険な機能が備わっています。
    • 接続されているマイクを制御し、指定のしきい値以上の音量が検出されると録音を開始する。
    • クリップボードのイベントを監視し、クリップボードの内容を盗み出す。
    • ファイルシステムのイベントを監視し、新規ファイルや変更されたファイルを収集する。
    • 接続されているカメラデバイスを制御し、侵入先のコンピュータの周囲を撮影する。
  • FlowCloudは、侵害されたマシン上での活動を隠すためにルートキットを展開します。
  • TA410が利用するLookBackバックドアは、HTTPまたは標準のTCP上で機能するカスタムネットワークプロトコルを使用して、C&Cサーバーと通信します。
  • TA410は、悪意のあるドキュメントビルダー(生成ツール)「Royal Road」を利用します。

TA410のチームはさまざまな方法で標的に侵入していますが、これは、攻撃者が特定の被害者に的を絞り、その標的に最も侵入しやすい方法を選択していることを示唆しています。

ESETの研究者が特定したFlowCloudバージョンの第1ステージでは、標的のマシンに特定のセキュリティソフトウェアがインストールされているかどうかをチェックしますが、この機能はESETが分析したローダーには実装されていません。しかし、ESETはカスタムクラスAntivirusCheckを発見しました。このカスタムクラスは、ESET製品を含む既知のセキュリティ製品の実行ファイル名のハードコードされたリストと実行中のプロセスを照合することができます。これらの製品の1つが検出された場合、FlowCloudは通常のロード処理を行い、auto_start_after_installの設定値をキャンセルします。

このバージョンのFlowCloudは現在も開発・テスト中であると考えられていますが、このバージョンのサイバースパイ機能には、現在の最前面のウィンドウに関する情報とともに、マウスの動き、キーボードの操作、クリップボードの内容を収集する機能が含まれます。攻撃者は収集した情報に基づいて、盗んだデータをコンテキスト化し、理解できるようになります。

FlowCloudは、接続しているカメラ付きデバイスを使った写真撮影や、コンピュータのマイクを使った録音により、被害者のコンピュータ周辺で起きていることに関する情報も収集できます。なお、この録音機能は、通常の会話の音量である65デシベルを超える音を検知すると作動します。

攻撃者の特定

TA410は3つの異なるチームで構成されており、非常によく似た戦術、技術、手順(TTP: Tactics, Techniques, Procedure)と異なるツールセットを使用し、3つの異なる場所にあるIPアドレスから発信している、とESETの研究者は考えています。これらのチーム(以下、FlowingFrog、LookingFrog、JollyFrogと呼びます)は、TTP、被害者像、ネットワークインフラストラクチャにおいて重複する部分があります。

  • FlowingFrogは、Royal Road RTF ドキュメント、第1ステージのインプラント「Tendyron」、および非常に複雑な第2ステージのバックドア「FlowCloud」を使用しています。
  • LookingFrogは、第1ステージのバックドア「X4」と、第2ステージとして「LookBack」を使用しています。
  • JollyFrogは、Korplug(別名PlugX)やQuasarRATなどの汎用マルウェアファミリのみを使用しています。このチームの活動の一部は、APT10によるものであるとFortinetは説明しています。しかし、ESETの研究者は、この活動はAPT10(別名A41APT)が最近行っている活動とは異なると考えています。

FlowingFrogとJollyFrogはネットワークインフラストラクチャを共有しています。正確には、Proofpointが説明しているように、ドメインffca.caibi379[.]comを共有しています。

FlowingFrogとLookingFrogは、Proofpointの同記事にもあるように、同じ標的に対して同時にフィッシングキャンペーンを実施しています。

ESETのテレメトリでは、これ以外にこれらのサブグループ間に重複は確認できません。これらのサブグループはある程度独立して活動しているものの、インテリジェンス要件、スピアフィッシングキャンペーンを実行するアクセスチーム、ネットワークインフラストラクチャを展開するチームなどを共有している可能性があると思われます。

被害者像

TA410の標的の多くは、外交や教育分野の著名な組織ですが、軍事分野、日本の製造会社、インドの鉱業会社、イスラエルの慈善団体などの被害も確認されています。ESETのテレメトリによると、被害者はアフリカ、アジア、中東、ヨーロッパに分布しています。興味深いことに、チーム間で標的の明確な区分け(業種別、地域別)は行われていません。

特筆すべきは、TA410が中国在住の外国人を標的にしている点です。ESETのテレメトリでは、この現象が少なくとも2回確認されています。たとえば、ある被害者はフランスの学者で、もう1人は中国に滞在中のある南アジアの国の外交使節団の一員です。

2018年以降、以下のような標的が確認されています(図 1も参照のこと)。

  • FlowingFrog:大学、南アジアの国の在中国外交使節団、鉱業会社
  • LookingFrog:外交使節団、慈善団体、政府機関、産業用製造業
  • JollyFrog:教育機関、教会、軍隊、外交使節団

初期のセキュリティ侵害と特徴的なTTP

バックドアの種類を除けば、3つのチームは同じような手口を使用しています。Proofpointによれば、スピアフィッシングによって、またLookingFrogとJollyFrogの場合にはMicrosoft ExchangeやSharePointなどのWebアプリケーションのセキュリティを侵害することによって標的に侵入しています。これは、攻撃者が特定の被害者に的を絞り、その標的に最も侵入しやすい方法を選択していることを示唆しています。

ESETでは、インターネットに接続するアプリケーションを侵害するというアプローチを最も多く確認しています。LookingFrogに関与している攻撃者は、2019年にMicrosoft SharePointサーバーを悪用して、任意のコードを実行していました。このときには、おそらくCVE-2019-0604が悪用されたと考えられます。その後、攻撃者は他の悪意のあるコンポーネントをインストールするために使用されるASPX Webシェルをドロップしました。これらは、Webシェル経由で直接ドロップされるか、既知のLOLBinであるcertutil.exeを使用してリモートサーバーからダウンロードされたものです。

2020年には、JollyFrogによって、Microsoft SQLサーバーとカスタムアプリケーションを実行するIISサーバーが悪用されていることが確認されました。

2021年8月には、日本の産業用機械の製造企業が所有するサーバーのIISワーカープロセスでLookBackがロードされるのを確認しました。これは、2021年第3三半期のESET脅威レポートで説明しているように、当該サーバーでExchange ProxyShellの脆弱性が悪用された後に発生しました。

このことから、LookingFrogのオペレーターは、広く使用されているサーバーアプリケーションで発見されたRCEの脆弱性を追跡しており、標的リストにある組織が実行しているパッチ未適用のサーバーを乗っ取る目的で、入手可能なエクスプロイトをすぐに利用していることが分かります。

これらの攻撃者は、以下のセクションで分析した機能豊富なバックドアに加え、脆弱性スキャナ、Equation Groupから流出したエクスプロイト、プロキシ/トンネリングユーティリティ(HTranLCXEarthWorm)、WMIExecなどのラテラルムーブメント用スクリプトといったさまざまなツールを使用しています。

攻撃ツール

TA410 – FlowingFrog

FlowingFrogは、ESETの研究者がTendyronダウンローダーと名付けた第1ステージと、開発者がモジュールのPDBパスから命名したFlowCloudという複雑な第2ステージを使用します。

Royal RoadとTendyronダウンローダー

Royal Roadは、複数のサイバースパイグループに利用されている悪意のあるドキュメントビルダー(作成ツール)です(nao_secの分析を参照)。このツールで生成されたファイルは、CVE-2017-11882などの数式エディターに存在するNデイ脆弱性を悪用したRTFドキュメントです。TA410のオペレーターは、Royal RoadのエンコードバイトA9 A4 6E FEを使用します(図 2を参照)。

2020年10月13日、VirusTotalに新しいRoyal RoadのRTFドキュメントがアップロードされていることに気づきました(図 3を参照)。

このドキュメントが開かれると、カスタムダウンローダー(PE実行ファイル)がiexplore.exeのプロセスに挿入されます。PEリソース103、104、105には、0xD3とXORされたペイロードのURLが含まれます。以下のファイルがダウンロードされ、ディスクに書き込まれます。

  • http://103.139.2[.]93:1702/tdr.dat
    が、%localappdata%\Tendyron\Tendyron.exeに書き込まれる(SHA-1:
    09C76522136B5E9BAB74381FEEE265F7E9B1D550)
  • http://103.139.2[.]93:1702/okt.dat
    が、%localappdata%\Tendyron\OnKeyToken_KEB.dllに書き込まれる(SHA-1:
    F359D3C074135BBCA9A4C98A6B6544690EDAE93D)
  • http://103.139.2[.]93:1702/md.dat
    が、%localappdata%\Tendyron\Tendyron.confに書き込まれる(このファイルは取得できず)

最後に、このプロセスは別途http:⁄⁄103.139.2[.]93:1702/t86.dat(リソース101)をダウンロードし、メモリにロードし、そのstartModuleエクスポートを呼び出します。残念ながら、このサンプルを取得することはできませんでした。

Tendyron.exeは、オンラインバンキングのセキュリティベンダーであるTendyron Corporationによって署名された正規の実行ファイルで、DLL検索順序ハイジャックに対して脆弱です。ダウンロードされたペイロードは、実行キーHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下のTendyron値によって常駐化が可能になっています。

Tendyron.exeが実行されると、悪意のあるOnKeyToken_KEB.dlllがロードされます。エクスポートされたOnKeyT_ContextInitは、ハードコードされたシェルコードを復号化するコードを含んでおり(図 4を参照)、WriteProcessMemoryを使用して、これをiexplore.exeに注入します。

iexplore.exeに挿入された次のステージは、Microsoft Foundation Class(MFC)フレームワークを使用して作成されたバックドアです。また、これにはRTTIのシンボルも含まれているため、以下のC++のクラス名も含まれます。

  • ClientSocket
  • Manager
  • DllManager
  • KernelManager

これらのクラス名は、10年以上にわたって(主に)サイバースパイ活動のために使用されてきたバックドア「Farfli/Gh0stRAT」で使用されているものと同じです。そのソースコードが流出し、現在GitHubで公開されています。したがって、TA410の開発者は、Farfliからコピーしたコードを再利用したと考えられます。

C&Cサーバーは、この検体では平文でハードコードされており、このケースでは114.118.83[.]141に設定されています。

VirusTotalでは、RTFファイルの実行中に103.139.2[.]93へのHTTPリクエストがもう1回発生したことが分かります(図 5を参照)。http://103.139.2[.]93:1702/SL3716/S8437AEB.DATへのリクエストの結果はVirusTotalによって記録されており、この暗号化されたファイルのSHA-1は140F81037A76B7B16A00E1D5E0E2CD9F6687F642です。このURIは、複雑なC++インプラントであるFlowCloudをダウンロードするために使用される典型的なものです。これについては、次のセクションで説明します。

また、同一の暗号化されたファイルがFlowCloudのドロッパーバージョン4.1.3によってhttp://114.55.109[.]199:56022/SL3716/S8437AEB.DATからダウンロードされました(SHA-1:014421BDB1EA105A6DF0C27FC114819FF3637704)。セキュリティ侵害チェーンの概要を図 6に示します。

FlowCloud

FlowCloudはC++で記述された複雑なインプラントです。3つの主要なコンポーネントで構成され、分析を妨害するための多様な難読化技術と暗号化技術を用いた多段階プロセスで展開されます。2020年以降、FlowCloudの異なるバージョンが複数確認されており、中でもProofpointが解説しているバージョン4.1.35.0.1が有名です。本セクションでは、FlowCloudのバージョン5.0.2と5.0.3を分析します。これまでに発見されたものとは異なり、ESETが入手したバージョン5.0.2の検体には、詳細なエラーメッセージとログが含まれています。

この展開プロセスは、Proofpointがバージョン5.0.1について説明したものと非常によく似ています。前述した3つの主要コンポーネントとは、ルートキット機能を持つドライバ、シンプルな常駐モジュール、そしてカスタムバックドアです。これらについては、次のセクションで詳しく説明します。

ローダー(ClientLdrExe)

第1ステージでは主に、他のステージで使用されるファイルやレジストリキーの作成が行われます。これらの実行ファイルと構成データの値は、暗号化された状態でローダーのリソースセクションにあります。表1に、これらのリソースとその使用方法の概要が記載されています。

リソースIDロール内部名
100FlowCloud RAT DLLfcClientDll
10132 ビットのルートキットドライバDriver
10264 ビットのルートキットドライバDriver
103DLLハイジャック脆弱性アプリN/A
104DLLハイジャックで悪意のあるライブラリによってロードされるシェルコードSETLANG_dlcore
105fcClientをロードするシェルコード(未使用)N/A
106最終ドロッパーステージfcClient
10732ビットの常駐化モジュールfcClientWD_x86
10864ビットの常駐化モジュールfcClientWD_x64
109モジュールストンピングに使用される正規のライブラリslam
110ハイジャックに使用されるDLLXXXModule_dlcore0
1000Protobufでシリアル化されたFlowCloudの構成N/A
1001ドロッパーの構成N/A
2000リソース2001の代替または拡張として使用されるN/A
2001PrintProcessorサービスのレジストリキーへのパス(ドライバによって使用される)N/A
10000インストール構成N/A

ESETが確認した事例では、ほとんどのリソースが暗号化された状態でディスクに書き込まれ、必要に応じてメモリ上で復号化されています。また、その後で別のキーで再暗号化されるケースもあります。この手法では、プロセスのメモリから平文の値をダンプしたり、終了ダンプを分析したりすることが難しくなります。使用するパスやレジストリキー、および書き込む前に復号化するかどうかは、インストール構成で定義されます。ESETが分析したサンプルはすべて、ファイルを%Program Files%\MSBuild\Microsoft\Expression\Blend\msole\ディレクトリに格納しており、これがデフォルト値であると考えられます。FlowCloudは、不審に思われないようにするために、正規のWindowsファイルと似たファイル名(例:rebar.dllと間違われるrebare.dll)または無害に見えるもの(例:AC146142)を使用しています。

図 7は、展開プロセスの概要とその要素を図式化したものです。各ステップについては、次のセクションで詳しく説明します。

まず、ローダーはWindows INI形式を使用する埋め込み型インストール構成を復号化し、解析します。この構成では、マルウェアのインストールパスと、各埋め込みリソースが書き込まれるファイル名またはレジストリキーが定義されています。同じ値が次のステージでハードコードされていることから、サンプルはビルダーを使用して生成されていると考えられます。ESETが分析したサンプルでは、この構成に、いくつかのセクションの値を説明するコメントが添えられています。図 8は、このコメント付きのインストール構成を英訳したものです。

この構成には、チェック対象のセキュリティソフトウェアを定義するセクションを含めることも可能ですが、今回分析したローダーには実装されていません。しかし、カスタムクラスAntivirusCheckがあり、既知のセキュリティ製品(360 Total Security、Avast, Avira、AVG、Bitdefender、ESET、Jiangmin Technology Antivirus、Kingsoft、McAfee、Micropoint、Norton、Rising Antivirus、Trend Micro)のXOR暗号化された実行ファイル名のハードコードされたリストに対して、実行中のプロセスを照合することができます。このクラスは、ローダーがauto_start_after_install構成キーによってfcClientモジュールを直接起動するように設定されている場合にのみ使用されます。

使用する構成キーによっては、ローダーがfcClientDll RATモジュールを直接ロードし、複雑な展開プロセスの大部分を回避するか、サービスまたはスケジュールされたタスクを作成することが可能です。前者の場合、起動時に自動的に開始するように設定されたタスクまたはサービスは、常駐化が可能になります。ESETが確認したサンプルでは、タスクやサービスは、DLL検索順序ハイジャックに対して脆弱な正規のアプリケーションを実行することによって、インストールプロセスの次のステップを実行するように設定されていました。このアプリケーションと、それに付随する関連性の高い悪意のあるDLLは、いずれもローダーのリソースに埋め込まれていました。

DLLサイドローディング(XXXModule_dlcore0)

ESETが分析した検体では、脆弱なアプリケーションは、悪意のあるsetlangloc.dllを含んだMicrosoft Office 2003のsetlang.exeか、悪意のあるvviewres.dllを含んだVisio Preview 2007のvpreview.exeのいずれかでした。悪意のあるDLLに含まれる文字列は、DLLサイドローディングの第3の標的となりうるEmurasoftのEmEditorのemedres.dllも指し示しています。このような脆弱性は旧バージョンのEmEditorにも存在していたため、現実味がありますが、実際に使用した検体は確認されていません。

観察したすべての検体において、悪意のあるライブラリは同一のものであり、DLLと同じ名前で保存されているが拡張子が.datであるファイルからシェルコードをロードし、実行する役割を担っています。次のセクションでは、このシェルコードを分析しますが、その前に、このライブラリで使用されている注目すべき解析回避手法を確認しておきましょう。

このライブラリのコードの目的は比較的単純であるにもかかわらず、分析を妨害する目的でデバッグ対策の技術や制御フローの難読化が多用されています。次のファイルをロードする関数では、この有用なコードに一連の同じ命令コードが繰り返し挿入されており、プログラムの流れを難解にしています。図 9に示すように、この短いスニペットには分析対策が施されていますが、最終的には無条件に16バイトのジャンプが実行されます。これだけで、デコンパイラを含む多くの自動分析は失敗します。

上記のスニペットは、2つのデバッグ対策関数の呼び出しで挟まれています(図 10を参照)。前のスクリーンショットでcrash_if_debuggerと命名したこの関数は、IsDebuggerPresentを呼び出し、よくフックされるいくつかのライブラリ関数の最初の命令としてブレークポイントがあるかどうかチェックします。それらのチェックでデバッガが検出された場合、この関数は、プログラムを無効なアドレスにジャンプさせ、クラッシュさせる値を返します。2つ目は、INT 0x2D命令を介して例外を発生させ、デバッガによって処理された場合は終了します。

fcClient(rescure.dat)

このモジュールは、初めて実行されたタイミングで常駐化を確立し、バックドア、ルートキット、常駐化モジュールをインストールします。次に、特定のレジストリキーとファイルをガードレールとして設定し、以降の実行時にセットアップをスキップさせます。

まず、ITaskService COMインターフェースを使用して、スケジュールされたタスク\Microsoft\Windows\CertificateServicesClient\NetTaskを作成し、常駐化を確立します。同じ名前のタスクがすでに存在する場合、そのタスクが削除されてから新しいタスクが作成されます。このタスクは、起動されるたびにSYSTEMとしてDLLハイジャックターゲットを実行します。

その後、ルートキットモジュールは復号化され、hidmouse.sysとして%System%\driversフォルダに書き込まれます。そして、そのモジュールを実行するためにhidmouseサービスが作成され、直ちに開始されます。その後、このファイルはディスクから削除され、同じフォルダにある正規のhidusb.sysドライバのコピーに置き換えられます。したがって、メモリにマッピングされたファイルではなく、ディスク上のファイルを確認すると、正規の無害なファイルが表示されることになります。

Windows 10マシンでは、システム時刻が一時的に変更され、サービスが2013年1月に作成されたように見せかけます。これと正規のドライバディレクトリを使用することで、ルートキットは他のドライバに紛れ込むことができます。

以下のファイルが%System%ディレクトリにコピーされます。

  • バックドア:rescure.dat
  • おとりDLL: sspisrvui.dat as sspisrvui.dll(2013年7月にタイムスタンプを偽装
  • 暗号化されたシェルコード:rebare.dat

rebare.datシェルコードは、自己復号化DLLで使用されているものとよく似ていますが、fcClientを直接ロードしています。

その後、FlowCloudは中断されたプロセスを起動し、そのプロセスに対してインジェクションを実行します。このプロセスは、現在のセッションのexplorer.exeまたはwinlogon.exeプロセスから取得したトークンを使用して、CreateProcessAsUserWを介して作成されます。

注入されたコードは、同じバックドア(rescure.dat)をプロセスのメモリにロードし、そのstartModuleエクスポートを呼び出してインストールを完了させます。一方、インジェクションプロセスは終了します。

この時点で、バックドアのインストールは完了します。あとは、バックドアを実行するだけです。これを実現するために、新しいプロセスは、おとりDLLをロードし、メモリ内のそのコンテンツを手動でfcClientDllモジュール(モジュールストンピングまたはDLLハロウイングと呼ばれるプロセス)に置き換え、そのメイン関数を呼び出します。

fcClientDll(responsor.dat)

この複雑なモジュールは、バックドアの主要コンポーネントです。ファイルシステムのフルアクセスからカメラ周辺機器の制御まで、幅広い機能を提供します。プラグインは確認されませんでしたが、バックドアには、使用することによって機能のさらなる拡張が可能であることを示唆するコードが含まれています。

機能面について深く掘り下げる前に、次のような特筆すべき特徴を挙げておきます。

  • C&Cサーバーとの通信に必要な設定情報やデータは、Protobufによりシリアル化、圧縮、暗号化されています。
  • ファイルの窃取は、暗号化され、Protobufでシリアル化された構造を通じて行われ、ハードコードされた偽のPOSTリクエストをデータの先頭に置くことによってHTTPになりすまします。Content-Lengthヘッダーは、送信されたデータの実際のサイズに設定されるため、唯一の可変要素です。このハードコードされたリクエストは、図 11で確認できます。
  • 複数の機能をCOMオブジェクトとインターフェースを使って実装しています。

このコンポーネントは、ディスク上のファイルまたはレジストリキーから読み取ろうとする、暗号化されProtobufシリアル化された構成を使用します。ESETが確認した構成は、次の3つのセクションから成っていました。

  1. server_config:このセクションには、C&Cサーバーに関する情報、および被害者とバックドアに関する識別情報が含まれています。
  2. policys [原文ママ]:このセクションでは、バックドアのコンポーネントの動作が定義されています。このセクションについては以下の段落で詳細に説明します。
  3. install_config:その名の通り、このセクションではインストールパラメータが定義されます。

このようなserver_configの例を図 12に示します。この構成は、初期のローダー内のリソース1000に対応します。これは、窃取サーバー(file_server)とC&Cサーバー(exchange_server)の両方のアドレスとポート、およびそれぞれとの通信に使用する暗号化キーを定義しています。また、それぞれのサーバーにフォールバックサーバーを定義することも可能です。
file_keyフィールドは、窃取対象ファイルを保存する際に使用する暗号化キーを定義します。その他の項目は、バックドアと被害に遭ったホストを識別するために使用されます。

  • product_name:使用中のバックドアの名前。PCArrowIはFlowCloudに対応していると考えられます。
  • product_version:バックドアのバージョン。
  • id_prefix:この値は、生成されたIDの前に追加されます。被害者やキャンペーンをグループ化するために使用されると考えられます。
  • id:この値は、被害者を一意に識別します。初期値は空で、初回実行時に以下のフォーマットで生成されます。<プレフィックス>_<現在のタイムスタンプ>_<マシンのホスト名>

FlowCloudの機能は一連のシングルトンクラスに分散されており、それぞれに特定のデータタイプやアクションタイプに関連する機能セットが実装されています。これらのクラスは、名前がmanager_handlerで終わるクラスがC&Cコマンドに応答してアクションを実行し、名前がmanagerで終わるクラスがタイマーやイベントリスナーに基づいて自動的にアクションを実行するという内部命名規則にほぼ従っています。

各managerは収集したデータを独自のSQLiteデータベースに保存しますが、オンデマンドで収集されたデータはC&Cサーバーに直接返されます。データはデータベースに挿入される前に、前述のfile_keyで暗号化されます。SQLiteデータベースの場所はdata_folderインストール構成キーによって定義されます。デフォルト値は%ProgramFiles%\MSBuild\Microsoft\Expression\Blend\msole\fcdataです。

クラスはfc_kernel_managerのインスタンスによってオーケストレーションされます。このオブジェクトは、他のコンポーネントの初期化と、C&C接続の処理を実行します。また、対応するコマンドを受信すると、ローカル構成の更新が可能になります。

図 13に示すように、自動化されたアクションのパラメータと頻度は、構成ポリシーによって指定および細かな調整が可能です。データ窃取も同様に自動化されます。なぜなら、ポリシーにはcache_sizeまたはcache_countパラメータを含めることができ、これによって(窃取に向けた準備がなされる前に)対応するクラスによってローカルに収集できるデータの量が決まります。

前述したように、このインプラントでは多くのクラスが使用されています。それぞれを個別に文書化するのではなく、ファイルシステムとやり取りする機能、プログラムとプロセスに関する情報を収集する機能、ユーザーアクティビティに関するリアルタイム情報を収集する機能という3つのカテゴリに分類して、利用可能な機能の概要を紹介していきます。

ファイルシステム

FlowCloudは、さまざまな方法でファイルシステムとのやり取りを提供します。そのほとんどが、ファイルのメタデータとコンテンツをSQLiteデータベースに保存できます。

そのうちの1つは、マッピングされたすべてのファイルシステムをチェックし、smfile_search_policyのフィルタによって除外されないファイルを収集するコンポーネントです。また、ファイルの作成、変更、名前変更のイベントを盗聴する非表示ウィンドウを作成します。対応するファイルは、当該のポリシーによって除外されない限り、収集されます。

別のコンポーネントは、マウントポイント、名前、ドライブタイプ、およびディスク使用量データなど、マッピングされたボリュームに関する情報を収集します。この同じクラスは、ファイルおよびディレクトリのメタデータを収集します。

これらの自動化された手段を補完するものとして、マウントされたドライブのコンテンツにフルアクセスし、制御する機能がバックドアに実装されています。これには、C&Cと侵害されたマシン間の双方向ファイル転送が含まれます。

プログラムとプロセス

FlowCloudは、文書化されていないIShellAppManager COMインターフェースを使用することで、インストールされているソフトウェアのリストを自動的に取得できます。この機能は、C&Cコマンドを使用して呼び出すこともできます。図 14は、無関係のコードが削除された後、そのインターフェースがどのように使用されているかを示しています。

その他のコマンドを使用すれば、利用可能なサービスや現在実行中のプロセスの詳細な一覧を取得できます。

もう1つの興味深い機能は、プロセスのアクティビティをほぼリアルタイムで監視することです。そのために、FlowCloudは毎秒WMIクエリを実行して、すべてのプロセスの作成と終了のイベントを取得します。取得した情報は、Win32_Processテーブルのデータと関連付けられ、より詳細に表示できるようになります。

ユーザーアクティビティ

FlowCloudは、ESETが「ユーザーアクティビティ」のカテゴリに分類にすることにした、さまざまなデータを収集することができます。

クリップボードの変化を監視し、その中に含まれるデータを保存する機能を持ちます。図 15で示したように、カスタムクラスで非表示ウィンドウを作成し、2つのクリップボードフォーマットを登録することでこれを実現しています。このウィンドウは、AddClipboardFormatListener(Windows Vista以降)またはSetClipboardViewer(Windows XP以前)を使って、クリップボードコンテンツの変更を盗聴します。

収集されたクリップボードのコンテンツは、現在の最前面ウィンドウに関する情報とともに保存されます。攻撃者はこの情報に基づいて、データをコンテキスト化し、理解できるようになります。

FlowCloudは、定期的にスクリーンショットを撮り、フォアグラウンドプロセスや最後のユーザー入力からの時間に関する情報とともに保存することができます。使用されるディスク容量を制限するために、直近で保存されたキャプチャと異なるピクセルが5%未満の画像は保存されません。この機能は、サーバーからの要求に応じて呼び出すこともできます。

バックドアのもう1つのコンポーネントは、マウスやキーボードの操作をデータベースに記録します。これは直接収集するのではなく、ドライバのキーロガーコンポーネント(次のセクションで説明)と連動して、\\.\pipe\namedpipe_keymousespy_english名前付きパイプからデータを読み込むことで動作します。

興味深いことに、FlowCloudは被害者のコンピュータ周辺で起きていることについても情報を収集できます。その1つ目の方法は、接続しているカメラ周辺機器を使用して写真を撮影するC&Cコマンドを使用する方法です。この機能は、OpenCVのCCameraDSクラスを使って実装されます。

2つ目の方法は、音声を録音することで、コンピュータの周囲の情報を収集するというものです。音声アシスタントのように、FlowCloudはコンピュータのマイクを使って周囲の音を聞くことができますが、録音はコマンドワードによってトリガーされるのではなく、audio_policyのdecibel_limitフィールドで定義されたしきい値を超える音によってトリガーされるようです。デフォルト値は65デシベルです。これは、通常の会話の音量の上限です(さまざまな出典で50~70デシベルと一般に定義されています)。

自己暗号化DLL(setlangloc.dat)

ロードされたシェルコードは、自己復号化DLLです。これはまず、バイト指向のXOR-ADDスキームを使用して、埋め込みDLLを復号化します(図 16を参照)。今回分析したシェルコードでは、キー0x7Bを使用しています。埋め込みDLLを復号化したシェルコードは、LoadLibraryの機能を手動で実行し、ロードされたモジュールのstartModuleエクスポートを呼び出します。

この新たにロードされたモジュールは、前述したハイジャックDLLと同じデバッグ対策と分析対策の手法を用いています。それに加えて、次のような独自のテクニックも使用しています。

  • 悪意のあるライブラリによって過去に改ざんしたコードを、lstrlenWへの無駄な呼び出しで上書きすることによって、その痕跡を隠蔽します。
  • Base64エンコードされた文字列は、(GetProcAddressを介して)関数のインポートに使用され、必要な場合にのみデコードされます。
  • プロセスの実行ファイルが、想定していたDLLハイジャックの対象(例:setlang.exe)でない場合には終了します。

このモジュールは、同じ実行ファイルを使って新しいプロセスを作成し、そのプロセスに対してプロセスインジェクションを実行し、書き込まれたコード領域へ既存のスレッドをリダイレクトします。新規プロセス内のこのコードは、そのstartModuleエクスポートを呼び出す前に、fcClientモジュールを復号化してロードするスレッドを起動させます。この関数は、インストールの最終段階を実行し、バックドア機能を搭載したDLLをロードします。

ドライバ(hidmouse.sys)

FlowCloudのドライバは、キーロガーとルートキットという2つの役割を担っています。これは主に、特定のI/O制御コードに対するネイティブドライバのハンドラ関数を乗っ取り、独自のものに置き換えることで達成されます。

  • キーボードドライバ(kbdclassまたはKeyboardClass0)のための読み取り(IRP_MJ_READ)
  • マウスドライバ(mouclassまたはPointerClass0)のための読み取り(IRP_MJ_READ)
  • ネットワークドライバ(tcpipまたはnsiproxy)のためのデバイス制御
    (IRP_MJ_DEVICE_CONTROL)

また、ドライバはRATが使用するカーネルレベルの機能も提供します。これらは、IO制御コードや特定のレジストリキーへの書き込みによって呼び出すことができます。

このモジュールは、サムプリントが02ED6A578C575C8D9C72398E790354B095BB07BCである証明書で署名されています。この証明書は、Hangzhou Leishite Laser Technology Co.に対して2012年にWosignによって発行され、2014年に失効しており、盗まれた可能性が高いと思われます。

キーロギング

キーボードとマウスのイベントのIRP_MJ_READハンドラでは、ドライバはIOイベントを単にlookasideリストに記録してから、正規ハンドラに渡しています。これにより、ユーザーに気付かれるような干渉をドライバはしなくなります。これらのイベントは、バックドアのkeymouse_managerで使用される形式に解析され、\\.\pipe\namedpipe_keymousespy_englishに書き込まれます。

ルートキット

ルートキットは、前述のドライバを乗っ取った後、デバイスドライバを表示するための内部構造から、関連するDLL名を消去します。

ルートキットは、実行中プロセスを一覧表示するユーティリティ(タスクマネージャーなど)によってプロセスが表示されるの阻止できます。これは、文書化されていないKPROCESSカーネル構造のActiveProcessLinksリストからプロセスのエントリを削除することによって達成されます(図 17を参照)。この構造はパブリックAPIの一部ではなく、リリースごとに変更される可能性があるため、ルートキットには、オペレーティングシステムのビルド番号をこの構造内の正しいオフセットに一致させるためのコードが含まれています。このコードは、Windows XPからWindows 10 20H1までのすべてのバージョンに対応しています。この機能は、IOCTL_HIDE_PROCESS_BY_PROCESSID(0x222028)制御コードを介して、任意のプロセス上で呼び出すことができます。また、ドライバの起動時に、レジストリキーHKLM\HARDWARE\{76BA14B7-AF0C-4dc9-9E9D-2A6970F231D9}に含まれるPIDを持つプロセスを隠すためにも使用されます。このプロセスは、関連する実行ファイル名を同じカーネル構造内のsvchost.exeまたはdllhost.exeのいずれかに変更することによって、さらなる偽装が施されます。

ルートキットはネットワークドライバを乗っ取ることで、ローカルユーティリティから単一プロセスのネットワークトラフィックを隠蔽することもできます。トラフィックを隠すプロセスは、IOCTL_SET_TRAFFICHIDE_PROCESSID(0x222048)制御コードによって設定されます。

ルートキットの機能の一部は、fcClientDllモジュールによって、実行中プロセスを隠すために使用されます。

また、さまざまな内部構造でプロセス名を操作するための制御コードも、ドライバによって公開されます。

常駐化モジュール(fcClientWD)

このモジュールは、他のコンポーネントに比べて単純です。前述のNetTaskは大抵の場合、システム起動時に実行することで常駐化します。このモジュールは、マルウェアの実行が中断される可能性のある非常に特殊なエッジケース、すなわち、ハイバネーションとFastbootが有効になっているシステムでユーザーがログアウトした場合に、常駐化することでそのメカニズムを補完しています。いずれかが無効になっているシステムでは、このモジュールは何も実行しません。

FlowCloud v4.1.3

この旧バージョンのFlowCloudについては、すでにProofpointのブログ記事で解説されており、前のセクションで説明した新バージョンとの類似点が見られます。したがって、ここでは顕著な相違点と分析によって明らかになった新情報のみを取り上げます。

このバージョンでは、ペイロードを実行する前に複数の分析対策と検出対策のチェックを実行し、これらのテストのいずれかがプロセスが解析されていることを検出した場合は終了します。実行中のプロセスに、既知のサイバーセキュリティベンダーの実行ファイルがあるかどうかをチェックします。これらの名前の多くはバージョン5にも含まれていますが、このリストはv.5が使用しているリストの厳密なサブセットではありません。このことは、FlowCloudのバージョン4と5が並行して維持されているという主張を裏付けるものです。

また、暗号化されたリソースの1つとして、サンドボックスおよび分析検出ツールであるPafish(別名Paranoid Fish)のDLLバージョンを埋め込んでいます。このライブラリはメモリにロードされ、これによって実装される分析対策/サンドボックス対策のチェックがすべて実行されます。

興味深いことに、インストールされるドライバはバージョン5.0.2用のものと同じです。バージョン5.0.3で使用されているものは、機能は同じですが、若干の違いがあります。

TA410 – LookingFrog

LookingFrogは、X4とLookBackの2つのマルウェアファミリを主に使用しています。ESETは、攻撃を受けた同じユーザーのマシンでこの2つのマルウェアを確認しています。

X4

X4は、LookBackを展開する前の第1ステージで使用される独自のバックドアです。これは、通常PortableDeviceApi.dllまたはWptsExtensions.dllという名前のVMProtectで処理されたローダーによってロードされます。残念ながら、ESETはこの常駐化する方法を特定できていません。

このローダーは、svchost.exeプロセスのメモリにオーケストレーターを挿入します。このオーケストレーターは、次にネットワークコンポーネントをメモリに挿入し、C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\Log\rsa.txtあるファイルを経由してネットワークコンポーネントと通信します。図 18は、X4コンポーネントの概要を示しています。

このネットワークコンポーネントはシェルコードであり、AESアルゴリズムによって暗号化され、Windowsレジストリに保存されます。表2は、X4が使用する3つのレジストリキーを示しています。

レジストリキー説明
HKLM\SOFTWARE\Microsoft\DRM\X4KeyAESキー。
HKLM\SOFTWARE\Microsoft\DRM\PSKeyシェルコードが挿入されるプロセスの名前(spoolsv.exe)。
HKLM\SOFTWARE\Microsoft\DRM\X4Data暗号化されたシェルコード。

このシェルコードを復号化したところ、Metasploitをベースにしているようであり、ハードコードされたIPアドレスを使用してHTTPを介して通信します。偽のHostヘッダーonedrive.live.comを使用している点に注意する必要があります。

このオーケストレーターはメモリにのみ存在しており、1秒ごとに平文のrsa.txtファイルを読み取り、実行する新しいコマンドがあるかどうかを確認します。このコマンドは、ネットワークシェルコードを介して、C&Cサーバーから受信されます。このオーケストレーターでは、図19に示すように、コマンド名から計算される数値のIDによって、これらのコマンドが識別されます。

ここのオーケストレーターは7つのコマンドを処理します。これらのコマンドの詳細は、表3を参照してください。これらのコマンドの出力は
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\Log\output.logに書き込まれます。

ID名前説明
0x3ECFF9B9D92osload暗号化した新しいシェルコードをHKLM\SOFTWARE\Microsoft\DRM\X4Dataに書き込みます。また、X4KeyやPSKeyを変更する場合もあります。
0x3F5FAFC0EDDpskillPIDを使用してプロセスを強制終了します。
0x3F5FB1E6015pslistCreateToolhelp32SnapshotとProcess32Nextを使用して実行中のプロセスを一覧表示します。
0x3B6C27610D1injectディスクにある暗号化されたフォームからシェルコードを復号化して、メモリに挿入します。
0xDA83E71exec指定されたコマンドラインを実行します。
0xE9478DCliveオーケストレーターを実行しているプロセスのPIDを取得します。
0x6D6E70D40caclsSetEntriesInAclA、SetNamedSecurityInfoA、BuildExplicitAccessWithNameを使用して、指定したオブジェクトのアクセスコントロールを変更します。

X4には、リモートからマシンをコントロールする基本的な機能がありますが、スパイ活動のための高度な機能は実装していません。

 

LookBack

LookBackバックドアについては、Proofpointが過去に分析して解説していますので、ここでは簡単な概要と独自ネットワークプロトコルについてESETが分析した結果を説明します。

バックドア

ESETが確認したすべてのLookBackローダーの検体は、libcurl.dllの正規版であり、SodomNormal通信モジュールをロードするためにcurl_share_init(ordinal #52)エクスポートが変更されています。これは、Proofpointの研究者による調査結果を裏付けるものです。このモジュールはライブラリのリソースセクションに埋め込まれ、RC4に似たアルゴリズムで暗号化されます。図20に示す暗号化および復号化の関数では、常に同じ鍵が使用されます。

SodomNormalコンポーネントは、sodom.iniファイルから設定情報を読み取ります。この設定ファイルは上記の関数で暗号化されており、マジックバイト0xAF1324BCで始まります。このファイルが利用できないあるいは無効な場合、ハードコードされたデフォルトの設定が使用されます。

そして、攻撃を受けたユーザーのCPUID、ユーザー名、IPアドレスから一意のユーザーIDが生成されます。このIDは、コンピュータ名と設定データと一緒にサーバーに送信されます。次に、通信モジュールがC&CサーバーからSodomMainという名前のメインバックドアモジュールをダウンロードします。残念ながら、ESETはこのモジュールを入手できていません。

通信プロトコル

LookBackは、HTTPまたは「通常のプロトコル」で通信できます。どちらの場合でも、転送されるデータは同じです。

LookBackの通常のプロトコルは、そのままのTCPソケットと表4で説明されている独自のメッセージフォーマットを使用します。このメッセージは、8つのヘッダーフィールドと、ヘッダーフィールドに続く可変長の本文から構成されます。メッセージ本文は、ローダー(図20)のSodomNormalリソースで上記で説明した関数を使用して暗号化されます。暗号化されたデータは、静的にリンクされたzlibのcompress関数を介して、Deflateアルゴリズムで圧縮されます。

フィールドオフセット
(バイト)
備考
マジックバイト0x00定数0x48AB2EC2。このマジックバイトの値から開始していないメッセージは破棄されます。
<メッセージにより異なる>0x04
圧縮時の本文サイズ0x08
非圧縮時の本文サイズ0x0C
チェックサム0x10メッセージ本文のCRC32。
メッセージの種類0x14メッセージの内容および実行される関連アクションを示す整数値。
ESETでは、50以上のメッセージタイプのコードをこれまで特定しています。クライアントとサーバーで使用する値に重複はほとんど見られていません。表5は、ESETが分析したメッセージタイプを表示しています。
<メッセージにより異なる>0x18
<メッセージにより異なる>0x1C
メッセージ本文0x20メッセージ本文は空の場合もあります。この場合、チェックサムフィールドと長さフィールドは0x00に設定されます。
メッセージのタイプクライアントまたはサーバー 説明
2クライアントC&Cサーバーに登録します。本文には、攻撃を受けたユーザーのホストの設定と情報が含まれます。
3サーバーメッセージタイプ2を確認します。
8クライアントメインバックドアコンポーネント(SodomMain)のダウンロードを要求します。
9サーバーメッセージタイプ8に返信します。メッセージの本文には、SodomMainのファイルが含まれます。
36と38クライアントメッセージの本文でファイルをサーバーに転送します。
35と37サーバーメッセージ36または38に応答します。
41クライアントサーバーからファイルを要求します。
42サーバーメッセージ本文でファイルをクライアントに転送します(メッセージ41に応答)。

HTTPプロトコルは、前項で説明したメッセージフォーマットを使用しますが、正規のHTTPトラフィックに見せかけるためにいくつかの追加の操作を行います。HTTPプロトコルでは、クライアント要求用とサーバー応答用にそれぞれ1つずつハードコードされた対のテンプレートが使用されます。コンテンツの長さ、アドレス、ポート番号など、HTTPに必要な項目には正しい値が入力され、それ以外の項目には不要なデータが使用されます。

クライアント要求では、メッセージは独自の16進数アルゴリズムでエンコードされます。ここでは、従来の0-9a-fの代わりに、エンコードしたアルファベットa-pが使用されます。これにより難読化が図られており、メッセージにバイナリデータが含まれたり、明らかに16進でエンコードされたりしないようにしており、application/x-www-form-urlencodedメッセージが不審に見えないようにしています。この要求の本文は、このエンコードされた値の前にハードコードされた文字列
id=1&op=report&status=が追加されて構成されています。クライアント要求とサーバー応答のテンプレートをそれぞれ図21と図22に示します。テンプレートのフィールドは山かっこ(< >)で囲まれています。

サーバー側では、前のセクションで説明したデータをバイナリデータとして直接本文に送信し、GIF画像と偽ったヘッダーを追加します。

TA410 – JollyFrog

この第3のチームは、既知のマルウェアファミリであるQuasarRATとKorplug(別名PlugX)の既成のマルウェアを使用しています。JollyFrogは、フォーティネットが説明しているAPT10の特徴とほぼ一致しています。

Korplug

Korplugは、PlugXとも呼ばれており、長年にわたりさまざまなサイバースパイ組織によって使用されてきたバックドアです。広く知られているバックドアであるにもかかわらず、今でも悪用されており、最近では2021年4月にTA410が使用していることが特定されています。

TA410は、KorplugをRARSFXアーカイブとして配信しています。通常このアーカイブは、m.exeという名前になっており、以下の3つのファイルが含まれています。

  • qrt.dll:独自のローダー。
  • qrtfix.exe:F-Secureの正規の署名が含まれるアプリケーションで、DLLの検索順序ハイジャックの脆弱性を攻撃します。
  • qrt.dll.usb:Korplugのシェルコード。

このローダーは、VirtualAllocを使用してメモリを割り当て、そのメモリにqrt.dll.usbのコンテンツをコピーします。次に、Korplugのペイロードを解凍してロードするシェルコードに直接移動します。

QuasarRAT

QuasarRATは、GitHubで一般に公開されている高機能のバックドアです。多くのサイバースパイやサイバー犯罪組織がこのバックドアを利用しています。

TA410は、.NETで記述された独自のダウンローダーとローダーを使用しているため、他の多くの攻撃者が使用しているQuasarRATインスタンスの中から、TA410が使用するQuasarRATインスタンスを簡単に特定できます。

このダウンローダーは、sll.exeと名付けられており、図23に示す証明書でデジタル署名されています。この証明書は盗用されている可能性が高く、北京和赢讯时科技有限公司(英語訳:Beijing Heyingxunshi Technology Co., Ltd.)に属しており、サムプリント
850821D88A4475F0310F10FBA806353A4113D252が使用されています。この証明書は現在失効していますが、この検体が署名された2020年8月10日時点では有効でした。

このダウンローダーは、ハードコードされたC&Cサーバーhttp://ffca.caibi379[.]comの/rwjh/new/から、ローダーと暗号化されたQuasarRATペイロードを単にダウンロードします。このサーバーは、以前はFlowCloud(FlowingFrog)と連携していました。このローダーはPresentationCache.exeと命名されており、商用の.NETコード保護ツールであるDNGuardで保護されています。また、ダウンローダーと同じ証明書で署名されています。これは、最終的なQuasarRATペイロードを解読してロードし、C&Cサーバーとしてcahe.microsofts[.]orgを使用します。

結論

TA410は、世界各国の政府や大学など知名度の高い組織を標的としているサイバースパイ組織です。ESETは、Botconf 2022の開催期間中に、このグループに関する最新情報を、現在進行中の調査結果も含めて公開します。

最初に標的にアクセスするために、Microsoft Exchangeなどのインターネットに接続している脆弱なアプリケーションを攻撃するか、Royal Roadビルダーで作成したRTF文書などの悪意のあるファイルを添付したスピアフィッシングメールを送信します。JollyFrogチームは汎用的なツールを使用していますが、FlowingFrogとLookingFrogチームはFlowCloudやLookBackといった複雑なインプラントを使用しています。これらのインプラントに関するYARAとSnortルールは、ESETのGitHubリポジトリで公開されています。

IOC(セキュリティ侵害の痕跡)

ファイル

SHA-1ファイル名検出説明
C96558312FBF5847351B0B6F724D7B3A31CCAF03N/AWin32/Agent.UWRFlowCloud v5.0.3の最初のローダー。
1403241C415A8D686B1148FA4229A2EB833D8D08setlangloc.dllWin32/Agent.UNLFlowCloud DLLをハイジャックする悪意のあるライブラリ。
38D0E92AFF991CFC9C68D7BAAD6CB85916139AF5hidmouse.sysWin32/Agent.UKRTA410 32ビットのルートキット/キーロガードライバ。
AF978ED8AD37CE1437A6B42D96BF518D5C4CFD19hidmouse.sysWin64/Agent.UKRTA410 64ビットのルートキット/キーロガードライバ。
B70F3A3A9B5B8506EE95791469CA496E01AD7DAFwinver32.dllWin32/Agent.ULHFlowCloud v4.1.3 hcClientLoaderZero_x86バックドア。
014421BDB1EA105A6DF0C27FC114819FF3637704hhh.exeWin32/Agent.ABYKFlowCloud v4.1.3の最初のローダー。
EA298866E5A61FEEA4D062987F23B10A78C8A4CAN/AWin32/Agent.ULHFlowCloud v4.1.3バックドア。
021B9E2E8AA30B29569254C0378A9F43E4F32EECwinver64.dllWin64/Agent.KMFlowCloud v4.1.3 hcClientLoaderZero_x64バックドア。
2A2F08FAD6B0A86DC94885224687D954E739CC21N/AWin32/ParanoidFish.APafishサンドボックス検出ツール。
3658B7CCA13C8C8AD03E9B6AEFE4B9CBE48E3C81hidmouse.sysWin64/Agent.UKRTA410ルートキット/キーロガードライバ。
517488F6BD0E7FC9EDE82F37226A75212B277E21hidmouse.sysWin64/Agent.UKRTA410ルートキット/キーロガードライバ。
C05B4AD7A3322917E17710842FB88A090198D51FN/AWin32/Agent.TWILookBackのトロイの木馬化したlibcurlローダー。
DB2DF1BDF8145CB8ABA3A2026A3CC3EF4F1762BEphx.dllWin32/Agent.TWILookBackのトロイの木馬化したlibcurlローダー。
EDE2AB811311FC011B1E89C5A0B7A60C123B7398hidmouse.sysWin64/Agent.UKRTA410ルートキット/キーロガードライバ。
7AA35BA7030AFCD271436DE8173D7B2F317A1BFClibcurl.dllWin32/Agent.TWILookBackのトロイの木馬化したlibcurlローダー。
A5C02ABE698300F3DE0B7CC7F0856652753831DAlibcurl.dllWin32/Agent.TWILookBackのトロイの木馬化したlibcurlローダー。
613C4AFAE8F5F80F22DCD1827E3230FCA361ADA5libcurl.dllWin32/Agent.UKDLookBackのトロイの木馬化したlibcurlローダー。
859CD6DFDADAB3D6427C6C1C29581CB2094D648Fmeterpreter.exeWin32/Rozena.CPMetasploit Meterpreterバックドア。
DBEA7F0C0D2BF8BC365A2D1572CA1538FE8FB9A3responsor.datWin32/Agent.ULLFlowCloud fcClientDLLの最終ステージのバックドア。
ADD5B4FD9AEA6A38B5A8941286BC9AA4FE23BD20絆邧坋蔡趕口昴.doc Win32/Exploit.Agent.TY悪意のあるRoyal Roadドキュメント
7BA42061568FF6D9CA5FE5360DCE74C25EA48ADAN/AWin32/Agent.ACKQパッキングされたTendyronダウンローダー。
D81215890703C48B8EA07A1F50FEC1A6CA9DF88BN/AWin32/TrojanDownloader.Agent.FLIアンパックされたTendyronダウンローダー。
F359D3C074135BBCA9A4C98A6B6544690EDAE93DOnKeyToken_KEB.dllWin32/Injector.ELGATendyronの悪意のあるDLL。
621B31D5778EC2FB72D38FB61CED110A6844D094N/AWin64/Rozena.AOX4ネットワークシェルコード
BC11DC8D86A457A07CFE46B5F2EF6598B83C8A1Fm.exeWin32/Injector.EMVAKorplugドロッパー。
C369E1466F66744AA0E658588E7CF2C051EE842Fqrt.dllWin32/Injector.EMVAKorplugローダー。
B868764C46BADC152667E9128375BA4F8D936559qrt.dll.usbN/AKorplugの暗号化されたペイロード。
BDECA89B4F39E6702CE6CBBC9E6D69F6BBAB01C8N/AN/AKorplugの復号化されたペイロード。
5379FBB0E02694C524463FDF7F267A7361ECDD68sll.exeMSIL/TrojanDownloader.Agent.GPSQuasarRATダウンローダー。
6CC6170977327541F8185288BB9B1B81F56D3FD0PresentationCache.exeMSIL/Agent.TZGQuasarRATローダー。
D95185A4A3F8512D92F69D2ED7B8743638C54BE8N/AMSIL/Spy.Agent.AESQuasarRATバックドア。
BE7F0E41CD514561AED43B07AA9F5F0842BF876CHTra.exeWin32/HackTool.Hucline.ABHUCパケットトランスミッター(HTran)。
7F663F50E9D6376715AEB3AB66DEDE038258EF6CHTran13.exeWin32/HackTool.Hucline.SHUCパケットトランスミッター(HTran)。
BEDA1224B3BB9F98F95FF7757D2687F4D9F4B53Aevent.exeWin32/Agent.UJNMingWでコンパイルされたシンプルなcmd.exeベースのバックドア。
2B61E7C63A0A33AAC4CF7FE0CEB462CF6DACC080htran.exeWin32/HackTool.Hucline.ABHUCパケットトランスミッター(HTran)。
EF3C796652141B8A68DCCF488159E96903479C29htran_f-secury.exeWin32/HackTool.Hucline.ABHUCパケットトランスミッター(HTran)。
6B547C244A3086B5B6EA2B3A0D9594BBE54AE06Binbt.zipPython/HackTool.Agent.JZIPのように見せかけたEXE。Pythonのネットワークスキャナ(PyInstallerでコンパイルされたもの)。
4CDCE3AF614C2A5E60E71F1205812AB129C0955Bmsd017.exePython/Exploit.MS17-010.B脆弱性MS17-010(EternalBlue)を悪用するPythonスキャナ(PyInstallerでコンパイルされたもの)。

証明書


シリアルナンバー 0F8B600FF1882E
サムプリント02ED6A578C575C8D9C72398E790354B095BB07BC
Subject CNHangzhou Leishite Laser Technology Co., Ltd.
Subject OHangzhou Leishite Laser Technology Co., Ltd.
Subject LHangzhou
Subject SZhejiang
Subject CCN
有効期限の開始2012-03-29 09:07:04 UTC
有効期限の終了2014-04-02 06:24:19 UTC

シリアルナンバー 4ED8730F4E1B8558CD1CB0107B5F776B
サムプリント850821D88A4475F0310F10FBA806353A4113D252
Subject CN北京和赢讯时科技有限公司 (英語訳: Beijing Heyingxunshi Technology Co., Ltd.)
Subject O北京和赢讯时科技有限公司 (英語訳: Beijing Heyingxunshi Technology Co., Ltd.)
Subject OU研发部(研究開発部門)
Subject S北京市(Beijing)
Subject CCN
有効期限の開始2019-11-13 00:00:00 UTC
有効期限の終了2020-11-12 23:59:59 UTC

ネットワーク


ドメインIPドメインが最初に確認された年月詳細
43,254,216[.]1042020-06配信サーバー
45,124,115[.]1032020-08配信サーバー
161.82.181[.]42020-12配信サーバー
43,254,219[.]1532020-07X4のC&Cサーバー
154,223,141[.]362020-06HTranのC&Cサーバー
103.139.2[.]932020-10TendyronのC&Cサーバー
cahe.microsofts[.]comQuasarRATのC&Cサーバー
ffca.caibi379[.]comQuasarRATダウンローダーのC&Cサーバー
smtp.nsfwgo[.]comKorplugのC&Cサーバー
45,124,115[.]1032020-06LookBackのC&Cサーバー
185.225.19[.]172021-01LookBackのC&Cサーバー
94,158,245[.]2492020-03LookBackのC&Cサーバー
5,252,179[.]2272021-03LookBackのC&Cサーバー
222,186,151[.]1412019-11FlowCloudのC&Cサーバー
47.111.22[.]652020-09FlowCloudのC&Cサーバー
114.55.109[.]1992020-05FlowCloudのC&Cサーバー
dlaxpcmghd[.]com185.225.17[.]392020-09LookBackのC&Cサーバー
wwww.dlmum[.]comN/AFlowCloudのC&Cサーバー

MITRE ATT&CKの技術

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

手法ID名前説明
リソース開発T1587.001能力の開発マルウェアTA410は、LookBackとFlowCloudを開発しています。
T1588.003機能の取得:コード署名証明書TA410は、盗み出したコードサイニング証明書を使用します。
T1588.005機能の取得:エクスプロイトTA410は、ProxyLogonとProxyShellのエクスプロイトを使用します。
初期アクセスT1190インターネットに接続するアプリケーションの攻撃TA410は、標的にアクセスするために、Webサーバーの脆弱性を攻撃します。
T1566.001フィッシング:スピアフィッシングの添付ファイルTA410は、悪意のあるRTFおよびDOCX添付ファイルを使用して、ユーザーのセキュリティを侵害します。
実行T1106ネイティブAPIFlowCloudは、コマンドの実行やプロセスの起動にWindows APIを多用します。
T1129共有モジュールTA410のバックドアは、DLLをロードし、そのペイロードを実行できます。
T1203クライアントを実行するための攻撃TA410は、Royal RoadのRTF文書を使用してユーザーのセキュリティを侵害します。
T1559.001プロセス間通信:コンポーネントオブジェクトモデル(COM)FlowCloudは、タスクのスケジュールやWMIクエリを実行するためにCOMインターフェースを使用します。
T1047Windows Management InstrumentationTA410は、ラテラルムーブメントと情報収集のためにWMIを使用します。
常駐化T1053.005タスク/ジョブのスケジュール:タスクのスケジュールFlowCloudは、タスクをスケジュールして標的の環境に常駐します。
T1505.003サーバーソフトウェアコンポーネント:WebシェルTA410は、脆弱なWebサーバーにWebシェルを仕込みます。
T1543.003システムプロセスを作成または修正します。WindowsサービスFlowCloudは、常駐化のためのサービスを作成するように設定できます。
防衛の回避T1027ファイルまたは情報の難読化FlowCloudのファイルは暗号化されて配信および保管されます。
T1036.004なりすまし:タスクまたはサービスのなりすましFlowCloudのドライバコンポーネントは、マウスドライバのサービスのように見せかけています。
T1036.005なりすまし:正規のモジュールの名前や場所を模倣する正規のユーティリティのような名前が付けられたファイルが、%ProgramFiles%\MSBuild\Microsoft\Expression\Blend\msole\サブディレクトリに書き込まれます。
T1014ルートキットFlowCloudは、ルートキットを使用して、システムユーティリティからネットワークトラフィックとプロセスを隠ぺいします。
T1055.001プロセスインジェクション:ダイナミックリンクライブラリのインジェクションFlowCloudは、通常のDLLインジェクションと反射型DLLインジェクションの両方を使用します。また、LoadLibraryへのコールをバイパスして、いくつかのDLLを手動でロードします。
T1055プロセスインジェクションTA410のバックドアは、プロセスを挿入して、無害なプロセスのように偽装します。
T1055.003プロセスインジェクション:スレッド実行ハイジャックFlowCloudのDLLの1つは、ロードプロセスで命令を置き換えて、メモリに書き込まれたコードを実行します。
T1055.012プロセスインジェクション:プロセスホローイングFlowCloudは、メインのバックドアの存在を隠ぺいするすめにモジュールストンピング(悪意のあるコードを実行中のシステムに隠ぺいする処理)を使用します。
T1140ファイルまたは情報の難読化解除/復号化いくつかのTA410バックドアは、暗号化され難読化されたチャネルからC&Cと通信します。
T1574.002ハイジャックの実行フロー:DLLサイドローディングFlowCloudは、DLLサイドローディングを使用して、第2ステージのドロッパーを起動します。
T1497仮想化/サンドボックスの回避FlowCloudの一部のバージョンは、仮想化、サンドボックス、およびデバッガを検出するためにPafishユーティリティを使用します。
T1134.002アクセストークンの操作:トークンによるプロセスの作成FlowCloudは、正規のプロセスから取得したトークンを使用してプロセスを作成できます。
T1070.004ホストにおけるセキュリティ侵害の痕跡の除去:ファイルの削除FlowCloudは、起動後にそのルートキットの実行ファイルを削除します。
T1070.006ホストにおけるセキュリティ侵害の痕跡の除去:タイムストンプFlowCloudで使用されている一部のファイルやサービスが作成された時期は2013年まで遡ります。
検出T1010実行されているアプリケーションの検出マウスイベントを記録するときに、FlowCloudはフォアグラウンドで実行されているアプリケーションの情報を収集します。
T1057プロセスの検出いくつかのTA410バックドアは、実行中のプロセスを一覧表示できます。
T1518ソフトウェアの検出FlowCloudは、IShellAppManager COMオブジェクトを使用して、インストールされているソフトウェアを一覧表示します。
T1083ファイルとディレクトリの検出FlowCloudは、接続されているファイルシステムを検索し、ディレクトリ一覧を取得できます。
T1120周辺機器の検出FlowCloudは、接続されているカメラデバイスを一覧表示できます。
T1016システムネットワーク構成の検出FlowCloudは、ローカルで設定されたプロキシを検出して使用できます。
T1012クエリレジストリFlowCloudコンポーネントは、レジストリキーを使用し、相互にシグナルを送受信します。
T1115クリップボードのデータFlowCloudは、リスナーを登録し、クリップボードのデータが変更されたときにそのデータを窃取します。
収集T1056入力情報の取得FlowCloudは、マウスクリックを記録します。
T1056.001入力情報の取得:キーロギングFlowCloudは、キーボード入力を記録します。
T1113画面キャプチャFlowCloudは、一定時間ごとにスクリーンショットを取得します。
T1125ビデオキャプチャFlowCloudは、接続されたカメラデバイスを利用してOpenCVでビデオを撮影します。
T1123オーディオキャプチャFlowCloudは、オーディオキャプチャ機能を実装しています。
T1119自動収集FlowCloudは、タイマーやイベントに基づいて自動的にデータを収集します。
T1074.001データの保存:ローカルデータの保存FlowCloudは、収集したデータを外部に流出する前にローカルのSQLiteデータベースに保存します。
T1005ローカルシステムからのデータFlowCloudは、ローカルファイルシステムからファイルを外部に流出させることができます。
T1025リムーバブルメディアからのデータFlowCloudは、リムーバブルドライブからファイルを流出させることができます。
T1560.002収集したデータのアーカイブ:ライブラリ経由のアーカイブFlowCloudとLookBackは、静的にリンクされたzlibライブラリを使用してデータを圧縮します。
T1560.003収集したデータのアーカイブ:独自の方法によるアーカイブFlowCloudは、収集したデータの一部について、重複あるいは類似する画面キャプチャを削除して圧縮します。
C&C(コマンド&コントロール)T1071.001アプリケーションレイヤープロトコル:WebプロトコルLookBackとFlowCloudはHTTPでデータを送受信できます。
T1095アプリケーションレイヤープロトコル以外の手法:LookBackはTCPソケットをそのまま使用して通信できます。
T1132.001データのエンコーディング:標準エンコーディングFlowCloudはProtobufを使用してC&Cのコマンドと設定をエンコードします。
T1132.002データのエンコーディング:非標準のエンコーディングLookBackは、バイナリデータを独自の16進数のエンコード方式でエンコードします。
T1573.001暗号化されたチャンネル:対称暗号方式FlowCloudは、XOR、TEA、RC4、および独自のAESアルゴリズムを使用してトラフィックとファイルを暗号化できます。
持ち出しT1030データ転送サイズの制限FlowCloudは、ローカルキャッシュを使用してデータを一度保管して、設定で指定されたサイズに達するとその内容を外部に流出させます。
影響T1529システムのシャットダウン/再起動FlowCloudは、システムを強制的にクラッシュまたはシャットダウンできます。