由灵踪安全授权,金色财经独家发布。
8月17日,灵踪安全的监测系统检查到BSC链上的DeFi协议XSURGE遭到闪电贷攻击。?
关于闪电贷攻击,我们在此前的文章中曾经有过多次介绍。“闪电贷”在DeFi领域,尤其是今年以来的屡次攻击事件中已经成为圈内外耳熟能详的词汇。?
“闪电贷”的原理是利用以太坊智能合约可以回滚交易的特性,进行借贷操作的一种手段。大家一定要注意的是,“闪电贷”只是被利用的手段,它本身并不是罪魁祸首。罪魁祸首一般都另有其它原因。?
黑客们利用闪电贷进行攻击的基本过程是这样的:?
首先利用闪电贷从资金池借出资金?
然后利用借出的资金找准被攻击合约的漏洞进行攻击?
最后从攻击获得的巨额收益中拿出借贷的本金归还给资金池,则剩下的就是黑客本次攻击的获利。
LBank蓝贝壳于5月20日22:00首发ULTRA,开放USDT交易:据官方公告,5月20日22:00,LBank蓝贝壳(LBank.me)首发ULTRA(UltraSafe Finance),开放USDT交易,5月20日14:00开启充值,5月21日14:00开启提现。资料显示,从储钱罐到行星际保险库,撕毁与安全相关的进步里程碑,并在Binance Smart Chain上加入最安全的社区驱动的无摩擦收益协议。[2021/5/20 22:23:51]
?本次受攻击的XSURGE项目被黑客抓住的漏洞是“重入攻击”。黑客抓住这个漏洞,利用闪电贷,放大了攻击效果。不过本次攻击事件中,值得注意的是:在XSURGE受到攻击前,项目方已经在推特上发表了声明,声称在合约中发现漏洞,并提醒大家将资金撤出。?
或许是项目方的声明提醒了黑客,抑或许是黑客蓄谋已久,就在项目方的声明发出不久,项目即遭到了攻击。?
LBank蓝贝壳于5月13日00:00全球首发COLLIE,开放USDT交易:据官方公告,5月13日00:00,LBank蓝贝壳(LBank.me)全球首发COLLIE,开放USDT交易,5月12日21:00开放充值,5月13日21:00开放提现。资料显示,BSC边牧犬,转账需5%手续费,其中3%自动加入LP池,1%燃烧,1%分红给持币者,目前项目已销毁90%Token,剩余用于建LP池与对社区空投。[2021/5/12 21:54:27]
在本次攻击中,黑客前后进行了多轮测试和攻击,总共的获利超过13000个BNB,市值超过500万美元。在黑客发起的众多轮测试和攻击中,我们选取了一次很简单的攻击流程和大家展示一下黑客攻击的过程。
在这个攻击中,攻击者的地址为:0x59c686272e6f11dC8701A162F938fb085D940ad3,被攻击的XSURGE的合约地址为:0xE1E1Aa58983F6b8eE8E4eCD206ceA6578F036c21。
BKEX Global将于今日15:30首发上线GHST:据BKEX Global公告,BKEX Global将于2020年9月15日15:30(UTC+8)首发上线GHST(Aavegotchi),开放交易对:GHST/USDT。
Aavegotchi 基于DeFi借贷平台Aave生态,并为以太坊区块链游戏引入了多项创新,包括DeFi代币抵押、动态变化的稀有性、稀缺性收益挖矿,基于DAO治理的游戏机制以及微型游戏的虚拟空间等。 Aavegotchi是一种全新的NFT数字收藏品,每一个Aavegotchi均为一枚ERC721标准的NFT,这意味着每一个Aavegotchi都是独一无二的,并由抵押资产数量、不同特质和对应的游戏装备来决定其价值和稀缺性。[2020/9/15]
这个攻击的交易哈希值为0x42bc03afdbda5c46d185711ce1f5df990ece215534dcd8b14529bb1beddacd4,与其相关的交易流程图如下:
公告 | 火币全球站6月29日16:00全球首发 Project PAI:火币全球站定于新加坡时间6月29日16:00 Project PAI (PAI) 充值业务。7月2日16:00在创新区开放PAI/BTC, PAI/ETH交易。7月6日16:00开放 PAI提现业务。[2018/6/29]
这个流程图显示的是一系列BNB的转账流程,这个流程所暗含的信息如下:-攻击合约首先以闪电贷的方式借入了3个BNB-然后攻击者开始攻击SurgeToken合约-经过重复多次攻击后,攻击者获得的累计金额达8.175个BNB-攻击者最终偿还3个BNB的闪电贷借款,最后获利5.1667个BNB“麻雀虽小、五脏俱全”,这个金额很小的试探性攻击过程就反映了黑客利用闪电贷攻击合约的完整流程。那么具体到被攻击的合约代码,到底是哪里出了问题呢?下面是我们节选的关键代码:
NGOT将于4月26日11:00首发上线TOPBTC:据TOPBTC官方公告,NGOT将于4月26日11:00在TOPBTC上开通交易功能,现已开放充币。NGOT是服务于NGO(非政府组织)的区块链管理应用,通过区块链技术帮助NGO组织实现在会员管理、财务及选举等方面的透明化。[2018/4/25]
上述代码中,有"重入攻击"漏洞的代码是下面这一行:
这一行代码中,在外部调用时,通常call调用默认只有2300gas可用,无法完成一次攻击。但这里使用gas:40000的参数,使得重入攻击最多有40000gas可用,这就使得重入攻击得以完成,漏洞就出现了。另外,合约的状态修改是在外部调用之后,从而导致重入攻击发生时require(_balances>=tokenAmount这句语句中的balances没有被修改。因此攻击者可以在重入时继续调用上面的代码,转走合约中的BNB。
因此,本次攻击得逞的原因有以下两点:
状态修改发生外部调用之后?
调用call函数时设置了gas值使得重入攻击的条件得以具备。
?重入攻击是智能合约安全领域经常出现的问题,在本次攻击中,闪电贷同样也只是起到了“帮凶”的作用,而不是“祸首”。所以本次合约安全事故的根本还是“重入攻击”这个漏洞。这次事件再次提醒所有的项目方要高度重视合约的审计。同时这也提醒了所有的审计者,对常见问题的审计不能掉以轻心,要以严谨的态度处理一切问题、细致的工作堵住一切漏洞,而这也是灵踪安全一直以来秉持的基本态度和方法。
关于灵踪安全:灵踪安全科技有限公司是一家专注区块链生态安全的公司。灵踪安全科技主要通过“代码风险检测+逻辑风险检测“的一体化综合方案服务了诸多新兴知名项目。公司成立于2021年01月,团队由一支拥有丰富智能合约编程经验及网络安全经验的团队创建。
团队成员参与发起并提交了以太坊领域的多项标准草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569被以太坊团队正式收入。?
团队参与了多项以太坊项目的发起及构建,包括区块链平台、DAO组织、链上数据存储、去中心化交易所等项目,并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。?
作者:灵踪安全CEO谭粤飞?
美国弗吉尼亚理工大学(VirginiaTech,Blacksburg,VA,USA)工业工程硕士(Master)。曾任美国硅谷半导体公司AIBTInc软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学创业学院《区块链概论》课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事。个人拥有4项区块链相关专利、3本出版著作。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。