区块链威胁感知和溯源研究现状及趋势
李海琛熊钟权刘成群
摘要:近年来,以比特币、以太坊为首的区块链数字货币平台发展迅速,但同时也经常遭受到别有用心者的恶意攻击'造成巨大的经济损失,所以如何高效、迅速、准 确的发现威胁并追踪溯源到真正的攻击者一直是区块链安全研究的热点问题。在这里我们报告了区块链威胁感知和溯源的研究现状并说明了其研究趋势。
关键词:区块链威胁感知;区块链溯源;研究现状及趋势。
1引言
区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够 实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology) [1]。区块链具有典型的块-链存储结构,在不可信的竞争环境中建立了独有的信任机制,是未来发展数字经济、构建新 型信任体系不可或缺的技术之一。区块链主要具有以下特点:(1)安全可信。区块链使用数学方法来建立节点间的信任,相较于传统分布式系统采用中心机构方法,在可信度和可靠性上有了很大的提升。(2 )时序数据。区块链采用带有时间戳的链式区块结构来存储数据,使 数据具有可验证
性和可追溯性。(3 )去中心化。区块链中不存在中心节点,每一个节点共同参与构建与维护区块链,即使某一些节点出现问题,也不影响全局共识的达成。在区块链基础上建立的以太坊同样发展迅速,以太坊用户增速极快、交易极其活跃,但是与此同时,巨大 的经济收益也导致了层出不穷的进攻。2016年 6月17日,发生了 theDAO攻击事件。DAO,
责任编辑:曹军Decentralized Autonomous Organization(分布式自治组织),是一个基于以太坊区块链平台的迄今为止世界上最大的众筹项目,其目的是让持有theDAO代币的参与者通过投票的方式共同决定被投资项目,整个社区完全自制,并且通过代码编写的智能合来实现。TheDAO(被攻击前拥有1亿美元左右资产)遭到攻击,目前己导 致300多万以太币资产被分离出TheDAO池。这都是因为TheDAO智能合约的源码存在着重大缺陷,有一个splitD A O函数它的执行逻辑是先转账后扣钱,在向合约进行转账时,会隐式调用合约的默认函数,这个合约是个人的,攻 击者在合约的默认函数中又调用合约的逻辑要求转账,由于扣钱逻辑是在转账之后的,攻击 者这样操作就可以实现转账多次而绕过检查。攻击者通过此函数中的漏洞重复利用自己的D A O资产来不断从TheD AO项目的资产池中分离D A O资产给自己。
2018年1月26日,Coincheck交易所被攻击,黑客攻破服务器访问交易所的热钱包(指 与互联网连接的攻击方式)盗取价值5.3亿美 元的新经币(NEM)。2018年2月10日,意大 利数字货币交易所BitG rail在其网站上宣布,因一起欺诈交易,损失了总价值约1.7亿美元的N A N O币。20丨8年3月7日,“以
太坊节点
• 47 •
总第411期RESEARCH ON TELECOMMUNICATION TECHNOLOGY2020年第3期
持续两年偷渡漏洞”。起因是攻击者利用以太坊
节点Geth/Parity RPC A P I鉴权缺陷,攻击者扫
描暴露在公网并开启RPC A P I的节点,不断重 复调用eth_ndTransaction尝试将受害者余额
转入攻击者钱包,如果正好盗取节点调用unlockAccount,在一定时间内操作无须再次输
入密码,此时攻击者的eth_ndTransaction即
可执行,攻击发生。2018年3月30日,加密 货币交易所O K Ex发布公告称,有异常账户通
过大量异常操作,导致B T C季度合约价格异常。4月9日,印度加密货币交易所Coincure被 盗350万美元比特币,官方宣称问题出在私钥
管理。同月22日,智能合约B E C美链被攻击,原因是合约中batchTransfer批量转账函数存
准备 英文在漏洞,该函数参数包括转账金额v a lu e以及 多个地址作为接收者,对于扣除转账金额的一
行代码没有考虑溢出问题,只要攻击者的value
给的足够大,批量转账扣除的金额因为整数溢
出变成了一个很小的数,能顺利通过余额校验
并只要这个很小的数作为代价就能批量转账大
金额的value。两日后,智能合约SM T遭受与
B E C类似的溢出攻击。2018年4月25日,以太网钱包MyEtherWallet遭遇D N S劫持攻击,该攻击允许黑客将用户重定向到恶意版本的网
站并盗用他们的私钥。2018年5月23日,智 能合约E D U出现重大漏洞,,导致无法抛出异
常并回滚交易,使得攻击者不需要私钥即可转
走账户中的EDU。6月10日,韩国交易所系统
被黑客入侵,损失超过了 4000万美元。8月7 日,Bancor交易所泄漏了超级用户的私钥,特 殊权力被滥用,超2000万美元被盗。2019年,攻击行为愈演愈烈,超百起智能合约漏洞事件(累计损失千万美元以上)、EOS D A pp攻击事件
逾60件。表1中列举了以太坊上部分攻击事件。但区块链D A pp也愈发繁荣,运行在ETH、EOS、波场等公链上的D A p p在2019年就达到了3000个。所以,研宄区块链上威胁发现与追踪溯源技术很有必要。
由于数据或者资产在交接转储过程中的状
态是不可知的,用户在需要某特定数据时无法
判断其来源和可靠性,这就凸显了对追踪此类
数据的起源需求,以判断其是否可信。如果可
以实时掌控区块上的交易动向,那么就可以保英语口语练习资料
障链上的财产安全,有助于区块链健康、安全 的发展。
文章结构安排如下:第二部分具体介绍了
当前区块链威胁感知和溯源的研究现状:第三 部分说明了区块链威胁感知和溯源的研宄趋势。
表1以太坊上部分攻击事件
Date金额事件
fossil1/26/20181080.6
Coincheck交易所被
攻击
2/10/2018917.4
BitGrail 交易所 XRB
被盗
3/7/2018825.607以太坊“偷渡”漏洞
3/30/2018409.929
O KEx交易所遭受异
常交易4/9/2018429.251
Coincure交易所钱
包被盗
4/22/2018640.767
智能合约B E C美链被
攻击
4/24/2018708.875智能合约SM T被攻击4/25/2018707.062
MyEtherWallet钱包网
站被攻击
5/23/2018651.636智能合约E D U被攻击6/10/2018594.345Coinrail交易所被盗
6/20/2018541.015Bithumb交易所被盗
7/8/2018503.199
Bancor交易所私钥泄
露被攻击
11/27/20195000黑客攻击UpBit交易所
8/2019/Zerocoin 攻击 Citex
• 48 •
2研究现状对单个智能合约进行污点分析,无法分析多个智能合约之间存在的漏洞。并且Etherscan列出
2.1威胁感知研究现状
2.1.1基于静态分析的威胁感知技术
静态分析是对软件的原始数据进行分析,比如代码、A P I调用等静态特征,这种检测手
段相比于动态检测,对于硬件资源的需求更少,分析速度较快,同时也更适用分析大型软件,并且其相应的静态特征越多,结果就越精确。静态分析最常见的就是符号分析见图1及图2。
Johannes等人[2]提出了一种在给定的二进
制字节码的情况下自动进行合约漏洞识别和漏
洞利用的工具—TEETHER。该工具在合约中
寻找有漏洞的执行轨迹,然后利用符号执行技
术自动寻找漏洞。具体方法是该工具在合约的
控制流程图中确定了导致关键指令的路径,其 中指令的参数可以由攻击者控制。找到路径后,该工具利用符号执行将此路径转换为一组约束。使用约束求解,就可以推断出攻击者必须执行
的事务才能触发漏洞。TEETHER的局限性在于:①TEETHER目前只能对合约进行独立的
分析,而无法分析跨合约的行为,即无法对多
个合约协作导致的漏洞进行分析。②搜索漏洞时,将合约的存储初始化为空状态。这使他们
能够结合共享相同代码的合约进行分析,并将 工具运行次数从784,344减少到38,757次。但 是,这是以不精确的结果为代价的。
Julian等人[3]提出了一种结合符号执行和
污点分析的工具—Osiris,自动准确的找到以
太坊智能合约字节码中的整数溢出错误,包括 算术错误、截断错误和符号转换错误。Osiris
基于符号执行发掘漏洞,并利用污点分析来减
少误报,如识别整数错误时的预期检查。该工 具检测性能良好,在超过了120万个智能合约
crixus上检测到了 42108个合约有整数错误,此外,更是发现了一些未知错误。但是O siris只能针了超过90,000个基于Ethereum区块链的ERC-20令牌智能合约,但O siris分析了其中的495个样本,只是冰山一角。
Sergei等人[4]提出了一种可以检测智能合约中代码问题的可扩展的静态分析工具
一SmartCheck。该方案使用A N T L R自定义Solidity语法将Solidity源代码转换为X M L生
成树作为中间表示(IR),再用X Path查询来检
测漏洞。此方案可以反映Solidity漏洞的当前
状态,但该方案也有其局限性,一些错误的检
测需要更复杂的技术,仅仅用当前的方法不可
行。
图1静态符号执行的过程内分析
图2静态符号执行的全局分析流程
• 49
•
环保英文
总第411期RESEARCH ON TELECOMMUNICATION TECHNOLOGY2020年第3期
2.1.2基于动态分析的威胁感知技术
相比于基于静态分析的检测技术,基于动
态分析的检测技术能够发现运行时环境中引入
的漏洞,并且能够识别静态分析中可能是误报
的漏洞,因此基于动态分析的威胁感知技术的
准确性更高。该方法主要是在程序运行时来观
察其动态系统特征,结合先前设计好的工具来
进行检测。虽然攻击者可以对合约代码进行处理,改变攻击方式。但对于他的攻击行为是无万圣节手抄报
法进行模糊处理的,即攻击者的攻击行为无法
被隐藏,动态分析的流程见图3。
图3动态分析流程familiar的意思
Thom as等人[5]通过调查以太坊区块链中
有关智能合约交易的信息,通过对from、isError、gasUd、v a lu e等字段的分析来判别是否为恶
意交易。此外,他们提出了一个实时智能合约
监控系统—DappGuard。该系统有三大模块,分别是EthWorldModel、Blockchain Monitor Nodes、TransactionRiskAnalyzer,主要的检测
功能集成在T R A模块,利用O yente符号执行
系统来检测漏洞,超出功能外的安全问题用Testnet仿真或者是规则引擎的应用来解决。由于该系统是利用O yente进行漏洞检测的,所以 具有同O yente—样的局限性,比如检测耗时、容易误报、不支持对ERC20令牌的跟踪分析等。
SHELLY等人[6]提出了一种全新的分析工
具----ECFChecker,该工具通过定义一个新的
属性,即有效回调(ECF)来检测重入漏洞。
当存在没有可以实现相同状态转换的回调的等
效执行时,执行是ECF。如果合同的所有可能
执行都符合ECF,则整个合同被视为ECF特征。因此,非E C F合同被认为易受重入攻击的影响,因为回调会影响合同执行时的州过渡。一般来说,静态证明E C F财产是不可判定的。但是,格罗斯曼等人还开发了一个动态检查器,可以 显示交易是否违反了合同的EC F属性。但是这种方法并未涵盖所有的重入式攻击。尽管基于动态分析的检测技术能够检测出更多的威胁与漏洞,但往往所需要的资源也是很多的,链上 的资源也是有限的。同时,随着智能合约代码功能的复杂化,动态分析的执行路径也越来越多,所花费的时间也在增多。
表2工具之间的对比差异
工具分析方式技术缺陷TEETHER静态分析符号执行误报高
Osiris静态分析污点分析
检测错误
范围SmartCheck静态分析Xpath
不能检测
所有错误
DappGuard动态分析符号执行
trouble is a friend歌词误报高、
速度慢
ECFChecker动态分析ECF
时间消耗
大2.2威胁溯源技术研究现状
溯源技术属于较为综合的技术,结合了共识算法、隐私保护问题、实际落地应用及区块链与原有技术结合创新,目前针对区块链安全的溯源较少,最常用的方法是在感知威胁的基础上进行溯源分析。Androulaki等[7]通过对交易数据分析,首次提出找零地址(Shadow Address)这一概念,并对比特币隐私保护机制进行了评估,通过模拟实验得出“即使用户采用了比特币推荐的隐私保护机制,仍然有超过四成的用户行为可被识别”的结论。
R on等人[8]对截至2012年5月13日的所 有比特币交易数据进行了分析,建立图表,对 持有多个地址的实际控制人或群体引入了‘‘实
•
50 •
体”(Entity)概念,使用此信息收缩交易图,
准确了解用户财务活动,通过基于并查集算法
的交易图模型得到“实体网络”(Entity Nerwork)及网络内各实体的统计特征,利用统计特征能
够对网络中交易的流向等信息有很好的掌握,
例如发现一些交易的子图包含许多看起来奇怪
的链和分支合并结构,但其中很大一部分可在
几个小时内通过数百个临时中间账户进行转账
或者分成许多小额款项,这些款项发送到不同
的账户以便不久能够在新账户中重新组合成基
本相同的金额,以此躲过一些追踪方案;Reid
等人[9]通过非平凡拓扑结构建立了“交易网络”及“用户网络”,分别对网络中呈现的比特币流
向进行去匿名化攻击,以探究比特币系统伪匿
名性带来的隐私问题,得出大型集中式服务(例 如交易所和钱包服务)能够识别和跟踪相当一
部分用户的活动情况,如果大型机构间相互合作,还能大大扩大获得的信息量。邢尧[10]使 用比特币交易数据建立了两种交易网络,利用 平台Mt.G o x记录的用户数据和区块链上记录
的交易数据进行交叉匹配,对一部分收支交易
mcl网络样本使用聚类分析的方法进行研究,并与 Mt.G o x数据集和整体收支交易网络匹配出的
结果进行对比,从复杂网络角度对同一用户所
使用的钱包地址之间的关联度进行了定性研究,一定程度上实现了比特币交易网络的去匿名化。
D i等人[11]提出了面向比特币的特定资金
流向的可视化分析方法Bit Cone View,呈现一 笔或多笔交易输出的在后续交易中的金额及纯度,为探测可能存在的比特币洗钱体系提供帮助;M6s e r等人[12]利用逆向工程的方法,对 Bit Laundry等三种比特币混淆服务提供的匿
名性进行了研究,总结了比特币网络中潜在的
洗钱问题及应对方法;3研究趋势
传统的区块链平台威胁感知技术大多都是
静态感知技术,无法实时地感知威胁,目前针 对于区块链的攻击覆盖率低,例如重入攻击就
会避过现有的这些威胁感知技术,这样就会对
链上用户造成巨大的经济损失。针对区块链上
实时威胁发现的需求,应当同时结合静态感知
和动态感知技术,静态分析技术对合约进行初
步检测与处理,排除掉基本的代码级错误,并 为动态分析技术提供关键信息,再利用动态分
析技术进行实时威胁发现,实现区块链上的威
胁发现定位,这将是未来研究的主要方向。对 于目前的区块链平台上威胁追踪溯源技术,由
于技术较少,基本只能在威胁发生后检测到威
胁发生的账户而已,而且溯源十分困难。
智能合约的代码在链上是字节码状态,人 工无法有效解读,一旦部署就无法更改,且智 能合约的所有者也都是非实名状态。链上用户
是非实名的,而且可以“委托”其他账户或合约
进行攻击。这导致溯源难度很大。采用建立图
数据库的方案,利用加入数据库中的信息和图
相关的特性进行溯源,可以达到一定的溯源成效。因此,威胁追踪溯源的主要研究方向将是
如何在链上用户非实名的情况下,准确溯源到
真正的攻击者。
参考文献
[1]中国信息通信研究院和可信区块链推进计划.区
好主意的英文块链发展白皮书(2019)
[2] K r u p p J, R o s s o w C.t e E t h e r:G n a w i n g at E t h e r e u m
to A u t o m a t i c a l l y E x p l o i t S m a r t C o n t r a c t s[C]//27t h
{U S E N I X}S e c u r i t y S y m p o s i u m({U S E N I X}
S e c u r i t y18). U S E N I X A s s o c i a t i o n,2018:
1317-1333.
[3] C h r i s t o f F e r r e i r a T o r r e s, J u l i a n Schiitte, R a d u State.
2018.Osiris: H u n t i n g for I n t e g e r B u g s in E t h e r e u m
• 51•