文章来源:互联网作者:欧易发布时间:2023-04-18 16:02:00
黑客利用比特币赌博网站Primedice网上赌场的RNG系统漏洞,导致赌场损失价值100万美金的比特币——此事虽然是去年发生的,然而最近Primedice主动站出来公开分享了这段“惨痛”经历,希望同行们引以为戒。
这是悲伤的故事,请到底自备纸巾……
在Primedice第三版发布不久后,我们的团队遇到威胁着我们网站生存的竞争对手。尽管我个人只有非常有限的编程经验,但是我们团队具有接近两年的比特币赌博网站建立经验。巨大的压力之下同时也为了避免进一步的延误,我们经过短短一周的内测beta之后就发布了新版。
这场“抢劫”是从两个不寻常的账户开始的,Nappa和Kane。我们发现在这两个账户发现了一些不正常的赌博模式。Kane自动套现,我们重新观察了Nappa的赌注,发现他们极其可疑却又无法找出问题出在哪里,于是在稍微延迟了其兑现之后进行了简单的电子邮件交流。
在被我们延迟支付了之后,这名“开发者”似乎受到一丝惊吓,于是他在几周之后创建了一个名为“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账户。由于这些“薛定谔”种子,看起来或许无用的种子都连接到同一个账户,表示着有需要获得种子的海量请求。
不幸的是,我们在Hufflepuff提现2400+比特币(那时大约可兑换100万美元)后发现这个exp的。鉴于比特币的特性(被指“世界最危险货币”)我们除了认输别无他法。我们通过Hufflepuff的比特币论坛账户与其进行沟通,要求其返还奖金,然而这样的回击适得其反。
事实表明,我们开发人员对故障的补丁并不恰当。为了回复我们的要求,Hufflepuff创建了一个新账户名为Robbinhood,然后迅速绕过补丁又多赢了2000+的比特币。然而这次他无法提现超过50或者60比特币,因为我们已经没有更多的金币了。
不久之后他私下向我们发信息:
“你提出的交易被我拒绝了。你的要求显然是可笑的。我很高兴离开你,但如果你打算继续,我愿奉陪到底。我想你并不愿意继续下去的,对吧。我真的很享受这XX(不和谐)。你的举动。
哦,顺便提示一下,还有一些没发放的提款你需要去处理一下。”
这一天赌场没有赢……
Hufflepuff的存款地址:
http://blockmeta.com/address/1BiPXmDrHm7VXZnWy6NnW1ZbPc4dcpfkH5
他主要的提现地址:
http://blockmeta.com/address/14iS2UvcLK33xkC1K1qL1dhEbp49aiNfNp
RobbinHood 账户提款:
http://blockmeta.com/address/14HQ67ZhmATviHi9RdYhbUriAGSFmJpYoB
注意:Nappa和Kane是众多曾用名中的两个早起使用过的。
Kane的提现地址:
http://blockmeta.com/address/18dMBap634aESPTeD3FGcAgJ2S9n4qtBTZ
Nappa存款地址:
http://blockmeta.com/address/16h9ggSzUWdvagEJdNvWVYiUkytw6SJgiB
我们已经删除了任何稍微敏感的信息(邮件即ip),上面这些所有分享的内容均是可以公开的。
同样需要注意的是,在这件事彰显了我们的完整性及可查验的公平系统。如果我们尝试操纵任何Hufflepuff参与的赌局,可以轻松发现他在作弊而我们也不会损失2400+甚至更多的比特币。然而,我们并没有。在我们减半了最大赌注后,Hufflepuff只是休息了片刻,我相信他认为我们并没有发现正在发生的事情。我们投资了自己的资金,因此没有用户在这件事中受到负面影响。
最后抱歉,这故事讲了这么久……
参考来源: medium ,作者Stunna(Primedice)
翻译:明明知道
上一篇:Nodb节点教程
下一篇:SBRO币是什么?值得购买吗?
TRC20量化交易软件 TRC20量化交易软件官方客服v6.4.8
金融动态
下载
pi炒币手机钱包 pi炒币手机钱包苹果v6.1.8
金融动态
下载
RP杠杆平台 RP杠杆平台官网登陆v6.8.4
金融动态
下载
什么是AIOZ Ntwork(AIOZ)币
金融动态
下载
什么是Nrvos Ntwork(CKB)币
金融动态
下载
Gains Ntwork(GNS)是什么币
金融动态
下载
什么是vrscal(VR)币
金融动态
下载
Mavrick Protocol(MAV)是什么币
金融动态
下载