SOC Prime Bias: クリティカル

02 Jun 2026 15:23 UTC

Kimsukyの高度な攻撃技術: JSONPing、Webexスプーフィング、新しいHttpSpyバリアント

Author Photo
SOC Prime Team linkedin icon フォローする
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

Kimsuky は、セキュリティソフトウェアや Webex 会議を偽装したソーシャルエンジニアリングページを使用して、マルチステージ HttpSpy RAT を配信しました。このキャンペーンは、JSONPing と呼ばれる JSONP ベースの感染チェックを導入し、ペイロードをインストーラー、ローダー、メインモジュールに分割しました。指標には、共有 RC4 キー、XAMPP 証明書、および以前のキャンペーンとのインフラの重複が含まれます。

調査

チームは偽のインストールページを分析し、ドロッパーのバイナリをキャプチャし、RC4 キーを抽出し、nos-setup.exe/astx-setup.exe から MemLoader.dll、engine.dat および cacheMon.dat を経て最終的な HttpSpy モジュールに至る三段階の実行チェーンを再構築しました。ネットワークトラフィックは、ローカルポートと C2 URL に対する GET リクエストを示しました。

緩和策

企業は疑わしいドメインや IP のブロック、未知のソースからのスクリプトファイルの実行を無効化するべきであり、regsvr32 とスケジュールされたタスクの作成を監視し、コードサイニングの検証を強制するべきです。クリックする前に Webex 会議リンクを検証し、TLS 検査を使用して JSONPing トラフィックを検出します。

対応策

識別されたバイナリ、レジストリの Run キー、スケジュールされたタスク、ネットワーク指標の存在を検出します。影響を受けたホストを隔離し、侵害されたコードサイニング証明書を取り消し、ペイロードおよび永続化メカニズムのフォレンジック分析を行います。

攻撃フロー

この部分はまだ更新中です。通知を受けるにはサインアップしてください。

Notify Me

検出

可能性のある永続化ポイント [ASEPs – Software/NTUSER ハイブ] (registry_event 経由)

SOC Prime チーム
2026年5月29日

非典型的なパスからのシステムプロセス実行 (process_creation 経由)

SOC Prime チーム
2026年5月29日

疑わしい場所でのペイロード実行を行う regsvr32 (cmdline 経由)

SOC Prime チーム
2026年5月29日

データエンコーディングおよび証明書操作に使用される Certutil (cmdline 経由)

SOC Prime チーム
2026年5月29日

パブリックユーザープロファイルからの疑わしい実行 (process_creation 経由)

SOC Prime チーム
2026年5月29日

Kimsuky 高度な攻撃技術を検出するための IOC (HashSha256): JSONPing、Webex スプーフィング、新しい HttpSpy バリアント

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

Kimsuky 高度な攻撃技術を検出するための IOC (HashMd5): JSONPing、Webex スプーフィング、新しい HttpSpy バリアント Part 2

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

Kimsuky 高度な攻撃技術を検出するための IOC (HashMd5): JSONPing、Webex スプーフィング、新しい HttpSpy バリアント Part 1

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

Kimsuky 高度な攻撃技術を検出するための IOC (SourceIP): JSONPing、Webex スプーフィング、新しい HttpSpy バリアント

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

Kimsuky 高度な攻撃技術を検出するための IOC (DestinationIP): JSONPing、Webex スプーフィング、新しい HttpSpy バリアント

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

HttpSpy バリアント C&C 通信の検出 [Windows ネットワーク接続]

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

悪意のある DLL 実行のための regsvr32 と PowerShell の疑わしい実行 [Windows プロセス作成]

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

エグゼクティブサマリー

  • テストケース ID: TC-20260529-A7Z3Q
  • TTPs:
    • T1005 (ローカルシステムからのデータ)
    • T1010 (アプリケーション ウィンドウの検出)
    • T1012 (レジストリのクエリ)
    • T1027.009 (難読化されたファイルまたは情報: 組み込みペイロード)
    • T1027.010 (難読化されたファイルまたは情報: バイナリパディング)
    • T1027.013 (ツールからのインディケータの除去)
    • T1036.004 (偽装: タスクまたはサービスの偽装)
    • T1041 (コマンド & コントロールチャネルを介したデータ流出)
    • T1053.005 (スケジュールされたタスク/ジョブ: スケジュールされたタスク)
    • T1055.001 (プロセス注入: ダイナミックリンクライブラリ注入)
    • T1057 (プロセス検出)
    • T1059.003 (コマンドとスクリプトのインタープリタ: Windows コマンドシェル)
    • T1059.007 (コマンドとスクリプトのインタープリタ: JavaScript)
    • T1070.004 (ホスト上のインディケータの削除: ファイル削除)
    • T1070.006 (ホスト上のインディケータの削除: レジストリキーの削除)
    • T1070.009 (ホスト上のインディケータの削除: Windows イベントログのクリア)
    • T1071.001 (アプリケーション層プロトコル: ウェブプロトコル)
    • T1082 (システム情報の発見)
    • T1083 (ファイルとディレクトリの発見)
    • T1090 (プロキシ)
    • T1113 (スクリーンキャプチャ)
    • T1132.001 (データエンコーディング: 標準エンコーディング)
    • T1134.002 (アクセストークン操作: トークンの作成と偽装)
    • T1140 (難読化/デコードされたファイルまたは情報)
    • T1204.002 (ユーザー実行: 悪意のあるファイル)
    • T1497.001 (仮想化/サンドボックス回避: システムチェック)
    • T1547.001 (ブートまたはログオンの自動起動実行: レジストリの実行キー/スタートアップフォルダー)
    • T1566 (フィッシング)
    • T1573.001 (暗号化されたチャネル: 対称暗号化)
    • T1620 (リフレクティブコードローディング)
  • 検出ルールの論理要約: PowerShell コマンドを検出します。これは regsvr32.exe を隠ウィンドウで起動し、DLL をローディングします。 C:ProgramData ディレクトリからです。
  • 検出ルール言語/フォーマット: Sigma (YAML)
  • ターゲットセキュリティ環境:
    • OS: Windows 10 / Windows Server 2019 (プロセス作成イベント)
    • ログ記録: Windows Sysmon (イベント ID 1) と Windows セキュリティイベントログ (イベント ID 4688)
    • セキュリティスタック: Sigma ルールを取り込む SIEM(例:Azure Sentinel、Splunk、Elastic)と EDR カバレッジ(Microsoft Defender for Endpoint)を使用
  • レジリエンススコア (1-5): 3
  • 正当性: このルールは特定の PowerShell の起動パターンと regsvr32.exe 実行を厳密に結び付けており、説明された正確な技術に対して効果的です。しかし、攻撃者は (1) 代替のロードメカニズム(例: rundll32, PowerShell -EncodedCommand)、(2) regsvr32.exe名前の変更、あるいは (3) regsvr32を使用せずにリフレクティブラ賛大を通じて DLL を実行することで回避する可能性があります。したがって、中程度のレジリエンスです。
  • 主な成果: このルールは、正確な PowerShell-regsvr32 コマンドが実行された場合に確実に発生します; regsvr32.exe PowerShell ラッパーなしでの正当な使用にはアラートがトリガーされません。
  • 推奨事項: このルールを、追加のパターン(例:直接呼び出される regsvr32.exe の検出、非定型パスからの DLL ロードの監視、エンコードされた PowerShell コマンドの検出)で補完して、レジリエンスを 4-5 に引き上げます。

シミュレーション環境と文脈

  • テストされる TTPs:

    • T1055.001: プロセス注入 – ダイナミックリンクライブラリ注入(悪意のある DLL が regsvr32.exe)
    • T1059.003: コマンドとスクリプトのインタープリタ – Windows コマンドシェル(PowerShell 使用で実行を隠蔽)
    • T1027.009 / T1027.010 / T1027.013: 難読化されたファイルまたは情報 (DLL 名の難読化、隠しウィンドウ)
  • TTP 文脈と関連性:

    • T1055.001: 攻撃者は、 regsvr32.exe を利用して、信頼されたプロセスに悪意のある DLL(mTSTCv8.mdxm)をロードし、アプリケーションホワイトリスティングを回避します。
    • T1059.003: PowerShell は、ユーザーの認識とエンドポイントの UI 監視を回避するために regsvr32 コマンドを -windowstyle hidden で起動します。
    • 難読化 TTPs: 非標準の DLL 拡張子(.mdxm)を使用し、隠しウィンドウがクラシックな回避技術であり、このルールが表面化しようとしているものです。
  • ターゲット環境:

    • OS: Windows 10 Enterprise (ビルド 1909)
    • ログ記録: デフォルトのルールセットで構成された Sysmon(プロセス作成、イメージロードをキャプチャ)、および有効な Windows セキュリティイベントログ 4688。
    • セキュリティスタック: Azure Sentinel(ログ分析ワークスペース)が Sysmon/Windows ログを取り込み、Microsoft Defender for Endpoint がホストベースのアラートを提供。

テレメトリーとベースラインの事前検査

理論: 攻撃をシミュレートする前に、対象ホストが必要なログを生成するように構成されていること、これらのログが SIEM に取り込まれていること、また、検出ルールが正当な活動で起動しないことを確認する必要があります。

  • 1. テレメトリー構成手順:

    • Sysmon(v13 以降)を次の構成スニペットを使用してインストールします(次にように保存 sysmon-config.xml):

      <Sysmon schemaversion="4.70">
        <EventFiltering>
          <ProcessCreate onmatch="include">
            <Image condition="is">regsvr32.exe</Image>
          </ProcessCreate>
        </EventFiltering>
      </Sysmon>

      実行: sysmon -i -accepteula -c sysmon-config.xml

    • 「プロセス生成の監査」が有効になっていることを確認します(ポリシー: コンピュータの構成 → Windows の設定 → セキュリティの設定 → 詳細な監査ポリシー設定 → システム監査ポリシー → 詳細なトラッキング → プロセス生成の監査 – 成功に設定)。

    • イベントコレクターがイベント ID 4688(プロセス生成)と Sysmon イベント ID 1 を Log Analytics エージェント経由で Azure Sentinel に転送することを確認します。

  • 2. 取り込みとベースラインの検証:

    • アクション(正当なテレメトリー): 正当な regsvr32 呼び出しを実行し not PowerShell または隠しウィンドウを関与させません(例: Microsoft DLL を登録します)。

      # Windows DLL の正当な登録(隠しウィンドウなし)
      regsvr32.exe /s C:WindowsSystem32shdocvw.dll
    • 検証クエリ(取り込み): Azure Sentinel(KQL)で、正当なイベントが取り込まれたが、 not ルールに一致しなかったことを確認します。

      // 正当な regsvr32 実行の取り込みを検証
      Event
      | where SourceSystem == "Security" and EventID == 4688
      | where Process == "regsvr32.exe"
      | where CommandLine !contains "powershell.exe"
      | project TimeGenerated, Computer, Process, CommandLine, EventID

      結果セットには正当なイベントが含まれている必要があり、Sigma ルールのアラートは沈黙している必要があります。


シミュレーション実行

前提条件: テレメトリーとベースラインの事前検査が合格している必要があります。

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

  • 攻撃シナリオとコマンド:
    攻撃者はカスタム DLL を入手しました(mTSTCv8.mdxm)に、第二段階のペイロードのリフレクティブラーダーが含まれています。インタラクティブな実行を避けるため、攻撃者は regsvr32.exe を実行する PowerShell ワンライナーを作成し、 /s サイレントフラグで実行しながら PowerShell コンソールを隠します(-WindowStyle Hidden)。DLL は、正当なアプリケーションデータと混ざるために C:ProgramData に配置されています。実行手順:

    1. 悪意のある DLL を C:ProgramDatamTSTCv8.mdxm.
    2. にコピーします regsvr32.exe /s C:ProgramDatamTSTCv8.mdxm.
    3. を実行する隠された PowerShell を起動します regsvr32.exe、これにより regsvr32 は自身のプロセス空間に DLL をロードします。これにより、信頼されたバイナリでコード実行が達成されます。
  • リグレッションテストスクリプト:

    # ==============================
    #  リグレッションテスト: PowerShell 経由の regsvr32(悪意のある DLL)
    # ==============================
    # 1. 悪意のある DLL を展開します(安全のために既知の無害な DLL でシミュレート)
    $dllPath = "C:ProgramDatamTSTCv8.mdxm"
    Copy-Item -Path "$env:SystemRootSystem32windows.storage.dll" -Destination $dllPath -Force
    
    # 2. Sigma ルールが探す PowerShell 隠し起動を実行します
    $psCommand = "powershell.exe -WindowStyle Hidden regsvr32.exe /s `"$dllPath`""
    Start-Process -FilePath "powershell.exe" -ArgumentList "-WindowStyle Hidden", "regsvr32.exe", "/s", "`"$dllPath`"" -NoNewWindow
    
    # オプション: プロセスがログに表示されるのを待つための数秒
    Start-Sleep -Seconds 5
    
    # 3. テスト検証用にコンソールにマーカーイベントを生成します
    Write-Host "[*] PowerShell 経由で隠し起動された regsvr32 実行。"
  • クリーンアップコマンド:

    # シミュレートされた悪意のある DLL を削除します
    Remove-Item -Path "C:ProgramDatamTSTCv8.mdxm" -Force -ErrorAction SilentlyContinue
    
    # 残っている regsvr32.exe プロセスを閉じます(もしあれば)
    Get-Process -Name regsvr32 -ErrorAction SilentlyContinue | Stop-Process -Force
    
    Write-Host "[*] クリーンアップ完了。"