通过猜测以太坊“弱私钥”窃取大量以太币

图片.png

去年夏天,Bednarek正在思考如何窃取以太币。他是一名安全顾问; 当时,他正在为一个客户工作,该客户从事的是盗窃猖獗的加密货币行业。Bednarek被以太坊吸引,尤其是因为它臭名昭著的复杂性和那些移动端可能产生的潜在安全漏洞。

但他从最简单的问题开始:如果以太币的所有者用私钥存储他们的数字货币,私钥是一串不可猜测的78位数字串,用于保护隐藏在某个地址的以太币,它的值会是1吗?

令Bednarek惊讶的是,根据记录以太坊所有交易的账本,他发现这个非常简单的私钥实际上曾经持有以太币。但是资金已经被转出了——几乎可以肯定是一个小偷,他早在Bednarek之前就猜到了一个值为1的私钥。毕竟,就像比特币和其他加密货币一样,如果有人知道某个以太坊私钥,他们可以使用它派生密钥得到相关公钥、地址。然后,私钥允许他们向任何地址转账,就像他们是合法的所有者一样。

这个发现激起了Bednarek的好奇心。所以他尝试了几个连续的私钥:2,3,4,然后再多几十个私钥,这些私钥中的余额都被清空了。因此,他和安全咨询公司Independent Security Evaluators的同事们编写了一些代码,启动了一些云服务器,并尝试了几十亿。

“这里有一个小偷,他聚敛了这些财富,但是当市场崩溃的时候,他又失去了所有财富。”——Bednarek

在这个过程中,正如他们周二发表的一篇论文中所详述的那样,研究人员不仅发现加密货币用户在过去几年中已经使用数百个易于猜测的私钥来存储他们的财富,而且还发现了他们所称的“区块链强盗” “。一个以太账户似乎使用同样的猜私钥技巧窃取了4.5万以太币——价值一度超过5000万美元。

“他做着和我们一样的事情,但他超越了我们,”Bednarek说。“不管这些人是谁,他们都花了大量的计算时间来寻找新的钱包,观察每笔交易,看看他们是否有私钥。”

梳理一望无际的海滩

为了解释“区块链强盗”是如何工作的,需要先了解猜测随机生成的以太坊私钥的几率为1/2 256 。这个分母非常大约是宇宙中原子的数量。Bednarek将识别随机以太坊私钥的任务与找海滩上的沙粒进行比较,这相当于在“十亿个”海滩中找到两个相同的沙子。

但是当他观察以太区块链时,Bednarek发现一些人将以太币储存在更简单、更容易猜测的钥匙上。他说,这可能是由于编码错误而导致密钥仅按预期长度的一小部分切断私钥,或者让没有经验的用户选择自己的私钥,甚至包含恶意代码,破坏随机化过程的以太坊钱包(使钱包的开发人员很容易猜测密钥)造成的。

Bednarek和他的ISE同事最终扫描了340亿个区块链地址来寻找这些弱私钥。他们称这个过程为梳理以太坊,就像梳理海滩一样,在以太坊的巨熵中寻找更多可以被猜测的沙粒。他们最终找到了732个可以被猜测的私钥,这些私钥曾一度有余额,但后来被清空了。尽管其中一些转账毫无疑问是合法的,但是Bednarek猜测,自以太坊在2015年推出以来,在被窃取资金的弱私钥钱包总数中,732只是一小部分。

与此同时,在那些一无所有的地址中,Bednarek很感兴趣地看到有12个地址似乎被同一个“强盗”清空了。他们的资金被转移到同一个帐户,现在拥有45000个以太币。按今天的汇率计算,价值770万美元。

梳理以太,转走以太

Bednarek试图将1美元的以太币放入一个以前被“强盗”清空过的弱私钥地址。在几秒钟内,它被转移到了别的帐户。然后Bednarek试图将1美元的以太币放入一个新的,以前未使用的弱私钥地址,它也在几秒钟内被清空,这次被转移到一个只持有几千美元一台币的账户。但是,Bednarek可以在以太坊区块链的待处理交易中看到,居然还有别的“强盗”也试图抓住它,但在几毫秒内被击败了。似乎有一个庞大的,预先生成的密钥列表,并以非人的自动速度扫描它们。

事实上,当研究人员查看“区块链强盗”在以太坊账本上的记录时,它在过去三年中已经从数千个地址中窃取了以太币,但从未向外转账过,Bednarek认为这可能是一场自动化的以太币盗窃事件。在2018年1月以太坊汇率达到顶峰时,该“强盗”的账户持有38,000以太币,当时价值超过5400万美元。从那时起,以太坊的价值一落千丈,将“区块链强盗”的财富蒸发了约85%。

“你不为他感到难过吗?”Bednarek笑着问。“这里有个小偷,他积累了这些财富,然后在市场崩盘时把它们几乎赔光了。”

尽管追踪这些转账,但Bednarek并不知道“区块链强盗”可能是谁。“如果是像朝鲜这样的国家行为体,我不会感到惊讶,但那只是猜测”,他指的是朝鲜政府近年来针对加密货币交易所和其他受害者发动攻击,近年来窃取了价值超过5亿美元的加密货币。

弱私钥

Bednarek也无法找到产生弱私钥的原因或恶意钱包。相反,他只能看到弱私钥的使用和由此导致的盗窃的证据。他说:“我们可以看到人们被抢劫,但我们不能说哪个钱包软件有责任,”。特别是“区块链强盗”,目前尚不清楚简单的弱私钥盗窃是否占其被盗财富的大部分。“强盗”本可以使用其他的技巧,例如猜测“脑钱包”的助记词 - 用可记忆的单词代表私钥,这些单词比完全随机的私钥更容易暴力破解。一个安全研究小组在2017年找到了证据,有人通过这种方式窃取了2,846个比特币,按当前汇率价值超过1700万美元。在2015年底,一宗以太坊脑钱包盗窃案就带走了4万个以太,几乎和“区块链强盗”一样多。

ISE尚未设法在原有的比特币区块链上重复实验。但是Bednarek确实对大约100个比特币弱钥匙进行了一些抽查,发现相应钱包资金也全部被盗了,尽管没有像“以太坊强盗”这样明显的大鱼,可能是以比特币为目标的盗贼更激烈、更分散的竞争的证据。

Bednarek认为ISE ether的经验教训是,对于钱包开发人员来说,要仔细审计他们的代码,以发现任何可能截断密钥并使其容易受到攻击的bug。用户应该注意他们选择的钱包。“你不能打电话给服务台,让他们撤销交易。当它消失时,它就永远消失了。“人们应该使用可信钱包,并从可信来源下载。”抛开汇率的波动不谈,区块链大盗都已经足够富有了。

*文章为作者独立观点,不代表BSCEC立场

转载此文章须经作者同意,并请附上出处(wired)及本页链接。原文链接 https://www.wired.com/story/blockchain-bandit-ethereum-weak-private-keys/

白帽汇安全研究院转载2019-04-24 19:04:57 wired 1830