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

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

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

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

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

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

OpenSea Pro:已支持所有Art Blocks数字藏品的买卖:金色财经报道,NFT市场OpenSea Pro(原Gem)在社交媒体宣布已上线Art Blocks创始人的创始项目Squiggles NFT系列,也是目前Chromie Squiggles最大的“跨NFT市场”,此外OpenSea Pro还表示已支持所有Art Blocks市场上NFT系列的购买和出售。“Squiggles”是Art Blocks创始人兼首席执行官Snowfro(née Erick Calderon)于2020年10月推出的创始NFT项目,总计发行1万枚。[2023/5/27 9:46:05]

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

波场网络正式通过第82号委员会提议:据官方消息,波场网络已于新加坡时间2023-1-20 14:00:00正式通过了第82号委员会提议。第82号委员会提议的主要内容是修改第67号网络参数。该提议生效后将大幅提高投票奖励计算相关交易的执行速度,特定情况下,账户提取奖励交易的性能将提升99.9%。[2023/1/20 11:23:10]

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

NeonLabs:因第三方业务流程放缓,Neon EVM的主网推迟启动:12月13日消息,Solana的EVM兼容网络开发商Neon Labs今日宣布,因为近期充满挑战的市场环境,许多涉及第三方的业务流程放缓,尽管没有直接受到FTX崩溃的影响,但基金会仍在确定与相关方的文件,从而导致Neon EVM的发布延迟,但NeonEVM的底层代码和机制从技术角度来看已经准备就绪。此前报道,NeonLabs计划12月12日在Solana上推出EVM兼容网络主网。(Medium)[2022/12/13 21:41:03]

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

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

FTX Japan:已确定恢复提款的方案,工程团队已启动开发工作:金色财经报道,FTX Japan 发布公告表示,目前已确定了恢复提款的方案,并获得了新管理团队的通过,工程团队已启动计划的开发工作。

FTX Japan 表示,FTX Japan 上的客户存款不属于破产清算的资产之列。此外,对于客户存入的资产,法币存放在 SBI Clearing Trust Co., Ltd. 的信托账户中,加密资产将存储在运营团队管理的冷钱包中。未来将定期报告客户资产的管理情况。[2022/12/2 21:18:30]

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

ZK Rollup订单簿式DEX ZigZag将于6月24日开启ID0:6月21日消息,据官方消息,ZK Rollup订单簿式DEX ZigZag将于6月24日23时在自身DEX上开启ID0,第一轮公开发售将允许用户在早期阶段成为DAO的一部分,拥有对Token用例的投票权,同时决定空投的详细信息。

ZigZag总量共计1亿枚,本次ID0供应量为200万枚,仅支持USDC支付。目前,由于基础设施限制,ZigZag将仅在zkSync上提供现货交易。在zkSync2.0和StarkNet发布后,将引入杠杆交易和无需许可上市的永续合约。

金色财经此前报道,6月20日,ZK Rollup订单簿式DEX ZigZag疑似已在以太坊上部署Token ZZ的智能合约,总量1亿枚。[2022/6/21 4:41:02]

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

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

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

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

黑客触发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-0:513ms