BTT假币攻击事件细节披露及修复方案

640?wx_fmt=png


波场DApp tronbank于4月11日凌晨1点遭受假币攻击。


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

 

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



  • 黑客攻击手法解析

 

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

 

 

640?wx_fmt=png


经过我们分析发现,该假币漏洞是由于invest函数只判断了msg.tokenvalue,而没有判断msg.tokenid是否为真实BTT代币的ID1002000所导致。

 

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

 

BTTBank合约在收取代币时没有对收到代币的tokenid做任何判断,合约中仅仅判断了msg发送代币的数量msg.tokenvalue


当合约收到调用者发送的代币数量msg.tokenvalue时,合约错误的认为该代币数量是BTT的数量。但实际上调用者使用的是假币tokenid1002278的代币数量。BTTBank将假币视同于真币(真币的tokenid10022000)记录到投资者账号。

 

而攻击者账号TRC10代币中存在BTTBTTx两种代币,可见两种代币的ID差异,BTT代币ID1002000BTTx代币ID1002278


640?wx_fmt=png


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


640?wx_fmt=png


假币创建完成后,攻击者将创建的四千万假币BTTx发送给四个攻击小号:

TB9jB76Bk4tk2VhzGAb6t1aCYgW7Z4iicY,TQM4uEWPQvVe2kGbWPZtVLMDFrTLERfmp4,TKp1stjapNqr4pkDQjU9GTitsYBUrKAGkh,

TF2EWZJZSokGdtk4fj7PqCmuGpJasVXJ3K。


640?wx_fmt=png


640?wx_fmt=png


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


640?wx_fmt=png


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

 

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


640?wx_fmt=png


640?wx_fmt=png


640?wx_fmt=png


640?wx_fmt=png


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


640?wx_fmt=png


640?wx_fmt=png



640?wx_fmt=png


黑客触发invest函数后通过withdraw函数取到了BTTBank奖励池的真正的BTT代币,

最终四个小号将赃款集中转向黑客主账号TCX1Cay4T3eDC88LWL7vvvLBGvBcE7GAMW


640?wx_fmt=png


640?wx_fmt=png


640?wx_fmt=png


640?wx_fmt=png


640?wx_fmt=png


640?wx_fmt=png


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


640?wx_fmt=png


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


640?wx_fmt=png


如下为有问题的合约地址:


TF3YXXXXXXXXXXXXXXXXXXXXXXXWt3hx

 

TKHNXXXXXXXXXXXXXXXXXXXXXXXAEzx5

 

TK8NXXXXXXXXXXXXXXXXXXXXXXXZkQy

 

TUvUXXXXXXXXXXXXXXXXXXXXXXXxLETV

 

TG17XXXXXXXXXXXXXXXXXXXXXXXkQ9i

 

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

 


  • 事件发生原因:

 

据我们技术团队分析,上述问题的发生存在两个方面的原因:


1)开发者对波场代币的使用机制研究不足,可能套用了以太坊的代币使用方法;

2)攻击者在迁移其它公链上存在的攻击方式,如EOS已经存在的假币攻击方式。

 


  • 修复意见:


对此,我们建议:项目方在收取代币时应同时判断msg.tokenvaluemsg.tokenid是否符合预期。


该漏洞代码修复方式,如下:

 

Invest函数增加代码:

require(msg.tokenid==1002000);

require(msg.tokenvalue >= minimum);

 minimum是最小投资额

 

 

 

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

 

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



欢迎大家体验:


一、智能合约自动形式化验证平台VaaS精简版,准确率达到95%以上


Beosin(成都链安科技)已向全球发布VaaS平台,全球首个同时支持ETH、EOS、Fabric、ONT、TRON等多个区块链平台的智能合约形式化验证平台,准确率达到95%以上。


VaaS(精简版)系统为所有区块链从业者提供方便而免费的智能合约安全审计服务,对智能合约安全漏洞进行形式化验证,从容应对常规合约安全问题。欢迎大家登陆官方网址体验:


官方网址:

https://beosin.com/vaas/index.html#/audit/ptsj


640?wx_fmt=jpeg

▲VaaS 精简版平台


二、在线 Beosin-IDE 免费版本


Beosin-IDE 是一款免费的面向BOS、EOS区块链平台的智能合约在线集成开发环境,可同时支持合约开发、部署、测试和源码调试等功能的在线区块链应用开发集成环境。


欢迎大家免费体验:通过浏览器访问

https://beosin.com/BEOSIN-IDE/index.html#/

(如下图,推荐Chrome浏览器)。


640?wx_fmt=jpeg

▲Beosin EOS-IDE


Beosin官方发表正式声明:


为了全球化市场战略需要,公司发布全新英文品牌 “Beosin”。作为深耕区块链安全领域的公司,“Beosin”力求为行业保驾护航,以打造区块链全生态安全为宗旨,竭诚为客户提供包括智能合约安全审计、智能合约开发审计一条龙、钱包安全加固与审计、DApp安全加固与审计、区块链平台安全检测、交易所安全检测、企业级安全服务等。但公司英文名称更名并不涉及业务架构或公司所有权变化。新品牌的Logo如下图:


640?wx_fmt=jpeg


近期,有XX链安科技与成都链安科技重名,且Logo及宣传语相似。成都链安科技是一家由分布式资本、界石资本、盘古创富投资的专门从事区块链安全的公司,与其他XX链安科技无任何关联。请大家认准成都链安科技唯一指定商标品牌,谨防上当受骗,一切消息以官网及官方公众号为准。


成都链安科技官方公众号名称:Beosin成都链安

成都链安科技官方网址:

www.lianantech.com

——Beosin


640?


关于Beosin:


Beosin(成都链安)成立于2018年,公司位于四川省成都市,专注于区块链生态安全。公司由杨霞和郭文生两位教授共同创建,团队核心成员由来自海内外知名高校和实验室留学经历的教授、博士后、博士及阿里、华为等知名企业精英组成。已获得分布式资本、界石资本、盘古创富等著名投资机构的两轮股权投资。其核心技术为形式化验证,是全球最早一批将此技术应用到区块链安全领域的公司。


公司首批入选Etherscan智能合约审计推荐名单及普华永道创新加速器,荣获全国首届中小微企业SaaS应用创新创业大赛冠军,获得OKEx最佳安全审计合作伙伴奖等荣誉,参加工信部多项区块链安全标准的撰写,入选工信部“2018区块链白皮书”,作为唯一安全公司入选“2018中国区块链企业百强榜”,荣膺金色财经“2018年度最专业安全服务机构”、“2019中国区块链安全领军企业”称号,荣获火星财经“最佳区块链数据安全团队”奖项。已与Huobi、OKEx、KuCoin、LBank、CoinBene、CoinMex、CoinTiger、Becent、ONT、Qtum、比原链、Wanchain、Scry、布比区块链、云象区块链、QuarkChain、IoTeX、麦子钱包、EOSPark等共计超过40家区块链公司建立战略合作关系,审计报告被国内外各大知名交易所认可。审计智能合约超500份,独立发现区块链安全漏洞10余个,获得行业及客户的一致好评和认可。让区块链全生态更安全,是我们的美好愿景!


640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg





Beosin

作为Huobi、OKEx、KuCoin、LBank等

著名交易所指定的合约审计公司。 

入选Etherscan智能合约安全审计名单。


欢迎联系Beosin,了解智能合约安全审计

智能合约开发审计一条龙

钱包安全加固与审计

DApp安全加固与审计

区块链平台安全检测

交易所安全检测

企业级安全服务

 ·

电话:028-83262585

网站:www.lianantech.com

邮箱:vaas@lianantech.com

地址成都市世纪城南路599号

天府软件园D7座504室


官网:

https://www.lianantech.com


GitHub网址:

https://github.com/Lianantech/VCA


Facebook网址

https://www.facebook.com/BeosinChengdu/


twitter网址:

https://twitter.com/Beosin_com


Telegram中文群:

https://t.me/LiananTech_cn


Telegram英文群:

https://t.me/LiananTech_en


微博:

https://weibo.com/u/6566884467


CSDN博客:

https://blog.csdn.net/CDLianan


知乎专栏:

640?wx_fmt=jpeg



   点击了解更多


640?wx_fmt=jpeg

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值