SOC Prime Bias: 重大

16 Jun 2026 05:47 UTC

SHEET#CREEPを解析: マルウェアが新しいコンフィグ難読化で再登場

Author Photo
SOC Prime Team linkedin icon フォローする
SHEET#CREEPを解析: マルウェアが新しいコンフィグ難読化で再登場
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

SHEETCREEPとして知られる活発な諜報作戦は、Google Sheets APIをコマンド・アンド・コントロールのために使用するC#リモートアクセス型トロイの木馬に依存しています。攻撃者は、外交をテーマにしたISOフィッシングルアーを経由してマルウェアを配信し、その後RATは持続性を確立し、インプロセスのPowerShellランスペースを介してコマンドを実行します。最近のサンプルでは、オペレーターが設定データに対するXORベースの難読化を導入することにより、マルウェアを強化したことが示されています。

調査

Securonixの脅威調査チームは、RATバイナリから埋め込まれたGoogle Cloudサービスアカウントの資格情報を抽出することでこのキャンペーンを発見しました。ライブのコマンド・アンド・コントロールスプレッドシートに認証した後、研究者は91のアクティブな犠牲者タブを特定し、その中にはサンドボックスや研究環境、またパキスタンに所在する高確度の犠牲者が含まれていました。彼らの分析では、マルウェアの設定保護が更新された難読化手法を通じて進化したことも示されました。

緩和策

組織は、特にLNKショートカットファイルを含むISOファイルを開かないよう、未承認の添付ファイルを開くことを避けるべきです。防御側は、 %LOCALAPPDATA%MicrosoftVault ディレクトリ内の不審な実行ファイルを監視し、ミスリードや予期しないエントリについてスケジュールされたタスクを確認するべきです。SysmonやAMSIなどのツールを通じた強力なエンドポイントの可視性は、マルウェアに関連したインプロセスのPowerShellアクティビティを検出するのにも役立ちます。

対応

非ブラウザプロセスからのGoogle APIサービスへの異常なHTTPSトラフィックが観測された場合、影響を受けたシステムは直ちに隔離されるべきです。セキュリティチームは、 WindowsVaultSyncServiceのような未承認の項目のためにスケジュールされたタスクを点検するべきです。また、 %LOCALAPPDATA%MicrosoftVault についてのフォレンジックレビューを実施し、侵入に関連した隠しバイナリやシステム属性のバイナリを特定するべきです。

攻撃フロー

シミュレーション実行

前提条件: テレメトリとベースラインの事前フライトチェックに合格している必要があります。

理由: このセクションでは、敵の技術の正確な実行を詳細に説明し、検出ルールをトリガーするよう設計されています。コマンドおよび説明は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診につながります。

  • 攻撃ナラティブとコマンド: 敵は、SHEETCREEP技術を使って持続性を確立し、リモートアクセス型トロイの木馬(RAT)を実行しようとしています。まず、マルウェアLNKファイルを通じて初期実行をシミュレーションし、 cmd.exe を呼び出し特定の不審な実行可能ファイルを開始します。次に、 WindowsVaultSyncService という名前のスケジュールされたタスクを作成して持続性を確立し、システム更新に溶け込むようにします。最後に、ペイロード vaultsvc.exeC:UsersAppDataLocalMicrosoftVault ディレクトリに配置し、最終的な検出ロジックをトリガーするために実行します。

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

    # SHEETCREEPシミュレーションスクリプト
    # 注意: スケジュールされたタスクを作成するには管理者権限でこのスクリプトを実行する必要があります。
    
    $targetDir = "$env:LOCALAPPDATAMicrosoftVault"
    $payloadName = "vaultsvc.exe"
    $payloadPath = "$targetDir$payloadName"
    $taskName = "WindowsVaultSyncService"
    $taskDesc = "Windows Edge Core Update Task Machine Discord Update"
    
    Write-Host "[+] SHEETCREEPシミュレーションを開始..." -ForegroundColor Cyan
    
    # 1. 選択1のシミュレーション: CMDコマンドパターン
    Write-Host "[+] 選択1のシミュレーション: CMDコマンドパターン..." -ForegroundColor Yellow
    Start-Process cmd.exe -ArgumentList '/c start "" "Document_11052026-03578240540350-93.exe"' -WindowStyle Hidden
    
    # 2. 選択2のシミュレーション: スケジュールされたタスクの作成
    Write-Host "[+] 選択2のシミュレーション: スケジュールされたタスクの作成..." -ForegroundColor Yellow
    $action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c echo Persistence Established"
    $trigger = New-ScheduledTaskTrigger -AtLogOn
    Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskName -Description $taskDesc -Force
    
    # 3. 選択3のシミュレーション: ペイロードの配置と実行
    Write-Host "[+] 選択3のシミュレーション: ペイロードの配置と実行..." -ForegroundColor Yellow
    if (!(Test-Path $targetDir)) {
        New-Item -Path $targetDir -ItemType Directory -Force | Out-Null
    }
    
    # RATを模倣するダミーバイナリファイルを作成
    New-Item -Path $payloadPath -ItemType File -Force | Out-Null
    
    # ダミーペイロードを実行
    Start-Process -FilePath $payloadPath -WindowStyle Hidden -ErrorAction SilentlyContinue
    
    Write-Host "[+] シミュレーションコマンドが送信されました。SIEMでアラートを確認してください。" -ForegroundColor Green
  • クリーンアップコマンド:

    # SHEETCREEPシミュレーションのクリーンアップ
    $targetDir = "$env:LOCALAPPDATAMicrosoftVault"
    $payloadPath = "$targetDirvaultsvc.exe"
    $taskName = "WindowsVaultSyncService"
    
    Write-Host "[+] シミュレーションのアーティファクトをクリーンアップ中..." -ForegroundColor Cyan
    
    # スケジュールされたタスクを削除
    Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue
    
    # ペイロードとディレクトリを削除
    if (Test-Path $payloadPath) { Remove-Item $payloadPath -Force }
    if (Test-Path $targetDir) { Remove-Item $targetDir -Recurse -Force }
    
    Write-Host "[+] クリーンアップ完了。" -ForegroundColor Green