区块链:区块链安全100问 | 第八篇:智能合约自动化审计介绍

前言

当前区块链技术和应用尚处于快速发展的初级阶段,面临的安全风险种类繁多,从区块链生态应用的安全,到智能合约安全,共识机制安全和底层基础组件安全,安全问题分布广泛且危险性高,对生态体系,安全审计,技术架构,隐私数据保护和基础设施的全局发展提出了全新的考验。

PART01-智能合约自动化审计介绍

随着区块链技术越来越火,并在不同的行业有所应用,如金融、游戏、版权、溯源等;其中出现过不少的安全问题,尤其是区块链的智能合约发展至今,暴露出的问题不少,智能合约的正确性和安全性面临着巨大的问题;在海量的智能合约中,最好的一种设想就是通过自动化审计来降低人工审计的复杂度。同时市场上有安全公司,也推出各自的智能合约自动化安全审计平台,那么今天我们就来介绍一下智能合约自动化审计。

海南将积极探索推进基于区块链等技术的智慧交通融合应用:日前,《智慧海南总体方案(2020—2025年)》印发。?其中,在交通运输领域,《方案》提出将加快推进全岛智慧交通一张网。包括积极探索推进基于大数据、人工智能、5G、车联网和区块链等新一代信息技术的智慧交通融合应用;构建“陆港空天”海事立体监管模式,加强全域感知能力和行动反应能力建设,提升水上交通本质安全。(中国水运报)[2020/8/19]

我们把自动化审计分为三个部分:

第一种就是特征代码的匹配;第二类就是基于形态化验证的自动化审计;最后一类是基于符号执行和符号抽象的自动化审计。

1)特征代码匹配

首先特定代码匹配。大家从名字上来看应该就能理解到,其实就是对恶意代码进行一些提取抽象,像我们之前做的代码静态检测,我们抽样成一种语义匹配,然后再去匹配它的静态源代码。

声音 | 人民邮电报:区块链契合数字政务对于数据流通安全性的需求:人民邮电报刊发文章《区块链在数字政务领域的应用方向研究》?。文章称,区块链去中心化、不可篡改、非对称加密、可追溯等特性,正好契合数字政务对于数据流通安全性和可信性的需求,通过共识机制构建一个多方参与的信任网络,进一步实现互联网与政务的深度融合,优化政府业务流程,使得政务公开真正走向阳光、透明、可信。区块链有助于建立对数据流通的信任机制,可提升服务效率并降低信息系统运营成本,同步实现信息共享和数据隐私保护。[2019/12/27]

这种审计的方法的优点是显而易见的,比如说速度很快,因为它就是对源码进行一个字符串的匹配。第二是它能够迅速地响应新的漏洞,因为这种审计方法大部分是以插件形式开发,比如出现了一个新的漏洞,我们就可以快速提交一些新的匹配模式。

动态 | 银保监:警惕打着“虚拟货币”“区块链”旗号的非法集资:10月17日,中国银行保险监督管理委员会消费者权益保护局就防范非法集资等问题发布风险提示,并表示,非法集资花样繁多,社会公众要提高警惕。近年来,非法集资又呈现“上网跨域”新特点,打着“虚拟货币”“区块链”“以房养老”等旗号,面向老年人、农村居民等社会公众进行非法集资活动。[2019/10/18]

那么它的缺点在哪里呢?我们所理解的现在的区块链都应该是公开透明的,但实际情况并不是这样,我们大概做了一个统计,目前在以太坊上其实有超过一半的智能合约是不开源的,只暴露一个OPCODE。

OPCODE的分析对于安全人员来说也面临着巨大的挑战,有些人费了十分大的力气,去逆向OPCODE,这就导致了它的适用范围极为有限。

动态 | 南台科技大学推出基于区块链的“南台币”:据新浪网消息,南台科技大学开发“南台币”,为校园第一家将区块链技术落实在校园实际日常作业场景上。它是南台科技大学为激励学生服务与学习,由学校提拨经费,以区块链数字货币的形式由教师发给学生作为奖励。学生获得南台币后可以在南台校园使用,或是自由与同侪交换。此外,南台币更可以实现于校园的行政作业与日常的校园生活圈上,包括学务作业、校务作业、校园消费、校园停车费、线上数位学习、并可结合数字身分辨识应用于学生宿舍管理等师生日常生活,以及未来延伸至校园附近商店消费、租屋等应用。使用对象含括全校师生、校内商店以及校外附近生活商圈店家。[2019/3/15]

其次就是漏报率高。因为它的一些静态审计方法其实并不和传统的静态代码审计方法一致,传统的静态审计方法,比如说APP检测,会调用库里面,确定稳定的一些函数,来对它进行审计,但智能合约里面它的一些函数、它一些特征等等,还是变化性比较多的,所以说它的漏报率会比较高。

2)基于形式化验证的自动化审计

使用形式化验证来审计智能合约安全,将EVM编译后的一些OPCODE,通过特定描述语言转化成了一个形式化的model,然后通过形式化model的验证来去判断它代码中的逻辑是否存在问题。

3)基于符号执行、符号抽象的自动化审计

基于符号执行、符号抽象的自动化审计检测出来的数据还是需要人工进行二次确认,这个工作其实是非常繁琐。

PART02-一个出色的智能合约自动化审计系统该满足什么条件?

1)自动化

要求对智能合约的安全审计,要全自动,或者至少是半自动的,即上传合约源代码或提供智能合约的token地址,即可由系统,自动化进行合约的安全扫描。并且能够按需要配置为周期调度自动进行调度审计。

2)准确性

要求对智能合约的安全审计,误报率低。

3)高效率

要求对智能合约的安全审计必须是高效的,即要求审计的时间不能太长,越快越好。

4)无风险

要求对智能合约的安全审计不会破坏或修改原有的合约的功能。

只有做到了以上4点,才是一个基本合格的智能合约自动化审计系统。

除此之外,如果要做得更加的专业,更出色,还需要满足下面的四个需求:

第一、系统具有智能合约的当前标准规范管理;这样一来,使用者可以在系统上传,下载标准规范进行参考。如果说审计出来的安全问题,能与标准规范相对应,并定位到标准规范是最好的,但是当对智能合约安全审计的标准规范不细或缺乏,做到这一点太难了。

第二、系统的使用操作体验要好;简单举例:

可以采用向导式,引导用户熟悉系统的功能操作。

具备用户自定义合约的行业分类以及所属厂商分类等。

审计出来的安全问题,能定位到行列,并至少能提供此安全问题的修正安全,当然,有自动化修正更好,具备自动化修正功能,相应提供保留原内容的版本,以便可进行回退和比较。

第三、易扩展;当前,区块链的平台技术以及安全专家针对区块链智能合约发现的安全问题的checklist是不断演进的,系统应很好的解决这方面的需求,就需要系统有一个很好的易扩展的设计要求。

第四、对安全审计结果报告展现丰富;能导出PDF,EXCEL,WORD,HTML格式是必需的,报告的展现应有图表,表格元素的体现,当然,要做好这点,需要你对系统的使用方有更多的了解,针对用户做些定制他们关注的报告就更出彩了;报告出彩的功能还可以是报告中有审计历史对比趋势分析等。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-3:34ms