Hundred 与 Agave 闪电贷攻击事件分析_UND:BSP

1.前言

北京时间 3 月 15 日晚,知道创宇区块链安全实验室 监测到 Gnosis 链上的借贷类协议 Hundred Finance 与 Agave 均遭遇了闪电贷袭击,包括 AAVE 的分支 Agave 和 Compound 的分支 Hundred Finance 。协议损失超 1100 万美元。目前 项目方已暂停其数百个市场。

知道创宇区块链安全实验室 第一时间跟踪本次事件并分析。

NFT租赁市场Double Protocol将扩展至公链Thunder Core:金色财经报道,NFT租赁市场Double Protocol与公链Thunder Core达成合作,将把NFT租赁服务扩展至Thunder Core上的NFT,其中Flappy Machine将作为首个使用Double Protocol允许玩家租赁NFT的生态项目。[2022/12/27 22:09:45]

Hundred Finance被攻击 tx:

0x534b84f657883ddc1b66a314e8b392feb35024afdec61dfe8e7c510cfac1a098

攻击合约:0xdbf225e3d626ec31f502d435b0f72d82b08e1bdd

Phunk APE Origins#4129以105 ETH成交,创该系列迄今最高交易记录:金色财经报道,据 NFTGo.io 数据显示,Phunk APE Origins#4129 以 105 ETH 价格成交,约合 162,700.68 美元,创该系列迄今最高交易记录。Phunk Ape Origins 是一个向 Crypto Phunk 文化以及 Great Apes 致敬的项目,总计发行 5000 枚链上 Phunk NFT。[2022/10/27 11:49:39]

攻击地址: 0xd041ad9aae5cf96b21c3ffcb303a0cb80779e358

攻击后跨链匿名化:https://etherscan.io/txs?a=0xd041ad9aae5cf96b21c3ffcb303a0cb80779e358

NEAR将于本月启动夜影协议第一阶段并引入Chunk-Only Producers:9月9日消息,NEAR宣布将于本月启动夜影协议第一阶段并引入Chunk-Only Producers,Chunk-Only Producers仅负责在一个分片中生成区块。NEAR计划引入250至400名Chunk-Only Producers,该阶段预计将于本月下旬启动。

据悉,之后的第二和第三阶段均将于2023年启动,第二阶段会将状态和处理都将完全分片,第三阶段则将实现动态分片,网络将被动态拆分为分片,然后根据资源利用率进行合并,进一步提高网络可扩展性。[2022/9/9 13:20:23]

Agave被攻击tx:

0xa262141abcf7c127b88b4042aee8bf601f4f3372c9471dbd75cb54e76524f18e

加密巨鲸“Martian Manhunter”购入超1800万枚狗狗币和近1200枚MATIC:金色财经报道,据链上数据显示,加密巨鲸“Martian Manhunter”(火星猎人)已购入 18,800,433 DOGE(约合1,256,188 美元)和11,988,683 MATIC(约合5,605,116 美元),总价值超过 685 万美元。数据显示,该巨鲸持有超过 4000 万枚 XRP 和 2500 万枚 ADA、3000 万枚 TRX 和 350,000 枚 LINK 和其他一些 Token,总价值接近 1.5 亿美元。[2022/7/5 1:50:50]

攻击合约:0xF98169301B06e906AF7f9b719204AA10D1F160d6

攻击地址: 0x0a16a85be44627c10cee75db06b169c7bc76de2c

安全公司:BSC上项目HUNTER发生Rug Pull,损失达120万美元:5月8日消息,据CertiK监测,HUNTER项目(代币为Hound)发生Rug Pull,损失达120万美元。目前其Discord、电报频道已经关闭,官方网站也不可用。其BSC链上合约地址为:0x1e4402Fa427a7A835fC64ea6d051404ce767A569。[2022/5/8 2:58:45]

攻击后跨链匿名化:https://etherscan.io/txs?a=0x0a16a85be44627c10cee75db06b169c7bc76de2c

由于 Hundred Finance 与 Agave 攻击流程与手法类似,因此我们使用 Hundred Finance 进行分析。

Hundred Finance 攻击调用流程

1、攻击者利用合约在三个池子中利用闪电贷借出 WXDAI 和 USDC

2、在 WETH 池子质押借出的部分 USDC

3、利用重入利用一笔质押,超额借出池子中资金

4、重复质押-重入借出步骤,将其他两个池子资产超额借出

5、归还闪电贷

6、获利转移

导致本次问题的根本原因是由于在 Gnosis 链上的官方桥接代币 xDAI 合约中实现了一个对于 to 地址的回调( callAfterTransfer 函数)

合约实现地址:

https://blockscout.com/xdai/mainnet/address/0xf8D1677c8a0c961938bf2f9aDc3F3CFDA759A9d9/contracts

该回调将直接导致重入漏洞的产生,同时由于在 Hundred Finance 团队 fork 的 Compound 版本中没有严格遵循检查-生效-交互(防止重入的另一种方式),进而导致了总借贷量更新晚于重入实现。最终攻击者得以超额借贷。

类似的,对于 Agave 项目方,攻击者利用 liquidateCall 函数内部调用会调用 xDAI 的 callAfterTransfer 方法进行回调,最终导致攻击者能再次进行借贷。

在 Hundred Finance 攻击中攻击者重入的调用路径如下:

在 Agave 攻击中攻击者回调路径(调用 liquidateCall 时内部调用时回调)如下:

此次遭受攻击的两个借贷项目由于错误的引入了存在重入的 token,同时项目方的 fork 的代码没有采用检查-生效-交互模式导致了问题的发生。

我们强调:对于一个优秀的项目的引用必须建立在足够的理解和严谨的开发上,尤其是存在差异化的部分,切忌顾此失彼最终因为一个小的差错导致项目全部的损失。

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

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

水星链

[0:31ms0-1:33ms