首發 | Fortress Loans「被薅羊毛」298萬美元攻擊事件分析

發表於 2022-05-09 16:30 作者: CertiK中文社區

vsVMsKQQjsDMvbDwlo749MvG71lBxuRaFWOfVqYD.png

北京時間2022年5月9日凌晨4:34:42,CertiK安全技術團隊監測到Fortress Loans遭到預言機操縱攻擊。

北京時間5月9日上午10:05,JetFuel Finance也正式確認了關於預言機操縱的消息,並發布了可疑地址和交易的鏈接:

目前該項目損失約1,048.1 ETH和400,000 DAI(總價值約298萬美元)。攻擊者通過DAO和預言機操縱來盜取ETH和DAI以完成本次攻擊。當其獲取所盜代幣後,迅速將所有的代幣換成ETH,並通過Tornado Cash將ETH轉出。

漏洞交易

https://bscscan.com/tx/0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf

https://bscscan.com/tx/0x851a65865ec89e64f0000ab973a92c3313ea09e80eb4b4660195a14d254cd425

相關地址

攻擊地址:https://bscscan.com/address/0xA6AF2872176320015f8ddB2ba013B38Cb35d22Ad

攻擊者合約(極有可能已自毀):

https://bscscan.com/address/0xcd337b920678cf35143322ab31ab8977c3463a45

Fortress Loans預言機:

https://bscscan.com/address/0x00fcf33bfa9e3ff791b2b819ab2446861a318285#code

鏈合約:https://bscscan.com/address/0xc11b687cd6061a6516e23769e4657b6efa25d

攻擊步驟

攻擊者創建並資助了一個EOA(0x0db3b68c482b04c49cd64728ad5d6d9a7b8e43e6),向Fortress Governor Alpha合約(0xe79ecdb7fedd413e697f083982bac29e93d86b2e)提出提案,提案ID爲11。

Proposal11: https://bscscan.com/tx/0x12bea43496f35e7d92fb91bf2807b1c95fcc6fedb062d66678c0b5cfe07cc002#eventlog

另一個攻擊者控制的EOA(0x0db3b68c482b04c49cd64728ad5d6d9a7b8e43e6)隨後被投票給這個提案:https://bscscan.com/tx/0x83a4f8f52b8f9e6ff1dd76546a772475824d9aa5b953808dbc34d1f39250f29d#eventlog

提案11因此被執行,將FTS代幣抵押品增加到70000000000000,這使得攻擊者可以在以下步驟中利用它來獲利。

隨後,攻擊者通過攻擊合約https://bscscan.com/address/0xcd337b920678cf35143322ab31ab8977c3463a45,提供100個FTS作爲抵押,並借入巨額的其他代幣作爲回報。https://bscscan.com/tx/0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf

攻擊者還通過調用鏈式智能合約中的 "submit() "函數來操縱預言機,其中 "requiredSignatures "可以被繞過,並且在部署中禁用power check。

最終部分利潤被轉移到攻擊者的地址,其余的利潤被轉移到攻擊合約之外。

合約漏洞分析

漏洞①

第一個漏洞是治理合約的一個設計缺陷。

治理合約可以執行成功提案,以修改借貸相關的配置(即增加一個抵押品和其相應的抵押品系數)。然而,要成功執行提案,投票所需的最低FTS代幣是40萬。由於FTS代幣的價格很低,攻擊者用大約11個ETH交換了超過40萬個FTS代幣。

有了這些FTS代幣,攻擊者可以隨意創建一個惡意提案並成功執行。

漏洞②

第二個漏洞是鏈式合約的 "提交 "功能有一個缺陷——允許任何人更新價格。

JiovHk2Ajs9vNGvv0uJlfNNBY3jcXgos4mT2fKhn.png

L142中的必要語句被注釋掉了。因此,沒有驗證以確保函數調用被正確觸發。

資產去向

78萬+228萬USDT在兩次攻擊交易後被轉移到攻擊者地址。

230萬USDT被發送到Ethereum to anySwap(Multichain)。

77萬USDT通過cBridge(Celer Network)發送到以太坊。

所有的USDT通過Unswap兌換成ETH和DAI,並發送至Tornado Cash。

時間线

北京時間5月9日凌晨00:30左右,Fortress(FTS)的代幣價格暴跌。很快項目團隊即在telegram中說明:項目出了一些問題,目前正在調查中。

但這次攻擊可能开始得比我們想象中更早

攻擊者第一次开始「試探」是在北京時間4月20日凌晨1:41:59,他們部署了一個未經驗證的自定義合約。在 "踩點"之後接下來的幾周裏,攻擊者持續通過一系列的交易與Fortress進行交互,並部署未經驗證的合約,這一行爲直到此次攻擊事件的前幾天才消停。

攻擊者部署了合約後,他們又啓動了一系列的交易——允許他們創建和資助一個外部擁有的地址,向Fortress Governor Alpha合約提出惡意提案並自己進行投票——因爲攻擊者之前操縱了價格,因此他們能夠輕松地購买足夠的FTS也就是40萬的必要投票),隨後將FTS代幣的抵押品設置得極高,使得FTS價值增加,用其借取大量其他代幣,然後換成ETH和DAI。

除此之外,攻擊者部署的合約中還有一個 "自毀"功能,一旦惡意交易全部完成即會觸發。

目前資金在通過cBridge(Celer Network)橋和Multichain交換橋後被轉移到以太坊鏈,並在一系列後續交易中被發送到Tornado Cash。

寫在最後

本次攻擊事件本應通過安全審計來有效地避免。

針對漏洞①,由於治理代幣的價格和有多少代幣在流通是未知的,因此發現這個風險並不容易,但可以通過一定的風險發現來警告潛在的相關攻擊行爲。

針對漏洞②,審計可以發現關鍵驗證的缺失,避免任何人都有可能通過提交功能來操縱價格。

預言機操縱造成的攻擊並非僅此一例,日前CertiK發布的【只要操縱預言機就能空手套白狼?DEUS Finance DAO被盜1570萬美元攻擊事件分析】受盜資金更爲龐大。

加密領域安全風險層出不窮,項目團隊應盡可能提高相關警惕並時刻關注安全事件以自查,並及時完善和審計合約代碼。

標題:首發 | Fortress Loans「被薅羊毛」298萬美元攻擊事件分析

地址:https://www.coinsdeep.com/article/2507.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊