SHEET#CREEPを解析: マルウェアが新しいコンフィグ難読化で再登場
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 についてのフォレンジックレビューを実施し、侵入に関連した隠しバイナリやシステム属性のバイナリを特定するべきです。
攻撃フロー
検出
遅延実行のための可能な選択使用法(cmdline経由)
表示
VHDMP 光学ディスクイメージがマウントされました(VHDMP経由)
表示
不審なスケジュールされたタスク(監査経由)
表示
可能なGoogleコマンド・アンド・コントロールユーティリティ活動(プロキシ経由)
表示
検出すべきIOC(HashSha256):SHEET#CREEPの分析:SHEETCREEPは異なる設定難読化を導入して再浮上
表示
検出すべきIOC(SourceIP):SHEET#CREEPの分析:SHEETCREEPは異なる設定難読化を導入して再浮上
表示
検出すべきIOC(DestinationIP):SHEET#CREEPの分析:SHEETCREEPは異なる設定難読化を導入して再浮上
表示
Sheet#CREEP C2コミュニケーションのGoogle Sheets API経由での検出 [ファイアウォール]
表示
SHEET#CREEPマルウェアの相互排他使用の検出 [Windows Sysmon]
表示
SHEETCREEPの持続性と実行パターンの検出 [Windowsプロセス作成]
表示
シミュレーション実行
前提条件: テレメトリとベースラインの事前フライトチェックに合格している必要があります。
理由: このセクションでは、敵の技術の正確な実行を詳細に説明し、検出ルールをトリガーするよう設計されています。コマンドおよび説明は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診につながります。
-
攻撃ナラティブとコマンド: 敵は、SHEETCREEP技術を使って持続性を確立し、リモートアクセス型トロイの木馬(RAT)を実行しようとしています。まず、マルウェアLNKファイルを通じて初期実行をシミュレーションし、
cmd.exeを呼び出し特定の不審な実行可能ファイルを開始します。次に、WindowsVaultSyncServiceという名前のスケジュールされたタスクを作成して持続性を確立し、システム更新に溶け込むようにします。最後に、ペイロードvaultsvc.exeをC: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