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

一、前言

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

二、分析

1.攻击者相关信息

攻击tx:0x4b4143cbe7f5475029cf23d6dcbb56856366d91794426f2e33819b9b1aac4e96

ITM Trading首席市场分析师警告CBDC危险:金色财经报道,周末,关于中央银行数字货币(CBDC)的讨论在社交媒体上走红,因为许多人认为这一想法将导致加强金融监管和极权主义货币体系。在最近的一次采访中,ITM Trading首席市场分析师Lynette Zang警告说,CBDC将世界带入一个可以由中央银行直接控制的全面监督经济。[2023/4/17 14:07:30]

被攻击合约:

0x5A9Fd7c39a6C488E715437D7b1f3C823d5596eD1--代理合约

0x73a499e043b03fc047189ab1ba72eb595ff1fc8e--逻辑合约

攻击者地址:

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

英格兰银行行长Andrew Bailey:加密资产既危险又吸引人:英格兰银行行长Andrew Bailey在周一国会财政委员会的提问中表示:坦率地说,我对加密资产持怀疑态度,因为它们很危险,但又很吸引人。总的来说,金融创新对经济有利,但投资者需要保持警惕,注意他们创造的基础资产。(彭博社)[2021/5/25 22:40:05]

2.攻击流程

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

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

观点:若数字支付系统设计不能确保隐私 则其从根本上是危险的:8月10日消息,针对加密社区一直谈论政府主导央行数字货币CBDC所涉及的隐私有关概念,美国程序员,自由软件活动家Richard Stallman表示,加密货币是一种特殊技术方法的使用。如果政府实施这种方法,并不认为这是矛盾的。但如果政府把它用作监控设备,则是邪恶的。如果数字支付系统被设计并不能确保隐私,那么它们从根本上是危险的。(Cointelegraph)[2020/8/10]

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

分析:印度最高法院的判决文本中存在多个危险信号 行业前景仍不容乐观:Policy 4.0创始人兼首席执行官、安永印度(EY India)区块链业务前主管Tanvi Ratna发文谈及了“印度最高法院推翻央行加密货币禁令”一事。Ratna指出,该判决并非最终决定(注:央行仍可提交复审申请),且在判决文本中存在多个危险信号。此外,2019年2月28日提交的一项旨在禁止加密货币的法律草案仍有可能在印度议会获得通过。Ratna在对这份长达180页的判决书进行分析后发现,从本质上讲,整个判决取决于央行是否违反了印度宪法第19 (1)(g)条所规定的一项基本权利——从事任何职业的自由。最高法院的结论是,央行的措施违反了该条款,即禁止了加密货币交易服务商从事其职业的自由,且禁止措施与现存威胁不成比例。裁决还得出结论称,央行没有拿出实验性数据或采用其他可信的替代措施来证实(加密货币的)威胁。此外,最高法院作出该判决的重要原因之一是“目前还没有禁止加密货币的法律”,这意味着一旦有了这样的法律,判决便无法成立。(CoinDesk)[2020/3/7]

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

金色财经现场报道 PeckShield创始人兼CEO蒋旭宪 :如果漏洞存在会让代币极其危险 :金色财经6月3日现场报道,在今天的以太坊技术及应用大会上, PeckShield创始人兼CEO蒋旭做了题为“Code Is Law的主题演讲:以太坊智能合约面临的威胁与挑战”。蒋旭宪说,目前加密市场规模已经超万亿人民币,目前有1640个虚拟货币,市值3300亿美元,相当于全球GDP排名28位的国家,生态安全不容忽视。当前,交易所,钱包,智能合约,交易所等各个生态环节,安全事件频发。蒋旭宪介绍了以9个已公开的漏洞和诸多未公开的漏洞,指出如果漏洞存在,即使是冷钱包,代币也有可能被转走。[2018/6/3]

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

3.漏洞细节

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

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

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

4.项目方进展

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

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

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

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

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

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

三、总结

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

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

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

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

地球链

[0:46ms0-0:759ms