麒麟框架四度登陆Black Hat,创新区块链智能合约分析 – 作者:京东安全

在5月6日的Black Hat Asia大会上,京东牧者安全实验室分享了麒麟框架涉猎的全新研究方向——智能合约。

一、目前智能合约分析的问题

近年来,区块链技术成为热门研究领域,并且随着其在金融方向上的备受追捧,DeFi(分布式金融)产品逐渐走进大众视野,而智能合约则是DeFi产品的核心和关键。使用智能合约的DeFi产品以规则透明、交易公开、不可篡改等特点,被加以“公平放心”的印象。但公正公平并不等于安全,现有的DeFi产品还达不到令人完全放心的程度——

数据统计显示,截至2021年4月,DeFi产品的市值金额达到1090亿美元,而其中有220亿在2019-2020年被盗,占比高达市值顶峰的五分之一,究其原因,是因为人力和技术的局限性,大部分出在现在智能合约的潜在产品漏洞企业不得而知,因此被黑客钻了空子。大量未被检出的漏洞被黑产利用盗币,随着DeFi的发展,这种情况将更为严重。

目前,99%启用智能合约的区块链采用的是EVM(以太坊的图灵完备虚拟机)和WASM(EOS的智能合约标准),对此,官方也提供了对应的分析工具,但问题在于,官方工具是面向开发者而非安全研究人员的,因此侧重点在于方便开发、检测代码bug和辅助运行测试,但无法复现漏洞。

而现在市场上提供智能合约检测功能的,仅有工具类而非框架的产品,这些产品虽然已趋近成熟,但它们中大部分基于复杂符号执行的特征使得在应用上有着执行速度慢、误报率高、过度依赖人工分析(手动测试)等诸多问题。

二、麒麟——更快、更简单的智能合约分析框架

为了能够在智能合约安全分析领域进行创新突破,京东安全牧者实验室团队在原有麒麟框架的基础上进行了拓展,以支持EVM智能合约分析,使智能合约安全分析能够实现自动化和执行速度的提升,且在框架的模式下更为灵活,从源头上改变现状,填补了区块链智能合约安全分析在框架方面的空白。

在特性方面,麒麟框架有4项关键特性:只分析智能合约的字节码,而不需要源代码,简单易操作;能够在指令、代码、事件和活动等不同层面上测试智能合约;基于规则的动态智能合约分析;不仅限于EVM智能合约,还与其他基于EVM的智能合约兼容,支持现代智能合约需求。

在设计方面,麒麟框架的智能合约分析项目总体采用模块化设计,包括以太坊虚拟机内核、静态分析模块、动态调试模块及扩展模块。

其中,框架的核心为一个支持动态插桩的栈式虚拟机指令解释器,该解释器能够将以太坊虚拟机指令解析为相对应语义的python实现,在指令解释过程中,解析器将始终维护更新一个全局状态,在指令执行结束后导出该状态。

图片[1]-麒麟框架四度登陆Black Hat,创新区块链智能合约分析 – 作者:京东安全-安全小百科

静态分析模块能够对输入的智能合约交易进行解析和实例化,支持调用接口进行一系列分析,包括字节码反汇编、字节码结构分析、构建控制流图(CFG)等。

图片[2]-麒麟框架四度登陆Black Hat,创新区块链智能合约分析 – 作者:京东安全-安全小百科

动态调试模块则能够对智能合约进行指令级动态模拟和断点调试,并支持通过二进制插桩对所关注的指令地址、指令名等进行运行时检测。

图片[3]-麒麟框架四度登陆Black Hat,创新区块链智能合约分析 – 作者:京东安全-安全小百科

扩展模块主要支持的是漏洞检测功能,使用者可以利用预设检测代码进行检测,也可以使用开放接口自行编写检测代码,原本使用工具情况下需要手动复制代码检测的复杂状况得到了极大改善,现在仅需安全开发人员编写二三十行代码的小程序就能够完成检测。

在这种整体设计下,麒麟框架不仅具有很强的可拓展性,可以与AFL等模糊测试工具结合进行智能合约Fuzz,并且,由于支持二进制插桩技术,麒麟框架还能够实现对指定代码段的模糊测试。

在大会演讲中,京东牧者安全实验室还对框架功能进行了演示,他们使用覆盖引导技术为智能合约构建了一个超快速的fuzzer,对传统的二进制模糊工具AFL进行了扩展,通过下图的演示可以看到,麒麟框架模糊器在不需要合约源代码的情况下,可以有效地发现EVM智能合约中的典型漏洞。

图片[4]-麒麟框架四度登陆Black Hat,创新区块链智能合约分析 – 作者:京东安全-安全小百科

目前麒麟框架已进入测试阶段,以拥有数百智能合约的公司为例,原本一个月仅审核二三十个漏洞,需要数月完成的审核项目,现在在麒麟框架的支持下,不仅能够采用小程序这种简单方式进行分析检测,极大提升了效率,且自动化的方式还节约了公司的人力和成本。

未来,随着DeFi的进一步发展,将有越来越多的公司拥有自己的区块链和DeFi产品,在愈发完善的麒麟框架支撑下,目前因工具不便捷,而导致公司只能依靠设置各种机制阻止攻击的防范模式将会得到改善。同时,京东安全牧者实验室也欢迎业内的安全精英共同加入进来,共同对开源麒麟框架发表意见和进行补充修改(github.com/qilingframework/qiling),使区块链金融环境更安全、DeFi产品更令人“放心”。

麒麟框架是京东安全自主研发的分析开源框架,自2019年推出以来,来自全球的近80位安全研究人员主要参与开发,在Github拥有2400+的社区规模,并在IoT分析领域得以多项落地实践,中科院、腾讯、华为、苹果、Google、微软、戴尔等十余家世界头部公司和机构的安全团队,都通过麒麟框架,开展各类研究或编写安全工具。

来源:freebuf.com 2021-05-13 11:34:46 by: 京东安全

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论