以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > Gate.io > Info

SUP:DeFi平臺Lendf.Me被黑細節分析及防御建議

Author:

Time:1900/1/1 0:00:00

前言

據慢霧區情報,以太坊 DeFi 平臺 Lendf.Me 遭受重入漏洞攻擊。慢霧安全團隊在收到情報后隨即對此次攻擊事件展開分析,并快速定位了問題所在。

據慢霧科技反洗錢(AML)系統初步統計分析,Lendf.Me 被攻擊累計的損失約 24,696,616 美元,具體盜取的幣種及數額為:

之后攻擊者不斷通過 1inch.exchange、ParaSwap、Tokenlon 等 DEX 平臺將盜取的幣兌換成 ETH 及其他代幣。

以下是詳細分析過程。

攻擊細節

本次對 Lendf.Me 實施攻擊的攻擊者地址為 0xa9bf70a420d364e923c74448d9d817d3f2a77822,攻擊者通過部署合約 0x538359785a8d5ab1a741a0ba94f26a800759d91d 對 Lendf.Me 進行攻擊。

DeFi保險平臺Uno Re推出加密資產保險覆蓋門戶:4月23日消息,去中心化保險平臺Uno Re今天宣布推出了一個保險覆蓋門戶,使DeFi用戶能夠立即為他們的加密資產投保。

該公司表示,它正在解決DeFi空間獲得針對潛在黑客攻擊的保險需求。與去年同期相比,黑客攻擊事件在2022年第一季度增加了幾倍。

Uno Re稱,該門戶網站可以掃描用戶的錢包,檢測其中的可保險資產,使用基于人工智能的算法衡量可能的風險,為用戶保護其鏈上資產,并允許用戶使用USDC支付保費。(The Block)[2022/4/23 14:43:56]

通過在 Etherscan 上查看攻擊者的其中一筆交易:https://etherscan.io/tx/0xae7d664bdfcc54220df4f18d339005c6faf6e62c9ca79c56387bc0389274363b

數據:當前DeFi協議總鎖倉量為2622億美元:金色財經消息,據Defi Llama數據顯示,目前DeFi協議總鎖倉量為2622億美元,24小時減少0.56%。鎖倉資產排名前三分別為AAVE(223.1億美元)、Curve(213.1億美元)、Anchor(179.2億美元)。[2022/4/17 14:29:15]

我們發現,攻擊者首先是存入了 0.00021593 枚 imBTC,但是卻從 Lendf.Me 中成功提現了 0.00043188 枚 imBTC,提現的數量幾乎是存入數量的翻倍。那么攻擊者是如何從短短的一筆交易中拿到翻倍的余額的呢?這需要我們深入分析交易中的每一個動作,看看究竟發生了什么。

通過把該筆交易放到 bloxy.info 上查看,我們能知道完整的交易流程

AllianceBlock將在第四季度前為倫敦證券交易所客戶提供DeFi橋:金色財經報道,AllianceBlock創始人Rachid Ajaja表示,到今年年底,將為倫敦證券交易所(LSEG)的機構客戶在傳統金融業(TradFi)和去中心化金融(DeFi)之間架起一座新的橋梁。該公司的“數據隧道”的最小可行化產品(MVP)已發布,功能齊全的v1.0有望在下個月發布。估計將在第3到第4季度看到LSEG的第一個用例。[2021/4/29 21:09:11]

通過分析交易流程,我們不難發現攻擊者對 Lendf.Me 進行了兩次 supply() 函數的調用,但是這兩次調用都是獨立的,并不是在前一筆 supply() 函數中再次調用 supply() 函數。

緊接著,在第二次 supply() 函數的調用過程中,攻擊者在他自己的合約中對 Lendf.Me 的 withdraw() 函數發起調用,最終提現

Annemieke Dirkes:世界需要去中心化,DeFi將成為“新曙光”:據官方消息,由元界DNA總冠名的“FINWISE2020紛智云端峰會”海外場于歐洲時間5月29日盛大開啟。知名投資人、國際商務董事會區塊鏈顧問Annemieke Dirkes出席。

Annemieke Dirkes分析了去中心化的定義和判斷標準。她指出,去中心化區塊鏈的重要特征體現在不依賴第三方管理機構或硬件設施,沒有中心管制,沒有單點故障(single point of failure)。她指出,所有傳統銀行都具有單點故障的特點,這種中心化特征具有很大的風險,2008年的經濟危機已經證明了這一點。目前,全球正深受新冠疫情影響,傳統的中心化世界正面臨信任危機,而去中心化的加密貨幣將給無法獲得金融服務的群體帶來新的機會,DeFi將成為 “新曙光”。[2020/5/30]

在這里,我們不難分析出,攻擊者的 withdraw() 調用是發生在 transferFrom 函數中,也就是在 Lendf.Me 通過 transferFrom 調用用戶的 tokensToSend() 鉤子函數的時候調用的。很明顯,攻擊者通過 supply() 函數重入了 Lendf.Me 合約,造成了重入攻擊,那么具體的攻擊細節是怎樣的呢?我們接下來跟進 Lendf.Me 的合約代碼。

微軟稱Windows Defender可防止大規模挖礦病攻擊:日前,微軟經測試成功阻止了大規模Dofoil數字貨幣挖礦病。微軟表示:“基于行為信號和機器學習的模型能檢測和攔截近8萬個高級木馬攻擊。Dofoil惡意軟件可以讓攻擊者有機會在其代碼中注入挖礦代碼。”[2018/3/9]

代碼分析

Lendf.Me 的 supply() 函數在進行了一系列的處理后,會調用一個 doTransferIn 函數,用于把用戶提供的幣存進合約,然后接下來會對 market 變量的一些信息進行賦值。回顧剛才說的攻擊流程,攻擊者是在第二次 supply() 函數中通過重入的方式調用了 withdraw() 函數提現,也就是說在第二次的 supply() 函數中,1590 行后的操作在 withdraw() 之前并不會執行,在 withdraw() 執行完之后,1590 行后的代碼才會繼續執行。這里的操作導致了攻擊者可提現余額變多。

我們深入分析下 supply() 函數

根據上圖,可以看到,在 supply() 函數的末尾,會對 market 和用戶的余額進行更新,在這之前,用戶的余額會在函數的開頭預先獲取好并保存在 localResults.userSupplyCurrent,如下:

通過賦值給 localResults 變量的方式,用戶的轉入信息會先暫時保存在這個變量內,然后此時攻擊者執行 withdraw() 函數,我們看下 withdraw() 函數的代碼:

這里有兩個關鍵的地方:

1、在函數的開頭,合約首先獲取了 storage 的 market 及 supplyBalance 變量。

2、在 withdraw() 函數的末尾,存在同樣的邏輯對 market 用戶的余額信息 (supplyBalance) 進行了更新,更新值為扣除用戶的提現金額后的余額。

按正常的提現邏輯而言,在 withdraw() 單獨執行的時候,用戶的余額會被扣除并正常更新,但是由于攻擊者將 withdraw() 嵌入在 supply() 中,在 withdraw() 函數更新了用戶余額 (supplyBalance) 后,接下來在 supply() 函數要執行的代碼,也就是 1590 行之后,用戶的余額會再被更新一次,而用于更新的值會是先前 supply() 函數開頭的保存在localResults 中的用戶原先的存款加上攻擊者第一次調用 supply() 函數存款的值。

在這樣的操作下,用戶的余額雖然在提現后雖然已經扣除了,但是接下來的 supply() 函數的邏輯會再次將用戶未扣除提現金額時的值覆蓋回去,導致攻擊者雖然執行了提現操作,但是余額不但沒有扣除,反而導致余額增加了。通過這樣的方式,攻擊者能以指數級別的數量提現,直至把 Lendf.Me 提空。

防御建議

針對本次攻擊事件慢霧安全團隊建議:

1、在關鍵的業務操作方法中加入鎖機制,如:OpenZeppelin 的 ReentrancyGuard

2、開發合約的時候采用先更改本合約的變量,再進行外部調用的編寫風格

3、項目上線前請優秀的第三方安全團隊進行全面的安全審計,盡可能的發現潛在的安全問題

4、多個合約進行對接的時候也需要對多方合約進行代碼安全和業務安全的把關,全面考慮各種業務場景相結合下的安全問題

5、合約盡可能的設置暫停開關,在出現“黑天鵝”事件的時候能夠及時發現并止損

6、安全是動態的,各個項目方也需要及時捕獲可能與自身項目相關的威脅情報,及時排查潛在的安全風險

附OpenZeppelin ReentrancyGuard: 

https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/ReentrancyGuard.sol

Tags:UPPPLYPPLSUPPUPPETS幣PLY價格Dopple Exchange Tokensup幣騙局

Gate.io
加密貨幣:如何通過纏論走勢分解判斷盤整背馳低點

作者:琛實&東哥,更多文章關注微信公眾號“琛和量化”。走勢在不同級別買賣點之間快速轉化,如何跟上節奏.

1900/1/1 0:00:00
FOM:FOMO心理如何影響比特幣?

由于社交媒體迅速崛起,FOMO一詞變得越來越流行。這個詞也經常被金融市場使用。FOMO(害怕錯過)指的是“害怕錯過某些東西”。如今,我們常常覺得自己錯過了一些重要東西.

1900/1/1 0:00:00
比特幣:分析:散戶投資者正在涌入BTC期權市場

比特幣衍生品市場目前正處于碩果累累的時期。 在4月6日比特幣價格突破7000美元大關之后,其影響直接涌入了期貨和期權市場.

1900/1/1 0:00:00
比特幣:金色硬核 | 相關性大調查:比特幣到底是非相關資產還是避險資產

金色財經近期推出金色硬核(Hardcore)欄目,為讀者提供熱門項目介紹或者深度解讀。自從2020年新冠疫情黑天鵝爆發以來,市場表現讓投資者不得不重新審視比特幣的兩個屬性:非相關資產和避險資產.

1900/1/1 0:00:00
ORIUM:參與FTX「量化空間」策略搭建大賽 贏取FTX定制版區塊鏈手機及FTT大獎

來FTX「量化空間」搭建量化策略,贏取FTX定制版HTC EXODUS 1手機及200FTT大獎!使用FTX推出的全新產品「量化空間」.

1900/1/1 0:00:00
元宇宙:中國食藥區塊鏈專委會批復成立

一場突如其來的疫情,讓“生物安全”成了熱點話題之一。2月10日,中國食藥區塊鏈專委會和智度智鏈聯合發布的“醫療物資鏈”系統管理平臺正式上線。“中國食藥區塊鏈專委會”走進大眾視野.

1900/1/1 0:00:00
ads