居然还有这种操作?黑客猜出别人的以太坊钱包私钥获利3.5亿

北京时间5月3日凌晨,TronBank合约中的2673万TRX(价值427万元)被人盗走,在业内引起一片哗然。区块链是离钱最近的行业,安全问题尤其值得重视。除了司空见惯的EOS智能合约漏洞问题、交易平台遭黑客攻击,最近WIRED还报道了一件奇闻:有人靠猜测以太坊私钥,盗走了5000万美元的ETH。

在以太坊上,猜测私钥就像猜测彩票中奖号码一样,从统计学上来说并不现实。但就有一些用户耍小聪明,将自己的以太坊私钥设置成容易记忆的字符,方便了自己的同时,也给区块链大盗留下了可乘之机。

最近《连线(Wired)》杂志曝出了一个区块链大盗的事迹,他仅靠猜测以太坊私钥盗就走了5000万美元的ETH,然而币价暴跌,他的不义之财缩水了85%
那么,他是怎么偷窃ETH的呢?靠猜测就能破解别人的私钥,这是什么神操作?他又是怎么被揪出来的呢?今天,让我们一起走进这名区块链大盗的悲喜人生。

 01 
通过猜测私钥,累计盗走4.5万ETH

Adrian Bednarek是一名安全顾问,他的客户饱受加密货币失窃的困扰,于是Bednarek开始站在对手的角度上思考问题。

从去年夏天开始,如何窃取ETH这个问题一直困扰着Bednarek。当然了,他并不是真的想要成为一个“区块链大盗”。

不过有这么多种加密货币,为什么Bednarek要选择以太币呢?这是因为以太坊出了名的复杂性,同时以太坊各个复杂的组件都可能会带来潜在的安全漏洞,这使得以太币很容易被攻击。

不过,这里的容易被攻击是相对而言的,以太坊也并不是不堪一击。所以,Bednarek选择最简单的攻击方式:私钥。

我们都知道,以太坊的私钥是其账户所有权的证明,它可以用来管理以太币。按照以太坊的规定,私钥应该是一串很难被猜出的长达256位的数。


不过,以太坊用户为了方便记忆也可以任意设置私钥,就比如说设置为1,但这种简单的私钥很容易被猜出来,因而安全性很差,往往不被人们所采用,人们通常都会使用钱包软件生成有随机性的私钥。

然而,出人意料的是,通过检索区块链上存储的以太币交易数据,Bednarek发现还真的有人使用这种极其简单的私钥进行交易。

不过,这个账户中的以太币已经被转走了,几乎可以肯定这笔钱是被区块链大盗偷走的,他赶在Bednarek之前偷走了这笔钱。与比特币等其他加密货币相同,如果有人知道了你的以太坊私钥,他就能从私钥中计算得出你的公钥以及账户地址。

所以,区块链大盗可以使用这个私钥转走你账户中的以太币余额,而区块链上验证交易的矿工不会也不能核实发起交易的是不是账户真正的主人。

这个发现激起了Bednarek的好奇心。所以他连续尝试了几个简单的私钥:2、3、4,然后又试了10、20、30这样复杂一点的私钥,不过所有这些私钥对应的账户余额都被清空了。这么看来,靠猜测私钥盗窃以太币并非个案。

为了捕捉更多区块链大盗的信息,Bednarek和他在安全咨询公司Independent Security Evaluators的同事们编写了一些代码,在云服务器上自动化地检查了上百万个简单的私钥。

Bednarek的团队将这次实验的结果写成了一篇论文,并在周二发表了出来。论文中讲到,Bednarek的团队发现在过去的几年中,不断有用户将自己珍贵的加密货币存储在几百个私钥非常容易被猜出来的账户之中。

同时,他们还揪出了一个“区块链大盗”。这个大盗已经使用这种猜测私钥的盗窃方法偷走了近4.5万枚以太币,按照当时的币价来算,这笔不义之财价值5000万美元。

“这个区块链大盗做了和我们一样的事情,只不过他捷足先登了。”Bednarek说, “我们不知道这个区块链大盗背后是一个人还是一个团伙,但可以肯定的是,他花费了大量的时间和算力来监视每一笔以太币交易,检测每一个以太币钱包,尝试着去偷走以太币。”

 02 
猜对以太坊私钥等于沙里淘金

为了更好地解释区块链大盗是如何偷钱的,首先我们需要说明猜对一个随机生成的以太坊私钥的概率。

以太坊的私钥是一个256位的二进制数,因此猜对它的概率是2的256次方分之一,数值上大约是10的77次方分之一,也就是说分母是1后面77个0。

如何来理解这个量级呢?Bednarek做了一个绝妙的比喻,猜对一个随机生成的以太坊私钥的概率无异于在沙滩上找到别人藏好的一粒沙子。

我们常说,不怕神一样的对手,就怕猪一样的队友。虽然以太坊本身的私钥机制足够安全,但这架不住有用户为了省事选择那些易于猜测的、安全性极低的私钥。

Bednarek发现了很多这样的现象,当然了,除了用户自身的责任以外,钱包软件也有责任。有些钱包软件由于编码错误导致其并没有按照给定的长度生成密钥,而有些钱包软件高估了用户群体对区块链的理解程度,以至于让一些没有经验的用户直接选择了自己好记的私钥。

最坏的情况是,钱包软件的开发人员故意破坏了私钥随机生成的过程,以便后期猜出用户的私钥并盗走用户的以太币。

为了找到那些私钥安全性较差的地址,Bednarek的团队最终扫描了340亿个以太坊地址。他们将这个过程称为“以太币搜索(ethercombing)”,就像在沙滩上寻找一粒沙子一样,只不过在以太币搜索中,私钥的排列更加无序,要找的目标也更多。

最终他们找到(准确地说是猜出来)了732个曾经存有过以太币但最后余额被清空了的账户。虽然其中一些账户余额清空无疑是账户主人所为,但Bednarek指出,自2015年以太币正式面世以来,以太坊上发生过很多起因私钥安全性较差导致的以太币失窃事件,他找到的这732个账户可能只是冰山一角。

《居然还有这种操作?黑客猜出别人的以太坊钱包私钥获利3.5亿》
▲ 被侵入的以太坊账户分部

与此同时,在那些被清空的账户中,Bednarek发现了一个很有趣的现象,有12个账户是被同一个区块链大盗清空的。

也就是说,这12个账户中的以太币余额都被转移给了同一个账户,而这个账户的以太币持有量达到了惊人的4.5万个。即使在以太币价格已经跌得惨不忍睹的今天,这些以太币仍价值770万美元。

 03 
高手过招,招招致命

区块链大盗已经偷了这么多钱,现在他有没有金盆洗手呢?

带着这个问题, Bednarek又做了一个实验。他给一个曾被区块链大盗清空过的私钥安全性较差的账户中转入了价值1美元的以太币。出乎所有人意料的是,仅仅过了几秒钟,这笔钱就被区块链大盗收入囊中。
紧接着,Bednarek给一个未被使用过的私钥安全性较差的账户中转入了价值1美元的以太币,短短几秒内这笔钱也被清空了。不过,这次收款人的账户与上次不同,这个账户只持有价值数千美元的以太币。

在以太坊区块链的未决交易(Pending Transactions,就是那些发起了但还没被打包到区块链上的交易)中,Bednarek发现有另一个区块链大盗也在抢这1美元的以太币,只不过晚了一步,没有抢到。

这么看来,这些区块链大盗似乎都有一个数量庞大的,预先生成公钥私钥列表,并以非常人所能做到的速度自动化地扫描这些账户。

事实上,研究人员在查看区块链大盗在以太坊区块链上留下的“罪证”时发现,在过去的三年中这个大盗从数千个以太坊账户中盗取了以太币,但他从未有过向外界转移以太币的记录, Bednarek认为这可能是一起自动执行的以太币盗窃事件。

在2018年1月以太币币价达到顶峰时,区块链大盗的账户持有3.8万个以太币,在当时价值超过5400万美元。从那时起,以太币价格一落千丈,区块链大盗的财富也缩水了约85%。

“你会为他感到难过么?” Bednarek笑着问道, “这个区块链大盗窃取了大量的财富,但随着市场的萎靡,这些不义之财也在大幅度缩水。”

区块链的匿名性设计对实验造成了一定的干扰。尽管Bednarek对区块链大盗的犯罪事实一清二楚,但他没有任何办法来找出这个人的真实身份。

 04 
私钥的安全性

除了无法揪出区块链大盗的真实身份以外,Bednarek也无法识别是哪些钱包软件由于故障或损坏生成了安全性较差的私钥,他只能看到这些安全性较差的私钥被创造出来并因此导致以太币失窃的证据。

Bednarek说:“我们可以看到用户的以太币失窃,但我们不能明确这是哪个钱包软件的责任”。对于区块链大盗,目前尚不清楚他的不义之财是否都来源于那些私钥安全性较差的账户,因为除此之外,他还可能有其他的盗窃技巧。

比如说,猜测“脑钱包(Brain Wallet)”生成的账户私钥。脑钱包只需用户提供几个单词,它就会自动生成私钥和公钥,乍一看感觉这种方法非常方便,但是这些单词生成的公钥私钥比完全随机生成的更容易被暴力破解。

在2017年,一个安全研究人员团队发现一位区块链大盗通过攻击脑钱包总共偷走了2846枚比特币,即使在比特币价格大幅度跳水的今天,这些比特币的价值仍超过了1700万美元。

无独有偶,在2015年年底,一个区块链大盗通过攻击以太坊上的脑钱包偷走了近4万个以太币,和上文中那个区块链大盗“不分伯仲”。

Bednarek的团队还没有在比特币区块链上重复这样的实验。不过,Bednarek已经对100 个左右私钥安全性较差的比特币账户进行了一次抽查,他发现相应账户的余额全部被清空了。

但在比特币上并没有出现以太坊上一名区块链大盗独大的现象,可能是因为比特币作为第一大加密货币,所以在比特币区块链上盗贼之间的竞争也更加激烈,因而赃款的分布也就更加去中心化。

Bednarek这次的实验给钱包软件开发人员上了生动的一课。开发人员应该仔细审核钱包软件的代码,以找出可能会导致生成的私钥安全性较差以及有其他风险的漏洞。

同时,对于用户来说,应该谨慎选择钱包软件。 “因为在你的加密货币被盗后,你不能打电话给服务台,要求他们撤销交易。它们被盗走后,就再也找不回来了。”Bednarek说, “所以说,人们应该选用值得信赖的钱包软件,并从官网等可靠的来源处下载它们。”

总而言之,不要让你心爱的加密货币成为交给区块链大盗的学费。

点赞