尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

恶意软件沙箱逃逸技术解析:T1497 检测指标体系与 Cuckoo/AnyRun 行为报告自动化分析实战(Anthropic-Cybersecurity-Skills)

恶意软件沙箱逃逸技术解析:T1497 检测指标体系与 Cuckoo/AnyRun 行为报告自动化分析实战(Anthropic-Cybersecurity-Skills) 恶意软件沙箱逃逸技术解析T1497 检测指标体系与 Cuckoo/AnyRun 行为报告自动化分析实战Anthropic-Cybersecurity-Skills【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, 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 仓库中的 analyzing-malware-sandbox-evasion-techniques 技能 展开系统讲解恶意软件沙箱逃逸MITRE ATTCK T1497的三类检测指标时序检查、虚拟机特征探测、用户交互探测的原理与具体指标清单并结合仓库内配套分析脚本的源码实现说明如何从 Cuckoo Sandbox / AnyRun 行为报告 JSON 中自动化提取 API 调用序列、评分逃逸成熟度并输出带 MITRE ATTCK 映射的结构化检测报告。读完本文你能够独立解读沙箱低活跃度报告背后的逃逸手法并复用仓库中的指标集与阈值逻辑构建自有的反分析检测规则。一、技能定位为什么沙箱里什么都没做本身就是一种攻击行为该技能定义在 skills/analyzing-malware-sandbox-evasion-techniques/SKILL.md 中其目标场景是一个样本在沙箱中表现出无活动或极少活动分析人员需要审查行为报告behavioral report中是否存在逃逸指标或者需要为反分析anti-analysis技术构建检测规则。SKILL.md 的 Overview 给出了核心判断依据沙箱逃逸T1497允许恶意软件识别分析环境并改变自身行为以规避检测。技能关注的四类可观测行为是时序检查timing checksGetTickCount、QueryPerformanceCounter、sleep inflation睡眠膨胀虚拟机/虚拟化特征探测VM artifact detection注册表键查询、MAC 地址前缀识别、vmtoolsd.exe 等虚拟机工具进程名用户交互检查user interaction checks鼠标移动、键盘输入环境指纹environment fingerprinting磁盘容量、CPU 数量、内存大小。技能的最终产物是对这些行为进行标记并筛选出需要更深一层人工分析的样本。在仓库的框架映射中该技能是整个库里唯一覆盖 T1497 的技能——mappings/attack-navigator-layer.json 中 T1497 条目的skill_count为 1skills字段即analyzing-malware-sandbox-evasion-techniques。SKILL.md 的 frontmatter 同时声明了该技能的跨框架映射可作为检测建设时的合规锚点框架映射条目MITRE ATTCKT1497.001System Checks、T1497.003Time Based Evasion、T1480Execution Guard、T1027.002Software PackingNIST CSF 2.0DE.AE-02、RS.AN-03、ID.RA-01、DE.CM-01MITRE D3FENDPlatform Hardening、Restore Object、Process Analysis、System Call Filtering、Restore Software值得注意的一个细节frontmatter 的mitre_attack列表未包含 T1497.002User Activity Based Checks但配套脚本对用户交互类检测命中的发现项findings仍会标注T1497.002见下文第三节且 references/api-reference.md 的 T1497 子技术表中明确列出了该子技术。因此从源码结构看该技能实际覆盖 T1497 的全部三个子技术frontmatter 仅登记了其中两个。适用时机When to Use原文档给出的四个适用场景直接对应 SOC/恶意软件分析岗位的日常任务安全事件调查中需要分析恶意软件的沙箱逃逸技术为该领域构建检测规则或威胁狩猎查询SOC 分析人员需要结构化的分析流程验证安全监控对相关攻击技术的覆盖度。前置条件PrerequisitesCuckoo Sandbox 2.0 或 AnyRun 账户用于产出行为分析报告Python 3.8 及 json 库用于报告解析脚本仅依赖标准库以 JSON 格式导出的行为报告behavioral report export。二、技能工作流从报告解析到 MITRE 映射的七步法SKILL.md 定义了该技能的标准执行步骤这也是整个分析闭环的骨架解析 Cuckoo/AnyRun 行为报告 JSON入口在 scripts/agent.py 的parse_cuckoo_report()agent.py#L42-L58它从behavior.processes[].calls[]路径中把每个进程的全部 API 调用展平为统一的记录结构字段包括api、category、arguments、return、process_name、pid。提取时序相关函数的 API 调用序列与TIMING_APIS常量集合做成员匹配通过注册表查询与 WMI 调用识别虚拟机特征探测对调用参数做小写化 JSON 序列化后做子串匹配通过对比请求时长与实际时长检测 sleep inflation脚本侧实现为请求时长是否达到阈值的判断见第三节标记用户交互检查GetCursorPos、GetAsyncKeyState 等 API 模式基于技术数量与多样性对逃逸成熟度评分把检测到的技术映射到 MITRE ATTCK T1497 子技术。技能的预期输出Expected Output是一份 JSON 报告列出检测到的逃逸技术、MITRE ATTCK 映射、API 调用证据、逃逸成熟度评分以及逃逸类别分类timing / VM detection / user interaction / environment fingerprinting。Cuckoo 行为报告 JSON 结构api-reference.md 给出了报告解析所依赖的 API 调用格式脚本正是围绕该结构编写的{ behavior: { processes: [ { process_name: malware.exe, pid: 1234, calls: [ { api: GetTickCount, category: system, arguments: {}, return: 123456789 } ] } ] } }脚本对target.file.sha256字段还有引用用于在输出报告中回填样本哈希即完整的 Cuckoo 报告通常还带有顶层target块。三、检测指标体系详解四类逃逸行为的指标清单与判定阈值技能的核心价值在于其量化指标体系。下面按四个检测函数逐一拆解每个函数对应 SKILL.md 工作流中的一步阈值与判定逻辑均直接取自 agent.py 源码。3.1 时序型逃逸检测T1497.003detect_timing_checks()agent.py#L61-L77的判定逻辑是同一报告中时序类 API 调用总数 ≥ 3 即产生一条 high 严重度发现项。时序 API 常量集合TIMING_APIS共 9 个agent.py#L8-L12API用途逃逸用途GetTickCount / GetTickCount64系统启动时长ms判断 uptime 20 分钟沙箱常见特征QueryPerformanceCounter高精度计时器测量 sleep 精度、检测时间加速GetSystemTimeAsFileTime系统时间检测时间加速NtQuerySystemTime内核态时间查询与用户态时间对比RDTSCCPU 时间戳计数器检测虚拟机中的计时开销脚本额外纳入QueryPerformanceFrequency、timeGetTime、GetLocalTime、GetSystemTime—扩大覆盖面上表中用途/逃逸用途两列完整继承自 api-reference.md 的 Timing API Indicators 表最后一行标注的四个 API 是脚本TIMING_APIS相对参考文档扩充的部分——从源码结构看这是一种以源码为准、参考文档为基线的演进读者按 api-reference 建规则时应注意二者差异。为什么调用 3 次以上才有意义正常应用程序也会偶尔读取时间但恶意软件做环境判断时通常需要多次交叉验证如同时读 GetTickCount 和 QPC 再对比孤立的单次调用噪声太高≥3 的阈值是在覆盖率与误报率之间取的工程折中。3.2 Sleep Inflation睡眠膨胀T1497.003沙箱普遍有分析时间窗常见 30~60 秒恶意软件在入口处调用超长 Sleep 即可熬过沙箱窗口待分析结束后恢复活动。detect_sleep_inflation()agent.py#L80-L105的实现要点监控的 API 集合SLEEP_APISSleep、SleepEx、NtDelayExecution、WaitForSingleObjectagent.py#L14判定阈值从调用参数中提取Milliseconds字段默认 ≥ 60000 ms60 秒即标记该阈值可通过 CLI 参数--min-sleep-ms调整参数解析兼容两种格式Cuckoo 的 arguments 可能是{Milliseconds: 120000}字典形式也可能是[{name: Milliseconds, value: 120000}, ...]列表形式脚本对两种都做了处理agent.py#L87-L93这对解析不同导出器的报告很实用命中即产生 high 严重度发现项附带sleep_ms、sleep_seconds、进程名和描述文本。注意 api-reference.md 中的 CLI 示例使用了--min-sleep-ms 30000说明对时间窗较短的沙箱配置如 30 秒应相应下调阈值。3.3 虚拟机特征探测检测T1497.001这是指标量最大的一类。detect_vm_artifact_checks()agent.py#L108-L133把每条调用的arguments做json.dumps(...).lower()后与以下三组特征做大小写不敏感的子串匹配命中即产生发现项1虚拟机注册表键severity: high——脚本维护 6 个前缀agent.py#L16-L21HKLM\SOFTWARE\VMware HKLM\SOFTWARE\Oracle\VirtualBox HKLM\HARDWARE\ACPI\DSDT\VBOX HKLM\SYSTEM\CurrentControlSet\Services\VBoxGuest HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters HKLM\HARDWARE\Description\System\SystemBiosVersion参考文档 api-reference.md 中列出的四个经典键是其中前四个的完整路径形式如HKLM\SOFTWARE\VMware, Inc.\VMware Tools、HKLM\HARDWARE\ACPI\DSDT\VBOX__。脚本使用前缀匹配而非完整路径可以覆盖子键查询SystemBiosVersion用于读取 BIOS 厂商串沙箱 BIOS 常暴露虚拟化厂商名。2虚拟机进程名severity: high——脚本维护 10 个进程名agent.py#L23-L27vmtoolsd.exe, vmwaretray.exe # VMware vboxservice.exe, vboxtray.exe # VirtualBox qemu-ga.exe # QEMU prl_tools.exe # Parallels vmusrvc.exe, xenservice.exe # Xen 相关 windanr.exe, vdagent.exe # 其他虚拟化代理参考文档列出前 5 个脚本补充了vmusrvc.exe、xenservice.exe、windanr.exe、vdagent.exe。恶意软件通过CreateToolhelp32Snapshot或枚举 API 检查这些进程是否存在从而识别宿主。3MAC 地址前缀agent.py#L2900:0C:29 VMware 00:50:56 VMware 08:00:27 VirtualBox 00:1C:42 Parallels 00:16:3E Xen 52:54:00 QEMU/KVM脚本包含 6 个前缀比参考文档多一个 Xen 的00:16:3E。4WMI 环境指纹查询severity: medium——WMI_EVASION_QUERIESagent.py#L36-L39Win32_ComputerSystem # CPU 数量、制造商、Hyper-V 标志 Win32_BIOS # BIOS 厂商/串口 Win32_DiskDrive # 磁盘型号/容量 Win32_PhysicalMemory # 内存条信息 Win32_Processor # CPU 型号/核心数恶意软件通过Win32_ComputerSystem的Manufacturer/Model字段直接读到 VMware Virtual Platform或用Win32_Processor核对 CPU 拓扑——这正是 SKILL.md Overview 提到的disk size, CPU count, RAM环境指纹检查。WMI 查询之所以评为 medium 而非 high是因为 WMI 类查询在合法软件中也较常见需要结合上下文判断。3.4 用户交互探测T1497.002detect_user_interaction_checks()agent.py#L136-L148监控 6 个 APIagent.py#L31-L34GetCursorPos、GetAsyncKeyState、GetForegroundWindow、 GetLastInputInfo、mouse_event、keybd_event判定规则交互类 API 出现次数 ≥ 2 才产生一条 medium 严重度发现项。原理是沙箱是无人值守的自动化环境鼠标位置不变、无键盘输入、前台窗口异常——GetLastInputInfo返回的距上次输入时间在沙箱中往往异常长是经典判断依据。与 3.1 相同≥2 的阈值用于过滤正常程序偶发的光标读取。3.5 T1497 子技术映射总表综合参考文档与脚本实现三类检测与 T1497 子技术的对应关系如下前三个子技术完整继承自 api-reference.md子技术ID逃逸方法脚本中的检测函数System ChecksT1497.001虚拟机注册表键、MAC 前缀、进程名、WMI 指纹detect_vm_artifact_checksUser Activity Based ChecksT1497.002鼠标移动、键盘输入、前台窗口detect_user_interaction_checksTime Based EvasionT1497.003GetTickCount、sleep inflation、RDTSC 计时detect_timing_checksdetect_sleep_inflation四、逃逸成熟度评分多样性驱动的量化模型score_evasion_sophistication()agent.py#L151-L157把全部发现项聚合为一个 0–100 的评分technique_ids {f[mitre_id] for f in all_findings} # 命中的不同 T1497 子技术数 categories {f[technique].split()[0] for f in all_findings} # 发现项技术词首词类别数 score min(len(all_findings) * 10 len(technique_ids) * 15 len(categories) * 10, 100) level low if score 30 else medium if score 60 else high设计逻辑与 SKILL.md 步骤 6 的based on technique count and diversity一一对应发现项总数 ×10指标密度——同类指标反复出现说明恶意软件在该方向做了系统性检查唯一子技术数 ×15跨类覆盖——同时命中时序、VM、交互三类子技术的样本其反分析框架的完整性明显更高权重因此最大类别词数 ×10多样性补充项分级30 low、30–59 medium、≥60 high。评分输出结构包含score、level、unique_techniques、total_indicators四个字段可直接作为分诊排序或 SIEM 富化的数值字段。五、运行方式与输出报告结构5.1 CLI 用法api-reference.md 给出的两条典型命令python agent.py --report cuckoo_report.json --output evasion_report.json python agent.py --report report.json --min-sleep-ms 30000完整参数说明来自 agent.py#L160-L165参数必填默认值说明--report是—Cuckoo/AnyRun 行为报告 JSON 路径--min-sleep-ms否60000触发 sleep inflation 标记的最短睡眠时长毫秒--output否evasion_analysis_report.json输出报告路径运行时终端会逐步打印解析到的 API 调用总数、四类发现项数量、成熟度等级与评分例如[] Evasion sophistication: high (75/100)。5.2 输出报告结构main()agent.py#L178-L191生成的报告顶层字段为{ analysis_time: ISO 时间戳, sample_sha256: 来自报告 target.file.sha256, total_api_calls: 12345, evasion_findings: { timing_checks: [], sleep_inflation: [], vm_artifact_checks: [], user_interaction_checks: [] }, total_indicators: 0, sophistication: { score: 0, level: low, unique_techniques: 0, total_indicators: 0 }, mitre_techniques: [T1497.001, T1497.002, T1497.003] }这与 SKILL.md 的 Expected Output 完全吻合MITRE 映射每条 finding 的mitre_id字段、API 调用证据apis_used/api/registry_key/wmi_class字段、成熟度评分sophistication、四类逃逸分类evasion_findings的四个桶。5.3 AnyRun 报告获取参考文档同时覆盖了 AnyRun 侧通过其 REST API 以GET /v1/analysis/{task_id}端点、请求头携带Authorization: API-Key key拉取指定任务的行为分析数据。由于 AnyRun 的 JSON 结构与 Cuckoo 同源同样以 API 调用列表为核心解析思路一致若字段路径有差异可按parse_cuckoo_report()的展平逻辑processes → calls → api/arguments/return做相应适配。六、在仓库体系中的位置与延伸该技能遵循 agentskills.io 标准SKILL.md frontmatter 声明name、domain: cybersecurity、subdomain: malware-analysis、5 个 tagsandbox-evasion、malware-analysis、cuckoo、anyrun、mitre-attack 等、version: 1.0、license: Apache-2.0并携带d3fend_techniques、nist_csf、mitre_attack三组框架映射字段仓库提供 tools/validate-skill.py 与 tools/agentskills-skill.schema.json 用于校验技能结构与 frontmatter 合法性框架覆盖全景可在 mappings/README.md 与 mappings/attack-navigator-layer.json 中查看后者同时可直接导入 ATTCK Navigator 做可视化与本文技能互补的同仓库技能包括analyzing-malware-behavior-with-cuckoo-sandboxCuckoo 沙箱行为分析总流程、performing-dynamic-analysis-with-any-runAnyRun 动态分析、deobfuscating-powershell-obfuscated-malwarePowerShell 去混淆等可作为沙箱报告初筛 → 深度动态分析 → 混淆还原链路的前后环节均位于 skills/ 目录下。七、检测规则落地的实践要点把本技能的方法论迁移到 SIEM/EDR 检测规则时结合源码实现有几点可直接落地的建议阈值要可调时序检测 ≥3 次、交互检测 ≥2 次、睡眠 ≥60s 都是脚本默认值。若你的分析环境时间窗是 30 秒用--min-sleep-ms 30000同步下调避免漏报刚好睡过沙箱窗口的样本参数匹配用前缀而非全路径注册表检测用HKLM\SOFTWARE\VMware这类前缀匹配能同时覆盖对具体子键如\VMware Tools的查询这是脚本detect_vm_artifact_checks()的做法也是写 Sigma/YARA 规则时的稳妥写法区分证据强度脚本对直接命中虚拟机注册表评为 high、对WMI 指纹查询评为 medium、对交互探测评为 medium——写检测规则时应继承这种分层避免把所有环境检查一视同仁导致告警风暴保留双格式参数解析Cuckoo 不同版本/导出器对arguments的序列化不一致dict 与 name/value list解析管道里保留两种格式兼容可显著降低解析不出参数 → 漏报 sleep 时长的问题评分作为分诊字段sophistication.score与level可以直接进工单排序high≥60样本优先人工复核实现 SKILL.md 步骤 7 之后的更深一层人工分析闭环。小结该技能把样本在沙箱里装死这一常见痛点拆解为时序、VM 特征、用户交互、环境指纹四类可枚举的 API 级指标并用一份仅依赖标准库的 Python 脚本实现了从报告解析、指标命中、成熟度评分到 T1497 子技术映射的完整自动化流程。其指标清单9 个时序 API、4 个 sleep API、6 个注册表前缀、10 个 VM 进程名、6 个 MAC 前缀、5 个 WMI 类、6 个交互 API与可配置阈值--min-sleep-ms均可直接复用于自建检测体系配合 SKILL.md 的七步工作流与 references/api-reference.md 的指标速查表即可在收到低活跃度沙箱报告时快速判断是样本真的惰性还是恶意软件在看着你。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, 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),仅供参考
返回列表