多抵押 Dai 安全审计结果公布

October 26, 2019

Dai 协议的安全性是 Maker 基金会的最高优先级。我们投入了大量内部与外部资源,保证 11月18日多抵押 Dai(MCD)安全地启动

7月24日,我们发布了第一个 多抵押 Dai 安全路线图,介绍团队在启动多抵押 Dai 阶段开展的安全方案。今天,我们很高兴公布以下结果:漏洞赏金计划、多抵押 Dai 的形式化验证、安全审计报告以及集成合作方计划的更新。 

漏洞赏金计划结果

7月,Maker 启动了第一个公开漏洞赏金计划,并发现了三个高严重性漏洞和一个重大漏洞。发现漏洞的团队获得了总共九万美元的赏金。

一类漏洞存在于 Dai 存款利率模块与 Maker 协议的交互,另一类漏洞则存在于紧急关停模块与拍卖合约的交互。作为最新集成进系统的模块,这些发现刚好符合我们审计的目的和预期。

我们将继续地执行漏洞赏金计划,保障系统的最高安全性。

形式化验证结果

多抵押 Dai 的核心合约形式化验证已完成,周边和帮助合约的验证也处于最后阶段。我们目前正在对 MKR 持有者支持的新抵押资产进行形式化验证,重点关注系统中的二级合约以及治理合约。同时,我们将形式化验证纳入了连续测试和发布过程。 

目前为止,以下模块的形式化验证已完成:

形式化验证是对其他安全方案的补充。尽管形式化验证不是防御系统威胁的万能药,该方法已被证明为一种可显著提高系统整体安全性的工具。  我们会持续进行形式化验证,并根据审计和漏洞赏金计划的结果更新安全记录。  

安全审计

除了进行形式化验证,Maker 团队进行了传统的安全审计。

Runtime Verification 更新总结

总部位于伊利诺伊州的软件分析公司 Runtime Verification 通过基于运行时 (Runtime) 的验证技术来提高软件系统的安全性、可靠性和技术精确性。Runtime Verification 团队已完成核心多抵押 Dai 系统的高级模型,并已开始构建其他模块的模型。该团队计划在今年11月前完成全部审计工作。 

来自多个第三方的审计公司,涵盖了多抵押 Dai 的以下领域:

  • 核心 Maker 协议
  • 激励逻辑
  • DoS 攻击、回放攻击、抢跑交易、系统/主链级别的攻击 
  • 治理攻击
  • 一般治理
  • 前端合约和抵押品适配器
  • 预言机
  • 链下喂价基础设施
  • 链上预言机合约
  • 系统部署和权限正确性
  • 拍卖
  • K-dss

Trail of Bits 最终审计报告 

作为全球安全领域的领先公司,Trail of Bits(ToB)完成了多抵押 Dai 智能合约的审计。Trail of Bits 评估了系统各种软件、创建安全工具,并给出安全系统部署的优化建议。审计包括人工审计、自动分析和专用工具开发。​

查看 Trail of Bits 的最终审计报告:

https://github.com/makerdao/mcd-security/blob/master/Audit%20Reports/TOB_MakerDAO_Final_Report.pdf

审计报告摘要

  • Trail of Bits 小组发现了两个中等严重性漏洞、四个低严重性漏洞和八个信息安全性漏洞。
  • Trail of Bits  表示 Maker 团队的形式化验证消除了很多易发现的漏洞,并建议继续使用。
  • Trail of Bits  开发了专用于多抵押 Dai 代码库的安全分析工具。这些工具在整个审计过程中用来发现漏洞,在审计完成后交付给多抵押 Dai 团队。
  • 在此我们特意说明一下 Trail of Bits 发现的关于 Dai 存款利率 (DSR) 的具体漏洞(审计报告第22页)。我们已经全面理解这个问题,并且修复 DSR 在 Dai 系统中的使用。同时,我们清楚用户使用非标准 ERC-20 代理与 Dai 存款利率交互的风险,并进行研究和优化。和往常一样,我们建议用户在使用第三方智能合约与多抵押 Dai 系统进行交互时要谨慎选择。

PeckShield 最终审计报告 

PeckShield 是一家中国的安全审计机构, 此前独立验证了 Maker 投票系统的 DSChief 漏洞,该漏洞已于5月修复。也鉴于此,我们 PeckShield 签约进行了正式审计合作。

查看 PeckShield 的最终审计报告:

https://github.com/makerdao/mcd-security/blob/master/Audit%20Reports/PeckShield_Final_Audit_Report.pdf

审计报告摘要

  • PeckShield 团队发现了一个高严重性漏洞(同时在漏洞赏金计划中发现)、一个中等严重性漏洞、四个低严重性漏洞和十个信息安全性漏洞。
  • 该团队在审计报告中认可了我们的独立安全性工作:“我们始终推荐项目进行多次独立的审计和公开漏洞赏金计划,以确保智能合约的安全性。” 
  • 最终版本经 PeckShield 安全人员鉴定其已经符合 PeckShield 四大类37项检测要求,无已知安全风险。

Certora 审计结果

除了上述三个签约机构提供的审计结果,第三方安全公司 Certora 使用自己的工具检查多抵押 Dai 代码后,独立地验证了两个已知重要漏洞。

集成合作方计划

为了帮助合作伙伴集成和测试多抵押 Dai 产品和服务,我们为社区和合作伙伴提供了以下资料:

  • 多抵押 Dai 路线图: https://makerdao.com/en/roadmap/
  • 多抵押 Dai 智能合约的详细说明:https://github.com/makerdao/developerguides/blob/master/mcd/mcd-101/mcd-101.md
  • 多抵押 Dai 升级指南
  • 集成工具:https://github.com/makerdao/developerguides

接下来,我们将指导合作伙伴完成多抵押 Dai 和 Dai 存款利率的最后迁移工作。 

总结

通过多方的审计工作,我们成功发现了系统里的一些漏洞,包括高严重性和重大严重性的问题。Maker 开发团队已经评估和解决这些漏洞,并且将继续与审计公司一起,确保多抵押 Dai 发布前完全解决潜在威胁。 

下一步

我们将继续遵循安全路线图,包括形式化验证、漏洞赏金计划和漏洞监视等,确保多抵押 Dai 的安全方案是最高标准的。安全审计是一项持续的工作,如果多抵押 Dai 发布后发现其他问题,我们会在 MKR 持有者许可的情况下对系统进行升级。

接下来,Maker 开发团队将专注于以下方面:

  • 多抵押 Dai 的阶段性部署
  • 即时访问模块的可升级性,包括直接对 Dai 信贷系统进行有限制更改的组件,无需通过 DS-Chief 的全体一致授权
  • 紧急关停模块和重新部署的测试运行

我们期待继续与业界最出色的安全伙伴合作,他们的审计报告安全覆盖面极为深入。有关安全审计、漏洞赏金计划以及形式化验证工作的更多信息,请访问 security.makerdao.com。

October 26, 2019