SOC Prime Bias: クリティカル

19 11月 2025 17:21

APT41グループの戦術とAttackIQランサムテールズにおけるランサムウェアエミュレーション

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
APT41グループの戦術とAttackIQランサムテールズにおけるランサムウェアエミュレーション
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

この記事では、AttackIQの「Ransom Tales」シリーズ第5巻について説明しています。このシリーズでは、3つの悪名高いランサムウェアファミリー—REvil、DarkSide、BlackMatterの戦術、技術、および手順を制御されたラボ環境で再現しています。各エミュレーションでは、実行、持続性、発見、ディフェンス回避、影響の各フェーズを網羅しており、防御者が検出と応答のワークフローを実行し、検証することができます。「Ransom Tales」のシナリオは、APT41のサイバーエスピオナージキャンペーンの教訓を反映しながら、サプライチェーンの侵害とRansomware-As-a-Serviceエコシステムの台頭を現代のブルーチームとアナリストに記録しています。

APT41攻撃解析

AttackIQの敵対者研究チームは公開された脅威情報レポート、マルウェアサンプル、テレメトリを分析して、APT41グループの活動を再構築した方法に似た、各ランサムウェアファミリーの現実的な攻撃グラフを構築しました。観察されたステップをMITRE ATT&CK技術にマッピングし、ペイロードを取得し、持続性を確立し、ホストを列挙し、データを暗号化する実行フローを設計しました。また、APT41グループが米国企業に対してサイバーエスピオナージ作戦を展開したモデル化を行い、共通の手法を示しました。

緩和策

緩和策の推奨事項では、最小限の特権アクセス、不要なサービスの無効化、およびAtlassian Confluence、Apache Struts、GoAhead RCEの脆弱性を含むインフラストラクチャの迅速なパッチ適用、ならびにCVE-2021-44228、CVE-2022-26134、CVE-2017-9805、CVE-2017-17562などのLog4jの欠陥を強調しています。チームはリモートデスクトップアクセスを制限し、レジストリとタスクの変更を監視し、バックアップを検証する必要があります。

対応策

アクティビティが検出された場合、対応者は影響を受けたシステムを隔離し、揮発性メモリをキャプチャし、レジストリハイブを収集し、ログソースをレビューのために保存する必要があります。彼らは、APT41グループが使用する技法の証拠を探すためにシャドウコピー、スケジュールされたタスク、レジストリキーを調査し、その後、バックアップからデータを復元します。チームは横展開を探り、利害関係者への説明を行い、脅威情報でインシデントを強化する必要があります。

mermaid graph TB %% Class Definitions classDef action fill:#99ccff classDef builtin fill:#cccccc %% Nodes – Attack Stages node_initial_access[“<b>初期アクセス</b> – <b>T1190 公開フェイスアプリケーションのエクスプロイト</b><br />技術:CVE-2021-4428(Log4j)、CVE-2022-26134(Confluence)、CVE-2017-9805(Struts)、CVE-2017-17562(GoAhead)”] class node_initial_access action node_execution[“<b>実行</b> – <b>T1127.001 信頼された開発者ユーティリティプロキシ実行</b><br />ツール: msbuild.exe が悪意のあるXMLペイロードを実行”] class node_execution action node_persistence[“<b>持続性&特権昇格</b> – <b>T1053 スケジュールされたタスク/ジョブ</b><br />msbuildを繰り返し起動するためのSYSTEMスケジュール済みタスクを作成”] class node_persistence action node_defev1[“<b>防御回避</b> – <b>T1574.002 DLLサイドローディング</b><br />署名されたVipreAV実行ファイル(vetysafe.exe)を利用して悪意のあるsbamres.dllをロード”] class node_defev1 action node_credential[“<b>資格情報アクセス</b> – <b>T1003.006 OS資格情報ダンピングDCSync</b><br />DCSyncを介してドメインアドミンパスワードハッシュを収集”] class node_credential action node_discovery[“<b>探索</b> – <b>T1046 ネットワークサービス探索</b> & <b>T1082 システム情報探索</b><br />内部サービスをスキャンし、ホスト情報を収集”] class node_discovery action node_c2[“<b>コマンド&コントロール</b> – <b>T1102 ウェブサービス</b><br />双方向ウェブトラフィックを使用してポリシー文書をエクスフィル”] class node_c2 action node_defev2[“<b>防御回避</b> – <b>T1027 難読化ファイルまたは情報</b><br />Imjpuexcユーティリティがコードを隠し、動的API解決を実行”] class node_defev2 action node_exfil[“<b>エクスフィルトレーション</b> – <b>T1048 代替プロトコルによるエクスフィルトレーション</b><br />同じウェブチャネルで代替プロトコルを使用してデータ転送”] class node_exfil action %% Nodes – Tools tool_msbuild[“<b>ツール</b> – <b>名前</b>: msbuild.exe<br /><b>説明</b>: マイクロソフトビルドエンジンがXMLをコンパイルし実行される”] class tool_msbuild builtin tool_vetysafe[“<b>ツール</b> – <b>名前</b>: vetysafe.exe (VipreAV)<br /><b>説明</b>: DLLサイドローディングに利用された署名済みAV実行ファイル”] class tool_vetysafe builtin tool_scheduledtask[“<b>ツール</b> – <b>名前</b>: schtasks.exe<br /><b>説明</b>: スケジュールタスクを作成するためのWindowsユーティリティ”] class tool_scheduledtask builtin tool_imjpuexc[“<b>ツール</b> – <b>名前</b>: Imjpuexc<br /><b>説明</b>: ランタイムでペイロードを難読化しAPIを解決するユーティリティ”] class tool_imjpuexc builtin %% Connections – Attack Flow node_initial_access u002du002d>|explores| node_execution node_execution u002du002d>|uses| tool_msbuild node_execution u002du002d>|creates| node_persistence node_persistence u002du002d>|uses| tool_scheduledtask node_persistence u002du002d>|leads to| node_defev1 node_defev1 u002du002d>|uses| tool_vetysafe node_defev1 u002du002d>|enables| node_credential node_credential u002du002d>|provides data for| node_discovery node_discovery u002du002d>|supports| node_c2 node_c2 u002du002d>|communicates via| tool_imjpuexc node_defev2 u002du002d>|supports| node_c2 node_c2 u002du002d>|exfiltrates| node_exfil

攻撃フロー

シミュレーション

シミュレーション実行

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

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

  • 攻撃ナラティブ&コマンド:
    APT41をエミュレートする敵はまず、アプリケーションホワイトリストを回避するためにmsbuild.exeを使用して悪意のあるC#バックドアをコンパイルします。コンパイルされたペイロードは、持続性を実現するためにschtasks.exeを使用してスケジュールされたタスクとして配置されます。両方のバイナリは、非標準の場所から実行され、リアルな攻撃者の行動をエミュレートしながら、ルールの画像名条件に一致させます。msbuild.exeschtasks.exeschtasks.exe持続性を実現するために配置されます。両方のバイナリは、非標準の場所から実行され、よりリアルな攻撃者の行動をエミュレートするとともに、ルールのイメージ名条件にも一致させます。

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

  •  

    # APT41スタイルの持続性テスト – PowerShell
    # -------------------------------------------------
    # 1. 悪意のあるC#ペイロードを準備
    $source = @"
    using System;
    using System.Diagnostics;
    public class Backdoor {
        public static void Main() {
            Process.Start(new ProcessStartInfo {
                FileName = "cmd.exe",
                Arguments = "/c echo Compromised > C:Temppwned.txt",
                CreateNoWindow = true,
                UseShellExecute = false
            });
        }
    }
    "@
    $srcPath = "$env:TEMPbackdoor.cs"
    $projPath = "$env:TEMPbackdoor.csproj"
    $dllPath = "$env:TEMPbackdoor.dll"
    $srcPath | Out-File -Encoding ASCII -Force
    $projContent = @"
    <Project Sdk=`"Microsoft.NET.Sdk`">
      <PropertyGroup>
        <TargetFramework>net48</TargetFramework>
        <OutputType>Library</OutputType>
      </PropertyGroup>
    </Project>
    "@
    $projPath | Out-File -Encoding ASCII -Force
    # 2. msbuildを使用して悪意のあるDLLを非標準のパスでコンパイル
    $msbuildPath = "$env:ProgramFilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
    & $msbuildPath $projPath /p:OutDir=$env:TEMP /t:Build /p:Configuration=Release
    # 3. PowerShell経由でDLLを実行するためにスケジュールされたタスクを作成します
    $taskName = "SystemUpdater"
    $taskCmd = "powershell -ExecutionPolicy Bypass -File `"$dllPath`""
    $schPath = "$env:SystemRootSystem32schtasks.exe"
    & $schPath /Create /SC ONLOGON /TN $taskName /TR $taskCmd /RL HIGHEST /F
    # 4. タスクを即座にトリガー
    & $schPath /Run /TN $taskName
  • クリーンアップコマンド:

    # スケジュールされたタスクを削除
    $schPath = "$env:SystemRootSystem32schtasks.exe"
    & $schPath /Delete /TN "SystemUpdater" /F
    
    # ペイロードファイルを削除
    Remove-Item -Path "$env:TEMPbackdoor.cs","$env:TEMPbackdoor.csproj","$env:TEMPbackdoor.dll" -Force