SOC Prime Bias:

12 Dec 2025 14:56 UTC

サイバーヴォルク再登場:VolkLockerの新機能と欠陥

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon フォローする
サイバーヴォルク再登場:VolkLockerの新機能と欠陥
shield icon

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トラフィックの法医学レビューを実施し、露出したボットトークンのその後の誤用を継続的に監視します。

攻撃フロー

シミュレーション実行

前提条件:Telemetry & Baseline Pre-flight Checkを成功させる必要があります。

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

  • 攻撃ナラティブとコマンド:

    1. 目的: 通常のユーザーワークステーションでシステム権限を取得し、セキュリティツールを回避します。
    2. ステップ1 – UACバイパス: 攻撃者が起動する ms-settings.exe コマンドラインでプロセスを NtRaiseHardError 、これは特定のミスコンフィグレーションで自動的に承認される可能性があるUAC昇格プロンプトをトリガーできる既知の非公開APIです。
    3. ステップ2 – 防御を妨害: 昇格後すぐに、同じコマンドラインが taskkill.exe を呼び出して、特権プロセスを監視している可能性のある procmon.exeprocesshacker.exe などの、既知の分析ツールを終了させます。
    4. 結果としてのテレメトリ: 単一のプロセス作成イベントで Image = ms-settings.exeCommandLine の両方が含まれており、Sigmaルールの taskkill.exeNtRaiseHardError を満たしています。 を満たしています。.
    # 組み合わせた悪意のあるコマンド - 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は終了されました(テストのために期待される結果です)。"
        }
    }