原標題:《空手套白狼——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)憑證,用戶使用此憑證可以獲取獎勵并取回抵押的流動性資金,同時此憑證也是可以隨意轉移給其他用戶的。
Coinbase CEO:不會放棄在美國發展,期待大選之后政策風向改變:6月11日消息,Coinbase CEO Brian Armstrong 在接受華爾街日報采訪時被問及是否會像 Bittrex 一樣放棄美國市場,Armstrong 對此回應表示,Coinbase 將繼續在美國發展,并將保持市場領先地位,同時也會大力發展國際化戰略。同時,Armstrong 表示期待 2024 年美國大選之后,美國的加密監管政策會發生改變。
此前報道,Coinbase CEO表示,Coinbase已與SEC分享其上幣審核框架,上幣決策由特定委員會執行。[2023/6/11 21:29:19]
攻擊核心
此次攻擊的核心在于,SorbettoFragola中通過用戶持有的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,為后續在SorbettoFragola中提供流動性獲得PLP憑證做準備。
Coinbase CEO:改善政策監管環境是必要的,做的還不夠:金色財經報道,Coinbase首席執行官Brian Armstrong推特稱,“美國證券交易委員會(SEC)發出的韋爾斯通知極大地鼓舞了士氣。盡管有共同的目標很好,但永遠不要忘記我們的主要目標是為客戶打造更好的產品。改善政策監管環境是必要的,做的還不夠”。[2023/3/27 13:28:22]
隨后攻擊者調用SorbettoFragola合約的deposit函數存入提供流動性對應的兩種代幣(這里以攻擊者首次存入的WETH與USDT代幣為例),其會先通過checkDeviation與updateVault修飾器分別檢查價格與更新獎勵。價格檢查主要是針對價格是否出現大波動被操控等情況,這里不做展開。而獎勵更新就與本次攻擊密切相關了,我們切入分析:
可以看到其調用了_updateFeesReward函數進行具體的更新操作,我們跟進此函數:
Lens Protocol Profiles地板價漲至100 USDC:2月11日消息,據OpenSea頁面信息,Web3社交協議Lens Protocol生態NFT Lens Protocol Profiles當前地板價漲至100 USDC。過去24小時累計成交1679筆,增幅達16%。[2023/2/11 12:01:06]
從上圖我們可以很容易的發現其先通過positionLiquidity函數獲取tickLower與tickUpper范圍內合約所持有的流動性數量。然后通過_earnFees函數從UniswapV3Pool中收取提供流動性獎勵。之后再通過_tokenPerShare函數計算每個PLP憑證所能分得的流動性獎勵。最后通過_fee0Earned與_fee1Earned函數來計算用戶所持有的PLP憑證數量可以獲得多少獎勵,并使用
user.token0Rewards與user.token1Rewards變量進行記錄,如下圖所示:
但由于此時攻擊者剛進行充值操作,還未獲得PLP憑證,因此其user.token0Rewards與user.token1Rewards變量最終記錄的自然是0。
ICF研發團隊推出最新旗艦Cosmos共識引擎CometBFT:2月2日消息,Interchain Foundation (ICF) 研發團隊、Cosmos 網絡核心開發商 Informal Systems 宣布推出用于跨鏈的狀態機復制引擎 CometBFT。CometBFT 是區塊鏈共識引擎 Tendermint Core 的分叉和繼承者,由 Informal Systems 管理,并由 Interchain Foundation (ICF) 代表更廣泛的 Cosmos 網絡提供支持。
Informal Systems 正在準備發布 CometBFT v0.34,并與 CosmosSDK 等眾多其他團隊合作以促進從 Tendermint Core v0.34 到 CometBFT v0.34 的過渡。此外,Informal Systems 表示將在二季度初發布 CometBFT 的詳細 2023 年路線圖計劃。[2023/2/2 11:43:05]
看到這里你可能已經意識到問題所在了,既然user.token0Rewards與user.token1Rewards變量記錄的獎勵是根據用戶持有的PLP憑證進行計算的,且PLP憑證是可以轉移的,那么是否只要持有PLP憑證再去觸發此變量記錄獎勵就可以讓我們獲得獎勵。答案自然是肯定的。我們繼續看deposit函數:
在獎勵更新之后通過liquidityForAmounts函數計算出在目標價格區間內用戶提供資金所占的流動性然后調用UniswapV3Pool?mint函數注入流動性。隨后通過_calcShare計算出SorbettoFragola所需要鑄造給用戶的PLP憑證數量。
菲律賓總統:菲律賓必須利用區塊鏈技術保持全球競爭力:9月14日消息,在UnionBank開發的創新園區落成典禮上 ,菲律賓總統Ferdinand Romualdez “Bongbong” Marcos Jr.(PBBM)表示:“菲律賓必須利用包括區塊鏈技術在內的數字創新,來刺激經濟并保持全球競爭力。”
PBBM自上任以來就一直在呼吁數字化創新。在他的第一次國情咨文中,他呼吁采用“突破性技術”從根本上改變商業運作方式。(CoinGeek)[2022/9/14 13:29:06]
在攻擊者獲得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
FacebookCEO扎克伯格講述這家社交媒體巨頭為何要轉型為一家「元宇宙公司」 作者:CaseyNewton來源:Theverge 編譯:碳鏈價值、王爾玉 六月末.
1900/1/1 0:00:00巴比特訊,Uniswap創始人HaydenAdams7月24日發推表示,UniswapProtocol是以太坊上完全去中心化的免許可智能合約;UniswapInterface開源GPL代碼庫;a.
1900/1/1 0:00:00巴比特訊,7月25日,“2021世界區塊鏈大會·杭州”在杭州未來科技城學術交流中心舉行。本次大會由杭州時戳信息科技有限公司主辦.
1900/1/1 0:00:00關于亞馬遜可能涉足比特幣和Crypto支付的傳言越來越盛行。根據亞馬遜在其網站的招牌啟示顯示,這位電子商務巨頭正在尋求成為一家Crypto和區塊鏈產品的龍頭企業.
1900/1/1 0:00:00這段時間,在NFT的各個項目中,除了AxieInfinity,恐怕聽到最多的就是和加密朋克相關的新聞了。尤其這兩周,來自機構投資者瘋狂買入加密朋克的新聞已經在海外掀起狂潮.
1900/1/1 0:00:007月13日消息,總部位于洛杉磯的價值2.3萬億美元的資產管理公司CapitalInternationalGroup已收購MicroStrategy12.2%的股份.
1900/1/1 0:00:00