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)憑證,用戶使用此憑證可以獲取獎勵并取回抵押的流動性資金,同時此憑證也是可以隨意轉移給其他用戶的。
數據:流動質押協議Lido總鎖倉量跌破60億美元,過去24小時跌幅7.43%:9月19日消息,據Defillama數據顯示,流動質押協議Lido總鎖倉量跌破60億美元,現為59.8億美元,過去24小時跌幅7.43%。其中以太坊鏈上鎖倉量為58.4億美元。[2022/9/19 7:05:18]
攻擊核心
此次攻擊的核心在于,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憑證做準備。
SEC主席:采用股權證明的加密貨幣可能是證券:金色財經報道,美國證券交易委員會(SEC)主席Gary Gensler表示,股權證明(PoS)加密貨幣可以被視為證券,其中包括在周四完成向 PoS 系統轉變后價值 2000 億美元的以太坊網絡。?在周四的國會聽證會后,Gensler表示,此類資產允許持有人通過質押被動賺取收入,可以通過Howey 測試。法院使用該測試通過檢查投資者是否期望通過持有資產獲得收入來確定資產是否為證券。[2022/9/16 7:01:33]
隨后攻擊者調用SorbettoFragola合約的deposit函數存入提供流動性對應的兩種代幣(這里以攻擊者首次存入的WETH與USDT代幣為例),其會先通過checkDeviation與updateVault修飾器分別檢查價格與更新獎勵。價格檢查主要是針對價格是否出現大波動被操控等情況,這里不做展開。而獎勵更新就與本次攻擊密切相關了,我們切入分析:
可以看到其調用了_updateFeesReward函數進行具體的更新操作,我們跟進此函數:
從上圖我們可以很容易的發現其先通過positionLiquidity函數獲取tickLower與tickUpper范圍內合約所持有的流動性數量。然后通過_earnFees函數從UniswapV3Pool中收取提供流動性獎勵。之后再通過_tokenPerShare函數計算每個PLP憑證所能分得的流動性獎勵。最后通過_fee0Earned與_fee1Earned函數來計算用戶所持有的PLP憑證數量可以獲得多少獎勵,并使用
瑞士信貸上個季度為客戶持有3200萬美元的數字資產:金色財經報道,根據監管文件,瑞士信貸在第二季度末為其客戶持有3100 萬瑞士法郎(約合 3200 萬美元)的資產和負債,并隱晦地描述如下:其中數字資產保護資產。它沒有報告在前兩個季度持有這些資產。該文件沒有提供數字資產的具體數額。
一位知情人士說,瑞士信貸披露,它根據美國證券交易委員會的會計準則為其客戶持有代幣化證券。所謂的“?SAB 121?”指示為客戶持有“加密資產”的公司在資產負債表上將其報告為資產和負債。監管機構在 3 月份公布了該指南,以強調加密貨幣托管的“重大風險”。瑞士信貸在其年度報告中指出,它現在遵循該會計準則。[2022/9/1 13:01:18]
user.token0Rewards與user.token1Rewards變量進行記錄,如下圖所示:
但由于此時攻擊者剛進行充值操作,還未獲得PLP憑證,因此其user.token0Rewards與user.token1Rewards變量最終記錄的自然是0。
看到這里你可能已經意識到問題所在了,既然user.token0Rewards與user.token1Rewards變量記錄的獎勵是根據用戶持有的PLP憑證進行計算的,且PLP憑證是可以轉移的,那么是否只要持有PLP憑證再去觸發此變量記錄獎勵就可以讓我們獲得獎勵。答案自然是肯定的。我們繼續看deposit函數:
在獎勵更新之后通過liquidityForAmounts函數計算出在目標價格區間內用戶提供資金所占的流動性然后調用UniswapV3Poolmint函數注入流動性。隨后通過_calcShare計算出SorbettoFragola所需要鑄造給用戶的PLP憑證數量。
Bitget將設立2億美元交易保護基金以更好保護用戶資產:8月1日消息,加密交易所Bitget宣布將設立價值2億美元的交易保護基金,以更好保護用戶資產。該基金旨在為全球用戶提供無與倫比的安全性,并確保平臺用戶享受安全可靠的交易體驗。該基金目前價值約2億美元,包括6,000枚BTC和8,000萬枚USDT。
Bitget承諾,在未來三年內保持該基金的價值穩定在2億美元以上。該基金將作為Bitget用戶和Bitget交易平臺的保障。[2022/8/1 2:50:52]
在攻擊者獲得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憑證持有獎勵。
MetisDAO公布下半年路線圖,將推出新型治理結構Commons和Eco Nodes:6月29日消息,Layer2 協議 MetisDAO 基金會公布今年下半年路線圖,其中提出將采用兩種治理結構,分別是 Commons 和 Eco Nodes,Commons成員可以提出 MIP,并 Eco Nodes 投票決定最終決定。任何人都可以通過質押 Metis 代幣并積累 veMetis 以獲得未來的決策權來創建 DAC 并成為 Common,為 Metis 生態系統的發展做出貢獻的 Commons 可以成為 Eco Nodes,其投票權力將由聲譽徽章決定。MetisDAO 計劃在 12 個月的過渡期內全面實施該治理結構。
此外,Metis Sequencer Pool 將開放供社區參與,智能合約可以選擇哪個成員可以成為下一個 Sequencer,確保 Sequencer 的職位有效輪換。DAC v2.0 將演變為去中心化協作工具和新的基于信譽的機制的門戶,MVP版本將于8月發布。[2022/6/29 1:38:05]
我們從鏈上狀態的變化也可以看出:
隨后攻擊合約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
往期回顧
科普|加密貨幣詐騙,你中招了嗎?(下)
慢霧招募令,加入未來的安全獨角獸
梅開二度——PancakeBunny被黑分析
科普|加密貨幣詐騙,你中招了嗎?(上)
假幣的換臉戲法——技術拆解THORChain跨鏈系統“假充值”漏洞
慢霧導航
慢霧科技官網
https://www.slowmist.com/
慢霧區官網
https://slowmist.io/
慢霧GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
幣乎
https://bihu.com/people/586104
知識星球
https://t.zsxq.com/Q3zNvvF
火星號
http://t.cn/AiRkv4Gz
鏈聞號
https://www.chainnews.com/u/958260692213.htm
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
慢霧科技
現已在非小號資訊平臺發布68篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/10225373.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
比爾·蓋茨再談ChatGPT:將改變我們的世界!
imToken2.9.1現已支持Eth2錢包管理,并深度集成InfStones提供的非托管Eth2質押方案.
1900/1/1 0:00:00鏈聞消息,鏈上衍生品平臺dTrade宣布與數字資產交易公司CumberlandDRW、會員制國際貿易協會DeFiAlliance達成合作.
1900/1/1 0:00:008月05日12:00—8月12日12:00我們將開啟Carry(CRE)超級空投福利,$10,000美元CRE等你來拿!新用戶請點擊注冊Gate.io并參與活動.
1900/1/1 0:00:00Gate.io“芝麻金融”雙幣寶理財服務現已推出BTC/USDT、ETH/USDT雙幣投資理財產品,BTC專區新品持倉期限2-25天,掛鉤參考價格為35000-46000美元.
1900/1/1 0:00:00公告編號2021080401各位關心ZBG.kim的投資者們和項目方:BSV因錢包維護暫停充提幣,具體開放時間以公告為準,給您帶來不便深感抱歉,敬請諒解.
1900/1/1 0:00:00超級潛力幣AM誕生目的在于重振火幣鏈,將致力于壯大火幣鏈,讓火幣鏈流失的用戶從新回歸,以及稀有更多的用戶對火幣鏈達成共識.
1900/1/1 0:00:00