一、前言
北京时间3月20日晚,知道创宇区块链安全实验室?监测到以太坊上分布式跨链协议Li.Finance受到了攻击,攻击者执行了37次call注入获取了多个钱包中约60万美元的资产。此次资产损失并没有非常大,但项目方对于攻击的处理非常积极并值得学习与肯定(见后文),目前项目方已补偿了协议损失并修复后重新部署了协议。知道创宇区块链安全实验室?第一时间跟踪本次事件并分析。
二、分析
1.攻击者相关信息
攻击tx:0x4b4143cbe7f5475029cf23d6dcbb56856366d91794426f2e33819b9b1aac4e96
初夏虎:DeFi上金融产品设计问题和智能合约漏洞一样危险:8月24日消息,在以“元界DNA主网上线,将如何改造DEFI产业现状”为主题的AMA上。
初夏虎表示,很多人以为区块链项目的风险主要来自于代码漏洞,殊不知最可怕的是金融产品设计问题,它和智能合约漏洞一样危险。现在很多所谓的DEFI项目团队里并没有金融产品专家。元界DNA虽然无法完全规避所有的风险,但是会比其他公链团队更有风险意识,并且向DEFI团队提供更多更安全可靠的工具。
目前元界DNA已上线包括OKEx、ZB、Bittrex(B网)等全球19家主流交易平台。[2020/8/24]
被攻击合约:
0x5A9Fd7c39a6C488E715437D7b1f3C823d5596eD1--代理合约
动态 | 科学家:“数币将致全球气候达到危险临界值”存在明显缺陷:据livebitcoinnews报道,多名科学家对科学杂志上关于“数字货币被大规模采用,将导致全球气候达到危险临界值”的观点进行批驳,美国西北大学教授Eric Masanet表示,虽然像比特币这样的加密货币的未来增长是高度不可预测的,但我们确实知道全球电力部门正在脱碳,而信息技术,包括加密货币采矿设备,正变得更加节能。科学家观点表示,该研究存在明显缺陷。太阳能和风能等可再生能源正在增加,产生二氧化碳的密集型煤电厂将逐步淘汰;挖矿活动可能从中国等碳密集排放地区转移到冰岛或加拿大等清洁地区;比特币可能被用作价值储存,而不是用于支付,而其他具有替代验证机制的加密货币则更可能被用于支付。[2018/10/31]
0x73a499e043b03fc047189ab1ba72eb595ff1fc8e--逻辑合约
声音 | 日本金融厅前任长官佐藤隆文:虚拟货币交易的规模扩大具有危险性:据日经新闻消息,日本金融厅前任长官佐藤隆文在接受采访时表示:虽然我不会完全否定金融科技,但我认为虚拟货币本身毫无价值,却正在被当作有价值一般进行着交易。价值被过于高估的交易与全球金融危机中滋生问题的资产具有类似性质。虚拟货币交易及其交易媒介(交易所)的规模大幅扩大,这难道不是一件危险的事情吗?[2018/9/18]
攻击者地址:
?0xC6f2bDE06967E04caAf4bF4E43717c3342680d76--部署地址0x878099F08131a18Fab6bB0b4Cfc6B6DAe54b177E--收款地址
2.攻击流程
攻击调用流程攻击者构造payload并调用被攻击合约0x5a9fd7c3的swapAndStartBridgeTokensViaCBridge函数
具体使用的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所说的那样:
我们的使命是最大化用户体验,现在我们痛苦地了解到,为了遵循这种精神,我们的安全措施必须大幅改进。
近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。