買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > 非小號 > Info

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

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挑戰指數今日為1.75‰:金色財經報道,據同伴客數據顯示,05月18日DeFi挑戰指數為1.75‰,較上一周下降0.20‰,挑戰評級為2級。注:挑戰指數是DeFi市場的鎖倉量與華爾街前五大資管機構AUM的比值,用以反映DeFi生態與傳統市場的相對體量。[2021/5/18 22:14:49]

以下是詳細分析過程。

攻擊細節

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

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

中幣(ZB)DeFi挖礦播報:DeFi挖礦總鎖倉量約3974萬美元:據中幣(ZB)平臺數據,今日DeFi挖礦總鎖倉量約為3974萬美元,新增存QFIL挖礦,單日挖礦鎖倉量約為75萬美元;存ZB挖礦、存USDT、和存QC挖礦的鎖倉量較昨日均小幅上漲;存ETH挖礦的鎖倉量不變。[2020/10/20]

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

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

IEX CMO:DeFi與傳統金融的融合是一場巨大的變革:北京時間9月20日 由金色財經主辦的共為·創業者大會廈門站盛大召開,極致的創新型數字資產交易平臺IEX CMO-Rachel 受邀出席圓桌論壇。圍繞“DeFi沉思錄:距離主流大眾還有多遠”的主題與現場嘉賓對話,共同探索行業最新動態。

IEX CMO-Rachel在圓桌環節提出,我們要明確的是,與傳統金融相比,DeFi有更強的開放性和包容性。DeFi仍然是一個實驗,遠沒有被大規模采用,而且與整個加密貨幣一樣,它還會有起有落。盡管如此,從長遠來看,我們仍然相信技術,商業模式和治理方面的潛在突破將為人們帶來可觀的價值。[2020/9/20]

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

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

幣贏CoinW將于8月17日 15:00在DeFi專區上線GEAR:據官方消息,幣贏CoinW將于8月17日 15:00在DeFi專區上線GEAR/USDT交易對,同時開啟“充值送GEAR,-0.1%Maker費率”活動。

據悉,Bitgear.io為交易、DeFi和數字資產提供專業和簡化的工具,這些工具封裝在易于使用的生態系統中,使用戶能夠使用一個簡單的自動仲裁引擎進行投資,該引擎將在被動投資和使用不同的分散金融產品的同時創造最佳的交易機會。詳情查看原文鏈接[2020/8/17]

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

代碼分析

DeFi應用平臺Unagii發布Beta版本并啟動KyberNetwork的Staking質押服務:由新加坡區塊鏈基礎設施公司StakeWith.US推出的DeFi應用平臺Unagii宣布發布Beta測試版并支持KyberNetwork代幣KNC的Staking質押服務。Unagii同時表示,目前在質押KNC的初始階段不會收取任何手續費。

此前報道,StakeWith.US于今年5月宣布與去中心化鏈上交易和代幣互換項目KyberNetwork建立新的合作關系,將在Katalyst協議升級后和StakeWith.US合作提供代幣和投票權抵押服務。[2020/8/14]

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:PPLPLYUPPSUPQripplexDynamic Supply Trackercake幣syruppoolsuperunion

非小號
SCH:ETH 2.0多客戶端測試網 Schlesi 現已上線_CHL

4月27日,以太坊開發者AfriSchoedon(@a4fri)通過推文宣布了Eth2.0多客戶端測試網Schlesi已經上線啦!這是繼最近Eth2.0客戶端團隊PrysmaticLabs發布首.

1900/1/1 0:00:00
數字人:人民網:數字貨幣正式落地還有多遠,未來如何影響我們的生活?_比特幣市值排名

來源:人民網 2020年突如其來的一場新冠肺炎疫情,給傳統產業帶來沖擊的同時,也為數字經濟新業態的發展創造了有利條件,引發了人們對數字貨幣的普遍關注.

1900/1/1 0:00:00
數字人:人民論壇刊文:區塊鏈技術如何助力思想教育_COI

作者:楊葉平 來源:人民論壇 區塊鏈技術以特有的分布式賬本技術、集體維護的技術機制、新型信任機制為其介入思想教育提供了可能.

1900/1/1 0:00:00
區塊鏈:地方政府發文支持豐水挖礦,2018年以來首次:四川或大規模開放_Nuco.cloud

來源:吳說區塊鏈 編者注:原標題為《獨家:地方政府發文支持豐水挖礦18年以來首次四川或大規模開放》吳說區塊鏈獲悉.

1900/1/1 0:00:00
USD:抹茶研究員Jack Zhou:納入新基建,區塊鏈將實現渦輪增壓式發展_MXC

來源:抹茶研究院 4月20日,國家發改委召開例行在線新聞發布會,正式將區塊鏈納入新基建。會上,國家發改委創新和高技術發展司司長伍浩對新基建給出了初步定義:新基建是以新發展理念為引領,以技術創新為.

1900/1/1 0:00:00
COI:中國礦機巨頭億邦申請美國上市,計劃募資1億美元_0xBitcoin

億邦國際——全球最大的比特幣礦機生產商之一,剛剛正式在美國申請了IPO。根據美國證券交易委員會周五披露的申請顯示,億邦計劃通過此次IPO募集最多1億美元.

1900/1/1 0:00:00
ads