SuperAPI AI 工具集

audit-context-building

安全与审计

查看项目

更新于 10-16 23:14

技能介绍

用途

本技能负责管理 Claude 在审计的上下文构建阶段如何思考,属于安全审计中漏洞挖掘之前的前置环节。目标是在发现问题之前,先通过自下而上的方式建立深入、准确的系统理解,减少幻觉、矛盾和上下文丢失。

何时使用

当需要在进行 bug 或漏洞发现之前获得深度理解、希望采用自下而上的理解而非高层猜测、需要降低幻觉与上下文丢失、或为安全审计、架构评审、威胁建模做准备时使用。

不应将其用于:漏洞发现、修复建议、漏洞利用推理、严重性/影响评级。本技能仅用于纯粹的上下文构建。

主要能力与工作方式

激活后,Claude 会:默认对每个块和行进行超细粒度分析;在微观层面应用第一性原理、5 Whys 和 5 Hows;构建并细化一个持续的全局心智模型;当先前假设被推翻时更新假设(“之前我认为 X;现在认为 Y”);定期以摘要锚定上下文以维持稳定;避免推测,必要时明确表达不确定性。目标是深度、准确的理解,而不是结论。

技能还列出了一组“不可跳过的合理化借口”,例如“我懂大意了”“这个函数很简单”“我会记住这个不变量”“外部调用大概没问题”“我可以跳过这个辅助函数”“这花的时间太长了”,并给出为何错误的理由与必须采取的行动,如逐行分析、应用 5 Whys、显式记录不变量、跳入代码或将外部目标建模为敌对、追踪完整调用链、慢即是快。

使用方式

阶段 1 — 初始定向(自下而上扫描)

在深入分析之前进行最小化映射:识别主要模块/文件/合约;记录明显的公开/外部入口点;识别可能的参与者(用户、所有者、中继者、预言机、其他合约);识别重要的存储变量、字典、状态结构或单元;在不假设行为的前提下建立初步结构。为详细分析建立锚点。

阶段 2 — 超细粒度函数分析(默认模式)

每个非平凡函数都接受完整的微观分析。

每个函数的微观结构清单:

  1. 目的:函数存在的原因及其在系统中的角色。
  2. 输入与假设:参数和隐式输入(状态、发送者、环境);前置条件与约束。
  3. 输出与效果:返回值;状态/存储写入;事件/消息;外部交互。
  4. 逐块/逐行分析:对每个逻辑块,分析它做什么、为何出现在此处(顺序逻辑)、依赖哪些假设、建立或维护哪些不变量、后续逻辑依赖它什么。对每个块应用第一性原理、5 Whys、5 Hows。

跨函数与外部流程分析:遇到调用时,跨边界继续同样的微观优先分析。

  • 内部调用:立即跳入被调用者,对相关代码逐块分析,追踪数据、假设和不变量在 调用者 → 被调用者 → 返回 → 调用者 之间的流动;记录被调用者逻辑在此特定调用上下文中是否表现不同。
  • 外部调用分为两种情况:
    • 情况 A — 外部调用目标合约的代码存在于代码库中:按内部调用处理,跳入目标合约/函数,继续逐块微观分析,无缝传播不变量与假设,基于实际代码而非黑盒猜测考虑边界情况。
    • 情况 B — 外部调用没有可用代码(真正的外部/黑盒):按敌对方式分析,描述发送的载荷/数值/gas 或参数,识别对目标的假设,考虑所有结果:回滚、错误/异常返回值、非预期状态变化、行为异常、重入(如适用)。
  • 连续性规则:把整条调用链视为一个连续执行流程,绝不重置上下文,所有不变量、假设和数据依赖必须跨调用传播。

完整分析示例参见 FUNCTION_MICRO_ANALYSIS_EXAMPLE.md,其中演示了 DEX swap 函数的完整微观分析、第一性原理/5 Whys/5 Hows 的应用、带不变量与假设的逐块分析、跨函数依赖映射以及外部交互的风险分析。

输出要求:进行超细粒度分析时,Claude 必须按照 OUTPUT_REQUIREMENTS.md 中定义的格式组织输出。关键要求包括:目的(至少 2-3 句);输入与假设(所有参数、前置条件、信任假设);输出与效果(返回、状态写入、外部调用、事件、后置条件);逐块分析(做什么、为何在此、假设、第一性原理/5 Whys/5 Hows);跨函数依赖(内部调用、带风险分析的外部调用、共享状态)。质量阈值:每个函数至少 3 个不变量、至少 5 条记录的假设、外部交互至少 3 项风险考量、至少 1 次第一性原理应用、至少 3 次结合的 5 Whys/5 Hows 应用。

完整性清单:在结束一个函数的微观分析之前,对照 COMPLETENESS_CHECKLIST.md 验证:结构完整性(所有必需部分存在:目的、输入、输出、逐块、依赖);内容深度(满足最低阈值:不变量、假设、风险分析、第一性原理);连续性与集成(交叉引用、传播的假设、不变量耦合);反幻觉(行号引用、无模糊表述、基于证据的声明)。所有清单项满足且没有未解决的“不清楚”项时,分析才算完成。

阶段 3 — 全局系统理解

在充分的微观分析之后:

  1. 状态与不变量重建:映射每个状态变量的读/写;推导跨函数和跨模块的不变量。
  2. 工作流重建:识别端到端流程(存款、取款、生命周期、升级);追踪状态在这些流程中如何转换;记录跨步骤持续存在的假设。
  3. 信任边界映射:参与者 → 入口点 → 行为;识别不可信输入路径;权限变更和隐式角色期望。
  4. 复杂度与脆弱性聚类:假设很多的函数、高分支逻辑、多步依赖、跨模块耦合的状态变化。这些聚类有助于指导漏洞挖掘阶段。

稳定性与一致性规则(反幻觉、反矛盾)

Claude 必须:绝不为了迎合先前假设而重塑证据;当被推翻时更新模型并明确说明更正;定期锚定关键事实,总结核心不变量、状态关系、参与者角色、工作流;避免模糊猜测,使用“不清楚;需要检查 X”而不是“它可能……”;持续交叉引用,把新洞察连接到先前的状态、流程和不变量以维持全局一致性。

子代理使用

Claude 可为以下情况生成子代理:密集或复杂的函数、长数据流或控制流链、密码学/数学逻辑、复杂状态机、多模块工作流重建。使用 function-analyzer 代理进行逐函数深度分析,它遵循本技能定义的完整微观结构清单、跨函数流程规则和质量阈值,并强制执行纯上下文构建约束。子代理必须遵循同样的微观优先规则,返回摘要供 Claude 整合进全局模型。

与其他阶段的关系

本技能运行于以下阶段之前:漏洞发现、分类/分诊、报告撰写、影响建模、漏洞利用推理。它存在的唯一目的是建立深入理解、稳定上下文和系统级清晰度。

限制与非目标

激活期间,Claude 不应:识别漏洞、提出修复、生成概念验证、建模漏洞利用、评定严重性或影响。本技能仅用于纯粹的上下文构建。本技能引用了上游文档(来源与修订版本已在原始资料中标注),但具体运行环境、平台与收费方式暂未提供。

引用文档

以下为作者声明的引用来源,保留指定版本、署名和许可。

作者的来源声明