Security Audit 是一项用于安全指导与漏洞审查的技能,适用于代码库、API、服务、CLI 工具、库和守护进程。其核心目标是发现违反真实信任边界的漏洞,并为负责人提供源码证据、安全复现方法、优先级以及最小有效修复建议。该技能强调防御性和源码优先的工作流:一个候选问题必须明确涉及具体受影响的主体、资源或安全结果,否则不能确认为发现。
用途
该技能主要用于回答安全相关问题、执行聚焦审查、提供审查方法论、进行分类(triage)以及调查特定发现。它可以帮助开发团队在代码层面识别潜在的安全风险,并指导如何安全地验证和修复。
主要能力
技能定义了两个操作模式:
-
指引模式:默认模式。当用户提出安全疑问、请求聚焦审查、询问方法论或排查特定发现时,仅使用技能中的相关部分,不会自动运行完整的六阶段审计流程,也不会创建输出目录或写入审计产物。可以按需启动聚焦的代理(agent)来辅助当前任务。
-
完整审计模式:当用户明确要求对代码库进行审计或渗透测试、请求全面端到端的安全审查,或要求生成报告产物时启用。此模式会运行完整的六阶段工作流,并写入定义的文件(如 run-metadata.json、architecture.md、coverage-ledger.json、findings.json、REPORT.md 等)。
技能采用代理中立(agent-neutral)的术语,包括父代理(Parent)、任务工具(Task tool)、研究代理(research agent)和通用代理(general agent),并允许在保持角色、写入隔离、提示和独立性边界的前提下使用等效的平台能力。
使用方式
在完整审计模式下,技能要求进行一系列设置:确定技能目录、目标仓库根目录、仓库名称、输出目录(默认位于 ~/security-audit-skill/<repo-name>/run-<N>,需在目标之外)、源码引用(commit 及工作区状态)。输出隔离通过父代理独占写入共享运行文件,并为每个猎手(hunter)或验证者(verifier)分配唯一的代理根目录(<output-dir>/agents/<agent-id>/),其中包含独立的 scratch/ 和 artifacts/ 目录。代理和受目标控制的进程只能写入 scratch/,而 artifacts/ 由父代理保留,通过安全的提升(promotion)流程从 scratch/ 中复制允许列表内的文件,并执行严格的路径、类型、大小和链接数验证。
执行安全方面,技能规定源码检查为只读。运行目标控制的构建、测试、进程、浏览器、模拟器、模糊测试器等,必须在操作系统强制沙箱中进行,沙箱需满足:无外部网络(仅隔离回环命名空间用于本地客户端/服务器通信);空环境变量(仅从显式允许列表填充安全值,使用临时 HOME、临时目录和缓存);目标及工具链只读,目标控制的进程只能写入其分配的 scratch/ 目录;以及明确的 CPU、内存、进程、文件大小、磁盘和墙钟时间限制。代理可在 scratch/ 中创建一次性源码副本以支持构建。在指引模式下,不保留目标控制的文件;在完整审计模式下,仅受信任的父端代码可将最小非秘密结果提升到 artifacts/。若无法执行所有控制措施,则不得执行目标代码,并应报告缺失的沙箱能力作为需要验证的阻碍(needs-validation blocker)及安全验证计划。
安全约束还包括:使用虚拟主体、固定装置(fixtures)和秘密;不得探测已部署端点、外部服务、共享基础设施、生产身份、其他用户数据或实时控制平面;不得对实时或共享进程进行可用性测试、发布产物、更改发布、消耗付费 API 配额,或超出建立缺陷所需的最小本地效果。若关键事实在源码或沙箱固定装置之外,则报告为需要验证。
适用场景
该技能适用于需要对代码库、API、服务、CLI 工具、库和守护进程进行安全审查的场景,包括但不限于:回答安全咨询、执行聚焦的安全审查、进行漏洞分类和调查、以及按照用户明确要求执行完整的端到端安全审计或渗透测试。它强调在隔离环境中安全地验证漏洞,适合开发团队在软件开发生命周期中集成安全实践。
限制
技能明确区分指引模式和完整审计模式,默认不自动执行完整审计。执行目标代码需要满足严格的沙箱条件,否则只能提供验证计划。完整审计模式涉及复杂的设置、覆盖计划、预算管理和多代理协调,可能消耗较多资源。技能不提供具体的收费、价格或平台信息。部分高级功能(如预算管理、配置档(profile)选择)的详细规则在资料中有所描述,但具体实现可能依赖平台能力。此外,技能文档中提及的某些文件(如 RECONNAISSANCE.md、HUNTING.md、VALIDATION-AND-REPORTING.md)的内容未在资料中完整提供,其具体细节暂未提供。