ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

审计完整性铁律:awesome-copilot 中 AppSec 代理的不可妥协行为规范(Non-Negotiable Behaviors)实战指南

审计完整性铁律:awesome-copilot 中 AppSec 代理的不可妥协行为规范(Non-Negotiable Behaviors)实战指南 审计完整性铁律awesome-copilot 中 AppSec 代理的不可妥协行为规范Non-Negotiable Behaviors实战指南【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot导读在安全分析、代码审计与威胁建模场景中AI 代理输出的可信度直接决定其价值一条无证据的高危漏洞会误导修复优先级一次静默跳过阶段则会让整个审计结论失真。本文以 audit-integrity 技能 的 不可妥协行为规范non-negotiable-behaviors 为核心逐条拆解适用于**所有 AppSec 代理无任何例外**的 7 条硬性规则并结合仓库中 sast-sca-security-analyzer.agent.md 等真实消费方说明如何在 SAST/SCA、威胁建模、代码质量等实际任务中落地不编造、必引证、全阶段、明缺口的输出纪律。读完本文你将掌握一套可直接嵌入代理系统提示词system prompt的完整性框架从证据引用格式、风险评级论证到阶段阻塞时的显式记录与质量门禁评分。一、规范定位它是整个审计完整性框架的底线层non-negotiable-behaviors.md并非孤立文档而是 audit-integrity 技能 提供的 7 个可复用能力之一共同构成面向全部 AppSec 代理的共享审计完整性框架组件参考文件定位Clarification Protocolclarification-protocol.md分析前范围不清时最多提 ≤2 个针对性问题Anti-Rationalization Guardanti-rationalization-guard.md禁止性合理化托词对照表Self-Critique Loopself-critique-loop.md首轮分析后的强制二遍复查Retry Protocolretry-protocol.md工具失败处理重试一次再显式记录Non-Negotiable Behaviorsnon-negotiable-behaviors.md硬性规则不编造、必引证、明缺口Self-Reflection Quality Gateself-reflection-quality-gate.md1–10 分评分制每类 ≥8 分才可交付Self-Learning Systemself-learning-system.md教训/记忆模板与治理规则从执行流程看这 7 条行为规范贯穿全程分析前应用 Clarification Protocol分析中在每个决策点应用 Anti-Rationalization Guard首轮后强制执行 Self-Critique Loop工具失败时应用 Retry Protocol交付前运行 Self-Reflection Quality Gate所有类别 ≥8 分交付后为新颖发现、误报或方法学缺口创建 Lessons/Memories见 SKILL.md 的 Execution Flow 小节。行为规范之所以是不可妥协的是因为它直接决定了其他组件的有效性质量门禁评分依赖证据可追溯性自学习系统依赖诚实报告误报——一旦代理允许编造或静默省略整个框架都会失真。二、七条铁律逐条解析与落地1. 绝不编造发现Never Fabricate Findings不得在缺少来自被分析源码、架构、清单manifests或威胁情报的直接证据时报告漏洞、威胁、缺陷、代码异味或风险评估。这是整份规范的第一原则其余规则大多围绕它展开。所谓直接证据包括代码路径与具体行、依赖清单条目、架构图元、真实的 CVE 数据等。落地要点将判断句全部改写为证据句。例如❌ 登录接口存在 SQL 注入风险✅ auth/login.cs:87处用户输入userName未经参数化直接拼入 SQL 字符串见db/query.cs:12的string.Format调用符合 OWASP A03 注入模式2. 始终引用证据Always Cite Evidence每一条发现必须引用具体的文件路径、行号、CVE ID、组件、信任边界、数据流或规则键rule key。禁止缺乏精确可追溯性的泛化发现。这条规则给出了证据的最小粒度枚举实践时可在报告模板中固化以下字段证据类型示例文件路径 行号src/services/auth.service.ts:88-102CVE IDCVE-2024-3094仅当 SCA 匹配到具体依赖版本时组件com.fasterxml.jackson.core:jackson-databind信任边界/数据流Edge Gateway → Internal API信任边界 TB-2规则键S2077格式化 SQL 查询或java:S5145日志注入该规则与 anti-rationalization-guard.md 中的强制响应相互呼应This looks fine, skip deep analysis看起来没问题跳过深入分析这一托词对应的强制响应是——Looks fine 不是证据证据 代码追踪、架构引用或规则匹配必须运行检查。3. 为风险决策解释理由Explain Rationale for Risk Decisions在给出严重性、风险等级、质量评级、策略合规结论或综合风险评分时必须基于可利用性exploitability、影响impact与证据说明推理过程不得依赖未经解释的判断。这条规则把评分从主观印象变成可审计论证。以 CVSS 为例一个合理的过程化论证至少包含可利用性攻击前置条件是否需要认证、是否需要用户交互、入口是否可达影响机密性/完整性/可用性损失以及受影响资产的业务重要性证据触达该缺陷的具体代码路径或规则命中。同时必须警惕反向操作任何降级都必须有显式证据。anti-rationalization-guard 中 SAST/SCA 专项列明Severity should be lower given context结合上下文严重性应降低的强制响应是——严重性基于 CVSS/可利用性任何降级都要用显式证据论证记录而非压制。4. 不得修改源文件Do Not Modify Source Files除非用户明确要求不得改动代码、配置、依赖文件或部署清单。这条规则划定了审计代理的行为边界审计产出的是报告而非补丁。代理可以对 Critical/High 发现给出具体、可实施的修复建议这是 self-critique-loop.md 中每个 Critical 和 High 发现必须有具体可实施修复的要求但修改动作必须由用户显式授权。这也与仓库中代理分析者而非实现者的角色定位一致——SAST 扫描、SCA 依赖审计的输出目标是发现与建议而不是直接改代码。5. 诚实报告覆盖缺口Report Honestly on Coverage Gaps若任何分析阶段、STRIDE 类别、扫描类型或方法学步骤因缺少文件、不支持的语言、不可访问的组件而无法完成必须显式说明而非静默省略。没做与做了没发现是两种截然不同的结论混为一谈是审计大忌。实践时建议在报告末尾固化一个覆盖缺口清单缺失文件package-lock.json未提供 → SCA 依赖树仅覆盖requirements.txt不支持语言*.so原生二进制未纳入 SAST 扫描范围不可访问组件内网服务组件无源码仅按接口文档建模。retry-protocol.md 给出了同类问题的操作细则工具调用无结果时先重试一次二次失败后显式声明失败并基于现有证据继续绝不因工具返回空结果而静默跳过阶段——要区分工具没找到东西与工具根本没执行。6. 完成所有阶段Complete All Phases不允许部分运行。若某阶段被阻塞说明原因并继续执行剩余阶段。这条规则与第 5 条是一体两面缺口必须如实报告但报告缺口不等于可以停摆。代理应记录阻塞原因如组件 X 缺少清单无法完成其依赖解析然后继续推进其余阶段保证交付物尽量完整。从源码结构看这与 SKILL.md 要求的每次安全分析、代码审查、威胁建模或质量扫描代理运行都自动应用本技能一致——审计是一次完整的流程而不是可裁剪的检查点。7. 提供阶段性进度总结Provide Progress Summaries对多阶段分析在完成每个主要阶段后、进入下一阶段之前总结该阶段发现。这条规则保证了多阶段流程的可观测性与可控性。典型节奏阶段一信息收集/发现输出发现的入口点、信任边界、依赖清单清单阶段二分析/扫描输出各类别的命中数量与代表性发现阶段三交叉验证/汇总输出风险矩阵与优先级。每次总结同时是 self-critique-loop.md 的天然检查点——二遍复查中的覆盖率检查要求所有类别、阶段或扫描类型都被显式评估对每个干净的类别显式声明 None detected而非静默省略。三、铁律的反例治理与 Anti-Rationalization Guard 的配合7 条铁律定义了必须做什么而 anti-rationalization-guard.md 定义了禁止用什么理由逃避铁律。二者构成完整的约束闭环。以下是铁律与托词对照的关键场景铁律常见托词强制响应规则 1/2No issues/threats found on first pass必须完成全类别系统化评估后才能下干净结论扩展范围跑完整矩阵规则 2This is a false positive标注为潜在误报但必须保留记录理由供人工复核不得静默压制规则 3The risk is probably lower in practice风险基于影响 × 可能性CVSS/可利用性任何降级用显式证据论证规则 5This is outside scope显式说明原因并引用声明的范围或评估边界规则 5No controls/mitigations needed here显式声明 No gap identified — rationale: [X]沉默不是保证威胁建模场景还有两条高频托词This threat is mitigated by the architecture此威胁已被架构缓解要求记录具体的补偿控制并验证其确实实现不得假设This category has no applicable threats here该类别无适用威胁要求显式声明 No applicable threats identified — rationale: [X]。此外内部威胁与供应链行为体必须始终纳入考虑见 anti-rationalization-guard.md 的 Threat Modeling-Specific 节。四、铁律的交付验证Self-Reflection Quality Gate行为规范约束过程self-reflection-quality-gate.md 则约束交付物质量。分析完成后代理需在内部按 1–10 分对相关维度打分规则为全部维度 ≥8 分才通过任一维度 8 分则回到对应环节重做最多 2 次迭代2 次仍无法解决时交付并附带显式置信度说明注明哪个维度不足及原因。基线五维度与铁律的对应关系维度评估问题对应的铁律Completeness完整性所有必需阶段/类别是否都带证据完成评估规则 6完成所有阶段Accuracy准确性发现是否有具体引用代码、架构、CVE支撑而非臆测规则 1、2不编造、必引证Actionability可操作性每个 Critical/High 是否有具体可实施的修复或缓解规则 3 的可论证精神延伸Consistency一致性严重性评级、映射与结论是否内部一致规则 3风险决策有依据Coverage覆盖率所有入口点、信任边界、模块或清单是否都被识别与分析规则 5诚实报告缺口各代理类型可在此基础上扩展维度例如 SAST/SCA 代理将 Coverage 调整为所有入口点是否完成污点追踪、所有依赖清单是否完成审计见 self-reflection-quality-gate.md 的 SAST/SCA 扩展。五、持续改进闭环铁律驱动的 Lessons 与 Memories铁律还规定了失败之后的治理路径。依据 self-learning-system.md以下情况必须创建 Lesson教训扫描产生需要人工修正的误报某类发现或 STRIDE 类别在首轮被遗漏、由 self-critique loop 捕获发现工具或方法学局限、语言特定规则误触发、SCA 依赖无法解析。以下情况创建 Memory记忆发现架构决策、安全约定、技术栈细节、依赖管理模式、领域特定威胁模式、威胁行为体画像以及任何对同一代码库未来扫描有用的库特定知识。Lesson 模板包含 MetadataCreatedAt/Status/Supersedes、Context触发扫描/被分析组件、Issue预期 vs 实际行为、Root Cause、Resolution、Preventive Guidance 六个部分Memory 模板则包含 Metadata、Context、Key Fact、Reuse Guidance。治理规则强调三条创建前先查重去重检查、新旧证据冲突时旧记录标记deprecated并以Supersedes引用新记录、每次分析开始时先读取 lessons/memories 目录再开始分析见 self-learning-system.md。这套闭环与铁律 5诚实报告缺口直接呼应误报与缺口被如实记录后转化为 Lessons下一次扫描即可避免同类错误——审计能力因此随扫描次数持续增强。六、仓库中的真实落地以 SAST/SCA 安全分析代理为例在 awesome-copilot 仓库中这 7 条铁律不是纸面规范而是被真实代理显式引用。以 sast-sca-security-analyzer.agent.md 为例该代理在任务收尾阶段明确要求应用本技能应用 audit-integrity 技能共享 Clarification Protocol、Anti-Rationalization Guard、Retry Protocol、Non-Negotiable Behaviors、Self-Critique Loop、Self-Reflection Quality Gate 与 Self-Learning System见 sast-sca-security-analyzer.agent.md 相关行引用完整共享规则时直接指向本规范文件见 sast-sca-security-analyzer.agent.md 相关行质量交付时应用共享的 1–10 分评分制≥8 阈值、最多 2 次重做迭代见 sast-sca-security-analyzer.agent.md 相关行。从 SKILL.md 的 Agent-Specific Adaptation 节 可以看到各代理类型的扩展方式SAST/SCA 代理补充污点追踪完整性与清单覆盖检查SonarQube 风格代理补充 A–E 评级与发现一致性的合理性检查威胁建模代理补充每个信任边界的 STRIDE 类别完整性代码审查代理补充带数据流追踪的信任边界审计。七、落地建议把铁律内嵌到代理配置中将这套规范落到你自己的 AppSec 代理建议按以下顺序操作挂载技能在代理定义中引用 audit-integrity声明 7 个组件全部生效除非作用域显式排除某组件固化证据格式将铁律 2 的证据枚举file:line、CVE ID、组件、信任边界、数据流、规则键写入报告模板使无证据不输出成为结构约束而非口头约定配置质量门禁按 self-reflection-quality-gate.md 设置 1–10 分维度评分交付前全部 ≥8 分按代理类型补充领域维度建立教训库目录按 self-learning-system.md 的建议在lessons/memories目录如.github/SecurityLessons与.github/SecurityMemories维护项目学习产物并在每次扫描开始时读取应用人工复核兜底误报、降级判断、覆盖缺口三类信息必须显式保留在输出中供安全团队人工复核——这正是铁律 5 与 anti-rationalization-guard 反复强调的记录而非压制。小结non-negotiable-behaviors.md用 7 条规则回答了 AI 审计代理最根本的信任问题证据从哪来、判断凭什么、缺口怎么说、流程走没走完。在 awesome-copilot 的 audit-integrity 框架中它是与 Clarification Protocol、Anti-Rationalization Guard、Retry Protocol、Self-Critique Loop、Self-Reflection Quality Gate、Self-Learning System 协同运作的底线层——既约束输出什么也约束如何解释输出更通过教训库让每一次诚实报告都沉淀为下一次更准确的扫描。对任何以安全分析为职责的代理而言这套铁律都值得原样内嵌宁可显式声明一个无法覆盖的阶段也绝不静默交付一份看似完整实则失真的报告。【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表