2021 年 08 月 04 日,據慢霧區消息,跨鏈收益率平臺 Popsicle Finance 的 Sorbetto Fragola 產品遭受黑客攻擊,慢霧安全團隊第一時間介入分析,并將結果分享如下。
攻擊背景
在本次攻擊中,攻擊者通過創建 3 個攻擊合約來完成對 Sorbetto Fragola 的攻擊,以下是本次攻擊涉及的具體地址:
攻擊者:
H1:0x3A9D90eD069021057d9d11E78F142F2C4267934A
H2:0xf9E3D08196F76f5078882d98941b71C0884BEa52
攻擊合約:
C1:0xdFb6faB7f4bc9512d5620e679E90D1C91C4EAdE6
C2:0x576cf5f8ba98e1643a2c93103881d8356c3550cf
C3:0xd282f740bb0ff5d9e0a861df024fcbd3c0bd0dc8
Sorbetto Fragola:
0xc4ff55a4329f84f9Bf0F5619998aB570481EBB48
攻擊對象
通過官方的介紹我們可以知道被攻擊的 Sorbetto Fragola 產品主要是用于幫助用戶管理 Uniswap V3 頭寸,以避免用戶在 Uniswap V3 做市的頭寸超出所選定的價格范圍。用戶可以在 Sorbetto Fragola 中存入提供流動性對應的兩種代幣,Sorbetto Fragola 會給到用戶 Popsicle LP (PLP) 憑證,用戶使用此憑證可以獲取獎勵并取回抵押的流動性資金,同時此憑證也是可以隨意轉移給其他用戶的。
Custodia Bank宣布上線,比特幣托管即將推出:金色財經報道,數字資產支付和托管解決方案Custodia Bank宣布正式上線,上個月已經開始為外部客戶提供服務,目前在美國部分(但不是全部)州提供的服務包括美元存款和美國政府貨幣市場基金服務。比特幣托管即將推出,為銀行客戶提供大于非銀行的保護。
該團隊表示,Custodia Bank最初僅為美國企業客戶(而非個人)提供服務,而且尚未獲得在美國所有州開展業務的授權,正在緩慢而謹慎地逐步開放業務。[2023/8/11 16:21:06]
攻擊核心
此次攻擊的核心在于,Sorbetto Fragola 中通過用戶持有的 PLP 憑證數量來參與計算用戶所能獲得的獎勵,但 PLP 憑證是可以隨意轉移給其他用戶的,但其憑證轉移的過程中沒有進行獎勵結算轉移等操作。這就導致了只要持有 PLP 憑證就可以立即獲取獎勵。最終造成同個 PLP 憑證卻能在同個時間節點給多個持有者帶來收益。接下來我們對整個攻擊細節進行詳細分析。
攻擊細節
攻擊首先通過 H1 地址創建了攻擊合約 C1、C2 與 C3,隨后攻擊者通過 H2 地址調用了攻擊合約 C1 開始進行具體的攻擊,交易為:
0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc。
通過分析此交易我們可以發現,其先從 AAVE 中利用閃電貸借出了 30,000,000 個 USDT、13,000 個 WETH、1,400 個 WBTC、30,000,000 個 USDC、3,000,000 個 DAI、200,000 個 UNI,為后續在 Sorbetto Fragola 中提供流動性獲得 PLP 憑證做準備。
HorizonHarbor Capital與元本空間達成合作意向:據官方消息,國內數藏平臺元本空間與投資機構HorizonHarbor Capital達成合作意向,雙方將聯合推動區塊鏈技術與Web3變革的創新發展,共同打造新一代數字居民的“紅學元宇宙”。
據官方表示,近日,元本空間首發大觀園系列藏品《紅樓夢中夢紅樓》一經發售,即刻告罄,首發價格為99元,然而由于市場強烈需求,僅24小時內最高成交價已上漲至600元。[2023/8/2 16:14:04]
隨后攻擊者調用 Sorbetto Fragola 合約的 deposit 函數存入提供流動性對應的兩種代幣 (這里以攻擊者首次存入的 WETH 與 USDT 代幣為例),其會先通過 checkDeviation 與 updateVault 修飾器分別檢查價格與更新獎勵。價格檢查主要是針對價格是否出現大波動被操控等情況,這里不做展開。而獎勵更新就與本次攻擊密切相關了,我們切入分析:
可以看到其調用了 _updateFeesReward 函數進行具體的更新操作,我們跟進此函數:
迪拜多種商品交易中心現入駐 500 多家加密初創公司:1月10日消息,迪拜多種商品交易中心(DMCC)發布報告稱,2022 年有 3049 家企業落戶迪拜,環比增加 23%。DMCC 表示,這主要是由于國際需求、DMCC 在關鍵商品領域的持續工作以及區塊鏈和 Web3 企業對 DMCC 加密中心空間不斷增長的需求推動的。目前該加密中心入駐了 500 多家公司。DMCC 是迪拜貿易專用自由區,為初創企業提供稅收減免和其他優惠,于 2021 年推出加密中心(DMCC Crypto Center)。[2023/1/10 11:04:53]
從上圖我們可以很容易的發現其先通過 positionLiquidity 函數獲取 tickLower 與 tickUpper 范圍內合約所持有的流動性數量。然后通過 _earnFees 函數從 Uniswap V3 Pool 中收取提供流動性獎勵。之后再通過 _tokenPerShare 函數計算每個 PLP 憑證所能分得的流動性獎勵。最后通過 _fee0Earned 與 _fee1Earned 函數來計算用戶所持有的 PLP 憑證數量可以獲得多少獎勵,并使用user.token0Rewards 與 user.token1Rewards 變量進行記錄,如下圖所示:
DREP推出500萬美元生態基金,用于開發GameFi 2.0計劃:9月24日消息,公鏈項目DREP推出500萬美元生態基金,該基金將用于NFT相關產品開發并推出GameFi 2.0計劃,支持與元宇宙、NFT、GameFi相關產品的發展。
據悉,DREP GameFi 2.0將不僅提供Play-Own-Earn機制和多鏈控制臺,還包含內置的NFT流動性門戶以及用于質押和投票的SocialFi元素。[2022/9/24 7:18:32]
但由于此時攻擊者剛進行充值操作,還未獲得 PLP 憑證,因此其 user.token0Rewards 與 user.token1Rewards 變量最終記錄的自然是 0。
看到這里你可能已經意識到問題所在了,既然 user.token0Rewards 與 user.token1Rewards 變量記錄的獎勵是根據用戶持有的 PLP 憑證進行計算的,且 PLP 憑證是可以轉移的,那么是否只要持有 PLP 憑證再去觸發此變量記錄獎勵就可以讓我們獲得獎勵。答案自然是肯定的。我們繼續看 deposit 函數:
在獎勵更新之后通過 liquidityForAmounts 函數計算出在目標價格區間內用戶提供資金所占的流動性然后調用 Uniswap V3 Pool mint 函數注入流動性。隨后通過 _calcShare 計算出 Sorbetto Fragola 所需要鑄造給用戶的 PLP 憑證數量。
尼日利亞SEC將向當地加密交易所收取費用:5月16日消息,根據尼日利亞SEC周日發布的數字資產運營指導方針,幣安、Quidax等加密貨幣交易所將被SEC收取3050萬尼日利亞奈拉(約合73,448.48美元)的費用。
根據該指導方針,出售被認為是證券的數字代幣的公司必須向監管機構注冊,其申請將在30天內進行審查,以確定數字資產是否值得被歸類為證券(資產)。
此外,SEC要求位于尼日利亞的加密貨幣交易所繳納費用。據了解,尼日利亞有幾家數字資產運營商,包括幣安、Quidax、Paxful、Buycoins、Remitano和NairaEx,平臺為了繼續運營,必須擁有5億奈拉的實收資本(為交換數字資產而收到的資金)作為證據。
此前消息,尼日利亞發布了數字資產新規則,為加密貨幣交易提供了更清晰的指南。尼日利亞SEC在其網站上發布了“關于數字資產發行、提供平臺和托管的規定”,將數字資產歸類為受SEC監管的證券。新規定涵蓋了數字資產作為證券發行以及數字資產托管機構、交易所和虛擬資產服務提供商的注冊。(Ripples Nigeria)[2022/5/16 3:19:37]
在攻擊者獲得 PLP 憑著后也正如我們所想的那樣將 PLP 憑證轉移給其他地址,并調用 Sorbetto Fragola 合約 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,并調用了 Sorbetto Fragola 合約的 withdraw 函數燃燒掉 PLP 憑證取回先前存入的 WETH 與 USDT 流動性。并且攻擊合約 C2、C3 分別調用 collectFees 函數傳入所要領取的獎勵數量以領取獎勵。這樣攻擊者在同個區塊中不僅拿回了存入的流動性還額外獲得多份流動性提供獎勵。
隨后攻擊者開始利用其他的代幣對如法炮制的薅取獎勵,如下圖所示:
攻擊流程
1、攻擊者創建多個攻擊合約,并從 AAVE 中利用閃電貸借出大量的代幣;
2、攻擊者使用借來的代幣存入 Sorbetto Fragola 合約中獲得 PLP 憑證;
3、攻擊者利用 Sorbetto Fragola 合約的獎勵結算缺陷問題將獲得的 PLP 憑證在其創建的攻擊合約之間進行轉移并分別調用了 Sorbetto Fragola 合約的 collectFees 函數來為各個攻擊合約紀錄獎勵;
4、攻擊者燃燒 PLP 憑證取回在 Sorbetto Fragola 合約中存入的流動性資金,并通過各個攻擊合約調用 Sorbetto Fragola 合約的 collectFees 函數來獲取紀錄的獎勵;
5、不斷的循環上述操作攻擊各個流動性資金池薅取獎勵;
6、歸還閃電貸獲利走人。
MistTrack 分析過程
慢霧 AML 團隊分析統計,本次攻擊損失了約 4.98M USDT、2.56K WETH、96 WBTC、5.39M USDC、159.93K DAI、10.49K UNI,接近 2100 萬美元。
資金流向分析
慢霧 AML 旗下 MistTrack 反洗錢追蹤系統分析發現,攻擊者 H1 地址首先從 Tornado.Cash 提幣獲取初始資金隨后部署了三個攻擊合約:
攻擊獲利后通過 Uniswap V3 將獲得的代幣兌換成 ETH 再次轉入了 Tornado.Cash:
目前攻擊者賬戶余額僅為 0.08 ETH,其余資金均已通過 Tornado.Cash 進行轉移。
總結
本次漏洞的核心在于由于獎勵更新記錄缺陷導致同個 PLP 憑證能在同個時間節點給多個持有者都帶來收益。針對此類漏洞,慢霧安全團隊建議在進行憑證轉移前應處理好獎勵結算問題,記錄好轉移前后用戶的獎勵緩存,以避免再次出現此類問題。
DeFi數據 1.DeFi總市值:920.09億美元 市值前十幣種排名數據來源DeFiboxDeFi總市值數據來源:Coingecko2.過去24小時去中心化交易所的交易量:35.
1900/1/1 0:00:00金色財經報道,官方消息,Synthetix生態期權協議Thales已上線以太坊主網,目前用戶可選擇包含加密貨幣、大宗商品、股票、指數等在內的60多種資產來創建對應的二元期權代幣.
1900/1/1 0:00:00在這個加密通證普遍不景氣的夏天,區塊鏈游戲成為市場的新寵。最近90天內,Axie Infinity的30日交易額從3668357.98美元飛漲到429653644.8美元,漲幅為117倍(數據來.
1900/1/1 0:00:00近日,長沙經開區發布《長沙經濟技術開發區關于加快推進區塊鏈產業發展的若干政策》(以下簡稱《政策》).
1900/1/1 0:00:007月23日,著名的Defi平臺Uniswap發布了一則公告,稱將對于部分token作出限制,此舉在推特上引來巨大爭議,一些用戶指責Uniswap不再是一個去中心化的平臺.
1900/1/1 0:00:00幾周以前,第一個閃電網絡實現 lnd 已經正式推出 beta 版。第二個實現 eclair 在上周發布,第三個實現 c-lightning&nb.
1900/1/1 0:00:00