SOC Prime Bias: 高い

24 Jun 2026 19:37 UTC

AIビデオプレーヤーで発見されたPureRATの変種

Author Photo
SOC Prime Team linkedin icon フォローする
AIビデオプレーヤーで発見されたPureRATの変種
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

マルウェアキャンペーンでは、Google ドライブをテーマにした偽のビデオダウンローダーを使用して、複数段階の実行チェーンを起動しています。感染はPythonベースのローダーからシェルコード、そしてPureRATとして識別される保護された.NETアセンブリへと移行します。マルウェアは重度の難読化、カスタム暗号化、および認証済みのWebSocket通信に依存してコマンドアンドコントロールトラフィックを管理します。

調査

調査では、Pythonバイトコードローダーから始まる段階的な実行フローを分析しました。研究者はBase85デコード、 zlib 解凍、およびシェルコード注入を通じて VirtualAllocを行うことを観察しました。さらなる分析により、重度に保護された.NETローダー Ykzrh/smveo-csharp-agent.exeが発見され、仮想化とランタイム再構築を使用して分析を難しくしていました。

緩和策

ユーザーには非公式または疑わしいビデオをテーマにしたおとりからファイルをダウンロードしないよう警告するべきです。組織は、許可されていないPythonの実行およびローカルアプリケーションデータディレクトリ内での異常な.NETアセンブリの動作を監視する必要があります。強力なアプリケーション許可リスト作成と疑わしいRunキーの変更の監視も妥協のリスクを減少させることができます。

応答

この活動が検出された場合、さらなるWebSocketベースのコマンドアンドコントロールトラフィックを妨害するために影響を受けたエンドポイントを直ちに隔離してください。捜査官はメモリフォレンジクスを行い、復号化された.NETペイロードをキャプチャして感染の範囲を特定する必要があります。ネットワークログもsmveo.comインフラストラクチャへの接続をレビューし、露出の可能性のある認証情報は回転させるべきです。 smveo.com infrastructure, and any potentially exposed credentials should be rotated.

攻撃フロー

シミュレーション実行

前提条件: テレメトリ & ベースライン事前フライトチェックが合格している必要があります。

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

  • 攻撃シナリオとコマンド: 攻撃者はPureRATバリアントの展開に成功しました。制御を維持するために、マルウェアは持続的なコマンドアンドコントロール (C2) チャネルを確立します。標準のHTTPポーリングの代わりに、認証済みWebSocket接続を使用して、長期間持続するWebSocketストリームを検査しないかもしれない従来のWebプロキシを回避します。攻撃者の目的は、port agent.sm-veo.com ポート 8443上で安定した低レイテンシーのトンネルを確立することです。このシミュレーションは、悪意のあるURIへの接続を開始することで、このネットワーク行動を模倣するPowerShellスクリプトを使用します。

  • リグレッションテストスクリプト:

    # WebSocketによるPureRATバリアントC2のシミュレーション
    # 目的: 宛先ドメインまたはURLを介して検出ルールをトリガーする。
    
    $targetUrl = "wss://agent.sm-veo.com:8443/v1/ws"
    $targetDomain = "agent.sm-veo.com"
    
    Write-Host "[+] PureRAT C2のシミュレーションを開始中..." -ForegroundColor Cyan
    
    try {
        Write-Host "[+] $targetUrlにWebSocket接続を確立しようとしています"
        # 特定のプロトコルの挙動をシミュレートするために.NET WebSocketクライアントを使用
        $ws = New-Object System.Net.WebSockets.ClientWebSocket
        $uri = New-Object System.Uri($targetUrl)
        $ct = New-Object System.Threading.CancellationTokenSource
    
        # ネットワークテレメトリをトリガーするために成功したハンドシェイクは必要ありません。
        # ただ指定した宛先への接続試行だけで良いのです。
        $task = $ws.ConnectAsync($uri, $ct.Token)
    
        # 接続試行がテレメトリを生成するのを待ちます
        Start-Sleep -Seconds 5
        Write-Host "[!] 接続試行が完了しました。SIEMでのテレメトリを確認してください。" -ForegroundColor Green
    }
    catch {
        Write-Host "[!] 接続に失敗しました(ドメインがシンクホール/実際のものではない場合に予想されます)が、テレメトリは生成されているはずです。" -ForegroundColor Yellow
    }
    finally {
        if ($ws) { $ws.Dispose() }
    }
  • クリーンアップコマンド:

    # この特定のシミュレーションスクリプトでは永続的なファイルやレジストリキーは変更されませんでした。
    # 永続性(T1547.001)がシミュレートされた場合、次を使用します:
    # Remove-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' -Name 'PureRAT_Update'
    Write-Host "[+] クリーンアップ完了。ネットワークシミュレーションによって残されたアーティファクトはありません。" -ForegroundColor Cyan