Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析 - 冷萃財經

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析

一、事件概覽

北京時間6月28日,鏈必安-區塊鏈安全態勢感知平台(Beosin-Eagle Eye)輿情監測顯示,Polygon生態演算法穩定幣項目SafeDollar遭到黑客攻擊。攻擊事件發生後,SafeDollar項目所發行的穩定幣(SDO)價格從1.07美元,瞬間跌至歸零。

有消息指出,一份未經證實的合約抽走了25萬美元的USDC和USDT;後經Rugdoc.io分析證實,此次攻擊事件中黑客總共獲利價值25萬美元的USDC和USDT。隨後,SafeDollar項目方發布公告,要求投資者停止所有與SDO相關的交易。目前,SDO交易已暫時中止。

鑒於此次攻擊事件所具備的標誌意義,成都鏈安·安全團隊第一時間介入分析。繼5月初BSC(幣安智能鏈)諸多鏈上項目頻頻被黑之後,6月末Polygon生態也開始被黑客盯上,「潘多拉魔盒」是否已經悄然開啟?藉此事件,成都鏈安通過梳理攻擊流程和攻擊手法,提醒Polygon生態項目加強安全預警和防範工作。

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析

二、事件分析

此次攻擊事件中,攻擊者利用PLX代幣轉賬時實際到賬數量小於發送數量以及SdoRewardPool合約抵押和計算獎勵上存在的邏輯缺陷,藉助「閃電貸」控制SdoRewardPool合約中抵押池的抵押代幣數量,進而操縱獎勵計算,從而獲得巨額的SDO獎勵代幣,最後使用SDO代幣將SDO-USDC和SDO-USDT兩種兌換池中USDC和USDT全部兌換出來。

攻擊者地址:

0xFeDC2487Ed4BB740A268c565daCdD39C17Be7eBd

攻擊合約:

0xC44e71deBf89D414a262edadc44797eBA093c6B0

0x358483BAB9A813e3aB840ed8e0a167E20f54E9FB

攻擊交易:

0xd78ff27f33576ff7ece3a58943f3e74caaa9321bcc3238e4cf014eca2e89ce3f

0x4dda5f3338457dfb6648e8b959e70ca1513e434299eebfebeb9dc862db3722f3

0x1360315a16aec1c7403d369bd139f0fd55a99578d117cb5637b234a0a0ee5c14

以下分析基於以下兩筆交易:

0xd78ff27f33576ff7ece3a58943f3e74caaa9321bcc3238e4cf014eca2e89ce3f

0x1360315a16aec1c7403d369bd139f0fd55a99578d117cb5637b234a0a0ee5c14

攻擊者首先使用PolyDex的WMATIC和WETH池進行PLX借貸,如下圖所示:

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析

接下來,攻擊者通過攻擊合約反覆進行抵押提取,主要是為了減少SdoRewardPool合約中SDO抵押池中的抵押代幣數量。

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析

PLX代幣合約進行代幣轉移時,如果from地址不在_isExcludedFromFee列表中,並且to地址也不在_isExcludedToFee列表中,會對轉移的代幣收取一次獎勵基金以及銷毀本次轉移代幣數量的0.05%。

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析 而在SdoRewardPool合約中,記錄的數量為調用者所轉移的數量,沒有減去轉移過程中損耗的部分,在進行提取操作時,提取的數量為記錄的數量,超出了用戶實際抵押到本合約的數量,故會造成該抵押池中抵押代幣的異常減少。

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析攻擊者事先通過攻擊合約(0x358483BAB9A813e3aB840ed8e0a167E20f54E9FB)在該抵押池中抵押214.235502909238707603 PLX,在攻擊合約(0xC44e71deBf89D414a262edadc44797eBA093c6B0)攻擊完成後,控制攻擊合約(0x358483BAB9A813e3aB840ed8e0a167E20f54E9FB)在該抵押池中進行獎勵領取,由於SdoRewardPool合約中更新抵押池信息時使用的是balanceOf函數獲取本合約中抵押代幣數量,故獲取到的數量是惡意減少之後的數量,繼而造成PLX抵押池中accSdoPerShare變數異常增大,從而獲取到巨額的SDO代幣獎勵。

最後利用獲取到的SDO代幣將SDO-USDC和SDO-USDT兩種兌換池中USDC和USDT全部兌換出來。

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析 

Polygon生態的「潘多拉魔盒」已打開? | SafeDollar攻擊事件分析三、事件復盤

事實上,此次攻擊事件並不複雜,但是值得引起注意。首先添加抵押池時添加了非標準代幣,再加上計算獎勵時使用了balanceOf函數進行抵押代幣數量的獲取,所以導致了此次攻擊事件的發生。

從安全審計的角度看,項目方作為添加抵押池的管理員,對於將要添加的抵押池中的抵押貸幣,一定要三思而後行。通脹通縮類以及轉移數量與實際到賬數量不同的代幣,不建議作為抵押池的抵押代幣;如果因業務需要一定要添加這些類型的代幣作為獎勵代幣,務必與其他標準代幣分開處理。同時在抵押池中建議使用一個單獨的變數作為抵押數量的記錄,然後計算獎勵時,使用通過此變數來獲取抵押代幣數量,而不是使用balanceOf函數。

另外,此次攻擊事件對於Polygon生態鏈上項目而言,是否會是一個「危險信號」,Polygon生態的「潘多拉魔盒」是否會就此打開,這還需要觀望後續態勢發展。不過,回望5月,BSC生態發生第一起閃電貸攻擊之後,便就此拉開了「BSC黑色五月」序幕。鑒於前車之鑒,成都鏈安在此提醒,Polygon生態鏈上項目未雨綢繆,切實提高安全意識!

冷萃財經原創,作者:Awing,轉載請註明出處:https://www.lccjd.top/2021/06/29/polygon%e7%94%9f%e6%80%81%e7%9a%84%e6%bd%98%e5%a4%9a%e6%8b%89%e9%ad%94%e7%9b%92%e5%b7%b2%e6%89%93%e5%bc%80%ef%bc%9f-safedollar%e6%94%bb%e5%87%bb%e4%ba%8b%e4%bb%b6%e5%88%86%e6%9e%90/?variant=zh-tw

0

掃一掃,分享到微信

猜你喜歡

文章評論

電子郵件地址不會被公開。 必填項已用*標註

後發表評論

    上一篇

    痴迷黃金的印度人轉投加密貨幣,投資竟達數十億美元

    下一篇

    文件解讀 :《關於加快推動區塊鏈技術應用和產業發展的指導意見》

    微信公眾號

    微信公眾號