独家 | 审计机构审计合约的流程

2021-04-01 12:46:34 作者:金色财经

本文由“灵踪安全”原创,授权“金色财经”独家首发,转载请注明出处。

在灵踪安全的审计报告中,我们会交代对每一份合约的审计流程。大体上来说,这个流程主要包括两个步骤:一是标准化审计步骤,二是人工审计步骤。

Xew346Tpodj6V9lczaA8tf1ef4B30EMhsX2iXyJs.png

实际上这也是目前业内比较通行的步骤。不同审计机构可能在审计流程中的具体步骤和细节上存在差异,但归纳起来也都会包含这两个大的步骤。 

在灵踪安全前面发布的文章中,我们特别强调过智能合约和传统工业流水线上批量产出的标准化产品不同,它不是按流水线、标准化作业生产出来的,而是人为编写出来的。即便是照抄现有的合约,合约的编写者通常也会在照抄的合约上做一些小的改动。因此,两份合约哪怕是功能上一样、逻辑一样、特点一样,在具体的编写方式上都会存在差异。而这个差异往往就是漏洞、风险的来源。但这个差异又很难用机器大工业中常见的标准工具检测出来。但如果无法用工具检测,单凭人力检测,不仅工作量大,而且效率低,并且时常还会出人为方面的错漏。这看似矛盾的两方面交织在一起,一直贯穿着整个审计过程的始终,也是推进行业前进和革新的根本动力。

对灵踪安全来说,我们对合约的检测一方面会尽量使用工具进行验证以提高效率并减轻人为验证时可能出现的差异和错漏;而另一方面我们又特别强调人工检测的重要性,并强调人工检测对合约质量的最后把关,因为人工检测不仅是用来检测工具无法检测出来的问题,更是用来预判和发现业界未曾记录的风险、做到防患于未然的保证。

灵踪安全自成立以来便一直致力于对合约审计标准化工具的使用和开发。在这方面,我们大胆借鉴了业界前辈已经积累的经验,对目前市面上已经存在的合约检测工具(如Security、Mythril、Oyente、ECF、Maian、Lem等)都进行了细致的研究和测试。但我们发现这些工具或多或少都存在一定的局限,并且在我们具体的使用过程中还存在各种不便之处,因此我们也在前辈研发的基础上大力开发自己的自动化检测工具,并将我们的工具投入到合约的审计工作中。这一方面提高灵踪安全的工作效率,另一方面将我们不断积累的经验优化、集成到这些工具中,让它们更好地服务于灵踪安全的合约审计。 

对标准化检测工具的研发及推进将始终是灵踪安全开发工作的重点和必须攻克的难点。我们认为这也是业界未来发展的方向和制高点。把握这个方向、占据这个制高点不仅对灵踪安全本身的发展,更对整个行业的发展都将起到重要的推进作用。

 对工具的研发和使用是灵踪安全工作的重点,而对人工审查的强调及对审计工程师的培养、培训则是灵踪安全工作的重心和核心。

灵踪安全认为人工审计不仅是对工具审计的查漏补缺,人工审计所积累的经验和技能也是改进和提升工具最好的素材和动力,人工审计本身更是对整个审计过程的最后把关。所以无论从哪方面说,人工审计的重要性都不言而喻。

dLjFJ5BFzovbxeOo5FH4WpewutCdcmCSsQlNXJKf.png

 人工审计所进行的是非标准化的活动。所谓的非标准化活动就是因人而异,难以绝对统一。因为每个审计工程师都有自己的习惯和自己的思路。在这种情况下如何既发挥人工审计的灵活性和创造性又避免人工审计中人为因素导致的错漏则是灵踪安全在人工审计过程中关注的重点和难点。

我们对此采取的主要措施是流程统一和交叉审计。这两点也是灵踪安全在人工审计这个大步骤中重点进行的两个细分步骤 

MXbKhOeSyb6Zo096Fq1h9yJSdrTf5rxSenItp7bw.png

所谓的流程统一就是我们为合约人工审计的流程制定了一个统一的框架和流程,这个框架和流程确保我们每个审计工程师都要延这个大方向走,不出方向性错误,这也是企业战略中常说的目标一致、路径一致,在合约审计中,我们也需要这种一致。

在这种一致框架和流程的规制下,每个审计工程师可以发挥自己的主观能动性和创造性,按自己的习惯和特点审计合约,我们不予具体地干预。

但是即便方向一致,每个工程师在具体的进度、能力、判断上还是会出现差异,而这些差异就有可能导致风险、漏洞逃过审计。

这时我们就需要第二个手段----交叉审计来防范这个问题。

所谓的交叉审计就是一份合约我们会由多个工程师审计。这个过程是将不同工程师的不同的思路和理解进行汇总的过程,也就是我们常说的“集思广益”。通过这种方式,我们能尽量大地覆盖风险的范围和种类,尽量小地减少个人理解偏差在审计中造成的误判。

所以灵踪安全的审计报告中所提到的审计流程归纳起来就是利用工具的标准化审计和依赖工程师经验的人工审计。

作者:

灵踪安全CEO 谭粤飞

美国弗吉尼亚理工大学(Virginia Tech, Blacksburg, VA, USA) 工业工程(Industrial Engineering) 硕士(Master)。曾任美国硅谷半导体公司 AIBT Inc(San Jose, CA, USA) 软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学创业学院《区块链概论》课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事 。个人拥有4项区块链相关专利、3本出版著作。

关于灵踪安全:

灵踪安全科技有限公司是一家专注区块链生态安全的公司。灵踪安全科技主要通过“代码风险检测+逻辑风险检测“的一体化综合方案服务了诸多新兴知名项目。公司成立于2021年01月,团队由一支拥有丰富智能合约编程经验及网络安全经验的团队创建。

团队成员参与发起并提交了以太坊领域的多项标准草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569 被以太坊团队正式收入。

团队参与了多项以太坊项目的发起及构建,包括区块链平台、DAO组织、链上数据存储、去中心化交易所等项目, 并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。

相关推荐

图文推荐