RUG:危险的授权转账,Li.Finance攻击事件始末-ODAILY

一、前言

北京时间3月20日晚,知道创宇区块链安全实验室监测到以太坊上分布式跨链协议Li.Finance受到了攻击,攻击者执行了37次call注入获取了多个钱包中约60万美元的资产。此次资产损失并没有非常大,但项目方对于攻击的处理非常积极并值得学习与肯定(见后文),目前项目方已补偿了协议损失并修复后重新部署了协议。知道创宇区块链安全实验室第一时间跟踪本次事件并分析。

二、分析

1.攻击者相关信息

攻击tx:0x4b4143cbe7f5475029cf23d6dcbb56856366d91794426f2e33819b9b1aac4e96

彭博社:Proshares比特币策略ETF有突破CME期货合约限制的危险:10月22日消息,美国首只比特币期货交易所交易基金-Proshares比特币策略ETF(BITO)自推出后交易火爆,BITO目前拥有近1,900份10月合约,而芝加哥商品交易所(CME)规定一个产品可以拥有的近月(front-month)合约数量上限为2,000份。彭博数据还显示,为避免触及上限,ETF还积累了1,400份11月合约。但按照它的增长速度(该基金已经管理了超过10亿美元),可能很快触及5,000份合约的最大总头寸。

文章表示,虽然目前的资金流入速度可能让BITO遇到这些限制,但竞争产品的推出可能会缓解压力。Valkyrie和VanEck的基金都将在未来几天内开始交易。此外,CME将从11月开始,将近月合约的上限提高至4,000份,但随后每个月的合约限制仍为2,000份。(bloomberg)[2021/10/22 20:48:33]

被攻击合约:

俄罗斯央行行长:加密投资是“最危险”投资策略:俄罗斯央行行长 Elvira Nabiullina近日在接受该国《共青团真理报》(Komsomolskaya Pravda)采访时表示投资加密资产是最危险的投资策略,她解释说,“加密资产具有投机性,无疑是最危险的投资策略,加密货币价格波动很大,损失也很惊人。俄罗斯中央银行从来不提供投资建议,但在这种特殊情况下,我认为绝对不应该投资加密货币。”Elvira Nabiullina认为,银行存款是最好储蓄投资策略之一,她补充说道:“许多人也会涌入古诗,认为投资股票也能获得更高收益。但人们应该记住,股市也存在风险,必须仔细研究投资产品、批判性地看待广告。”(finbold)[2021/6/21 23:53:55]

0x5A9Fd7c39a6C488E715437D7b1f3C823d5596eD1--代理合约

声音 | 杨海坡:很多BSV浏览器和钱包出现故障 对一个全球支付系统很危险:ViaBTC矿池CEO杨海坡发微博称,BSV还没分(网络升级)之前我就警告过,在整个网络没有准备好的情况下盲目且没有必要的扩大区块上限是很危险的,今天很多BSV的浏览器和钱包出现故障,之前已经出现多次,这对一个全球支付系统是很危险的行为。不过幸运的是,ViaBTC BSV 浏览器服务运转正常。[2019/7/26]

0x73a499e043b03fc047189ab1ba72eb595ff1fc8e--逻辑合约

攻击者地址:

0xC6f2bDE06967E04caAf4bF4E43717c3342680d76--部署地址0x878099F08131a18Fab6bB0b4Cfc6B6DAe54b177E--收款地址

分析 | 比特币在价格高点呈危险抛物线形 或跌破6000美元:据CCN消息,5月11日,美国加密货币交易所Coinbase创下BTC自去年9月以来的盘中新高点6,989美元,此举反映交易商愿意在新建立的较高价位买入比特币,导致抛物线形成。比特币目前正处于牛市狂欢的中心,无论如何,它正在形成一种传统上公认的抛物线模式。在其10年历史的市场上,类似的抛物线形态已出现三次。前两次抛物线形成发生在2013年,而另一次发生在2017年。每一次都以严重的崩盘告终,尽管后来又重新引发惊人的上行走势。因此,比特币或进一步进入其超买区域,涨至7,000美元至7,500美元之间,但该资产可能正在考虑大规模修正。根据上行通道的高度,比特币的下行目标或很快收于6,000美元以下。[2019/5/12]

2.攻击流程

攻击调用流程攻击者构造payload并调用被攻击合约0x5a9fd7c3的swapAndStartBridgeTokensViaCBridge函数

马化腾谈区块链:每家都发币很危险:马化腾今日在腾讯业绩说明会上表示,区块链是个热门话题,大家都在谈,很多游戏公司在发数字货币,谁都能发一个货币是一件很危险的事情,腾讯不会发。他认为区块链技术有创新的地方,可以用在票据溯源等方面,具体怎么发展需要一段时间才能看得更清晰。[2018/3/21]

具体使用的Payload如下--图中选中部分即为利用授权转账部分的payload:

调用一次正常50刀的跨链桥功能

在payload中包括多个call方法(调实际用transferFrom)。让0x5a9fd7c3调用37个call,借此利用多个钱包对于0x5a9fd7c3合约的授权(approve)将钱包资产转账到攻击者地址:

后续执行正常的跨链桥逻辑_startBridge(_cBridgeData);。这也是为什么第一个swap是正常的,这样才能让后续逻辑正常执行下去

3.漏洞细节

导致本次问题的根本原因被攻击合约0x5a9fd7c3的逻辑合约存在一个批量让call调用传入数据的函数swapAndStartBridgeTokensViaCBridge

该合约将会取出payload中的多个_swapData数据结构并调用,LibSwap.swap(...);实现如下:

借此,攻击者利用该合约的call将各个钱包对0x5a9fd7c3合约的代码授权转走了多个钱包中的各种代币。

4.项目方进展

在事件发生后,项目方第一时间对合约可能的方法进行了停用,并为其审计和安全性问题进行致歉。

而后,项目方还联系了黑客,希望能与其取得联系并和平解决:

同时,最快的时间将漏洞合约修复后上线:

并将钱包对于之前被攻击合约的授权取消,对新的合约进行了重新授权:

最后,将用户资产进行补回:

同时我们关注到,其在polygon链上的合约也已实现了新的部署:

三、总结

此次攻击的根本原因是项目方对于swapAndStartBridgeTokensViaCBridge合约的实现过度自由化所导致的call调用注入,但项目方积极的面对问题的态度和后续补救的及时性值得学习和肯定。不贵于无过,而贵与改过。但我们仍希望能将错误扼杀在发生之前,应从他人的错误中学习并避免自己未来的错误,正如Li.Finance所说的那样:

我们的使命是最大化用户体验,现在我们痛苦地了解到,为了遵循这种精神,我们的安全措施必须大幅改进。

近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。

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

链链资讯

XLM数字资产:如何托管数字资产-ODAILY

2021年,数字资产市场快速扩张,总价值飙升至超过2万亿美元。然而,同年,犯罪分子利用监管弱点从不断扩大的生态系统中吸走了创纪录的140亿美元.

[0:15ms0-3:737ms