0%

smart-contract-audit

收集、分析智能合约审计报告

审计报告

调研结果

收集了来自42家公司的2382份pdf格式的审计报告,主要针对的是智能合约

总结了审计报告的主要内容并以MetaTransaction的审计报告为例介绍了各个模块

审计报告主要内容

以审计公司 ABDK.consulting0x) 项目的 MetaTransaction审计报告为例,介绍审计报告一般包含的主要内容

审计方法

介绍审计过程中采用的方法或审计的流程

该审计报告主要进行了四个方面的分析

  • 常规代码检查:检查代码风格是否清楚、一致,具体检查缩进、变量命名、缺失注释等问题
  • 实体使用分析:分析代码中的实体(例如变量、函数、类等)的使用情况和模式。了解代码中的实体是如何被引用、使用和修改的,以及它们在不同上下文中的行为和依赖关系
  • 访问控制分析:对于能够被外部访问的实体,检查访问控制是否恰当
  • 代码逻辑分析:分析特定函数的正确性和效率,检查代码的行为是否符合预期、算法是否正确

image-20231008154504134

审计对象

一般会给出被审计项目的基本介绍、代码、项目结构等信息

源代码:Comparing development…feat/MetaTransactionV2 · 0xProject/protocol (github.com) 以及 feat: Multiplex + MetaTransaction integration and MetaTransaction Multi-Fee Support [RFQ-795] [LIT-870] by patrick-dowell · Pull Request #665 · 0xProject/protocol (github.com)

审计对象的项目结构

image-20231008152113943

审计结果

主要包括发现的漏洞类型、数量以及漏洞的修复情况

根据危害等级,一般将漏洞等级分为:

  • Critical:严重
  • Major:高危
  • Moderate:中危
  • Minor:低危

本报告发现了1个严重漏洞、1个高危漏洞、1个中危漏洞、17个低危漏洞,其中5个已经修复,仍有15个低危漏洞尚未被修复

image-20231008152655355

漏洞详细信息

审计报告一般会对发现的漏洞进行描述,包括漏洞的分类、漏洞的危害、漏洞在合约中的位置、如何触发漏洞、以及如何修复漏洞

以发现的严重漏洞CVF-1为例,审计报告中介绍了该漏洞的具体信息

  • 漏洞分类为 缺陷
  • 两个modifier refundsAttachedEthdoesNotReduceEthBalance可能产生冲突
  • 漏洞位置:该漏洞出现在MetaTransactionsFeatureV2.sol合约中
  • 建议的修复措施:将refundsAttachedEthdoesNotReduceEthBalance合并作为交易退款的标识符
  • 0x项目的解决方法:删除refundsAttachedEth(),将executeMetatransaction设置为notpayable

image-20231008153109744

审计报告来源

共计42家审计公司公开发布的审计报告,具体名单如下

其他资料