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

一、前言

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

二、分析

1.攻击者相关信息

攻击tx:0x4b4143cbe7f5475029cf23d6dcbb56856366d91794426f2e33819b9b1aac4e96

HALO公布空投细节,快照将于3月3日陆续启动:2月26日消息,3D 虚拟形象 NFT 项目 HALO OFFICIAL 发文公布空投细节,空投 Token 总量为 1000 万枚。其中:

HALO NFT 持有者获得 25%;

HALO Avatar NFT 持有者获得 25%;

Life Avatar Poap 持有者获得 10%;

Lifeform Activity Medal 持有者获得 10%;

Lifeform Points 持有者获得 20%;

Lifeform Avatar 持有者获得 5%;

Lifeform Cartoon Avatar 持有者获得 5%。

此外,质押的 NFT 不包含在快照中。因此,用户需确保在拍摄快照之前取消质押。快照时间为:3 月 3 日 8 时(除 Lifeform Points 外的其他地址);3 月 5 日 8 时(Lifeform Points 地址)。[2023/2/26 12:30:27]

被攻击合约:

独家 | 欧科集团捐赠的十万套医用物资?将陆续抵达七家医院:金色财经报道,据欧科集团物资捐赠情况通报,欧科集团捐赠的十万套医用物资已经在运输途中,将陆续抵达武汉、咸宁、黄冈、鄂州、汉中、红安六个县市的七家医院。后续物资仍在采购中。金色财经此前报道,1月27日,欧科集团设立1000万元疫情防治专项基金,联合中华慈善总会共同支援一线防护工作。[2020/1/29]

0x5A9Fd7c39a6C488E715437D7b1f3C823d5596eD1--代理合约

0x73a499e043b03fc047189ab1ba72eb595ff1fc8e--逻辑合约

攻击者地址:

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

动态 | 黑客陆续将搬砖套利获取的ETH转移至Bity交易所进行套现:据追币猎人CoinHunter.io监测,Telegram搬砖套利获取的ETH再度出现新动向,黑客陆续将非法获利的ETH转移至Bity.com交易所套现。细节如下:黑客将0xd01497d开头的ETH地址资金切割成多份分批转移至Bity.com进行套现,共涉及约2162枚ETH。CoinHunter提示,这是黑客开始大批套现资金的开始,建议相关交易所及时采取行动冻结相关黑客账户,以免损失进一步扩大。[2019/11/22]

2.攻击流程

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

多个软件提供商拥抱区块链 陆续引入区块链简化技术流程:雅虎香港财经8日讯,区块链已被多家软件提供商青睐,陆续引入区块链技术简化其技术流程。甲骨文公司于昨日明确表示将于本月推出区块链服务平台,6月发布区块链App;亚马逊网络服务(AWS)已为Ethereum和Hyperledger Fabric引入了区块链模板,提供开源框架创建和部署安全区块链网络的快捷方式;微软在2016年与一家基于以太坊的区块链公司ConsenSys合作,为其Azure服务的客户提供区块链作为企业解决方案。IBM几年前就开始从事区块链项目的工作,成立了一个专门从事该技术的部门。[2018/5/8]

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

Matter Labs将在明年Q1推出Layer 3测试网Pathfinder:10月10日消息,zkSync开发公司Matter Labs将在2023年Q1推出以太坊扩展原型Pathfinder的公共测试网。这是第一个基于以太坊的Layer 3网络,可以显著提高可扩展性。(The Block)[2022/10/10 10:29:50]

调用一次正常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所说的那样:

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

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

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

金智博客

[0:15ms0-7:284ms