detecting-t1055-process-injection-with-sysmon について
Windows のセキュリティ分析担当者向けに、Sysmon を使ったプロセスインジェクションを調査するスキルです。イベントの分析と相関、ATT&CK サブテクニックの分類を扱います。
主な機能
- 01Sysmon イベント 8、10、7、25 の分析
- 02プロセス作成との相関による攻撃経路の構築
- 03不審な DLL 読み込みとプロセス間アクセスの特定
- 04ATT&CK インジェクションサブテクニックの分類
- 05Splunk と KQL のクエリ例
活用シーン
- 01リモートスレッドやメモリアクセスのアラート調査
- 02システムプロセスへのコード注入の調査
- 03インジェクション検知における Sysmon のカバレッジ検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill detecting-t1055-process-injection-with-sysmonインストール後、Claude Code で/detecting-t1055-process-injection-with-sysmonを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
Sysmon による T1055 プロセスインジェクションの検知
使用するタイミング
- 正規のプロセス内に悪意のあるコードを隠す防御回避テクニックを探すとき
- 不審なプロセス間メモリアクセスやリモートスレッド作成に関する EDR アラートが発生した後
- svchost.exe、explorer.exe などのシステムプロセスにインジェクトするマルウェアを調査するとき
- インジェクションの亜種に対する検知をテストするパープルチーム演習中
- インジェクション検知に対する Sysmon 設定のカバレッジを検証するとき
前提条件
- Events 1、7、8、10、25 を取得する包括的な設定で Sysmon がデプロイされていること
- リモートスレッド検知のために Event ID 8(CreateRemoteThread)が有効になっていること
- 適切なアクセスマスクフィルターで Event ID 10(ProcessAccess)が設定されていること
- DLL インジェクション検知のために Event ID 7(ImageLoaded)が有効になっていること
- Sysmon 13 以降でプロセスホロウイングを検知するために Event ID 25(ProcessTampering)が有効になっていること
- 相関分析とアラート用の SIEM プラットフォームがあること
ワークフロー
- CreateRemoteThread(Event 8)の監視: あるプロセスが別のプロセスのアドレス空間内にスレッドを作成したことを検知します。これは従来型の DLL インジェクションおよびシェルコードインジェクションの主要な指標です。
- ProcessAccess(Event 10)の分析: PROCESS_VM_WRITE(0x0020)、PROCESS_VM_OPERATION(0x0008)、PROCESS_CREATE_THREAD(0x0002)のアクセス権を伴うプロセス間ハンドル要求を追跡します。正規のプロセスがほかのプロセスに対してこれらを必要とすることはほとんどありません。
- 異常な DLL 読み込みの検知(Event 7): システムプロセスに、通常と異なるパス(ユーザーの一時ディレクトリ、ダウンロードフォルダーなど)から読み込まれた DLL を特定します。
- プロセスホロウイングの調査(Event 25): Sysmon 13 以降では、メモリ上の実行イメージがディスクからマップされたものと乖離した場合に ProcessTampering イベントを生成します。これはプロセスホロウイング(T1055.012)の典型的な兆候です。
- プロセス作成との相関: インジェクションイベントを発生元のプロセス作成(Event 1)に関連付け、初期実行からインジェクションまでの攻撃チェーン全体を明らかにします。
- 正常なプロセス間アクティビティの除外: プロセス間操作を行う正規のソフトウェア(デバッガー、ウイルス対策製品、アクセシビリティツール、RMM エージェント)を除外します。
- ATT&CK サブテクニックへのマッピング: 検知したインジェクションを、従来型インジェクション(T1055.001)、PE インジェクション(T1055.002)、スレッド実行ハイジャック(T1055.003)、APC インジェクション(T1055.004)、スレッドローカルストレージ(T1055.005)、プロセスホロウイング(T1055.012)、プロセスドップルガンギング(T1055.013)に分類します。
主要な概念
| 概念 | 説明 |
|---|---|
| T1055.001 | Dynamic-link Library Injection |
| T1055.002 | Portable Executable Injection |
| T1055.003 | Thread Execution Hijacking |
| T1055.004 | Asynchronous Procedure Call (APC) Injection |
| T1055.005 | Thread Local Storage |
| T1055.012 | Process Hollowing |
| T1055.013 | Process Doppelganging |
| T1055.015 | ListPlanting |
| Sysmon Event 8 | CreateRemoteThread の検知 |
| Sysmon Event 10 | メモリ書き込み権限を伴う ProcessAccess |
| Sysmon Event 25 | ProcessTampering(イメージの不一致) |
| Access Mask 0x1FFFFF | PROCESS_ALL_ACCESS -- プロセス間の完全な制御 |
ツールとシステム
| ツール | 用途 |
|---|---|
| Sysmon | インジェクション検知の主要なテレメトリソース |
| Process Hacker | プロセスメモリ領域の手動調査 |
| PE-sieve | 実行中のプロセスをスキャンし、ホロウイング/インジェクションされたコードを検出 |
| Moneta | プロセス内の異常なメモリ領域を検知 |
| Splunk / Elastic | Sysmon イベントの SIEM 相関分析 |
| Volatility | インジェクションの痕跡に対するメモリフォレンジクス |
| Hollows Hunter | ホロウイングされたプロセスの自動スキャン |
検知クエリ
Splunk -- リモートスレッド作成
index=sysmon EventCode=8
| where SourceImage!=TargetImage
| where NOT match(SourceImage, "(?i)(csrss|lsass|services|svchost|MsMpEng|SecurityHealthService|vmtoolsd)\.exe$")
| eval suspicious=if(match(TargetImage, "(?i)(svchost|explorer|lsass|winlogon|csrss|services)\.exe$"), "high_value_target", "normal_target")
| where suspicious="high_value_target"
| table _time Computer SourceImage SourceProcessId TargetImage TargetProcessId StartFunction NewThreadId
Splunk -- 不審な ProcessAccess パターン
index=sysmon EventCode=10
| where SourceImage!=TargetImage
| where match(GrantedAccess, "(0x1FFFFF|0x1F3FFF|0x143A|0x0040)")
| where match(TargetImage, "(?i)(lsass|svchost|explorer|winlogon)\.exe$")
| where NOT match(SourceImage, "(?i)(MsMpEng|csrss|services|svchost|taskmgr|procexp)\.exe$")
| table _time Computer SourceImage TargetImage GrantedAccess CallTrace
KQL -- リモートスレッドによるプロセスインジェクション
DeviceEvents
| where Timestamp > ago(7d)
| where ActionType == "CreateRemoteThreadApiCall"
| where InitiatingProcessFileName !in~ ("csrss.exe", "lsass.exe", "services.exe", "svchost.exe")
| where FileName in~ ("svchost.exe", "explorer.exe", "lsass.exe", "winlogon.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine
Sigma ルール -- プロセスインジェクション検知
title: Process Injection via CreateRemoteThread into System Process
status: stable
logsource:
product: windows
category: create_remote_thread
detection:
selection:
TargetImage|endswith:
- '\svchost.exe'
- '\explorer.exe'
- '\lsass.exe'
- '\winlogon.exe'
filter_legitimate:
SourceImage|endswith:
- '\csrss.exe'
- '\lsass.exe'
- '\services.exe'
- '\MsMpEng.exe'
condition: selection and not filter_legitimate
level: high
tags:
- attack.defense_evasion
- attack.t1055
一般的なシナリオ
- 古典的な DLL インジェクション: マルウェアは VirtualAllocEx + WriteProcessMemory + CreateRemoteThread を使用して、悪意のある DLL を対象プロセスに読み込ませます。Sysmon Event 8 で検出されます。
- プロセスホロウイング (RunPE): 攻撃者は一時停止状態のプロセスを作成し、そのイメージをアンマップして悪意のある PE を書き込み、実行を再開します。Sysmon Event 25 で検出されます。
- APC インジェクション: マルウェアは QueueUserAPC を使用して、対象プロセスのスレッドに非同期プロシージャコール (APC) をキューイングします。検出が難しく、Event 10 の監視が必要です。
- リフレクティブ DLL インジェクション: DLL はディスクに触れることなくメモリから直接読み込まれるため、ImageLoaded による検出を回避します。メモリレベルの分析が必要です。
- プロセスドッペルゲンギング: NTFS トランザクションを利用して、正規のプロセスイメージを置き換えます。プロセスの整合性チェックによって検出されます。
出力形式
Hunt ID: TH-INJECT-[DATE]-[SEQ]
Host: [Hostname]
Source Process: [Injecting process path]
Source PID: [Process ID]
Target Process: [Target process path]
Target PID: [Process ID]
Injection Type: [DLL/Shellcode/Hollowing/APC]
Sysmon Events: [Event IDs triggered]
Access Mask: [Granted access value]
Risk Level: [Critical/High/Medium/Low]
ATT&CK Sub-Technique: [T1055.xxx]
コメント
Markdown 対応