0x01:前言
援引官方消息,北京時間12月19日,Fantom鏈上復合收益平臺GrimFinance遭遇了閃電貸攻擊。知道創宇區塊鏈安全實驗室第一時間對本次事件深入跟蹤并進行分析。
0x02:事件詳情
交易細節如下圖所示:
瀏覽上圖的交易過程可知,攻擊合約利用閃電貸借取代幣WFTM和BTC,將借取的代幣與自己鑄造的代幣質押到SpiritSwap里增加流動性獲取lp代幣,而問題就出現在攻擊者通過depositFor()實現質押的過程中。
通過Tenderly調試該筆交易,攻擊者多次遞歸調用depositFor函數,利用該函數獲取大量代幣:
貝萊德CEO:比特幣是一種國際資產:金色財經報道,貝萊德CEO Larry Fink稱比特幣為“國際資產”,并表示該基金管理公司希望利用其影響力來降低其成本并更容易投資加密貨幣。Fink周三在接受采訪時表示,現在交易比特幣需要花費很多錢,我們希望監管機構將這些文件視為加密貨幣民主化的一種方式。納斯達克中國金龍指數最近重新提交了貝萊德的申請,添加了該提案的詳細信息,表明Coinbase將為新產品提供市場監督。
Fink表示,貝萊德希望聽取美國證券交易委員會等監管機構的意見。比特幣可以代表一種類似于“數字化黃金”的替代性國際資產。最初他對此表示懷疑,因為“它被大量用于非法活動”。[2023/7/6 22:20:54]
Silvergate Bank CEO:持有超過數字資產相關的現金和證券:金色財經報道,加密友好銀行Silvergate Bank發布了首席執行官Alan Lane的一封信,向股東保證其盡職調查做法、風險管理和儲備。信件表示,根據我們的風險管理政策和程序及要求,Silvergate對FTX及其相關實體(包括 Alameda Research)進行了重要的盡職調查,包括入職流程和持續監控,而且,正如我之前指出的那樣,如果我們在任何賬戶中檢測到意外或不尋常的活動,我們會進行調查,并在需要時根據聯邦法規秘密提交可疑活動報告。
此外,我們有意持有超過數字資產相關存款負債的現金和證券。
金色財經此前報道,有媒體指控Silvergate在其兩個客戶FTX和 Alameda Research 之間串通客戶資產轉移。[2022/12/6 21:24:48]
0x03:漏洞分析
deVere Group CEO:距離加密貨幣熊市結束還有幾個月的時間:11月26日消息,金融咨詢公司deVere Group首席執行官Nigel Green表示,距離加密貨幣熊市結束還有幾個月的時間。Green表示,一旦通貨膨脹開始放緩并且中央銀行開始放松貨幣政策,比特幣(BTC)和其他加密資產的價格將會上漲。
根據Green的說法,加密貨幣等加息后貶值的資產可能會在2023年4月開始反彈。(The Daily Hodl)[2022/11/26 20:48:28]
depositFor()函數位于的第1115行:
function?depositFor(address?token,?uint?_amount,address?user?)?public?{
?uint256?_pool?=?balance();
ETH短時跌破1500美元,24小時跌幅3.13%:金色財經報道,ETH短時跌破1500美元,現報價1504.5美元,24小時跌幅3.13%。行情波動較大,請做好風險控制。[2022/10/28 11:51:44]
?IERC20(token).safeTransferFrom(msg.sender,?address(this),?_amount);
?earn();
?uint256?_after?=?balance();
?_amount?=?_after.sub(_pool);?//?Additional?check?for?deflationary?tokens
?uint256?shares?=?0;
?if?(totalSupply()?==?0)?{
百度虛擬形象驅動專利公布 可應用于元宇宙場景:10月17日消息,據天眼查,北京百度網訊科技有限公司“虛擬形象驅動方法、裝置、電子設備及存儲介質”專利公布。專利摘要顯示,該專利涉及計算機視覺、深度學習以及增強現實等人工智能領域,可應用于虛擬形象生成以及元宇宙等場景。[2022/10/17 17:29:04]
??shares?=?_amount;
?}?else?{
??shares?=?(_amount.mul(totalSupply())).div(_pool);
?}
?_mint(user,?shares);
}
該函數的safeTransferFrom()方法從IERC20(token)調用,調用完該方法后,余額balance也會隨之變動,最后通過_mint()方法向用戶添加質押憑證代幣。其中調用的變量token可控,導致攻擊者可以自己實現safeTransferFrom()方法,將該方法重入到depositFor()發起攻擊。
以實施了5次重入攻擊為例,開始_pool的值為0,在重入depositFor方法的前四次里,攻擊者一直傳入自己鑄造的代幣,_pool的值會一直保持為0,但在第五次,也就是最后一次傳入100個受認可的代幣時,_after的值會變成100,而_afer-_pool的差值_amount也就是100,最后由于重入了5次,導致合約會向攻擊者鑄造100*5的質押憑證代幣。
其后果就是攻擊者向該合約質押自己鑄造不受認可的代幣,同樣會增加質押總量,最后利用多出來的質押憑證實現套利。
0x04:修復方案
1.由于depositFor()方法里的token可控才是導致這次攻擊事件的原因,因此只需要在傳遞參數的時候讓token不可控就行:
function?depositFor(?uint?_amount,address?user?)?public
2.由于套利的原因是depositFor()方法里存在修改代幣數量的函數,因此還可以將修改代幣的方法單獨實現,這樣即使token變量可控,也無法成功套利:
function?depositFor(address?token,?uint?_amount,address?user?)?public?{
?IERC20(token).safeTransferFrom(msg.sender,?address(this),?_amount);
}
3.鎖定交易token:
function?setLPToken(address?lp)?public?onlyOwner?{
lpToken?=?lp;
}
function?depositFor(uint?_amount,address?user?)?public?{
uint256?_pool?=?balance();
IERC20(lpToken).safeTransferFrom(msg.sender,?address(this),?_amount);
earn();
......
}
0x05:總結
經過完整分析,知道創宇區塊鏈安全實驗室明確了該次攻擊事件的源頭并非網傳的閃電貸攻擊,攻擊者利用GrimBoostVault合約的depositFor方法參數可控,實施了重入攻擊,將自己的鑄造的無價值代幣兌換成了質押憑證,最后通過withdrawAll方法實現套利,而閃電貸?攻擊者只是利用閃電貸擴大了套利值。
對于合約代碼而言安全性是十分重要的,每一個未經驗證的傳入參數都可能導致巨大的經濟損失,開發者在編寫重要操作方法時,須記住零信任原則,謹慎對待每一個傳入參數。
來源:金色財經
Tags:RESTOKENTOKKENBitwiresMirror World TokenTOKEN價格Monkey Token
據悉,由於首期註冊送活動火熱,ZT於2021年12月20日17:00至2021年12月31日10:00開啟第二期新用戶註冊送USDT空投活動,新用戶郵箱註冊可獲30USDT的空投獎勵.
1900/1/1 0:00:00玩家群體仍較小 先不說傳統游戲的30億玩家,只與DeFi的用戶相比GameFi的用戶基數也還很小.
1900/1/1 0:00:00相信大家都會有一種感覺,睡了一覺,滿屏的SOS?所以SOS是什么?一夜爆火?這篇文章帶領大家認識一下SOS!上了抹茶之后不到24小時上漲了十倍.
1900/1/1 0:00:00文|潘曄鄭生竹楊丁淼 虛擬貨幣“挖礦”帶來高電耗,同時隱含金融風險,因此有關部門出臺了嚴監管舉措.
1900/1/1 0:00:00寫在前面: 最近人民日報公布了21年十大網絡用語,其中“元宇宙”赫然在列,本應屬于幣圈的概念,讓Facebook一個改名改出圈了.
1900/1/1 0:00:00近日,華安證券研究所發布了“學海拾珠”系列第五十篇研究報告,研究投資者在評價基金時,會考慮哪些因素,通過將近期收益分解成Alpha和因子相關收益,研究投資者會關注哪些因素.
1900/1/1 0:00:00