SOC Prime Bias: 重要

08 Jun 2026 19:48 UTC

PulseRATがUAE-インドパートナーシップ偽装で配布

Author Photo
SOC Prime Team linkedin icon フォローする
PulseRATがUAE-インドパートナーシップ偽装で配布
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

UAEとインドの戦略的パートナーシップファイルを装った悪意のあるISOアーカイブが、PulseRATとして追跡されている.NETベースのリモートアクセス型トロイの木馬を配信するために使用されています。このマルウェアはISOに埋め込まれたドロッパーを通じてインストールされ、Googleスプレッドシートをコマンドアンドコントロールチャネルとして使用します。アクセスを維持するために、これをスケジュールタスクとして追加します。 WindowsVaultSyncService%LOCALAPPDATA%にボールトディレクトリを構築し、同一ホスト上での複数回の実行を防ぐためにミューテックスを使用します。このキャンペーンは、アラブ首長国連邦とインドの間の注目度の高い防衛関係に関連する誘惑に依存しています。

調査

分析担当者はISOファイルを解凍し、実行ファイルを起動する責任があるLNKショートカットを特定し、ペイロードと持続性のロジックを明らかにするためにドロッパーをリバースエンジニアリングしました。PulseRATのさらなる分析により、Google Sheetsをコマンドアンドコントロールに使用し、ミューテックスを生成し、プロセスメモリ内でPowerShellを実行し、持続性のためのスケジュールタスクを作成する方法が明らかになりました。ファイル名、ファイルシステムパス、ミューテックスパターン、スプレッドシート識別子はすべて検出エンジニアリングをサポートするために文書化されました。

緩和策

組織は、リムーバブルまたはマウントされたメディアから起動された不明なバイナリの実行をブロックし、スケジュールタスクの作成を監視すべきです。 WindowsVaultSyncService。アプリケーション制御は、 %LOCALAPPDATA%MicrosoftVaultから実行されるバイナリに適用されるべきであり、ディフェンダーは未承認アカウントへのアクセスや予期しないスプレッドシート活動についてGoogle Sheets APIトラフィックを検査すべきです。悪意のあるスケジュールタスクは削除し、 vaultsvc.exe ファイルは影響を受けたシステムから削除されるべきです。

対応

PulseRATの活動が検出された場合、即座に影響を受けたエンドポイントを隔離し、揮発性メモリとディスクイメージを収集し、妥協の証拠として文書化されたインジケーターを検索します。悪意のあるスケジュールタスクを無効化して削除し、ボールトディレクトリを削除し、妥協された可能性のあるGoogle関連のサービスアカウントをリセットします。また、可能なラテラルムーブメントを特定するためにフルフォレンジックレビューを実施し、UAEとインドの関連する利害関係者に通知すべきです。

"graph TB %% クラス定義 classDef action fill:#99ccff,stroke:#333,stroke-width:2px classDef tool fill:#dddddd,stroke:#333,stroke-width:2px classDef process fill:#ffeb99,stroke:#333,stroke-width:2px %% ノード step_user_open["<b>アクション</b> – <b>T1204.002 ユーザー実行: 悪意のあるファイル</b><br/><b>説明</b>: 被害者が悪意のあるショートカット (LNK) ファイルを開きます。<br/><b>サブu2011テクニック</b> T1547.009 ショートカットマカフィケーション<br/><b>説明</b>: ショートカットは、持続性を達成するために配置されます。"] class step_user_open action step_dropper["<b>アクション</b> – <b>T1027.009 隠匿ファイル: 埋め込みペイロード</b><br/><b>説明</b>: ドロッパーは非表示のペイロードを抽出します。<br/><b>テクニック</b> T1105 外部ツール転送<br/><b>説明</b>: ペイロードを被害者システムに転送します。"] class step_dropper action step_persistence["<b>アクション</b> – <b>T1053 スケジュールタスク/ジョブ</b><br/><b>説明</b>: 持続性のためにスケジュールタスクを作成します。<br/><b>テクニック</b> T1070.004 ファイル削除<br/><b>説明</b>: インストール後にドロッパー自身を削除します。"] class step_persistence action step_execution["<b>アクション</b> – <b>T1055.013 プロセスインジェクション: プロセスホローイング</b><br/><b>説明</b>: PowerShell をプロセス内で実行し、悪意のあるコードを動かします。<br/><b>テクニック</b> T1602 被害者のアイデンティティ情報収集<br/><b>説明</b>: システム情報 (systeminfo) を収集します。"] class step_execution action step_uid["<b>アクション</b> – <b>T1589 被害者のアイデンティティ情報収集</b><br/><b>説明</b>: ユニークな被害者識別子 (UID) を生成します。"] class step_uid action step_c2["<b>アクション</b> – <b>T1102.001 ウェブサービス: デッドドロップリゾルバ</b><br/><b>説明</b>: Google Sheets をコマンド&コントロールチャネルとして使用します。<br/><b>テクニック</b> T1102.002 ウェブサービス: ウェブサービスを通じた情報の流出<br/><b>説明</b>: リモートGoogle Sheets APIと通信します。"] class step_c2 action step_rat["<b>アクション</b> – <b>T1219 リモートアクセスツール</b><br/><b>説明</b>: 悪質なホストへのリモートインタラクティブアクセスを提供します。"] class step_rat action step_cleanup["<b>アクション</b> – <b>T1070.009 Windowsイベントログのクリア</b><br/><b>説明</b>: アーティファクトを削除し、持続性メカニズムをクリーンアップします。"] class step_cleanup action %% 接続 step_user_open –>|次へ| step_dropper step_dropper –>|生成| step_persistence step_persistence –>|可能にする| step_execution step_execution –>|生成| step_uid step_uid –>|使用| step_c2 step_c2 –>|可能にする| step_rat step_rat –>|開始する| step_cleanup "

攻撃フロー

シミュレーション実行

前提条件: 電信とベースラインプリフライトチェックが合格していること。

  • 攻撃手段とコマンド:
    攻撃者がユーザーアカウントを侵害し、ホストに悪質な「PulseRAT」DLLを配置しました。PulseRATは、正当なプロセス(例: explorer.exe)に読み込まれ、PowerShell ランスペース (インプロセス実行)を作成して、 powershell.exeを目視されないようにします。それから、攻撃者が制御するGoogleシートからbase64でエンコードされたPowerShellペイロードを取得し、デコードしてランスペース内で実行します。これにより、シグマルールを満たすマーカー文字列「System.Management.Automation.Runspaces」(ランスペース作成から)および単語「base64」(デコードペイロードから)を含む単一のEventID 4104エントリが生成されます。

  • 回帰テストスクリプト:

    # PulseRATスタイルのインプロセスPowerShell実行(シミュレーション)
    # --------------------------------------------
    # 1. PowerShellランスペースを作成する(インプロセス)
    $runspace = [runspacefactory]::CreateRunspace()
    $runspace.Open()
    
    # 2. base64でエンコードされたペイロードを構築する(攻撃者制御データをシミュレーション)
    $payload = 'Write-Host "Compromised by PulseRAT"'   # シンプルなペイロード
    $bytes   = [System.Text.Encoding]::Unicode.GetBytes($payload)
    $b64     = [Convert]::ToBase64String($bytes)
    
    # 3. ペイロードをデコードして実行するスクリプトブロックを構築する
    $script = @"
    `$b64 = '$b64'
    `$decoded = [System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$b64))
    Invoke-Expression `$decoded
    "@
    
    # 4. ランスペース内にPowerShellパイプラインを作成して実行する
    $powershell = [powershell]::Create()
    $powershell.Runspace = $runspace
    $null = $powershell.AddScript($script).Invoke()
    $powershell.Dispose()
    $runspace.Close()
  • クリーンアップコマンド:

    # ランスペースを削除してリソースを解放する(残っている場合)
    if ($runspace -and $runspace.RunspaceStateInfo.State -ne 'Closed') {
        $runspace.Close()
    }
    Remove-Variable -Name runspace -ErrorAction SilentlyContinue
    Remove-Variable -Name powershell -ErrorAction SilentlyContinue