Bitget App
交易“智”变
行情交易合约跟单BOT理财Web3
MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」?

MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」?

律动BlockBeats律动BlockBeats2023/11/02 10:06
作者:律动BlockBeats

Onyx Protocol是一个借贷市场,旨在为以太坊网络上的用户提供安全和无需信任的信贷和借贷服务。


11 月 1 日,MetaScout 监测到以太坊上的借贷协议 Onyx Protocol 遭受了一次闪电贷攻击,损失了 210 万美元。根本原因是黑客盯上并首先执行了添加新市场的提案,以及 Compound 分叉协议中存咋 id 精度损失问题。


MetaTrust Labs 据此对该事件进行了深入的研究和分析,揭露黑客是如何利用治理提案和协议漏洞对 Onyx Protocol 发起这场攻击。


关于 Onyx Protocol


Onyx Protocol(https://docs.onyx.org/)是一个借贷市场,旨在为以太坊网络上的用户提供安全和无需信任的信贷和借贷服务。


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 0


在 2023 年 10 月 29 日,Onyx Protocol( https://x.com/OnyxProtocol/status/1718348637158137858?s=20 )启动了提案 OIP-22,以将$PEPE 添加到市场中。然而遗憾的是,该提案被黑客盯上并加以攻击了。


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 1


同时,从 Onyx 链上部署的合约来看,它是 Compound 衍生协议,由于遭受攻击,其 TVL 从 286 万美元下降到 55 万美元。


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 2


攻击行动


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 3


攻击损失


两笔攻击交易的总损失约为 214 万美元


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 4


攻击者


0xdec2F31C3984F3440540DC78Ef21b1369d4eF767 0x5083956303a145f70ba9f3d80c5e6cb5ac842706


攻击合约


0x052ad2f779c1b557d9637227036ccaad623fceaa


受攻击合约


代理合约: https://etherscan.io/address/0x5fdbcd61bc9bd4b6d3fd1f49a5d253165ea11750


实现合约: https://etherscan.io/address/0x9dcb6bc351ab416f35aeab1351776e2ad295abc4#code


治理合约


https://etherscan.io/address/0xdec2f31c3984f3440540dc78ef21b1369d4ef767


攻击步骤


TL;DR


以攻击交易 0xf7c216 为例


1. 黑客(0x085bDf)首先执行提案 OIP-22 以添加一个名为 oPEPE(0x5fdbcd)的新市场。


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 5


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 6


2. 在新市场添加后的一分钟内,从 AAVE 启动了一个闪电贷并获得了 4,000 个$WETH


a. 将 4,000 个$WETH 兑换成 2,520,870,348,093 个$PEPE


b. 将所有的$PEPE 转移到地址 0xf8e153


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 7


c. 在上述地址 0xf8e153 创建合约,使用 1 个$PEPE 铸造了 50,000,000,000,000,000,000 个$oPEPE,赎回了绝大部分$oPEPE,仅剩下 2 wei 给 oPEPE 市场


d. 将 2,520,870,348,093 个$PEPE 转移到 oPEPE 并以$oPEPE 进入市场


e. 借入 334 个$ETH


f. 由于精度损失问题,仅赎回了 1 wei 的$oPEPE 就换取了 2,520,870,348,093 个$PEPE


i. 汇率 =(总现金 + 总借出 - 总储备)/总供应 = 2,520,870,348,093,423,681,390,050,791,472 / 2 = 1,260,435,174,046,711,840,695,025,395,736


ii. 赎回金额 = 2,520,870,348,093,423,681,390,050,791,470


iii. 由于受到交易截断,赎回令牌 = 赎回金额 / 汇率 = 1


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 8


iv. 清算借款人(0xf8e153)的 881,647,840 wei $PEPE


v. 赎回了 856,961,701 wei $PEPE


g. 从步骤 b 到步骤 f 重复以上步骤,借入$USDC、$USDT、$PAXG、$DAI、$WBTC 和$LINK,兑换成$ETH


3. 用 4,002 个$WETH 还清 AAVE 的闪电贷,从中获得了 1156.9 个$ETH 的利润


根本原因


一方面,黑客非常熟悉 Compound 协议的精度损失问题,并提前注意到了 Onyx Protocol 的漏洞,因此,黑客可能早早的意识到了提案 OIP-22 中的问题,一旦提案激活并准备好执行,黑客抢先执行该提案,并在仅仅一分钟后就发动了攻击。


另一方面,精度损失漏洞是攻击的根本原因。黑客操纵了 totalSupply 使其变成一个极小的值即 2,并将 totalCash 增加到极大的值,即 2520870348093423681390050791471,以放大 exchangeRate,从而导致在赎回时产生计算截断。


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 9


安全建议


对治理提案进行详细的审计,不仅限于智能合约,特别是在初始化场景和其他边缘情况下;


考虑在市场初始化时添加少量份额以防止操纵,尤其是对于 Compound 协议;


建议采用监控系统,在紧急情况发生时暂停协议。如果 Onyx 已经有一个监控系统,第二次攻击交易发生超过半小时后可能会被阻止以减少损失。另外,整合一个内存池阻塞系统会非常有益。这个系统可以有效地检测攻击者在执行攻击时在内存池中的攻击交易,允许进行预防性阻止以避免损失。


资金流向


截稿时,攻击者(0x085bDf)已使用另一个受控地址(0x4c9c86)将 1140 个$ETH 转移到混币平台 Tornado.Cash


MetaTrust: Onyx的治理和漏洞是如何沦为黑客的「金铲子」? image 10


另一位攻击者仍然将窃取的代币保留在钱包中(0x508395)。


同类攻击案例


这个漏洞类似于 2023 年 4 月 15 日的 Hundred Finance 遭受的黑客攻击,该攻击导致损失约 700 万美元。 交易链接:0x6e9ebcdebbabda04fa9f2e3bc21ea8b2e4fb4bf4f4670cb8483e2f0b2604f451


本文来自投稿,不代表律动 BlockBeats 观点。
0

免责声明:文章中的所有内容仅代表作者的观点,与本平台无关。用户不应以本文作为投资决策的参考。

PoolX:锁仓获得新代币空投
不要错过热门新币,且APR 高达 10%+
立即参与!

你也可能喜欢

WUF 代币可领取

Medium2024/08/15 09:55

WuffiTap:终极社交挖矿冒险

Medium2024/08/15 09:51

官方Gala商品店宣布开业

Medium2024/08/14 03:32

2024年7月:通过新发展优化平衡

在七月,ICON推进了其整合工作并优化了系统性能。主要成就包括完成了对Stellar的审计以及Solana的合约。展望八月,我们预计将Sui合约部署到主网。

Icon Foundation Blog2024/08/13 11:16