APE:少写一行代码的教训:TronBank 1.7 亿 BTT 仅 3 小时就被洗劫一空

波场DApptronbank于4月11日凌晨1点遭受假币攻击。11日上午Beosin成都链安技术团队作出初步分析,判断该次假币攻击事件主要原因在于合约没有严格验证代币的唯一标识符代币ID,错误的将攻击者自己发行的无价值代币识别为价值85万元的BTT代币,从而造成了损失。同时及时发出预警,预判黑客团队未来可能将攻击重点转向波场。

原文标题:《BTT假币攻击事件细节披露及修复方案》

现针对此次事件,成都链安技术团队进一步作出深度分析。

首先,我们先看此次BTT假币攻击事件中的漏洞源码,如下图:

成都链安技术团队分析发现,该假币漏洞是由于invest函数只判断了msg.tokenvalue,而没有判断msg.tokenid是否为真实BTT代币的ID:1002000所导致。

Silvergate同意美联储关于加密货币友好银行清算计划的最后期限:金色财经报道,Silvergate Bank已同意美联储命令,在10天内向加州金融监管机构提交自我清算计划。美联储理事会周三宣布了该命令,作为结束这家对加密货币友好的加州银行业务的过程的一部分,该银行必须保存现金和其他资源,以使储户得到补偿。[2023/6/2 11:53:35]

TRC10标准是波场本身支持的技术代币标准,标准规定了两个重要参数:msg.tokenvalue和msg.tokenid。其中msg.tokenvalue表示当前msg调用的代币数量,而msg.tokenid表示当前调用者使用的代币种类标记ID。每种TRC10标准的代币都有一个独一无二的标记ID作为代币种类证明。

BTTBank合约在收取代币时没有对收到代币的tokenid做任何判断,合约中仅仅判断了msg发送代币的数量msg.tokenvalue。当合约收到调用者发送的代币数量msg.tokenvalue时,合约错误的认为该代币数量是BTT的数量。但实际上调用者使用的是假币tokenid为1002278的代币数量。BTTBank将假币视同于真币记录到投资者账号。

Kevin O’Leary:拜登关于加密货币相关的行政命令对比特币矿工来说有一个巨大的地雷:金色财经报道,O'sSharesETF主席Kevin O’Leary针对拜登关于加密货币相关的行政命令提出了异议。他对这些措辞大吃一惊,并卖掉了他在相关加密货币采矿公司的所有股票,因为他确信这些公司将迅速成为拜登政府的目标。在一次采访中,他表示,这不是一个全面的禁令,所以这是一个好消息,但该命令中对比特币矿工来说有一个巨大的地雷。行政命令中概述了一些气候讨论,这些讨论主要是针对开采比特币和数字货币的公司。这个法案基本上说的是,我们要开始考虑加密货币的气候问题。现在来说,这是个坏消息,因为所有这些比特币矿工都使用碳信用来抵消他们所谓的碳使用。没有已知的方法可以对这些公司进行审计,这使他们处于巨大的不利地位。(livebitcoinnews)[2022/3/19 14:05:51]

而攻击者账号TRC10代币中存在BTT和BTTx两种代币,可见两种代币的ID差异,BTT代币ID:1002000,BTTx代币ID:1002278。

政策 | 巴林央行发布关于加密货币交易的规则草案:据thenational报道,巴林央行发布关于加密货币交易的规则草案,银行监管执行董事Khalid Hamad表示,这一监管框架将满足市场对这些服务的需求。[2018/12/14]

攻击者于4月11日凌晨创建发行990,000,000,000,000,000个名为BTTx的假币

接着在假币创建完成后,攻击者将四千万创建的假币BTTx发送给四个攻击小号TB9jB76Bk4tk2VhzGAb6t1aCYgW7Z4iicY,TQM4uEWPQvVe2kGbWPZtVLMDFrTLERfmp4,TKp1stjapNqr4pkDQjU9GTitsYBUrKAGkh,TF2EWZJZSokGdtk4fj7PqCmuGpJasVXJ3K

加拿大和美国的证劵监管机构发起关于加密货币的“国际制裁”:加拿大和美国的证劵监管机构发起关于加密货币的“国际制裁”,TDCI表示,今年4月,由NASAA成员组成的一个特别工作组被召集起来,“开始对ICOs和加密相关的投资产品展开一系列协调的调查”,ICOs或Token销售是一个主要的焦点。[2018/5/22]

当攻击小号收到假币后,攻击者又调用BTTBank合约有缺陷的invest函数。

接下来在触发invest函数后,BTTBank项目方将大量BTT转入了预先设置的投资账号TPk,TT4,TGD,这笔资金实际上未被黑客获得,但项目方在没有收到BTT的情况下进行了真实的投资。

下图为源码中对三个投资地址的具体设置代码:

BTTBank投资的三个投资账号中都收到了大量BTT代币,如下图所示。

多伦多市决定举行公众与市长之间关于加密货币的“辩论”:2月2日,多伦多市投票决定在2018年3月19日公众与市长之间进行“辩论”,以便更好地评估城市如何将商业与加密货币相结合。该议案由议员诺曼·凯利(Norman Kelly)撰写,并得到议员钱利( Chin Lee)的支持,建议市议会“审查利用加密货币作为市政财产税、公用事业、停车违规和市政土地转让税的支付方式的可能性,并在2018年第二季度向执行委员会报告。“[2018/2/5]

黑客触发invest函数后通过withdraw函数取到了BTTBank奖励池的真正的BTT代币,最终四个小号将赃款集中转向黑客主账号TCX1Cay4T3eDC88LWL7vvvLBGvBcE7GAMW

攻击者账户中的BTT赃款和攻击使用的假币BTTx如下:

此外,成都链安技术团队对在Github上开源的其他项目方代码进行检查,发现还有其他项目方存在此安全问题:如下为有问题的合约地址:TF3YXXXXXXXXXXXXXXXXXXXXXXXWt3hx

TKHNXXXXXXXXXXXXXXXXXXXXXXXAEzx5

TK8NXXXXXXXXXXXXXXXXXXXXXXXZkQy

TUvUXXXXXXXXXXXXXXXXXXXXXXXxLETV

TG17XXXXXXXXXXXXXXXXXXXXXXXkQ9i

因此Beosin成都链安呼吁广大项目方提高警惕予以重视,检查自己的合约是否存在上述安全漏洞,并及时进行更新。

发生原因:

据Beosin成都链安技术团队分析,上述问题的发生存在两个方面的原因:1)开发者对波场代币的使用机制研究不足,可能套用了以太坊的代币使用方法;2)攻击者在迁移其它公链上存在的攻击方式,如EOS已经存在的假币攻击方式。

修复意见:对此,Beosin成都链安技术团队建议:项目方在收取代币时应同时判断msg.tokenvalue和msg.tokenid是否符合预期。并给出该漏洞代码修复方式,如下:

Invest函数增加代码:require(msg.tokenid==1002000);require(msg.tokenvalue>=minimum);minimum是最小投资额

同时,Beosin成都链安提示:黑客团队未来可能将攻击重点转向波场,波场公链的DApp市场高度繁荣但一直未曾遭到过eos公链级别的高强度攻击,攻击者目前主要是将其他公链上已成熟的攻击方式迁移到波场并进行大范围攻击测试,寻找安全防护较为薄弱的合约,此阶段后,攻击者可能更进一步深度挖掘波场本身可能被利用的机制,进行更高强度和威胁的攻击。

并且Beosin成都链安也建议各大项目方加强合约的安全防护级别和安全运维强度,尽量防范未然,避免不必要的损失,必要时可联系第三方专业审计团队,在上链前进行完善的代码安全审计,共同维护公链安全生态。

本文来源于非小号媒体平台:

Beosin成都链安

现已在非小号资讯平台发布1篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/3627175.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

PeckShield深入代码层面分析,黑客究竟如何盗走1.7亿BTT?

下一篇:

上线3小时即被盗走1.7亿BTT:TronBank未审计代码致假币攻击

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-3:919ms