MetaTrust: Onyx的治理和漏洞是如何淪為駭客的「金鏟子」?
BlockBeats 律動財經 2023-11-02 18:00
11 月 1 日,MetaScout 監測到以太坊上的借貸協議 Onyx Protocol 遭受了一次閃電貸攻擊,損失了 210 萬美元。根本原因是駭客盯上並首先執行了添加新市場的提案,以及 Compound 分叉協議中存咋 id 精度損失問題。
MetaTrust Labs 據此對該事件進行了深入的研究和分析,揭露駭客是如何利用治理提案和協議漏洞對 Onyx Protocol 發起這場攻擊。
關於 Onyx Protocol
Onyx Protocol(https://docs.onyx.org/)是一個借貸市場,旨在為以太坊網路上的用戶提供安全和無需信任的信貸和借貸服務。
在 2023 年 10 月 29 日,Onyx Protocol(https://x.com/OnyxProtocol/status/1718348637158137858?s=20)啟動了提案 OIP-22,以將$PEPE 添加到市場中。然而遺憾的是,該提案被駭客盯上並加以攻擊了。
同時,從 Onyx 鏈上部署的合約來看,它是 Compound 衍生協議,由於遭受攻擊,其 TVL 從 286 萬美元下降到 55 萬美元。
攻擊行動
攻擊損失
兩筆攻擊交易的總損失約為 214 萬美元
攻擊者
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)的新市場。
2. 在新市場添加後的一分鐘內,從 AAVE 啟動了一個閃電貸並獲得了 4,000 個$WETH
a. 將 4,000 個$WETH 兌換成 2,520,870,348,093 個$PEPE
b. 將所有的$PEPE 轉移到地址 0xf8e153
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
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,從而導致在贖回時產生計算截斷。
安全建議
對治理提案進行詳細的審計,不僅限於智能合約,特別是在初始化場景和其他邊緣情況下;
考慮在市場初始化時添加少量市佔率以防止操縱,尤其是對於 Compound 協議;
建議採用監控系統,在緊急情況發生時暫停協議。如果 Onyx 已經有一個監控系統,第二次攻擊交易發生超過半小時後可能會被阻止以減少損失。另外,整合一個內存池阻塞系統會非常有益。這個系統可以有效地檢測攻擊者在執行攻擊時在內存池中的攻擊交易,允許進行預防性阻止以避免損失。
資金流向
截稿時,攻擊者(0x085bDf)已使用另一個受控地址(0x4c9c86)將 1140 個$ETH 轉移到混幣平台 Tornado.Cash
另一位攻擊者仍然將竊取的代幣保留在錢包中(0x508395)。
同類攻擊案例
這個漏洞類似於 2023 年 4 月 15 日的 Hundred Finance 遭受的駭客攻擊,該攻擊導致損失約 700 萬美元。 交易鏈接:0x6e9ebcdebbabda04fa9f2e3bc21ea8b2e4fb4bf4f4670cb8483e2f0b2604f451
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 加入鉅亨買幣LINE官方帳號索取免費課程
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇