“拾荒攻击”,黑客收割加密货币新玩法

“拾荒攻击”,黑客收割加密货币新玩法

“拾荒攻击”,黑客收割加密货币新玩法

文 | 小蝉依然

排版 | 大柳

拾荒攻击用一句形象的话来说就是薅羊毛。在币圈有各种形式的薅羊毛,我们这里所说的薅羊毛不同以往,而是一种黑客攻击的方式。

币圈真的是一个很有意思的圈子,如:搬砖、拾荒,这些使用频率高的词也被广泛引用。“拾荒攻击”一词的发明者相当有才,拾荒和攻击的结合,完全把两个不相关的行为结合在一起。

到底什么是“拾荒攻击”?

举一个案例:黑客自己建立一个账号,然后利用以太坊JSON-RPC接口,在公网中扫描开放的RPC端口后,构造高手续费的交易请求,一旦用户解锁账户,便会将用户余额转至黑客的账户或合约账户。

黑客攻击的方式并不局限于一种,他们越来越多的利用以太坊特性,攻击的方式越来越先进。他们的攻击方式除了离线攻击、重放攻击、爆破攻击外,现在又出现针对以太坊JSON-RPC接口的“拾荒攻击”。

知道创宇404区块链安全研究团队对“拾荒攻击”进行释义:

攻击者或求助于矿工,或本身拥有一定算力以获得将交易打包进区块的权利,并通过构造0 gasPrice,最终获取到余额不足以支付转账手续费,或勉强足够支付手续费节点上的所有以太币或其他代币。

通俗来说,在“拾荒攻击”中,黑客对攻击的目标账户也做了细分处理。他们选择 “垂直攻击”那些不够或刚好够支付gas费的以太坊钱包账户。

以太坊不足,还需要担心被盗吗?

在用户凭经验认识的钱包安全概念中,没有足够的以太坊是不能进行转账的。一般来说,用户的钱包账户至少存有0.0017ETH才能进行转帐。

由于以太坊区块大小限制问题,选定的gas费用越高,转账速度越快。因此,在用户不足以支付gas费用的情况下,大多数人认为自己的账户就是安全的。

加密钱包里的零钱是不是真的安全?

这个问题也和gas有关。有过交易经验的用户会发现,每一次交易转账,并不能把钱包里的代币全部转移,出于gas考虑,用户会选择继续持有余额。

这些有着零星Token的钱包账户,也成为黑客“选定”的攻击目标。

“零手续费”薅羊毛怎么回事?

自去年六月起,以太坊共计748个账户总计24.2ETH被零手续费转账,黑客通过JSON-RPC的方式实行“拾荒攻击”,把这些账户刮搜一空。

除以上的方式外,黑客也没有放过小币种账户,这显示了黑客薅羊毛的决心。一般情况下,被盗账户没有以太坊,是不能支付gas进行转账的。但黑客可以通过零手续费攻击的方式达到这个目的。

“零手续费攻击”的具体方式

在漏洞中,攻击者在被攻击节点构造gasPrice 为 0 的交易,等待用户解锁账户签名。攻击者同时设置一个恶意节点,用于接收这笔交易,然后将符合条件的交易打包,就可以实现 0 手续费转账。

攻击者可以利用拥有的多个矿池算力,将攻击账户的多种Token以单笔小额转移到相应的账户中。这种方式能在不需要手续费的情况下同时攻击多个账户和多种合约。

另外,在0 gasPrice中,攻击者更多的是对合约发行的Token进行转账请求,将用户账户中的token转移至合约拥有者账户中。

Gas机制已不能承担安全运行重任

以太坊的运行环境,也被称为以太坊虚拟机(EVM)。每个参与到网络的节点都会运行EVM作为区块验证协议的一部分。每个网络中的全节点都会进行相同的计算并储存相同的值。

合约执行会在所有节点中被多次重复,而且任何人都可以发布执行合约,这使得合约执行的消耗非常昂贵,所以为防止以太坊网络发生蓄意攻击或滥用的现象,以太坊协议规定交易或合约调用的每个运算步骤都需要收费......这笔费用以gas作为单位计数,也就是俗称的燃料。

当网络面对分布式阻断攻击(DDos)时,若时间节点内发起的交易量过大,基于以太坊目前的性能不能迅速处理完全,就会造成系统拥堵,致使基础的gas增加负反馈,减少交易的发生,一定程度上能保障网络的安全运行。

“拾荒攻击”的出现已经说明Gas机制已逐渐不能承担起保障网络安全运行的重任,因为以太坊自身漏洞问题凸显,矿工面临的修补工程更加浩大。

ETZ可否阻止“拾荒攻击”?

“拾荒攻击”的发起是因为利用了“零手续费”方式,那么换个角度来看,若以太坊不再需要手续费,是否就能阻止“拾荒攻击”?

以太零(EtherZero,简称ETZ)是由一群专业技术极客发起的新一代智能合约平台(公链),无论是在以太零公链上开发DAPP、部署智能合约还是用户使用,都是零手续费。在传输速率方面,以太零使用双层网络结构,使得TPS能达到上万级别。而主节点的应用,使得以太零实现了即时传输功能。

ETZ仍然采用了Gas机制,区别在于不会扣除用户产生的手续费。而“拾荒攻击”采用的零手续费交易,虽然不能激励矿工,但它在代码验证过程中依然是合法的。

零手续费交易,通常情况下只有发起者的txpool可以接收,其余节点无法同步此交易。如若需要,必须进行修改geth源码等操作。

虽然这笔交易无法进入其他节点的txpool,但对于含此交易的区块,可以达成共识。

因此综上所述,ETZ的“零手续费”生态没有修正Gas机制自身的漏洞,“拾荒攻击”依旧能发起攻击,或者说是更加容易。

“拾荒攻击”该怎样应对?

首先,“零手续费”交易是建立在其他攻击手段之上,因而防御手段应该定位在之前的json-rpc接口。

对于有被漏洞攻击的痕迹或可能曾经被漏洞攻击过的节点,建议将节点上相关账户的资产转移到新账户。

建议用户不要使用弱口令作为账户密码,如果已经使用了弱口令,可以根据1.2节末尾的内容解出私钥内容,再次通过 geth account import 命令导入私钥并设置强密码。

如节点不需要签名转账等操作,建议节点上不要存在私钥文件。如果需要使用转账操作,务必使用 personal_sendTransaction 接口,而非 personal_unlockAccount 接口。

中国成为加密比货币黑客攻击的三大重灾区之一!根据Group-IB最近发布的一份论文显示:全球加密货币交易用户受到网络攻击影响最大的三个国家分别是美国、俄罗斯和中国。加密货币行业虽然已经越来越关注黑客群体,但黑客们的技术也在不断更迭。

总的来说,0 gasPrice交易的出现,不符合区块链的设计理念,即应对矿工支付手续费作为激励。黑客栖身于矿工领域,本身就是一件不靠谱的事。客观的说,几乎任何网络都可能被黑客入侵。黑客的存在,不仅会对加密货币行业发展带来威胁,同时也是促进加密货币行业不断发展完善的助力,因为加密货币的发展速度比我们以往见过的任何事物都要快,所面临的黑客问题也要比其它行业多得多。

(以上部分资料参考自 @知道创宇404区块链安全研究团队)

Punch Line

若有完美,必有谎言!


分享到:


相關文章: