波场dApp超1.7亿BTT被盗,官方独家回应:与协议本身没任何关系
文 | 文学 孙曜
出品 | 火星财经
据DappReview监测,波场dApp TronBank于4月11日凌晨1点遭到假币攻击,1小时内被盗走约1.7亿枚BTT(价值约85万元人民币)。
监测显示,黑客创建了名为BTTx的假币向合约发起“invest”函数,而合约并没有判定发送者的代币id是否与BTT真币的id1002000一致。因此黑客拿到真币BTT的投资回报和推荐奖励,以此方式迅速掏空资金池。
事件发生后,TronBank项目方于4月11日上午10:15关闭了BTT服务页面,并表示会对损失的BTT部分全额进行赔付。受此次攻击事件影响,TRX和BTT双双下跌,截止发稿时,TRX火币报价0.027025美元,24小时跌10.64%,BTT火币报价0.000715美元,24小时跌6.04%。
针对dApp TronBank因“假币攻击”而损失1.7亿BTT的事件,波场对火星财经独家回应称,该合约安全问题出现在波场dApp上,与协议本身没有任何关系,波场协议完全安全可靠。
波场创始人孙宇晨在社交媒体中也表达了类似观点,表示未来波场会联合安全企业与合作伙伴对开发者进行合约安全辅导,提升dApp的安全性。
针对此次假币攻击事件,火星财经(微信:hxcj24h)独家采访了DappReview创始人牛凤轩、PeckShield创始人蒋旭宪和成都链安创始人杨霞。
牛凤轩提到,攻击事件产生的根本原因是合约代码问题:TronBank的BTT投资产品高度复制了TRX投资产品的代码,但无法判断用户投资的代币是真BTT,还是假BTT。
蒋旭宪和杨霞同样认为项目方的疏忽给黑客以可乘之机,提醒TRON合约开发者警惕假币攻击安全风险。
dApp专家:实际被盗数量大于1.7亿枚
据Dappreview创始人牛凤轩透露,TronBank的BTT投资产品于4月10日晚10点正式开放,仅三小时内总投资额超过2亿枚BTT,此前该项目的TRX投资产品最高资金池余额超过2.6亿枚TRX。
至于为何1.7亿枚BTT被盗,他将根本原因归结为合约代码问题:BTT投资产品高度复制了TRX投资产品的代码,却没有判断发送者的代币id是否与BTT真币的id1002000一致。
牛凤轩向火星财经(微信:hxcj24h)提供了两个投资产品的代码对比图,图左为BTT投资产品代码。通过对比,可见除第26行之后的代码存在差异外,其余代码几乎一样。
但最致命的是BTT投资产品代码没有增加额外的判断函数,无法判断用户投资的代币是真BTT,还是假BTT。黑客显然已经意识到了这个漏洞。
据牛凤轩介绍,用户在TronBank的收益主要有两个来源,一是投资收益,随时可以提取,二是用户推荐返利,返利金额为投资数额的5%。这两个收益来源,正是黑客盗走BTT的通道。
他同时提到,在发现该攻击后,Dappreview团队第一时间进行了分析,发现黑客是同时用4个小号进行假币攻击。针对这一情况,他们随即反馈给项目方,后者虽在社群中提醒用户不要再继续投资,但并没有及时关闭页面,仍有不明真相的群众进入投资,而他们投入的BTT同样会被黑客提走。因此,牛凤轩判断,实际被盗的BTT数量大于1.7亿枚。
令牛凤轩感到遗憾的是,项目方直到4月11日上午10:15才关闭网站页面,并表示将对损失的BTT部分全额进行赔付。
谈及该解决方案,牛凤轩补充了一个信息:TronBank项目的TRX投资产品上线运行近一个月,总计用户投资金额约4.4亿TRX,其中项目方抽成总计6%,共2640万TRX,约500万人民币。
由此可以推断,项目方此前的营收完全可以承担此次BTT赔付。
区块链安全专家:主要过失在于项目方
针对此次攻击事件,火星财经(微信:hxcj24h)同时联系了PeckShield创始人蒋旭宪和成都链安创始人杨霞。
蒋旭宪表示,黑客采用的是假币攻击方式,通过调用BTTBank智能合约的invest函数,之后调用多次withdraw函数取出BTT真币。
PeckShield认为,这是继TransferMint漏洞之后,一种新型的具有广泛性危害的漏洞,会威胁到多个类似dApp合约的安全,这主要跟开发者有关,因此提醒TRON合约开发者警惕此类安全风险。
TronBank官网截图
杨霞进一步补充道,假币攻击指的是攻击者通过发行与被攻击代币同名代币等方式欺骗项目方或用户,造成的危害主要是攻击者在没有付出任何代价的前提下执行了业务逻辑,扰乱了正常交易秩序。
在她看来,假币攻击的产生因素主要是项目方没有做完整的代币信息校验,错误地将攻击者的无价值假币识别为真实的有价代币。
至于该如何应对假币攻击事件,杨霞提到了2点:
1.项目方应事先进行安全审计,提前做好预防措施,即在合约中对交易的代币信息做完整的校验而不是单纯通过名称等不可靠信息判断。
2.假币攻击事件发生之后,项目方应立刻响应,暂时停止业务,排查问题并修复,之后追查损失资金流向,尽量追回损失。
与此同时,成都链安发布了安全预警:近期针对波场项目方的攻击测试频率开始上升并已造成实际损失,黑客团队未来可能将攻击重点转向波场,波场公链的dApp市场高度繁荣但一直未曾遭到过EOS公链级别的高强度攻击,攻击者目前主要是将其他公链上已成熟的攻击方式迁移到波场并进行大范围攻击测试,寻找安全防护较为薄弱的合约,此阶段后,攻击者可能更进一步深度挖掘波场本身可能被利用的机制,进行更高强度和威胁的攻击。
假币攻击事件盘点
事实上,假币攻击事件在区块链世界并不少见。
PeckShield创始人蒋旭宪指出,假币攻击手法在EOS中已经出现,比如2018年9月14日发生在Newdex的假EOS刷币事件。攻击者预先在EOS账户中发行假EOS,并由实施攻击的账户使用假EOS挂单委托买入IPOS和ADD,最终分多笔共11800假EOS挂市价单购买BLACK、IQ、ADD,且全部成交。最后由其他账户卖出以上代币,获得4028个真实EOS。
PeckShield对假EOS攻击原理的解释是,黑客创建了一种基于EOS的代币,并将其命名为“EOS”,并向被攻击合约账号大量转账假EOS代币,没有检测EOS的发行方的合约会将假EOS转账视为真的,进而调用了合约中的transfer函数,按照开奖流程分配奖金。这种“假EOS”攻击方式的关键是合约函数中没有检测发行代币的合约名。PeckShield表示“假EOS”漏洞在10月份较为普遍,不过随着多数开发者合约开发趋于规范,类似攻击事件已经很少,并向火星财经(ID:hxcj24h)提供了自去年至今相关案例统计。
针对这些EOS合约上发生的假币攻击事件,火星财经(微信:hxcj24h)根据公开报道进行了以下梳理:
1.比特派EETH遭受“假币攻击”,暴跌99%
据 IMEOS 消息,2018年12月12日下午4点在去中心化交易所NEWDEX 上线的比特派EETH 遭遇假币攻击,并且遇到大量砸盘。
EETH 12日16时上线后,在17时遭到假币攻击。受此影响,EETH短时间暴跌99%。
2.NEWDEX两度被黑,损失5.9万美元
2018年9月19日,据thenextweb消息,“假币攻击”发起者创造了一种全新的EOS代币,并将该假币名为“EOS”,发起攻击者的EOS账户oo1122334455总共发行了10亿个EOS假币。
经测试发现攻击可行之后,攻击者将假币冲进 NEWDEX 交易所,并挂出大额买单,用11800个EOS假币购买BLACK、IQ和ADD三种代币。
据交易所Newdex透露,攻击者拿到了4028个EOS(价值2万美元)。9月14日,Newdex 再次遭到黑客攻击,黑客依然利用假币攻击在交易所换取真币,共计获利11803个EOS,价值5.9万美金。
3.EOSBet一个月内被攻击3次
2018年9月10日,EOSBet也遭到了类似的黑客攻击,共计损失4000个EOS。而该博彩游戏在9月共遭到了三次黑客攻击。
第二次发生在9月12日,EOSBet遭受黑客利用假币套用真币,未投注就获得42000个ESO大奖。第三次发生在9月14日,EOSBet 遭黑客“假通知”攻击,损失145321个EOS,目前损失已被追回。
9月15日,EOS博彩游戏 EOS.Win 也遭受了黑客假币攻击,共计损失超过4000个EOS。
当然,这仅仅是假币攻击事件的一部分,黑客早已将假币攻击当做敛财工具,这无疑对广大开发者提出了更高的安全要求。
对于此次TronBank假币攻击事件,火星财经(ID:hxcj24h)将持续关注。
参考文章:http://m.sohu.com/a/281396578_100191017
本文为火星财经原创稿件,版权归作者所有,未经授权不得转载,转载须在文章标题后注明“文章来源:火星财经”,若违规转载,火星财经有权追究法律责任。