EvidentChain智能合约安全
预发布English
智能合约安全 · 报告复核指南

怎样复核自动化风险提示

自动化告警只是需要调查的线索,不是最终结论。每条判断都应对应到准确的代码版本,说明依赖的条件,并记录本次审查覆盖和未覆盖的内容。

授权范围:仅对你拥有或获准审查的代码使用本清单。本文用于防御性审查,不讲解如何利用线上合约。

1. 先确认审查的具体版本

记录代码仓库、分支或发行版本、提交编号、编译器版本和相关构建设置。如果线上系统使用代理合约,还应确认授权范围是否包含实现合约和升级路径。旧版本上的正确观察,不一定适用于当前部署版本。

2. 核对告警背后的证据

代码位置报告指向的函数和代码行,是否与本次提交一致?
执行路径能否说明输入和状态如何到达被标记的操作?
触发条件需要哪些权限、状态、时间条件或外部行为?
是否可达在合理状态下,审查范围内的调用者能否走到这条路径?
实际影响什么安全属性可能失效,会影响哪些用户或资产?
覆盖边界哪些合约、依赖、配置或代码路径没有检查?

3. 把可信度和严重程度分开

可信度说明现有证据有多支持这条判断;严重程度说明如果判断成立,可能造成多大影响。两者都应明确:影响很大的推测仍需要验证,证据充分的问题也可能只有有限影响。

4. 安全、可重复地验证

在获准的本地测试环境或受控分叉环境中验证。测试应对应已审查的提交,记录假设,不要向线上系统发送交易或修改状态。其他审查者应能看懂测试并复现同一结论。

5. 写出别人可以核对的报告

没有告警不等于安全。自动化检查可能漏报,也可能误报。报告应说明覆盖限制;对影响重大的系统,还应安排独立复核。