サイバーヴォルク再登場:VolkLockerの新機能と欠陥
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
この記事は、親ロシア系ハクティビスト集団CyberVolkの再活動と、その新しいランサムウェアファミリーであるVolkLockerについて取り上げています。このGolangベースのランサムウェアは、WindowsとLinuxシステムの両方を標的とし、コマンドおよびコントロールにTelegramを利用しています。また、ハードコードされたAES-256-GCMマスターキーを使用しており、このキーは平文で%TEMP%ディレクトリに書き込まれ、不本意な復号のショートカットを効果的に作成します。VolkLockerはさらにレジストリ設定を改ざんし、セキュリティコントロールを無効にし、内蔵のタイマーが切れるとシステムに対して破壊的な行動を試みます。
調査
研究者たちはVolkLockerのサンプルを調査し、コードの難読化なしで配布されていることを観察し、代わりにUPXを使ったパッキングを推奨しました。ランサムウェアは環境チェックを行い、利用可能なドライブを列挙し、静的なマスターキーを使用してデータを暗号化し、そのキーを隠しバックアップファイルに保存します。永続性は、実行可能ファイルを複数のパスに複製し、レジストリを変更して保たれます。Telegramボットのトークンとビットコインアドレスは、成功するための必須の設定要素です。
緩和策
防御者は文書化されたレジストリ変更、平文のキーのバックアップファイルの作成、および起動場所に出現する同じ実行可能ファイルの複数のコピーを監視する必要があります。Telegram関連のドメインへの外向きトラフィックのブロックや、UPXでパックされたバイナリのフラグ付けはリスクを抑えるのに役立ちます。定期的なオフラインまたは不変のバックアップの維持やボリュームシャドウコピーの自動削除の防止も推奨されます。
応答
検出後、すぐに妥協したエンドポイントを隔離し、%TEMP%から平文のキーのバックアップファイルを取得し、ファイルの復号化に既知のマスターキーを活用します。VolkLockerの実行可能ファイルのすべてのインスタンスを根絶し、変更されたレジストリの値を復元し、無効にされたセキュリティソリューションを再起動します。TelegramベースのC2トラフィックの法医学レビューを実施し、露出したボットトークンのその後の誤用を継続的に監視します。
graph TB %% クラス定義 classDef technique fill:#99ccff classDef malware fill:#ffcc99 classDef tool fill:#cccccc classDef file fill:#e6e6e6 classDef operator fill:#ff9900 %% 権限昇格 tech_pe_bypass_uac[“<b>手法</b> – <b>T1548.002 ユーザーアカウント制御の回避</b><br/><b>説明</b>: HKCU\\Software\\Classes\\ms-settings\\shell\\open\\command をハイジャックして管理者権限を取得”] class tech_pe_bypass_uac technique %% 永続化 tech_persistence_rc[“<b>手法</b> – <b>T1037.004 起動またはログオン初期化スクリプト: RC スクリプト</b><br/><b>説明</b>: ペイロードをスタートアップ場所にコピー”] class tech_persistence_rc technique tech_persistence_startup[“<b>手法</b> – <b>T1037.005 スタートアップ項目</b><br/><b>説明</b>: cvolk.exe をユーザーのスタートアップフォルダーに配置”] class tech_persistence_startup technique tech_persistence_active[“<b>手法</b> – <b>T1547.014 Active Setup</b><br/><b>説明</b>: 永続化のため Active Setup エントリを登録”] class tech_persistence_active technique file_cvolk[“<b>ファイル</b> – cvolk.exe<br/>パス: %APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup”] class file_cvolk file file_svchost[“<b>ファイル</b> – svchost.exe<br/>パス: %PUBLIC%\\Documents”] class file_svchost file file_wlanext[“<b>ファイル</b> – wlanext.exe<br/>パス: %SYSTEMDRIVE%\\ProgramData\\Microsoft\\Network”] class file_wlanext file file_windowsupdate[“<b>ファイル</b> – WindowsUpdate.exe<br/>パス: %TEMP%”] class file_windowsupdate file %% 防御回避 tech_account_removal[“<b>手法</b> – <b>T1531 アカウントアクセスの削除</b><br/><b>説明</b>: ユーザーアカウントおよびツールを無効化”] class tech_account_removal technique tech_exclusive_control[“<b>手法</b> – <b>T1668 排他的制御</b><br/><b>説明</b>: レジストリを変更し、タスクマネージャー、CMD、Defender をブロック”] class tech_exclusive_control technique tech_impair_defenses[“<b>手法</b> – <b>T1562.010 セキュリティツールの無効化または変更</b><br/><b>説明</b>: リアルタイム監視を無効化”] class tech_impair_defenses technique %% 仮想化回避 tech_vm_check[“<b>手法</b> – <b>T1497.002 ユーザー活動ベースのチェック</b><br/><b>説明</b>: MAC プレフィックスおよび VM レジストリキーを確認”] class tech_vm_check technique %% ファイル暗号化 tech_custom_archive[“<b>手法</b> – <b>T1560.003 カスタム方式によるアーカイブ</b><br/><b>説明</b>: ハードコードされたマスターキーを使用して AES-256-GCM でファイルを暗号化”] class tech_custom_archive technique tech_upx_packing[“<b>手法</b> – <b>T1027.015 難読化/圧縮ファイル: UPX</b><br/><b>説明</b>: UPX によりバイナリをパック”] class tech_upx_packing technique %% キーバックアップ file_key_backup[“<b>ファイル</b> – system_backup.key<br/>場所: %TEMP%<br/><b>問題</b>: マスターキーを平文で保存”] class file_key_backup file %% システム回復の阻害 tech_vss_delete[“<b>手法</b> – <b>T1490 システム回復の阻害</b><br/><b>説明</b>: vssadmin を使用してすべてのボリュームシャドウコピーを削除”] class tech_vss_delete technique %% データ破壊 tech_disk_wipe[“<b>手法</b> – <b>T1561.001 ディスク内容の消去: ファイル</b><br/><b>説明</b>: ドキュメント、デスクトップ、ダウンロード、画像を削除”] class tech_disk_wipe technique tech_bsod[“<b>手法</b> – <b>T1499.004 エンドポイントのサービス拒否: アプリケーション悪用</b><br/><b>説明</b>: NtRaiseHardError を使用して BSOD を発生”] class tech_bsod technique %% コマンド&コントロール tech_c2_telegram[“<b>手法</b> – <b>T1102.002 Web サービス: 双方向通信</b><br/><b>説明</b>: 動的解決を伴う Telegram ボットを C2 に使用”] class tech_c2_telegram technique %% 指標の削除 tech_file_deletion[“<b>手法</b> – <b>T1070.004 ファイル削除</b><br/><b>説明</b>: 一時ファイルを削除し、隠し/システム属性を設定”] class tech_file_deletion technique %% フロー tech_pe_bypass_uac –>|有効化| tech_persistence_rc tech_persistence_rc –>|コピー| file_cvolk tech_persistence_rc –>|コピー| file_svchost tech_persistence_rc –>|コピー| file_wlanext tech_persistence_rc –>|コピー| file_windowsupdate tech_persistence_rc –>|作成| tech_persistence_startup tech_persistence_rc –>|作成| tech_persistence_active tech_persistence_startup –>|配置| file_cvolk tech_persistence_active –>|登録| file_cvolk tech_persistence_rc –>|誘発| tech_account_removal tech_account_removal –>|変更| tech_exclusive_control tech_exclusive_control –>|無効化| tech_impair_defenses tech_impair_defenses –>|準備| tech_vm_check tech_vm_check –>|回避| tech_custom_archive tech_custom_archive –>|使用| tech_upx_packing tech_upx_packing –>|生成| file_cvolk tech_custom_archive –>|書き込み| file_key_backup tech_custom_archive –>|トリガー| tech_vss_delete tech_vss_delete –>|回復を防止| tech_disk_wipe tech_disk_wipe –>|後続| tech_bsod tech_bsod –>|通知| tech_c2_telegram tech_c2_telegram –>|報告| tech_file_deletion tech_file_deletion –>|削除| file_key_backup %% Styling class tech_pe_bypass_uac,tech_persistence_rc,tech_persistence_startup,tech_persistence_active,tech_account_removal,tech_exclusive_control,tech_impair_defenses,tech_vm_check,tech_custom_archive,tech_upx_packing,tech_vss_delete,tech_disk_wipe,tech_bsod,tech_c2_telegram,tech_file_deletion technique class file_cvolk,file_svchost,file_wlanext,file_windowsupdate,file_key_backup file
攻撃フロー
検出
CyberVolkランサムウェアのアーティファクトの検出 [Windows ファイルイベント]
表示
CyberVolkランサムウェアによる特権エスカレーションとプロセス終了 [Windows プロセス作成]
表示
IOC(HashSha1)で検出:CyberVolkが再登場 | 不完全なVolkLockerが新機能を伴う困難をもたらす
表示
可能なレジストリ修正によるシステムツールのロックダウン(コマンドライン経由)
表示
Windows Defenderの保護を無効化する(registry_event経由)
表示
シミュレーション実行
前提条件:Telemetry & Baseline Pre-flight Checkを成功させる必要があります。
理由:このセクションでは、検出ルールをトリガーするために設計された攻撃者手法 (TTP) の正確な実行を詳細に説明します。コマンドとナラティブは、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。抽象的または関係のない例は誤診につながります。
-
攻撃ナラティブとコマンド:
- 目的: 通常のユーザーワークステーションでシステム権限を取得し、セキュリティツールを回避します。
- ステップ1 – UACバイパス: 攻撃者が起動する ms-settings.exe コマンドラインでプロセスを
NtRaiseHardError、これは特定のミスコンフィグレーションで自動的に承認される可能性があるUAC昇格プロンプトをトリガーできる既知の非公開APIです。 - ステップ2 – 防御を妨害: 昇格後すぐに、同じコマンドラインが taskkill.exe を呼び出して、特権プロセスを監視している可能性のある
procmon.exe,processhacker.exeなどの、既知の分析ツールを終了させます。 - 結果としてのテレメトリ: 単一のプロセス作成イベントで Image = ms-settings.exe と CommandLine の両方が含まれており、Sigmaルールの
taskkill.exeとNtRaiseHardErrorを満たしています。を満たしています。.
# 組み合わせた悪意のあるコマンド - ms-settings.exeの引数として見せかけるように作成 $maliciousCmd = '"C:WindowsSystem32ms-settings.exe" "taskkill.exe /F /IM procmon.exe" "NtRaiseHardError"' Start-Process -FilePath "$env:SystemRootsystem32ms-settings.exe" -ArgumentList $maliciousCmd -
リグレッションテストスクリプト: 以下のPowerShellスクリプトは、攻撃を正確に再現し、自動化されたリグレッションテストのために再利用できます。
<# .SYNOPSIS CyberVolkのms-settings UACバイパス+分析ツール終了手法をシミュレートします。 .DESCRIPTION ms-settings.exeを、taskkill.exeおよびNtRaiseHardErrorを含む編集された引数リストで起動します。 Sigma検出ルールを発火するために必要な特定のプロセス作成テレメトリを生成します。 .NOTES 通常のユーザーアカウントで実行してください。ターゲット環境にプロセス作成ログ記録が有効であることを確認してください。 #> # パラメータ(必要に応じて調整) $msSettings = "$env:SystemRootsystem32ms-settings.exe" $analysisTools = @("procmon.exe","processhacker.exe","ida64.exe") $killCmd = "taskkill.exe /F /IM " + ($analysisTools -join " /IM ") $hardError = "NtRaiseHardError" # 悪意のある引数文字列を構築 $argList = @($killCmd, $hardError) -join " " Write-Host "ms-settings.exeを悪意のある引数で起動中..." Start-Process -FilePath $msSettings -ArgumentList $argList Write-Host "実行したコマンド:" Write-Host "`"$msSettings`" $argList" -
クリーンアップコマンド: 検証後に残っている ms-settings.exe プロセスを終了し、通常のシステム状態を復元します。
# 実行中のms-settingsプロセスがある場合は終了 Get-Process -Name "ms-settings" -ErrorAction SilentlyContinue | Stop-Process -Force # オプション:分析ツールが意図せず終了されていないか確認 foreach ($tool in @("procmon","processhacker","ida64")) { if (Get-Process -Name $tool -ErrorAction SilentlyContinue) { Write-Host "$toolはまだ実行中です。" } else { Write-Host "$toolは終了されました(テストのために期待される結果です)。" } }