比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

OLA:被空手套白狼,損失近2100萬美元——跨鏈收益率平臺Popsicle遭遇了什么?

Author:

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

原標題:《空手套白狼——Popsicle被黑分析》

2021年08月04日,據慢霧區消息,跨鏈收益率平臺PopsicleFinance的SorbettoFragola產品遭受黑客攻擊,慢霧安全團隊第一時間介入分析,并將結果分享如下。

攻擊背景

在本次攻擊中,攻擊者通過創建3個攻擊合約來完成對SorbettoFragola的攻擊,以下是本次攻擊涉及的具體地址:

攻擊者:

H1:0x3A9D90eD069021057d9d11E78F142F2C4267934A

H2:0xf9E3D08196F76f5078882d98941b71C0884BEa52

攻擊合約:

C1:0xdFb6faB7f4bc9512d5620e679E90D1C91C4EAdE6

C2:0x576cf5f8ba98e1643a2c93103881d8356c3550cf

C3:0xd282f740bb0ff5d9e0a861df024fcbd3c0bd0dc8

SorbettoFragola:

0xc4ff55a4329f84f9Bf0F5619998aB570481EBB48

攻擊對象

通過官方的介紹我們可以知道被攻擊的SorbettoFragola產品主要是用于幫助用戶管理UniswapV3頭寸,以避免用戶在UniswapV3做市的頭寸超出所選定的價格范圍。用戶可以在SorbettoFragola中存入提供流動性對應的兩種代幣,SorbettoFragola會給到用戶PopsicleLP(PLP)憑證,用戶使用此憑證可以獲取獎勵并取回抵押的流動性資金,同時此憑證也是可以隨意轉移給其他用戶的。

比特幣辯護律師稱Craig Wright的訴訟可能損害開源軟件:金色財經報道,非營利組織比特幣法律保護基金的首席法律官Jessica Jonas在5月18日邁阿密舉行的Bitcoin 2023活動中討論了針對比特幣核心開發者的高調訴訟的潛在法律后果。該案件是由Tulip Trading的所有者/經營者Craig Wright在英國提起的法律訴訟。Wright最出名的也許是他聲稱自己是比特幣創造者中本聰,這一說法推動了另一起不相關的訴訟。在Tulip Trading與據稱參與Bitcoin Core開源開發的14名被點名的個人以及其他人之間的案件中,Wright聲稱上述開發者對他負有信托責任。

Jonas解釋說,實施這樣的改變需要對比特幣區塊鏈進行硬分叉,然后期望世界上的每個人都轉向新的分叉,而不是繼續使用現有的核心鏈。Jonas將圍繞受托責任的法律領域描述為“復雜”,接著將訴訟描述為由于超出技術限制的原因而格外危險。[2023/5/19 15:12:28]

攻擊核心

此次攻擊的核心在于,SorbettoFragola中通過用戶持有的PLP憑證數量來參與計算用戶所能獲得的獎勵,但PLP憑證是可以隨意轉移給其他用戶的,但其憑證轉移的過程中沒有進行獎勵結算轉移等操作。這就導致了只要持有PLP憑證就可以立即獲取獎勵。最終造成同個PLP憑證卻能在同個時間節點給多個持有者帶來收益。接下來我們對整個攻擊細節進行詳細分析。

攻擊細節

攻擊首先通過H1地址創建了攻擊合約C1、C2與C3,隨后攻擊者通過H2地址調用了攻擊合約C1開始進行具體的攻擊,交易為:

Crypto.com將針對加拿大用戶下架Tether的USDT穩定幣:金色財經報道,根據Crypto.com向客戶發送的一封電子郵件顯示,Crypto.com將從其加拿大用戶的交易平臺中移除 Tether 的美元掛鉤穩定幣USDT 。

該交易所的一位發言人在一封電子郵件中表示,該公司“根據安大略證券委員會 (OSC) 的指示做出了這一決定,作為我們對受限交易商許可證的預注冊承諾的一部分” 。

所有 USDT 交易對、交易、存款和取款將在美國東部時間 1 月 31 日下午 1 點之前下架,電子郵件繼續。之后所有剩余的 USDT 用戶在交易所的存款將轉換為 Circle 發行的USDC。Crypto.com采取行動之際,世界各地的監管機構在 FTX 急劇崩潰后加強了對中心化交易所的審查,與此同時,頂級穩定幣之間的競爭也在加劇。加拿大證券管理局 (CSA) 是加拿大最高的證券監管機構,由來自 10 個省和三個地區的監管機構組成,上個月表示將通過“擴大對在該國運營的交易平臺的現有要求”來加強對加密貨幣交易所的監督。根據一份新聞稿,CSA 表示,它“將繼續監測和評估穩定幣在加拿大資本市場中的存在和作用” 。[2023/1/11 11:05:07]

0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc。

通過分析此交易我們可以發現,其先從AAVE中利用閃電貸借出了30,000,000個USDT、13,000個WETH、1,400個WBTC、30,000,000個USDC、3,000,000個DAI、200,000個UNI,為后續在SorbettoFragola中提供流動性獲得PLP憑證做準備。

Jimmy Song暗示只有比特幣才是去中心化的:金色財經報道,比特幣開發人員Jimmy Song在社交媒體上稱,你不能審計美聯儲。你不能審計Ethereum。你不能審計Binance Chain。即使你可以,初始狀態是一個中央實體,為自己創造代幣,而沒有做任何工作。但你可以審計比特幣。[2022/12/22 22:01:39]

隨后攻擊者調用SorbettoFragola合約的deposit函數存入提供流動性對應的兩種代幣(這里以攻擊者首次存入的WETH與USDT代幣為例),其會先通過checkDeviation與updateVault修飾器分別檢查價格與更新獎勵。價格檢查主要是針對價格是否出現大波動被操控等情況,這里不做展開。而獎勵更新就與本次攻擊密切相關了,我們切入分析:

可以看到其調用了_updateFeesReward函數進行具體的更新操作,我們跟進此函數:

Waves Labs推出生態加速計劃Waves Camp:10月12日消息,Waves生態系統增長引擎機構Waves Labs宣布推出生態加速計劃Waves Camp,并向為該計劃中的每家公司提供高達10萬美元的種子資金支持和專家輔導幫助。Waves Camp將重點關注DeFi、元宇宙、游戲、DAO項目,以及利基Web3解決方案,最終培養出一個不斷壯大的Web3社區。(BusinessWire)[2022/10/12 10:32:38]

從上圖我們可以很容易的發現其先通過positionLiquidity函數獲取tickLower與tickUpper范圍內合約所持有的流動性數量。然后通過_earnFees函數從UniswapV3Pool中收取提供流動性獎勵。之后再通過_tokenPerShare函數計算每個PLP憑證所能分得的流動性獎勵。最后通過_fee0Earned與_fee1Earned函數來計算用戶所持有的PLP憑證數量可以獲得多少獎勵,并使用

user.token0Rewards與user.token1Rewards變量進行記錄,如下圖所示:

數據:Solana上NFT鑄造量創歷史新高,成交量達到1150萬美元:9月12日消息,據The Block Crypto數據,9月7日,Solana上的NFT鑄造數量突破30萬枚,達到31.2萬枚,創下歷史新高,較9月4日的3.9萬枚大幅增加。

同時,Solana鏈上NFT交易量大幅激增,在9月6日達到1150萬美元的成交量,創下5月以來新高。(TheBlock)[2022/9/12 13:23:40]

但由于此時攻擊者剛進行充值操作,還未獲得PLP憑證,因此其user.token0Rewards與user.token1Rewards變量最終記錄的自然是0。

看到這里你可能已經意識到問題所在了,既然user.token0Rewards與user.token1Rewards變量記錄的獎勵是根據用戶持有的PLP憑證進行計算的,且PLP憑證是可以轉移的,那么是否只要持有PLP憑證再去觸發此變量記錄獎勵就可以讓我們獲得獎勵。答案自然是肯定的。我們繼續看deposit函數:

在獎勵更新之后通過liquidityForAmounts函數計算出在目標價格區間內用戶提供資金所占的流動性然后調用UniswapV3Pool?mint函數注入流動性。隨后通過_calcShare計算出SorbettoFragola所需要鑄造給用戶的PLP憑證數量。

在攻擊者獲得PLP憑著后也正如我們所想的那樣將PLP憑證轉移給其他地址,并調用SorbettoFragola合約collectFees函數來進行獎勵記錄。

通過上圖的PLP憑證鏈上轉移記錄我們可以看到,在攻擊合約C1獲得PLP憑證后,將其轉移給了攻擊合約C2,隨后調用了collectFees函數。之后攻擊合約C2再將PLP憑證轉移給攻擊合約C3再次調用了collectFees。最后攻擊合約C3將PLP憑證轉移回攻擊合約C1。我們切入collectFees函數進行分析:

通過上圖我們可以很容易的看出此函數也有updateVault修飾器,而經過上面的分析我們可以知道updateVault修飾器用于獎勵更新,因此在攻擊合約C2持有PLP憑證的情況下調用collectFees函數觸發updateVault修飾器則會根據其持有的PLP憑證數量來計算應分得的獎勵,并記入用戶的token0Rewards與token1Rewards變量。需要注意的是此時對于此類PLP憑證持有者緩存的tokenPerSharePaid變量是0,這直接導致了用戶可以獲得PLP憑證持有獎勵。

我們從鏈上狀態的變化也可以看出:

隨后攻擊合約C2也如法炮制即可獲得獎勵記錄。

最后PLP憑證轉移回到攻擊合約C1,并調用了SorbettoFragola合約的withdraw函數燃燒掉PLP憑證取回先前存入的WETH與USDT流動性。并且攻擊合約C2、C3分別調用collectFees函數傳入所要領取的獎勵數量以領取獎勵。這樣攻擊者在同個區塊中不僅拿回了存入的流動性還額外獲得多份流動性提供獎勵。

隨后攻擊者開始利用其他的代幣對如法炮制的薅取獎勵,如下圖所示:

攻擊流程

1、攻擊者創建多個攻擊合約,并從AAVE中利用閃電貸借出大量的代幣;

2、攻擊者使用借來的代幣存入SorbettoFragola合約中獲得PLP憑證;

3、攻擊者利用SorbettoFragola合約的獎勵結算缺陷問題將獲得的PLP憑證在其創建的攻擊合約之間進行轉移并分別調用了SorbettoFragola合約的collectFees函數來為各個攻擊合約紀錄獎勵;

4、攻擊者燃燒PLP憑證取回在SorbettoFragola合約中存入的流動性資金,并通過各個攻擊合約調用SorbettoFragola合約的collectFees函數來獲取紀錄的獎勵;

5、不斷的循環上述操作攻擊各個流動性資金池薅取獎勵;

6、歸還閃電貸獲利走人。

MistTrack分析過程

慢霧AML團隊分析統計,本次攻擊損失了約4.98MUSDT、2.56KWETH、96WBTC、5.39MUSDC、159.93KDAI、10.49KUNI,接近2100萬美元。

資金流向分析

慢霧AML旗下MistTrack反洗錢追蹤系統分析發現,攻擊者H1地址首先從Tornado.Cash提幣獲取初始資金隨后部署了三個攻擊合約:

攻擊獲利后通過UniswapV3將獲得的代幣兌換成ETH再次轉入了Tornado.Cash:

目前攻擊者賬戶余額僅為0.08ETH,其余資金均已通過Tornado.Cash進行轉移。

總結

本次漏洞的核心在于由于獎勵更新記錄缺陷導致同個PLP憑證能在同個時間節點給多個持有者都帶來收益。針對此類漏洞,慢霧安全團隊建議在進行憑證轉移前應處理好獎勵結算問題,記錄好轉移前后用戶的獎勵緩存,以避免再次出現此類問題。

參考攻擊交易:

https://etherscan.io/tx/0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc

Tags:OLAAGOGOLETTSolaniumDragon CoinsGoldenWsppBaguette Token

芝麻開門交易所下載
區塊鏈:歐科云鏈聯合南京研究院 成立“歐盾鏈上天眼安全實驗室”

7月8日消息,歐科云鏈集團和南京研究院共同成立“歐盾鏈上天眼安全實驗室”,以加快區塊鏈技術在公共安全、社會治理等領域的有效落地與應用,實現區塊鏈賦能實體經濟又好又快發展.

1900/1/1 0:00:00
OLY:Polygon推出新部門Polygon Studios工作室,推進區塊鏈游戲和NFT工作

巴比特訊,7月20日,以太坊擴展方案Polygon推出新工作室PolygonStudios,推進其區塊鏈游戲和NFT工作.

1900/1/1 0:00:00
區塊鏈:數秦科技崔偉:產業區塊鏈是“產業+區塊鏈”還是“區塊鏈+產業”這是兩種不同的策略丨2021世界區塊鏈大會

巴比特訊,7月24日,“2021世界區塊鏈大會·杭州”在杭州未來科技城學術交流中心開幕。本次大會由杭州時戳信息科技有限公司主辦,杭州未來科技城管委會等機構支持.

1900/1/1 0:00:00
以太坊:以太坊12月份網絡升級或僅包括難度炸彈推遲,樂觀情況下為Eth1和Eth2合并升級

因為倫敦升級納入的EIP-3554提議將難度炸彈延遲到12月,以太坊開發者TimBeiko發帖討論將于12月份進行的網絡升級.

1900/1/1 0:00:00
ZKT:收益耕作協議PolyYeld Finance發布攻擊補償登記及YELD V2規劃

巴比特訊,8月7日,收益耕作協議PolyYeldFinance發布攻擊補償登記及YELDV2規劃.

1900/1/1 0:00:00
BIT:加密礦業公司Core Scientific通過SPAC在納斯達克上市

據U.today7月21日報道,加密礦業公司CoreScientific通過與Power&DigitalInfrastructureAcquisitionCorp合并宣布在納斯達克上市.

1900/1/1 0:00:00
ads