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
以攻擊交易0x f 7 c 216 為例
1. 駭客(0x 085 bDf)先執行提案OIP-22 以新增一個名為oPEPE(0x 5 fdbcd)的新市場
2. 在新市場添加後的一分鐘內,從AAVE 啟動了一個閃電貸並獲得了4, 000 個$WETH
將4, 000 個$WETH 兌換成2, 520, 870, 348, 093 個$PEPE
將所有的$PEPE 轉移到地址0x f 8 e 153

在上述地址0x f 8 e 153 創建合約,使用1 個$PEPE 鑄造了50, 000, 000, 000, 000, 000, 000 個$oPEPE,贖回了絕大部分$oPEPE,僅剩下2 wei 給oPEPE 市場
將2, 520, 870, 348, 093 個$PEPE 轉移到oPEPE 並以$oPEPE 進入市場
借334 個$ETH
由於精確度損失問題,僅贖回了1 wei 的$oPEPE 就換取了2, 520, 870, 348, 093 個$PEPE
從步驟b 到步驟f 重複上述步驟,借入$USDC、$USDT、$PAXG、$DAI、$WBTC 和$LINK,兌換成$ETH
匯率= (總現金+ 總借出- 總儲備)/總供給= 2, 520, 870, 348, 093, 423, 681, 390, 050, 791, 472 / 2 = 1, 260, 43, 46, 464 , 260, 435, 460 , 711, 840, 695, 025, 395, 736
贖回金額= 2, 520, 870, 348, 093, 423, 681, 390, 050, 791, 470
由於受到交易截斷,贖回代幣= 贖回金額/ 匯率= 1
清算借款人(0x f 8 e 153)的881, 647, 840 wei $PEPE
贖回了856, 961, 701 wei $PEPE
3. 用4, 002 個$WETH 還清AAVE 的閃電貸,從中獲得了1156.9 個$ETH 的利潤
根本原因
一方面,駭客非常熟悉Compound 協議的精確度損失問題,並提前註意到了Onyx Protocol 的漏洞,因此,駭客可能早期的意識到了提案OIP-22 中的問題,一旦提案啟動並準備好執行,駭客搶先執行該提案,並在僅僅一分鐘後就發動了攻擊。
另一方面,精確度損失漏洞是攻擊的根本原因。駭客操縱了totalSupply 使其變成一個極小的值即2 ,並將totalCash 增加到極大的值,即2520870348093423681390050791471,以放大exchangeRate,從而導致在贖回時產生計算截斷。
安全建議
對治理提案進行詳細的審計,不僅限於智慧合約,特別是在初始化場景和其他邊緣情況下;
考慮在市場初始化時添加少量份額以防止操縱,尤其是對於Compound 協議;
建議採用監控系統,在緊急情況發生時暫停協議。如果Onyx 已經有一個監控系統,第二次攻擊交易發生超過半小時後可能會被阻止以減少損失。另外,整合一個記憶體池阻塞系統會非常有益。這個系統可以有效地偵測攻擊者在執行攻擊時在記憶體池中的攻擊交易,允許進行預防性阻止以避免損失。
資金流向
截止時,攻擊者(0x 085 bDf)已使用另一個受控位址(0x 4 c 9 c 86)將1140 個$ETH 轉移到混幣平台Tornado.Cash
另一位攻擊者仍將竊取的代幣保留在錢包中(0x 508395)
同類型攻擊案例
這個漏洞類似於2023 年4 月15 日的Hundred Finance 遭受的黑客攻擊,該攻擊導致損失約700 萬美元。交易連結:0x6e9ebcdebbabda04fa9f2e3bc21ea8b2e4fb4bf4f4670cb8483e2f0b2604f451
關於MetaTrust Labs
MetaTrust Labs 是新加坡南洋理工大學孵化的領先Web3人工智慧安全工具和程式碼審計服務供應商。我們提供先進的AI 解決方案,賦予開發者和專案相關者保護Web3應用程式和智慧合約的能力。我們的綜合服務包括AI 安全掃描、代碼稽核、智慧合約監控和交易監控。在MetaTrust Labs,我們致力於保護Web3領域,使建構者能夠充滿信心且可靠地進行創新。
Website: metatrust.io
Twitter: @MetatrustLabs


