比特币赌博网站Primedice如何被黑客坑走百万美金

Unknown view 25 2015-7-2 09:45
share to
Scan QR code with WeChat

张爱玲说:出名要趁早。而比特币这个年轻人却时刻在提示我们:树大招风,高处不胜寒。

一个神秘创始人,一群狂热支持者,比特币在倍受赞誉的同时饱受攻击与追杀。

黑客利用比特币赌博网站Primedice网上赌场的RNG系统漏洞,导致赌场损失价值100万美金的比特币此事虽然是去年发生的,然而最近Primedice主动站出来公开分享了这段惨痛经历,希望同行们引以为戒。

比特币赌博网站Primedice如何被黑客坑走百万美金 (1)

这是悲伤的故事,请大家自备纸巾

2014年8月

在Primedice第三版发布不久后,我们的团队遇到威胁着我们网站生存的竞争对手。尽管我个人只有非常有限的编程经验,但是我们团队具有接近两年的比特币赌博网站建立经验。巨大的压力之下同时也为了避免进一步的延误,我们经过短短一周的内测beta之后就发布了新版。

这场抢劫是从两个不寻常的账户开始的,Nappa和Kane。我们发现在这两个账户发现了一些不正常的赌博模式。Kane自动套现,我们重新观察了Nappa的赌注,发现他们极其可疑却又无法找出问题出在哪里,于是在稍微延迟了其兑现之后进行了简单的电子邮件交流。

2014年9月

在被我们延迟支付了之后,这名开发者似乎受到一丝惊吓,于是他在几周之后创建了一个名为Hufflepuff的新账户。Hufflepuff是在Primedice上出现过的最大的赌徒,他经常连续每秒赌注在价值8000美元比特币以上,并持续数小时。我们整个团队都非常震惊Hufflepuff持续地打败庄家(正常情况概率很低1%),随时间的他推移获得越来越多的收益。

我们高度怀疑他奖金收益的来路,并一次又一次地限制他的账户以进行调查,然而每次我们的开发者都没有发现任何违规操作。我们没有证据证明他是作弊,因此无法以适当的理由长时间延迟他的提款要求。

另一方面,出于驱使他继续玩下去的强烈动机,我们立即便将奖金支付给他。

我们对每一种可能性进行了大量的研究,运行模拟程序但最终我们得出的结论是:他只是难以置信的幸运。

惊人发现

在Hufflepuff提光了账户中超过2037比特币奖金大约两天之后,我们的主要开发人员发现有少数账户共享同一台服务器上的种子,由此发现了Hufflepuff的攻击利用程序exp。

要了解Hufflepuff是如何打败我们的系统前,首先需要了解一下公平系统(RNG)是如何运作的:

一个用户在下注前得到一串加密随机值(服务器种子),同时必须提交自己的随机值(客户端种子)。这两个随机值结合,用于确定最终输赢。然后用于赌局的随机加密的随机值将在下注后交给用户,以保证他们的赌局是不受操纵的。

你可以在这里找到详细深入的解释:

https://primedice.com/verify 和 http://dicesites.com/provably-fair

我们网站的部分功能是发放解密服务器种子(以向用户保证没有赌局的情况发生),放置一个新的随机种子同时丢弃旧的种子。

Hufflepuff发现了一个可以混淆我们服务器的方式,使其发放一个同样活跃的解密服务器种子。这个方式就是通过发送大量无法在短时间内处理完成的请求,而每分钟数百个请求即可。Hufflepuff便可知晓他究竟是否会赢,从而决定要不要参与。

在疯狂地检查我们的服务器之后,EUREKA!!!我们发现了这一问题。我们怀疑可能存在一些问题,而最终发现了上面描述中时间攻击的可能性。我们的数据库中的种子都不活跃,同时都连到了Hufflepuff账户。由于这些薛定谔种子,看起来或许无用的种子都连接到同一个账户,表示着有需要获得种子的海量请求。

似曾相识 Dj vu

不幸的是,我们在Hufflepuff提现2400+比特币(那时大约可兑换100万美元)后发现这个exp的。鉴于比特币的特性(被指世界最危险货币)我们除了认输别无他法。我们通过Hufflepuff的比特币论坛账户与其进行沟通,要求其返还奖金,然而这样的回击适得其反。

事实表明,我们开发人员对故障的补丁并不恰当。为了回复我们的要求,Hufflepuff创建了一个新账户名为Robbinhood,然后迅速绕过补丁又多赢了2000+的比特币。然而这次他无法提现超过50或者60比特币,因为我们已经没有更多的金币了。

比特币赌博网站Primedice如何被黑客坑走百万美金 (2)

不久之后他私下向我们发信息:

你提出的交易被我拒绝了。你的要求显然是可笑的。我很高兴离开你,但如果你打算继续,我愿奉陪到底。我想你并不愿意继续下去的,对吧。我真的很享受这XX(不和谐)。你的举动。

哦,顺便提示一下,还有一些没发放的提款你需要去处理一下。

这一天赌场没有赢

透明度证明及调查目的

Hufflepuff的存款地址:

https://blockchain.info/address/1BiPXmDrHm7VXZnWy6NnW1ZbPc4dcpfkH5

他主要的提现地址:

https://blockchain.info/address/14iS2UvcLK33xkC1K1qL1dhEbp49aiNfNp

RobbinHood 账户提款:

https://blockchain.info/address/14HQ67ZhmATviHi9RdYhbUriAGSFmJpYoB

注意:Nappa和Kane是众多曾用名中的两个早起使用过的。

Kane的提现地址:

https://blockchain.info/address/18dMBap634aESPTeD3FGcAgJ2S9n4qtBTZ

Nappa存款地址:

https://blockchain.info/address/16h9ggSzUWdvagEJdNvWVYiUkytw6SJgiB

我们已经删除了任何稍微敏感的信息(邮件即ip),以上所有分享的内容均是可以公开的。

同样需要注意的是,在这件事彰显了我们的完整性及可查验的公平系统。如果我们尝试操纵任何Hufflepuff参与的赌局,可以轻松发现他在作弊而我们也不会损失2400+甚至更多的比特币。然而,我们并没有。在我们减半了最大赌注后,Hufflepuff只是休息了片刻,我相信他认为我们并没有发现正在发生的事情。我们投资了自己的资金,因此没有用户在这件事中受到负面影响。

最后抱歉,这故事讲了这么久

btcfans公众号

Scan QR code with WeChat

From the Internet
Disclaimer:

Previous: 非农数据预计将波及比特币市场 Next: 飞驰镁物的Soda计划:汽车共享的“比特币”经济

Related