非法资金流动案例分析-Li.Fi攻击

在LiFi攻击案例研究中,MetaSleuth作为链上资金追踪和调查工具,追踪被盗资金,可视化攻击的影响和资金流动。

非法资金流动案例分析-Li.Fi攻击

事件背景

2024年7月16日,著名的链桥(cross-chain bridge)和去中心化交易所聚合器(DEX aggregator) Li.Fi 遭遇了重大的安全攻击。黑客利用了 Li.Fi Diamond Contract,其用户的价值约 1160 万美元的加密货币资产(包含多种稳定币)被盗。向被攻击合约进行过无限制 Approve 操作的用户地址几乎完全被黑客抽干。

攻击利用的漏洞存在于 GasZipFacet 合约的 depositToGasZipERC20() 函数,该合约在攻击发生五天前刚刚被Li.Fi团队部署。函数depositToGasZipERC20 接收了一个由用户控制的参数_swapData,这个参数后来被传递到对函数LibSwap.swap()的调用中。不巧的是,函数LibSwap.swap()内包含了一个可以执行任意函数调用的底层调用过程,这个底层调用的调用目标和调用参数完全由攻击者可以控制的_swapData控制。黑客利用这样的 "arbitrary call vulnerability" 成功发起了未经授权的转账,从向 Li.Fi Diamond Contract 进行过无限制 Approve 操作的用户地址中抽干了所有资金。

使用 Metasleuth 进行资金流分析

2024年7月16日,攻击者发起了近百条交易触发被攻击合约中的 "arbitrary callvulnerability",在30分钟内转走了受害者账户地址中累积约 1160 万美元的稳定币(USDC, USDT, DAI等)。然后,几乎所有被盗的稳定币都快速被黑客swap为了以太坊的原生代币ETH。黑客使用的DEX包含 Uniswap, Metamask Swap 等。swap 交易的例子有: 0xdf9b, 0x11d, 0xb4a4

下面是一个攻击者发起的 swap 交易 0x8e27,利用了 MetamaskSwap Spender。攻击者将非法获取的 333,258 USDT 转换为了 97.16 ETH。使用 Metasleuth 可以清晰地看到交易内部的资金流动情况,包含所有的代币交换池和聚合代理。

在攻击发生后的两小时内,所有被盗资产都被转移到了攻击者控制的下游地址中,用于发送攻击交易的初始攻击地址 0x8b3c 中已经没有任何被盗的 token 了。和 0x8b3c直接相连的地址(即距离初始攻击地址一跳的地址)共有32个,其中有15个地址仅收到了0.1ETH的赃款。直到2024年10月23日,这些地址中的少量ETH仍未被转出。其他的17个地址处理了剩余绝大部分赃款的洗钱过程。

下图展示了资金从部分受害者地址流向被攻击者控制的下游地址的流动:

在将非法资产转移到距离初始攻击地址0x8b3c一跳的地址后,黑客开始分批次地对这些地址中的赃款进行洗钱转移。洗钱转移过程持续了近三个月,几乎所有(大于99%)的非法资金最终被转移到 Tornado Cash,剩下的少量黑钱被转移到交易所 eXch 直接进行兑现。黑客总共发起了114条交易与 Tornado Cash 进行互动。将非法资金转入 Tornado Cash 的交易实例: 0x07de, 0xfe82, 0x6a47, 0x8ea6;将非法资金转入 eXch 的交易实例: 0xaa89, 0x7e65, 0x8572, 0x625c, 0x2dd2, 0xda71

下图是部分资金从第二层洗钱地址(距离初始攻击地址两跳)到第四层洗钱地址(距离初始攻击地址四跳)的转移路径:

第一批次大规模转移发生在攻击发生后的一周内,即7月16日至7月22日之间。攻击者将价值大约 50 万美元的非法资产从地址 0x6a6d 转移到 Tornado Cash。攻击者的非法资金转移显示出了明显的特征:他们将资金转移到远离攻击地址(高风险地址)的下游地址,并逐步将部分资金存入 Tornado Cash。在第一批转移中,最长的转移路径达到了20跳。攻击者使用了极深的洗钱路径来掩盖非法资金流动。在 8 月至 10 月期间,剩余的非法资金以具有相同特征的批次被逐步转入 Tornado Cash。

一个转移批次的实例,黑客将地址 0x8e85 (距离0x8b3c一跳) 中的黑钱转移到 Tornado Cash,表现出了上述特征:

如图所示,在2024 年8 月13日至8月16日期间,攻击者通过长达12跳的路径逐步将 206 ETH 转移到 Tornado Cash。在地址 0xe9f7 处,攻击者将 204 ETH 拆分为两笔交易:发送100 ETH到Tornado Cash,剩余的104 ETH则转移到更深的洗钱地址。这种拆分的模式出现在整个转移过程中,攻击者在每次涉及 Tornado Cash 的操作中,都会使用新的、更深层的地址。

官方措施与当前进展

在攻击发生两天后,LI.FI 官方发布了一份事件报告,声称他们已成功禁用了所有链上的可能受到相同攻击的合约模块,阻止了所有进一步的对用户地址的未授权访问。LI.FI 启动了补偿计划,并全额赔偿了受影响的用户。对于被盗资产的追回,他们表示将继续与执法部门及相关第三方合作,包括行业内的安全团队,以追踪并尝试追回被盗资金。截至2024年10月 22日,几乎所有非法资金已转移至 Tornado Cash,但 Li.FI 尚未发布追踪报告。

一些相关的洗钱地址和交易

地址 交易 非法资金流
0x8e85eace2fa757c1d97c5ebfb8b0622e5f23c5a1 0xe237, 0x0d23 206.49 ETH
0xcb7c341dc6172b642dcf4a14015be70a27e5b31e 0x050c, 0x37d4 873,568 USDT + 36.48 ETH
0x7b93fa16c04cdcf91949d4f5f893f740992ae57e 0x57ea, 0x52ac 332.02 ETH
0x3462d2523cded523ad47c14111aa1dcbe7773675 0xc66d, 0xc0ff 120.55 ETH
0xd0be9c4c84068a9964c3781f540f703c300db268 0x0c3b, 0x1670 275.38 ETH

使用 Metasleuth 构建的详细资金流转移图:

在 Metasleuth 中详细探索整个非法资金流动: https://metasleuth.io/result/eth/0x14c1597cc833783ed8ac08ecc9b704b0a398201d?source=c8cd3609-0402-45eb-bb9e-2f710bd66554

Sign up for the latest updates