比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

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

Author:

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

前言

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

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

WETH:55159.02134,

WBTC:9.01152,

CHAI:77930.93433,

HBTC:320.27714,

HUSD:432162.90569,

BUSD:480787.88767,

PAX:587014.60367,

TUSD:459794.38763,

USDC:698916.40348,

USDT:7180525.08156,

USDx:510868.16067,

imBTC:291.3471

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

DeFi平臺EigenLayer在以太坊主網上推出Restaking協議:金色財經報道,根據一份新聞稿,DeFi平臺EigenLayer已經在以太坊主網上部署了其重新抵押協議。該協議允許那些抵押ETH的人通過存入liquid抵押代幣在EigenLayer上重新抵押,包括Lido stETH(stETH)、Rocket Pool ETH(rETH)和Coinbase Wrapped Staked ETH(cbETH)。

EigenLabs是EigenLayer的開發者,在一系列的投資回合中,包括3月份的5000萬美元的A輪投資,總共籌集了6450萬美元,估值為5億美元。[2023/6/15 21:37:44]

以下是詳細分析過程。

攻擊細節

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

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

Terra鏈上DeFi鎖倉量為180.2億美元:金色財經報道,據DefiLlama數據顯示,當前Terra鏈上DeFi鎖倉量為180.2億美元,在公鏈中仍排名第2位。目前,鎖倉量排名前5的公鏈分別為以太坊(1479.7億美元)、Terra(180.2億美元)、BSC(148.6億美元)、Avalanche(113.1億美元)、Solana(96.5億美元)[2022/1/14 8:49:24]

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

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

TOMSWAP正在開發下一個DeFi平臺,或將包括NFT功能:TOMSWAP相關人士稱,TOMSWAP正在開發下一個DeFi平臺,更新可能包括有關NFT的功能;TOM和TOM2將被用作該平臺的原生流動性代幣。TOMSWAP是基于TMTG(MIDAS Touch Gold)的DeFi項目,在過去四個月內,TOMSWAP完成了對TOM和TOM2的開采。TOM和TOM2的總發行量分別為2.5萬枚和1萬枚。[2021/3/19 19:00:37]

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

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

數據:以太坊上DeFi總鎖倉量316.3億美元:據歐科云鏈OKLink數據顯示,截至今日16時,以太坊上DeFi協議總鎖倉量約合316.3億美元,環比上升3.9%。

當前鎖倉量排名前三的協議分別是WBTC 42.2億美元(+0.69%),Maker 40.7億美元(+6.18%)以及Uniswap V2 31.3億美元(+4.05%)。[2021/1/15 16:15:06]

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

DeFi使用率推動以太坊合約請求量創歷史新高:金色財經報道,Coin Metrics表示,7月25日,以太坊上有超過310萬的合約請求量,創歷史新高。據悉,合約請求(contract call)是一個衡量網絡活動的指標。與交易不同,合約請求是用戶從智能合約請求特定功能,不會在區塊鏈上發布任何內容,類似試運行。Coin Metrics表示,以太坊網絡活動創紀錄主要來自去中心化金融(DeFi),其規模已增長了四倍多,目前總鎖定價值達40億美元。[2020/7/29]

代碼分析

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提空。

防御建議

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

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

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

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

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

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

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

附:

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

Tags:UPPPPLSUPPLYPuppy TokenAppleSwap AISuper Doge BrosPLY價格

酷幣下載
WHO 被美國“斷供”啟示:WHO,還是 DAO?_區塊鏈

來源:LongHash 編者注:原標題為《WHO還是DAO,thisistheway》4月15日,美國總統特朗普宣布將會暫停提供資金給世界衛生組織WHO,他表示在新型冠狀病疫情爆發的應對上.

1900/1/1 0:00:00
DeFi 1日連遭2次攻擊,dForce疑被盜2500萬美元資產_DEF

北京時間8點45分,DeFi貸款協議Lendf.Me在區塊高度9899681遭受攻擊,目前技術團隊已經定位問題,并在網頁端建議所有用戶停止往借貸協議存入資產.

1900/1/1 0:00:00
深度 | 區塊鏈技術在金融領域的應用詳解_人工智能

2020年4月,中國工商銀行金融科技研究院正式發布《區塊鏈金融應用發展白皮書》,這是銀行業發布的首個區塊鏈白皮書。該白皮書主要聚焦銀行業為主的金融領域,重點解析了區塊鏈金融領域的典型應用場景.

1900/1/1 0:00:00
“大獎章基金”獲批進行比特幣期貨交易,全球最大的對沖基金之一進軍加密市場_大獎章

作者:LiangChe 來源:比推bitpush.news編者注:原標題《拳打巴菲特腳踢索羅斯!這支基金將進軍比特幣期貨市場》根據3月30日向監管機構提交的表格.

1900/1/1 0:00:00
巴比特專欄 | 去中心化交易、穩定幣、DeFi的“相愛相殺”_DEFI

在我們的印象當中,去中心化交易、穩定幣、Defi金融應該是三個不同的概念,而且是相互之間關系不太大的那種.

1900/1/1 0:00:00
荷蘭反洗錢監管加壓:小規模加密公司如何規避擠出風險?_COIN

作者:羅滔 2020年1月發布的歐盟第五反洗錢指令震動了歐洲加密貨幣行業。荷蘭則在新規基礎上施加了更嚴格的解釋,加大了加密貨幣公司的合規壓力,小規模企業的擠出效應凸顯.

1900/1/1 0:00:00
ads