SOC Prime Bias:

14 Jan 2026 16:49 UTC

Inside SafePay: Analyzing the New Centralized Ransomware Group

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon フォローする
Inside SafePay: Analyzing the New Centralized Ransomware Group
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

SafePayは最近現れたランサムウェアのオペレーションであり、典型的なRaaSエコシステムではなく、厳密に管理された中央集権的なグループとして運営されているようです。攻撃者はダブルエクストーションのプレイブックに従っており、暗号化の前に機密データを準備し、Torベースの漏洩サイトを介して公開を脅迫します。配信には通常ネイティブのWindows DLLを含み、実行と拡散は広く利用可能なリビングオフザランドのユーティリティによって支援されます。観察されたケースでは、エンドツーエンドのタイムラインは攻撃的であり、初期アクセスから環境全体の暗号化までを約24時間以内に圧縮します。

調査

研究者たちは、SafePayが露出されたVPNまたはRDPアカウントに対して盗まれた、あるいは推測により得た資格情報を使用してしばしばエントリーを確保することを報告しました。いくつかのシナリオでは、特にMFAが欠如した環境での設定ミスによるFortiGateの悪用もあります。永続性を維持するために、オペレーターたちはQDoorのようなバックドアを展開し、ScreenConnectを含む正当な遠隔管理ツールを利用して通常のIT活動に溶け込みます。横方向の移動は通常PsExecやWinRMを通じて行われ、ホストおよび共有の発見はカスタムのPowerShellユーティリティ(ShareFinder.ps1)によってサポートされています。暗号化の前に、ペイロードは「プレ・ランサム」アクションを実行し、影響を最大化し回復を妨げます。これには、シャドウコピーの削除、ブート構成設定の変更、およびハードコーディングされたセキュリティ関連プロセスとサービスの終了が含まれます。

軽減策

すべてのリモートアクセス経路でMFAを要求し、ローカルアカウント認証を制限し、管理上の露出を厳しくすることでファイアウォールのリスクを減らします。特にリモート実行と設定に一致したシーケンスで、PsExec、WinRM、regsvr32、rundll32の異常な使用を監視します。共通のセキュリティツールの終了、シャドウコピーの削除、BCD/ブート設定の変更を表面化するためにエンドポイント検出を調整します。未署名のDLLのロードをブロックまたは厳密に制御し、エンドポイントおよびサーバー全体でアプリケーション制御ポリシーを施行して実行機会を減らします。

対応策

SafePayの指標が特定された場合、すぐに影響を受けたシステムを隔離し、揮発性メモリをキャプチャし、関連する認証、エンドポイント、およびネットワークログを保存します。関連するコマンド&コントロール基盤を特定してブロックし、悪意のあるプロセスを終了し永続性のメカニズムを削除します。回復行動を可能であればシャドウコピーの復元などで試みますが、データ盗難が発生した可能性があるとして、流出範囲を確認します。影響を受けたデータを特定し、利害関係者への通知と二重脅迫対応手順に基づいたエスカレーションのステップを実行するための完全なフォレンジックレビューを完了します。

攻撃フロー

シミュレーション実行

前提条件: テレメトリ&ベースラインの事前フライトチェックが通過していること。

理由: このセクションでは、検出ルールをトリガーするよう設計された敵の技術 (TTP) の正確な実行を詳細に説明します。コマンドとナラティブは、識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。

  • 攻撃のナラティブとコマンド:
    ドメイン管理者の資格情報を持つ攻撃者がピボットマシンを侵害し、 PsExec を使ってリモートの cmd.exe を二次ホスト (TARGET_IP) で実行します。リモートシェルの確立直後、攻撃者は悪意のあるDLL (malicious.dll) をリモートホストに転送し、 regsvr32.exe (または rundll32.exe)を使用してランサムウェアペイロードを実行します。このシーケンスは、指定されたコマンドラインを持つPsExecプロセスとその後のDLLロードプロセスという、2つの異なるプロセス作成イベントを生み出します。

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

    # -------------------------------------------------------------------------
    # SafePay Ransomware シミュレーション – PsExec + Regsvr32
    # -------------------------------------------------------------------------
    # 前提条件:
    #   - 現在のディレクトリまたはPATHにPsExec.exe
    #   - 同じフォルダに配置された悪意のあるDLL名malicious.dll
    #   - 有効なドメイン管理者資格情報(プレースホルダを置き換える)
    # -------------------------------------------------------------------------
    
    $targetIP   = "10.0.0.20"            # <--- ターゲットを変更
    $username   = "DomainAdmin"        # <--- 有効なユーザーに変更
    $password   = "Password123!"        # <--- 有効なパスワードに変更
    $dllPath    = "$PSScriptRootmalicious.dll"
    
    # 1) PsExecを使用してリモートcmd.exeを実行
    Write-Host "[*] PsExecを使用してリモートcmd.exeを起動中..."
    $psexecArgs = "$targetIP -u $username -p $password cmd.exe"
    & .PsExec.exe $psexecArgs
    
    Start-Sleep -Seconds 5  # リモートセッションが開始する時間を確保
    
    # 2) 悪意のあるDLLをリモートホストにコピー(SMBを使用)
    Write-Host "[*] 悪意のあるDLLをリモートホストにコピー中..."
    $destPath = "$targetIPC$Tempmalicious.dll"
    Copy-Item -Path $dllPath -Destination $destPath -Force
    
    # 3) regsvr32を介してDLLをロード(これにより2番目のイベントが生成されます)
    Write-Host "[*] regsvr32で悪意のあるDLLをロード中..."
    $regsvrArgs = "/s $destPath"
    & regsvr32.exe $regsvrArgs
    
    Write-Host "[+] シミュレーション完了。 SIEMでアラートを確認してください。"
  • クリーンアップコマンド:

    # -------------------------------------------------------------------------
    # SafePay シミュレーション用クリーンアップ
    # -------------------------------------------------------------------------
    $targetIP = "10.0.0.20"
    $dllRemote = "$targetIPC$Tempmalicious.dll"
    
    # リモートホストから悪意のあるDLLを削除
    Write-Host "[*] リモートホストから悪意のあるDLLを削除中..."
    Remove-Item -Path $dllRemote -Force -ErrorAction SilentlyContinue
    
    # 必要に応じて、滞留しているregsvr32/rundll32プロセスを終了する
    Get-Process -Name regsvr32, rundll32 -ErrorAction SilentlyContinue |
        Where-Object {$_.Path -like "*$targetIP*"} |
        Stop-Process -Force
    
    Write-Host "[+] クリーンアップ完了。"