名称: 审计上下文构建 描述: 在漏洞或错误发现之前,启用超细粒度、逐行代码分析以构建深度架构上下文。
深度上下文构建技能(超细粒度纯上下文模式)
1. 目的
该技能控制在审计的上下文构建阶段 Claude 如何思考。
当激活时,Claude 将:
- 默认执行 逐行/逐块 代码分析。
- 在微观尺度上应用 第一性原理、5个为什么 和 5个如何。
- 持续链接洞察 → 函数 → 模块 → 整个系统。
- 维护一个稳定、明确的心智模型,随新证据演化。
- 识别不变量、假设、流和推理风险。
该技能定义了结构化分析格式(见下文示例:函数微观分析),并在 漏洞狩猎阶段之前 运行。
2. 何时使用此技能
使用当:
- 在错误或漏洞发现前需要深度理解。
- 希望自底向上理解而不是高层级猜测。
- 减少幻觉、矛盾和环境丢失至关重要。
- 准备安全审计、架构审查或威胁建模。
不要 用于:
- 漏洞发现
- 修复建议
- 利用推理
- 严重性/影响评级
3. 此技能的行为方式
当激活时,Claude 将:
- 默认对每个块和行进行 超细粒度分析。
- 应用微观层级的第一性原理、5个为什么和5个如何。
- 构建和精炼持久的全局心智模型。
- 当假设被矛盾时更新早期假设(“之前我以为 X;现在 Y。”)。
- 定期锚定摘要以维持稳定上下文。
- 避免推测;需要时明确表达不确定性。
目标:深度、准确的理解,而非结论。
合理化(不要跳过)
| 合理化 | 为什么错误 | 必需行动 |
|---|---|---|
| “我理解了大意” | 大意级理解会错过边缘情况 | 需要逐行分析 |
| “这个函数简单” | 简单函数组合成复杂错误 | 无论如何应用5个为什么 |
| “我会记住这个不变量” | 你不会。环境会退化。 | 明确写下来 |
| “外部调用可能没问题” | 外部 = 对抗性,直到证明否则 | 跳入代码或建模为敌对 |
| “我可以跳过这个助手” | 助手包含传播的假设 | 跟踪完整调用链 |
| “这太耗时了” | 仓促的环境 = 后来的幻觉漏洞 | 慢即是快 |
4. 阶段 1 — 初始定位(自底向上扫描)
在深度分析前,Claude 执行最小映射:
- 识别主要模块/文件/合约。
- 注意明显的公共/外部入口点。
- 识别可能的参与者(用户、所有者、中继者、预言机、其他合约)。
- 识别重要存储变量、字典、状态结构或单元格。
- 构建初步结构而不假设行为。
这为详细分析建立锚点。
5. 阶段 2 — 超细粒度函数分析(默认模式)
每个非平凡函数接受完整的微观分析。
5.1 每函数微观结构清单
对于每个函数:
-
目的
- 为什么函数存在及其在系统中的角色。
-
输入与假设
- 参数和隐含输入(状态、发送者、环境)。
- 前置条件和约束。
-
输出与效果
- 返回值。
- 状态/存储写入。
- 事件/消息。
- 外部交互。
-
逐块/逐行分析 对于每个逻辑块:
- 它做什么。
- 为什么出现在这里(排序逻辑)。
- 依赖什么假设。
- 建立或维护什么不变量。
- 后来逻辑依赖什么。
应用每块:
- 第一性原理
- 5个为什么
- 5个如何
5.2 跨函数与外部流分析
(全面集成跳入外部代码规则)
遇到调用时,继续跨边界的相同微观优先分析。
内部调用
- 立即跳入被调用者。
- 执行相关代码的逐块分析。
- 跟踪数据、假设和不变量的流动: 调用者 → 被调用者 → 返回 → 调用者。
- 注意被调用者逻辑在此特定调用环境中是否行为不同。
外部调用 — 两种情况
情况 A — 外部调用到代码库中存在的合约 视为内部调用:
- 跳入目标合约/函数。
- 继续逐块微观分析。
- 无缝传播不变量和假设。
- 基于 实际 代码考虑边缘情况,而非黑盒猜测。
情况 B — 外部调用无可用代码(真正外部/黑盒) 分析为对抗性:
- 描述发送的有效载荷/值/气体或参数。
- 识别关于目标的假设。
- 考虑所有结果:
- 回滚
- 不正确/奇怪返回值
- 意外状态变化
- 不良行为
- 重入(如适用)
连续性规则
将整个调用链视为 一个连续执行流。 绝不重置上下文。 所有不变量、假设和数据依赖必须跨调用传播。
5.3 完整分析示例
见 函数微观分析示例.md 完整演示:
- DEX 交换函数的完整微观分析
- 应用第一性原理、5个为什么和5个如何
- 带不变量和假设的逐块分析
- 跨函数依赖映射
- 外部交互的风险分析
此示例演示所有分析函数所需的深度和结构水平。
5.4 输出要求
执行超细粒度分析时,Claude 必须按照 输出要求.md 中定义的格式结构化输出。
关键要求:
- 目的(至少2-3句)
- 输入与假设(所有参数、前置条件、信任假设)
- 输出与效果(返回、状态写入、外部调用、事件、后置条件)
- 逐块分析(什么、为什么在这里、假设、第一性原理/5个为什么/5个如何)
- 跨函数依赖(内部调用、带风险分析的外部调用、共享状态)
质量阈值:
- 每函数至少3个不变量
- 至少5个假设文档化
- 外部交互至少3个风险考虑
- 至少1个第一性原理应用
- 至少3个5个为什么/5个如何应用组合
5.5 完整性清单
结束函数的微观分析前,对照 完整性清单.md 验证:
- 结构完整性:所有必需部分存在(目的、输入、输出、逐块、依赖)
- 内容深度:满足最小阈值(不变量、假设、风险分析、第一性原理)
- 连续性与集成:交叉引用、传播假设、不变量耦合
- 抗幻觉:行号引用、无模糊陈述、基于证据的声明
当所有清单项满足且无未解决的“不清楚”项时,分析完成。
6. 阶段 3 — 全局系统理解
足够微观分析后:
-
状态与不变量重建
- 映射每个状态变量的读/写。
- 推导多函数和多模块不变量。
-
工作流重建
- 识别端到端流(存款、取款、生命周期、升级)。
- 跟踪状态如何跨这些流转换。
- 记录跨步骤持续的假设。
-
信任边界映射
- 参与者 → 入口点 → 行为。
- 识别不受信任输入路径。
- 特权变化和隐含角色期望。
-
复杂性与脆弱性聚类
- 带许多假设的函数。
- 高分支逻辑。
- 多步依赖。
- 跨模块耦合状态变化。
这些聚类帮助指导漏洞狩猎阶段。
7. 稳定性与一致性规则
(抗幻觉、抗矛盾)
Claude 必须:
-
绝不重塑证据以适应早期假设。 当矛盾时:
- 更新模型。
- 明确陈述更正。
-
定期锚定关键事实 总结核心:
- 不变量
- 状态关系
- 参与者角色
- 工作流
-
避免模糊猜测 使用:
- “不清楚;需要检查 X。” 代替:
- “可能…”
-
不断交叉引用 连接新洞察到先前状态、流和不变量以维持全局一致性。
8. 子代理使用
Claude 可能为以下生成子代理:
- 密集或复杂函数。
- 长数据流或控制流链。
- 加密/数学逻辑。
- 复杂状态机。
- 多模块工作流重建。
使用 函数分析器 代理进行每函数深度分析。
它遵循此技能中定义的完整微观结构清单、跨函数流规则和质量阈值,并强制执行纯上下文构建约束。
子代理必须:
- 遵循相同微观优先规则。
- 返回Claude集成到其全局模型的摘要。
9. 与其他阶段的关系
此技能在 之前 运行:
- 漏洞发现
- 分类/分类
- 报告写作
- 影响建模
- 利用推理
它仅存在以构建:
- 深度理解
- 稳定上下文
- 系统级清晰度
10. 非目标
当激活时,Claude 不应:
- 识别漏洞
- 提议修复
- 生成概念证明
- 模型利用
- 分配严重性或影响
这是 纯上下文构建 仅此。