端点无文件攻击检测指南:基于 Anthropic-Cybersecurity-Skills 的 API 参考与实战落地方案
2026/9/12 20:53:41 网站建设 项目流程

端点无文件攻击检测指南:基于 Anthropic-Cybersecurity-Skills 的 API 参考与实战落地方案

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills

导读

本文围绕 Anthropic-Cybersecurity-Skills 仓库中detecting-fileless-attacks-on-endpoints技能的 API 参考文档 展开,系统讲解面向"完全驻留内存、不落盘写文件"的无文件(Fileless)攻击的检测工程方法。你将掌握关键事件源(PowerShell Script Block、Sysmon、WMI)的选取与解析、可疑脚本模式的正则设计、Splunk SPL 检测查询、AMSI 状态核查,以及如何结合仓库内附的 agent.py 与 process.py 自动化分析 EVTX 与 CSV 日志,输出带 MITRE ATT&CK 编号与严重级别的检测结果。

无文件攻击的检测思路:为什么传统 AV 会失手

无文件恶意软件(Fileless Malware)的典型特征是:攻击载荷只存在于内存、注册表或 WMI 仓库中,从不以可执行文件形式落盘,从而绕过以"文件扫描"为核心的传统防病毒产品。检测这类攻击必须转变思路——不盯"文件是什么",而是盯"进程在做什么、脚本在说什么、系统的遥测在记什么"。

从本技能的 SKILL.md 可以看出,其核心检测路径覆盖四类主流无文件手法:

  • PowerShell 驱动的攻击:编码命令执行、下载器(download cradle)、AMSI 绕过;
  • 反射式 DLL 注入(Reflective DLL Injection):DLL 直接从内存加载,不经过磁盘;
  • 进程注入(Process Injection):包括进程镂空(hollowing)、APC 注入等;
  • WMI 持久化:通过 WMI 事件订阅实现重启后的自动执行。

其参考的标准映射(见 standards.md)覆盖 MITRE ATT&CK 的 T1059.001(PowerShell 执行)、T1055(进程注入全子技术)、T1546.003(WMI 事件订阅持久化)与 T1620(反射式代码加载)。仓库的 ATTACK_COVERAGE.md 与 mappings/attack-navigator-layer.json 中亦记录了 T1055、T1059.001 等技术的技能映射关系,可作为威胁建模时的交叉参考。

关键事件源:六类"必须开"的遥测

api-reference 文档以表格形式给出了无文件攻击检测的核心事件源,这是整套检测体系的"地基"。下表为原文完整内容,并补充了每个事件对应的检测用途说明:

SourceEvent IDDetection
PowerShell Script Block4104Malicious script content
Sysmon Process Create1Encoded command execution
Sysmon CreateRemoteThread8Reflective DLL injection
Sysmon WMI EventFilter19WMI persistence
Sysmon WMI EventConsumer20WMI persistence
Sysmon WMI Binding21WMI persistence

结合 SKILL.md 中"Step 1: Enable Required Telemetry"的内容,可以补充如下关键点:

  • Event ID 1(进程创建):记录进程的完整 CommandLine,是捕获powershell -enc ...、下载器拼接命令等编码执行的关键入口;
  • Event ID 7(镜像加载):用于发现从不寻常路径加载的 DLL,是反射注入的重要旁证;
  • Event ID 8(CreateRemoteThread):远程线程创建,直接指向注入行为;
  • Event ID 10(进程访问):捕捉对 LSASS 等敏感进程的访问;
  • Event ID 19/20/21(WMI 三件套):分别对应 EventFilter、EventConsumer 与二者的绑定,任何非预期的 WMI 事件订阅创建都应视为可疑。

开启这些遥测的 PowerShell 命令(来自 SKILL.md,属于 GPO 或注册表配置路径):

# Enable PowerShell Script Block Logging (GPO or registry) New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" ` -Name EnableScriptBlockLogging -Value 1 -PropertyType DWORD -Force # Enable PowerShell Module Logging New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging" ` -Name EnableModuleLogging -Value 1 -PropertyType DWORD -Force # Enable PowerShell Transcription New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Transcription" ` -Name EnableTranscripting -Value 1 -PropertyType DWORD -Force

注意:Script Block Logging 之所以至关重要,是因为它记录的是去混淆后的脚本内容(Event 4104),攻击者精心编码的命令在执行前会被 PowerShell 引擎还原,从而被完整留存。若此项关闭,防御方将对去混淆后的命令"失明"。

解析 PowerShell 事件日志:python-evtx 实操

api-reference 文档给出了用python-evtx读取PowerShell-Operational.evtx并提取 Event 4104 中ScriptBlockText的最小示例:

import Evtx.Evtx as evtx with evtx.Evtx("PowerShell-Operational.evtx") as log: for record in log.records(): xml = record.xml() # Parse Event 4104 ScriptBlockText

仓库中的 agent.py 将其落地为完整实现:parse_powershell_scriptblock()遍历记录,先以"<EventID>4104</EventID>"粗筛事件,再用正则从 XML 中提取ScriptBlockTextSystemTime,随后逐条匹配可疑模式并生成结构化 finding:

# 摘自 scripts/agent.py 的解析核心逻辑 script_block = re.search(r'<Data Name="ScriptBlockText">([^<]+)', xml) ... for pattern, (mitre, severity, desc) in SUSPICIOUS_PS_PATTERNS.items(): if re.search(pattern, script, re.IGNORECASE): findings.append({ "event_id": 4104, "timestamp": time_match.group(1) if time_match else "", "pattern": desc, "mitre": mitre, "severity": severity, "script_excerpt": script[:300], })

这里的script_excerpt截取前 300 字符用于告警上下文展示,既能辅助研判,又避免告警体量过大。依赖未安装时,parse_powershell_scriptblock会返回{"error": "python-evtx not installed: pip install python-evtx"},提示先执行pip install python-evtx

可疑 PowerShell 模式库:正则即检测逻辑

api-reference 文档定义了五类核心正则模式,覆盖无文件攻击中最具代表性的手法:

# Dynamic execution r"Invoke-Expression|IEX\s*\(" # Reflective loading r"System\.Reflection\.Assembly.*Load" # Memory injection APIs r"VirtualAlloc|VirtualProtect|CreateThread" # WMI persistence r"Register-WMI|__EventFilter|__EventConsumer" # Encoded commands r"-enc\s|-encodedcommand\s"

在 agent.py 中,这套模式被扩展为带 MITRE 编号与严重级别的完整映射表SUSPICIOUS_PS_PATTERNS,检测语义比 api-reference 更为丰富:

正则模式(节选)MITRE严重级别检测语义
Invoke-Expression\|IEX\s*\(T1059.001HIGH动态代码执行
Invoke-Mimikatz\|Invoke-KerberoastT1003CRITICAL凭据窃取工具
System\.Reflection\.Assembly.*LoadT1620HIGH反射式程序集加载
Net\.WebClient.*Download(String\|Data\|File)T1105HIGH远程下载
VirtualAlloc\|VirtualProtect\|CreateThreadT1055CRITICAL内存注入 API
-enc\s\|-encodedcommand\sT1027HIGH编码 PowerShell
Register-WMI\|__EventFilter\|__EventConsumerT1546.003CRITICALWMI 持久化
HKCU:\\.*\\Run\|HKLM:\\.*\\RunT1547.001HIGH注册表 Run 键
Add-MpPreference.*ExclusionPathT1562.001HIGHDefender 排除项

与 api-reference 中的示例对应关系:-enc/-encodedcommand是编码命令检测(Event 1 视角与 Event 4104 视角通用);VirtualAlloc系列直接命中内存注入;Register-WMI/__EventFilter/__EventConsumer则对应 WMI 持久化的三类关键对象。SKILL.md 还补充了 AMSI 绕过模式的检测建议:("Amsi"+"Utils") OR ("amsi"+"InitFailed") OR "SetValue.*amsi"

另外,仓库提供了面向 CSV 导出的轻量扫描器 process.py,其FILELESS_PATTERNS采用(?i)不区分大小写写法,将模式归为七类:encoded_command、download_cradle、amsi_bypass、reflection、wmi_abuse、credential_access、invoke_expression。用法:

python process.py <powershell_logs.csv>

脚本会按技术类型统计命中次数,并在日志同级目录生成fileless_detection_report.json(默认最多保留 100 条检测明细)。

Splunk SPL:把检测规则部署进 SIEM

api-reference 给出了一个精简的 Splunk 检测查询:

index=powershell EventCode=4104 | where match(ScriptBlockText, "(?i)(Invoke-Expression|IEX|VirtualAlloc|FromBase64)") | stats count by ScriptBlockText, Computer, UserID

SKILL.md 中提供了更完整的版本,二者结合可组成"检测 + 审计"双层查询:

index=windows source="WinEventLog:Microsoft-Windows-PowerShell/Operational" EventCode=4104 | where match(ScriptBlockText, "(?i)(iex|invoke-expression|downloadstring|net\.webclient|frombase64|bypass|amsi.utils)") | table _time host ScriptBlockText

区别在于:match()正则支持更细粒度的模式(net.webclientamsi.utilsbypass等),table输出便于研判,stats count则适合做聚合告警与基线统计。若环境中启用 Sysmon 并收集注册表写事件,还可叠加 SKILL.md 中的 Event 13 查询,识别写入 Run 键的超长 Base64 内容:

index=sysmon EventCode=13 | where match(Details, "[A-Za-z0-9+/=]{100,}") | table _time host TargetObject Details Image

AMSI:脚本执行前的"安检门"核查

api-reference 给出了 AMSI 的两条运维命令:

# Enable AMSI logging Set-MpPreference -EnableNetworkProtection Enabled # Check AMSI status Get-MpComputerStatus | Select AMServiceEnabled, AntispywareEnabled

AMServiceEnabled反映 AMSI 服务是否开启,AntispywareEnabled反映反间谍软件保护是否生效。需要强调的是:AMSI 的价值在于脚本内容在执行前即被安全产品检查,但成熟攻击者会先尝试绕过 AMSI 再投递载荷(常见手法即 api-reference/SKILL.md 中模式库所覆盖的amsiutilsamsiInitFailed字符串)。因此,检测 AMSI 绕过尝试本身应作为高优先级告警,而不是只依赖 AMSI 的拦截结果。

WMI 持久化检测:三类对象的主动巡查

WMI 持久化依赖三个根命名空间root\Subscription下的对象:__EventFilter(触发条件)、__EventConsumer(执行动作)、__FilterToConsumerBinding(二者绑定)。api-reference 提供了完整的三条 PowerShell 巡查命令:

# List WMI event subscriptions Get-WMIObject -Namespace root\Subscription -Class __EventFilter Get-WMIObject -Namespace root\Subscription -Class __EventConsumer Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding

在 agent.py 中,parse_sysmon_wmi_persistence()实现了对 Sysmon Event 19/20/21 的自动解析,通过事件 ID 分发到WMI_PERSISTENCE_EVENTS字典(19=EventFilter 创建、20=EventConsumer 创建、21=EventConsumerToFilter 绑定),并从 XML 提取NameOperationDestinationUser等字段,统一标记为CRITICAL级别、MITRE T1546.003。SKILL.md 中给出的人工排查建议是:任何 WMI 事件订阅的创建都应视为可疑,尤其当Consumer包含CommandLineEventConsumerActiveScriptEventConsumer时——这两个 Consumer 类分别用于执行命令行与脚本,是恶意持久化的高发载体。

CLI 实战:一键跑通 EVTX 检测流程

api-reference 文档末尾给出了 agent 的两种 CLI 调用方式,二者分别对应"纯 PowerShell 日志分析"与"多开关组合分析":

python agent.py --ps-log PowerShell-Operational.evtx python agent.py --sysmon-log Sysmon.evtx --check-wmi --check-injection

对照 agent.py 的参数定义可完整解释其行为:

  • --ps-log:指定 PowerShell EVTX 路径,触发 Event 4104 脚本块扫描(parse_powershell_scriptblock);
  • --sysmon-log:指定 Sysmon EVTX 路径,本身不直接触发分析,需配合下面两个开关;
  • --check-wmi:解析 Event 19/20/21,检测 WMI 持久化(parse_sysmon_wmi_persistence);
  • --check-injection:解析 Event 8,检测 CreateRemoteThread 注入迹象(parse_sysmon_injection)。

parse_sysmon_injection()对每个 Event 8 提取SourceImageTargetImage,统一标记HIGH严重级别、MITRE T1055,描述为 "CreateRemoteThread - possible reflective injection"。执行结果以 JSON 输出,包含生成时间戳、findings数组与total_findings计数,便于直接接入下游告警管道或脚本解析。SKILL.md 还提示了 KQL(MDE)侧的等价检测,通过CreateRemoteThreadApiCallNtAllocateVirtualMemoryApiCall动作类型,排除MsMpEng.exesvchost.exe等已知合法来源后聚焦可疑进程。

从检测到运营:工作流与模板化交付

本技能还提供了两条"运营化"支撑:

  1. 端到端工作流(workflows.md):[Enable telemetry] → [Build detection rules per technique] → [Deploy rules in SIEM] → [Threat hunt for historical fileless indicators] → [Triage alerts] → [Investigate memory for confirmed incidents] → [Extract IOCs from memory analysis] → [Tune detections]。即:遥测开启 → 按技术逐条建规则 → 部署 SIEM → 回溯狩猎历史指标 → 告警分级研判 → 对确认事件做内存取证(如 Volatility 3)→ 提取 IOC 反馈 → 迭代调优规则。

  2. 检测模板(assets/template.md):提供三张表用于工程交付——Telemetry Status(记录 Sysmon、PowerShell Script Block、AMSI 是否启用及对应事件 ID)、Detection Rules(规则名、技术编号、SIEM 查询、状态)、Sign-Off(检测工程师与 SOC 负责人签字)。这使检测能力从"一段查询"升级为可评审、可交接的工程资产。

常见陷阱与规避要点

结合 SKILL.md 的 "Common Pitfalls" 与 api-reference 的事件源设计,落地时需警惕四类典型失误:

  1. 只依赖文件型 AV:文件扫描对纯内存攻击完全失效,必须叠加行为检测(EDR)与 AMSI 脚本内容检查;
  2. 关闭 PowerShell 日志:没有 Script Block Logging(Event 4104),去混淆后的命令对防御方完全不可见,检测等于盲打;
  3. 漏掉 AMSI 绕过信号:攻击者会在执行载荷前先绕过 AMSI,应将amsiutilsamsiInitFailed等绕过特征作为最高优先级告警而非普通噪声;
  4. 不监控 WMI 事件:WMI 持久化是 APT 组织偏爱的驻留手法,Sysmon 19–21 必须启用,否则持久化路径对 SIEM 不可见。

结语

无文件攻击检测的本质是"遥测驱动":以 PowerShell Script Block Logging(4104)与 Sysmon(1/7/8/10/19/20/21)为数据底座,以 AMSI 为脚本执行前的检查关口,以正则模式库为检测语义,以 Splunk/KQL/Python 为落地载体。Anthropic-Cybersecurity-Skills 的该技能将这条链路打包为可复用的 API 参考、源码脚本与运营模板,检测工程师既可通过 agent.py 快速扫描历史 EVTX 验证规则效果,也可借 assets/template.md 将规则纳入工程化评审,从而把"检测规则"真正变成可运营的防御能力。

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询