审计上下文构建Skill audit_context

审计上下文构建技能是一种专注于智能合约安全审计的技术,用于在审计前快速建立代码库的思维模型。它通过侦察、系统映射、威胁建模和环境检查步骤,帮助识别潜在漏洞,提升代码安全性。关键词:智能合约审计、代码审计、漏洞挖掘、区块链安全、安全扫描、威胁建模。

安全审计 0 次安装 0 次浏览 更新于 3/21/2026

name: audit_context description: 审计前建立上下文的指南。

审计上下文构建

这个技能帮助你在深入漏洞挖掘之前快速构建代码库的思维模型。

1. 侦察

  • 识别核心逻辑: 资金或关键逻辑在哪里?
    • MultiversX: 查找 #[multiversx_sc::contract], #[payable], 和 impl 块。
  • 识别外部依赖:
    • 与哪些其他合约交互?
    • 是否有硬编码地址?(例如,sc: 智能合约字面量)。
  • 识别文档:
    • README.md, specs/, whitepaper.pdf
    • MultiversX: mxpy.json(构建配置), multiversx.yaml, snippets.sh

2. 系统映射

创建系统的思维(或书面)地图。

  • 角色: 谁可以做什么?(Owner, Admin, User, Whitelisted)。
  • 资产: 哪些代币在流动?(EGLD, ESDT, NFT, SFT)。
  • 状态: 存储了什么?(SingleValueMapper, VecMapper)。

3. 威胁建模(初步)

  • 风险资产: 如果此合约失败,会丢失什么?
  • 攻击者画像: 外部用户?恶意管理员?重入合约?
  • 入口点: 列出所有 #[endpoint] 函数。哪些是未经检查的?

4. 环境检查

  • 语言版本: cargo.toml 是否使用最新的 multiversx-sc 版本?
  • 测试套件: scenarios/ 是否存在?运行 sc-meta test-gen 查看测试是否是最新的。

输出格式

审计上下文报告

合同: [名称]
提交: [哈希值]
框架: multiversx-sc [来自 Cargo.toml 的版本]
测试套件: [scenarios/ 存在: 是/否] [测试数量]

系统概览:
- 核心逻辑: [1-2 句话描述合同的作用]
- 价值流: [资金/代币如何通过合同流动]

角色:
| 角色 | 访问级别 | 端点 |
|------|-------------|-----------|
| 所有者 | #[only_owner] | [列表] |
| 管理员 | #[only_role] | [列表] |
| 用户 | 公开 | [列表] |

资产:
| 代币 | 类型 | 角色持有 | 流 |
|-------|------|------------|------|
| [id] | EGLD/ESDT/NFT/SFT | 铸造/燃烧/转移 | [输入/输出/两者] |

外部依赖:
| 合同/服务 | 交互类型 | 风险 |
|-----------------|-----------------|------|
| [地址/名称] | 同步调用/异步/代理 | [高/中/低] |

异步调用图:
[合同 A] --async_call--> [合同 B] --callback--> [合同 A]

威胁摘要:
- 风险资产: [可能被盗/锁定/膨胀的内容]
- 攻击者画像: [外部用户 / 恶意管理员 / 重入合约]
- 最高风险入口点: [按风险排序的前 3 个端点]

范围确定:
- 升级: [是/否]
- DeFi: [是/否]
- 多合同: [是/否]

完成标准

上下文构建完成时:

  1. 所有角色及其权限都已记录。
  2. 所有资产及其流动都已映射。
  3. 所有外部依赖都已识别。
  4. 威胁摘要为每个攻击者画像识别至少一个风险。
  5. 范围确定已填写(驱动哪些审计阶段适用)。