加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > 區塊鏈 > Info

BlockSec DeFi攻擊分析系列之三偷天換日:深度剖析Akropolis攻擊事件-ODAILY_POLIS:akro幣漏洞

Author:

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

去中心化金融(DeFi)作為區塊鏈生態當紅項目形態,其安全尤為重要。從去年至今,發生了幾十起安全事件。

BlockSec作為長期關注DeFi安全的研究團隊(https://blocksecteam.com),獨立發現了多起DeFi安全事件,研究成果發布在頂級安全會議中(包括USENIXSecurity,CCS和Blackhat)。在接下來的一段時間里,我們將系統性分析DeFi安全事件,剖析安全事件背后的根本原因

往期回顧:(1)我為自己代言:ChainSwap攻擊事件分析(2)傾囊相送:Sushiswap手續費被盜

0xffffffff.前言

北京時間2020年11月12日夜晚。DeFi聚合器Akropolis遭受攻擊,黑客通過Flashloan+重入的攻擊方式,盜取了存儲在Akropolis中價格超過2,000,000美元的數字資產。本文將以一筆攻擊交易為例,深度解讀此次攻擊的原理。

時間:Nov-12-202012:04:02PM+UTC#11242695

閱讀建議:

如果您剛剛接觸DeFi(Ethereum),可以從頭看器,但是文章比較長,看不下去記得點個關注再走。

如果您對Akropolis等DeFi聚合器項目比較了解,可以直接從「0x2攻擊分析」開始。

0x0.背景介紹

Fireblocks支持Avalanche子網測試網Spruce:5月3日消息,加密貨幣托管技術提供商Fireblocks宣布支持Avalanche子網測試網Spruce,Fireblocks用戶可以托管Spruce子網代幣,并直接從Fireblocks控制臺和API啟動Spruce測試網的交易。[2023/5/3 14:40:05]

2020年可謂是去中心化金融的元年。隨著DeFi生態的不斷發展,越來越多的DeFi項目上線以太坊。普通用戶可以選擇自己喜歡的DeFi項目進行投資以獲得收益。但是隨著DeFi市場的急劇擴張,普通用戶面臨的一個問題就是在眾多DeFi項目中如何選擇投資的目標,他們需要有人來幫助他們來進行投資。在這種情況下,一系列資產托管平臺、投資組合平臺應需而生。Akropolis就是眾多資產托管平臺中的一個:

普通用戶將個人的數字資產投入到Akropolis中,由Akropolis確定投資方向,優化投資策略。Akropolis獲得投資收益之后,將收益按比例分配給投資Akropolis的普通用戶。以現實中的金融活動舉例子,Akropolis就像是基金,其所投資的DeFi項目就是股票,基民購買基金,基金持有股票,獲得收益后將收益分配給基民。

0x1.Akropolis機制

為了便于理解,我們首先簡要地介紹一下和此次攻擊相關的兩個實體合約:Protocolcontract和Akropoliscontract

Yuga Labs聯創:要把Otherside打造成“Web3原生Roblox”,不會設置圍欄花園:金色財經報道,Bored Ape Yacht Club和Yuga Labs的聯合創始人Wylie Aronow和Greg Solano在最新采訪中分享了他們對Yuga的“Otherside”元宇宙游戲的愿景,并表示要把Otherside打造成“Web3原生Roblox”,即:在具有NFT資產的視頻游戲上押下重注,但不會創建一個“圍欄花園”。 Wylie Aronow表示:“元宇宙的想法不是為你建造一個圍欄花園,有些游戲隨著時間的推移就像另一個Web2 MMORPG,對我來說,這不是創新,我喜歡讓社區一起兜風的想法。”此外,Wylie Aronow透露Otherside游戲并不是給兒童,而是給成年人設計的。(decrypt)[2022/10/19 17:31:55]

Protocol:Protocol可以簡單地理解為:用戶將手中的token投資到Protocol中,獲得Protocol的份額,等到將來Protocol中的資產升值了,那么用戶便可以從Protocol獲取到一定的收益

Akropolis:之前我們講過,由于ETH上的DeFi項目太多了,如果用戶要投資多個項目,要么不知如何抉擇,要么操作難度比較大,所以Akropolis扮演了一個投資聚合器的角色:Akropolis綁定了多個DeFi投資項目,用戶可以很方便地通過Akropolis使用手里的token進行投資:用戶只需要簡單的調用Akropolis的函數,指定想要投資的protocol,那么Akropolis就會去幫你在不同的protocol中完成投資。

Blockworks:Arbitrum將重新啟動Odyssey:金色財經報道,據 Blockworks 消息,隨著成功完成 Nitro 遷移,Arbitrum 將重新啟動 Odyssey,Arbitrum 預計,隨著系統重新校準,定序器會在數天到數周內降低 gas 費用,而此前 Odyssey 暫停就是因為交易費用的飆升。據悉,Arbitrum 還暗示正在開發一個去中心化測序儀(sequencer)并推出一些驗證器。[2022/9/2 13:03:18]

總體的交互邏輯如圖所示:

Akropolis提供了兩個外部接口:functiondeposit(address_protocol,addressmemory_tokens,uint256memory_dnAmounts)和functionwithdraw(address_protocol,addresstoken,uint256dnAmount,uint256maxNAmount)

Akropolis.depositfucntion:deposit函數的功能是:

用戶調用deposit。

Akropolis先計算Protocol中有多少的token:nBalanceBefore。

Akropolis將用戶的token轉入到Protocol中。

Akropolis再計算protocol中token的數量:nBalanceAfter。

去中心化RPC服務基礎設施BlockPI啟動測試網,已與Klaytn集成:6月10日消息,去中心化 RPC 服務基礎設施 BlockPI 啟動測試網,并與 Klaytn 集成。Klaytn 終端節點可以運行 BlockPI HyperNode 應用以加入 BlockPI RPC 網絡并在不增加成本的情況下獲得更多收入。此外, BlockPI 主網上線后,Klaytn 項目將能夠免費試用其企業級服務。

此前報道,BlockPI 于今年 1 月宣布完成 300 萬美元種子輪融資,投資方包括 NGC Ventures、Hashkey Capital 等。[2022/6/10 4:16:31]

得到用戶投資的數量:nDeposit=nBalanceAfter-nBalanceBefore。

通過用戶投資的數量計算得到用戶投資份額。

Akropolis.depositToProtocol函數:

Akropolis.distributeYieldInternal函數和Akropolis.updateProtocolBalance函數:

聲音 | Blockstream創始人:在營銷方面,TRON做得更好但以太坊做得更早:Blockstream創始人Adam Back發推特稱,TRON和ETH有什么區別?從外表上看它們非常相似,都是新聞流營銷。也許TRON在這方面做得更好,但以太坊做得更早。[2020/2/9]

Protocol.normalizedBalance函數:

注意,Protocol.normalizedBalance中的_registeredTokens=。deposit函數中使用到的distributeYieldInternal函數和updateprotocolBalance函數的功能都是查詢當前Protocol函數中所有代幣的余額,注意這里面normalizedBalance的意思是對余額歸一化處理。

用戶可以調用deposit函數,通過指定Protocol和token以及token的amount,將一定數量的代幣存入到和Akropolis中,Akropolis根據用戶存入的代幣數量給用戶返還Akropolis的LPToken。隨后使用用戶投資的token投入到Protocol中。

withdrawfucntion:

用戶通過調用withdraw函數,取出之前通過deposit函數存入的token,獲取利息。

0x2.攻擊原理

我們注意到,在Akropolis.deposit函數中,要先計算beforeBalance,然后調用token的transferFrom函數,將token轉到Protocol中,最后計算afterbalance,正常邏輯下這種計算方式是正確的,但是如果攻擊者提供的token地址是一個惡意地址,那么在這種情況下,實際有效的token并沒有轉到Protocol賬戶中,并且Akropolis.deposit沒有防止重入的機制。這樣就使得攻擊者可以利用1.token地址未經校驗,2.deposit函數沒有放重入機制來對Akropolis進行攻擊。攻擊流程圖如下:

STEP1:

攻擊者首先調用Akropolis.deposit函數,傳遞的token地址參數是一個惡意合約地址。函數內部首先計算balanceBefore1,然后由于攻擊者傳遞進來的token合約地址是攻擊者偽造的faketoken,所以Akropolis緊接著調用了fakeToken.transferFrom函數。

STEP2:

在fakeToken.transferFrom函數中,該合約再次調用Akropolis.deposit,傳遞的token地址就是真實的DAI的地址,所以在第二次調用deposit的邏輯是一個正常邏輯:攻擊者存入一筆DAI,然后Akropolis根據balanceAfter2-balanceBefore2為攻擊者mint出對應的LPtoken。注意:這里面balanceBefore2=balanceBefore1。

STEP3:

在step2結束后,交易控制流返回到第一次的deposit之中,注意:這時候Akropolis計算了balanceAfter1并且balanceAfter1=balanceAfter2,然后根據step1中的balanceBefore1計算出balance之差,再一次給攻擊者mint出LPtokens。

雖然在整個交易中攻擊者只給Protocol傳進去一筆約$25k的DAI,但是由于重入的機制,導致的第二次deposit之后balanceBefore1沒有及時更新,使得Akropolis在函數控制流返回到第一次deposit函數中的時候以為攻擊者又給Protocol轉移了$25k的DAI。從而給用戶再一次mint出對應的LPtokens。

Others

總體而言,攻擊者通過重入+構造惡意token合約的方式,在僅僅花費$25kDAI的情況下使得Akropolis以為攻擊者存入了$50kDAI,最后取出這50kDAI,完成攻擊,獲利25kDAI。

Step3中我們提到了其實balanceAfter2比balanceAfter1小1,這個原因是在deposit的后續操作中會將用戶傳遞進來的token注入到Curve的池子之中,而Curve的合約中會檢查Curve之中Token的余額變化,如果說池子的余額沒有變化,那么Curve就會執行revert。所在faketoken的transferFrom函數中一定要往protocol之中轉一筆錢,不過數量不限。

可以看出在faketoken的transferFrom函數中攻擊者向Protocol轉了1個DAI。

0x3.總結

由于Akropolis并沒有對用戶傳遞進來的token參數進行校驗,加上deposit函數沒有防重入,導致攻擊者利用偽造的tokencontract重入deposit函數,從而達到偷天換日,魚目混珠,使用少量的DAI換出大量的DAI的效果。

BlockSec團隊以核心安全技術驅動,長期關注DeFi安全、數字貨幣反洗錢和基于隱私計算的數字資產存管,為DApp項目方提供合約安全和數字資產安全服務。團隊發表20多篇頂級安全學術論文(CCS,USENIXSecurity,S&P),合伙人獲得AMiner全球最具影響力的安全和隱私學者稱號(2011-2020排名全球第六).研究成果獲得中央電視臺、新華社和海外媒體的報道。獨立發現數十個DeFi安全漏洞和威脅,獲得2019年美國美國國立衛生研究院隱私計算比賽(SGX賽道)全球第一名。團隊以技術驅動,秉持開放共贏理念,與社區伙伴攜手共建安全DeFi生態。

https://www.blocksecteam.com/

contact@blocksecteam.com

Tags:POLISAKROAkropolisLISakro幣漏洞Akropolis Delphi

區塊鏈
純白矩陣開啟元宇宙開發者集訓營活動,今日正式開始招募-ODAILY_元宇宙:ETHSTK

報名截止日期: 8月2日----8月10日23點59分澳本聰暗示蘋果存儲比特幣白皮書可能侵犯版權:金色財經報道,針對“蘋果是否可能因為在其計算機上存儲比特幣白皮書而侵犯版權”的問題.

1900/1/1 0:00:00
EIP-1559的玩笑被誤導,比特幣將成為Twitter重要組成部分-ODAILY_以太坊:rly幣為什么要關閉以太坊側鏈

再回到推特這邊,在21號晚上推特的CEO杰克多西剛在三巨頭會議上討論了比特幣之后,又在今天上午Twitter公布了2021財年第二季度財報.

1900/1/1 0:00:00
玩游戲也能賺錢?NFT游戲Axie Infinity正引領一波加密風潮-ODAILY_AXI:AXIAV3幣

作者:AndrewHayward來源:decrypt.co購買,對戰,培育可愛的小怪獸…還能賺錢?這就是目前市場上最熱門的加密游戲AxieInfinity背后的魅力所在.

1900/1/1 0:00:00
一文了解利用虛擬貨幣洗錢的背后-ODAILY_比特幣:納世幣和比特幣相比哪個值錢一些

提到洗錢,我們經常會在電影中見到各種黑幫老大洗錢的場景,有利用賭場、古董買賣、境外投資、虛擬商品等作為媒介的洗錢手法,而現在有了虛擬貨幣.

1900/1/1 0:00:00
My Neighbor Alice :真正屬于玩家的社交模擬游戲-ODAILY_PAY:ALICE

項目介紹 《MyNeighborAlice》是一款多人建造經營類游戲,所有玩家都可以購買并擁有屬于自己的虛擬島嶼。除此之外,玩家還可以收集和創造新奇的物品,并在島嶼上結識新朋友.

1900/1/1 0:00:00
NFT 終極存儲方案:IPFS 和 Filecoin?-ODAILY_NFT:Fear NFTs

近年來,隨著NFT在數字資產領域的人氣不斷上升,越來越多的人開始認識到它所蘊含的巨大價值,NFT具有的獨特屬性令其成為以數字形式保存人類文化的絕佳方式,圍繞著它所構建的各類應用層出不窮.

1900/1/1 0:00:00
ads