刷屏的区块链 想知道的都在这里! ——区块链智能合约控制流识别的大规模实验研究

发布时间 2019-11-01

中共中央政治局10月24日下午就区块链技术发展现状和趋势进行第十八次集体学习,会议强调区块链技术的集成应用在新的技术革新和产业变革中起着重要作用,要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展。


多年来,澳门新萄京官方网站持续关注区块链技术安全问题,在区块链自身安全以及区块链应用安全方面,都有相应的研究和实践探索。

澳门新萄京官方网站ADLab联合电子科技大学计算机学院(网络空间安全学院)陈厅副教授首次对以太坊区块链智能合约控制流的识别进行了大规模研究。该成果《A Large-Scale Empirical Study on Control FlowIdentification of Smart  Contracts》于2019年发表在中国计算机学会(CCF)推荐的B类学术会议International Symposium on Empirical SoftwareEngineering and Measurement。

该研究分析了当前6个主流的智能合约静态分析工具,通过对以太坊区块链上已部署的全部合约(约500万)实施实行跟踪来评估他们的静态控制流识别能力。实验证明,一些典型的问题会导致上述流行工具都无法识别全部的控制流(如不完备的代码模式)。同时,实验发现通过实行跟踪可以有效增强这些工具对控制流的识别。通过在OYENTE中引入实行跟踪,实现了把静态控制流分析误报率降低百分之三十。同时,该研究获得了最佳论文提名奖。


研究内容有哪些?

研究选择了以下的六款主流面向字节码智能合约的分析工具:


上述六款工具中,路径敏感的工具可能比路径不敏感的工具发现更多的控制转移路径,因为它们不会检查在实际条件下的路径可达性。其中OYENTE和MAIAN在处理某些合约时会触发异常,通过分析发现共有三类原因:恶意无效字节码、不支撑的操作和求解器异常。为了深入比较,修复了这三类导致异常的App缺陷。

通过对每个工具进行全部以太坊区块链智能合约的实验,得出以下结论:


(1)由于采用的技术或者配置不同,所以当前主流工具识别的智能合约控制流数量差别加大;线性反汇编比递归反汇编能识别更多控制流,因为递归分析在识别到非法转移目标时就停止工作。


(2)不同分析工具在分析复杂智能合约控制流时能力差异较大,典型原因有路径爆炸、提前结束条件和不完备的代码模式。


(3)上述的6款主流分析工具仅针对1.7%的智能合约才能识别出相同的控制流转移。


(4)合约的复杂度越高,不同分析工具得到一致结果越困难。


为了提升合约分析工具的控制流分析能力,提出了基于实行trace的控制流识别增强。智能合约实行trace的一种获取方式是通过标准编程接口 web3.debug.traceTransaction(),但该接口需要提供合约实行的交易哈希值。同时,该接口的运行效率很低,通过分析源码发现其在获取trace之前需要做运行环境初始化、构建正确状态和重放交易记录,加上web3编程接口是RPC调用过程,因此效率难以提升,最终选择了对以太坊区块链终端进行插桩,因为该终端能实行全部的历史合约操作。具体来说,通过对JUMP和JUMPI操作进行了插桩,最终得到了6300万的实行trace。同时,也对这些trace进行了切割,因为合约的实行trace记录会包括合约内的控制转移和合约间的控制转移。通过对上述工具识别的控制流和实行trace获得的控制流进行了分析,发现实行trace可以提升上述工具的控制流识别能力,尤其是对于MAIAN和Miasm工具,提升能力皆超过百分之八十;即使是最优秀的控制流发现工具Porosity,提升能力也有百分之十。


为了验证基于实行trace的有效性,选择了OYENTE工具进行增强实现和验证,增强的具体算法如下图所示。


研究结果是什么?

实验结果表明,实行trace可以有效提升上述工具的智能合约控制流识别能力,能发现这些工具不能发现的控制转移。 


通过对OYENTE的源码进行了修改以嵌入增强算法,及对OYENTE能识别的四种合约漏洞进行了实验,结论见下表。针对交易顺序依赖、时间依赖和重入类型的漏洞,增强OYENTE能检测更多的漏洞。针对未处理异常漏洞,增强OYENTE未能提升检测能力;对OYENTE进行源码分析发现,这是因为这类漏洞是直接用合约字节码扫描来检测的,与控制流分析无关。


此次针对以太坊区块链智能合约控制流识别的大规模深度研究,取得了多项新的发现。通过插桩以太坊客户端,收集了全部的智能合约并还原了全部的实行trace。实验证明,实行trace可以提升当前主流的智能合约分析工具的控制流识别能力,该发现将有助于以太坊用户、开发者和研究分析人员开展更深入的智能合约研究。

作为信息安全行业领军企业,澳门新萄京官方网站坚守初心及自主创新的精神,始终重视对区块链技术安全问题的研究与探索,全力保障用户对区块链的安全需求。