背景
從 DeFi 之夏到現在,我們在遭受各種漏洞、后門、跑路等層出不窮的手段洗禮后,總算學會了在 DEX 上參與新項目前,應先檢查代幣合約的權限、代幣的持倉分布及合約的代碼以保護自己的資產安全。但相對的,壞人們的作惡手段也更加高明與隱蔽。近期,慢霧安全團隊收到來自 PancakeSwap 社區用戶的求助,其參與項目時觀察到,在項目代幣沒有任何增發記錄的情況下,惡意用戶使用未被記錄的大量增發代幣卷走了池子中的資金。慢霧安全團隊跟進分析此事件并將結果分享如下:
攻擊細節
惡意代幣 IEGT 在 BSC 上的部署地址是 0x8D07f605926837Ea0F9E1e24DbA0Fb348cb3E97D。我們通過區塊瀏覽器觀察其 Holders,發現在 dead 與 pair 地址持有大量 IEGT 代幣的情況下,合約記錄的 totalSupply 仍為 5,000,000。
通過進一步查看這些代幣的來源可以發現,這些代幣在0x00002b9b0748d575CB21De3caE868Ed19a7B5B56 中只有轉出記錄而沒有轉入記錄。
PeckShield:Snowflake Floki疑似貔貅盤,需警惕風險:12月28日消息,據PeckShieldAlert信息,Snowflake Floki項目是一個貔貅盤,用戶只能購買,無法賣出。望大家遠離、不要中招。[2021/12/28 8:09:07]
我們都知道,EIP20 標準 規定了代幣轉移時必須實現 Transfer 事件,包括在代幣鑄造時,從 0x0 地址進行轉移也必須進行事件記錄。區塊瀏覽器依賴這些標準的事件記錄進行數據統計。因此,當在區塊瀏覽器中發現其代幣總額與實際數量不匹配時,則表明代幣在進行增發時并未進行事件記錄,導致區塊瀏覽器只統計了轉賬后相關地址的余額變化,而沒有任何代幣增發記錄。據此,我們可以確定代幣合約中必然存在增發代幣的惡意代碼。
此代幣合約的代碼是開源的,想來是項目方為了增加項目的可信度。接下來我們對其源碼進行分析。一般來說,進行代幣增發最簡單的方式就是實現一個直接增加指定地址余額的方法。在當前合約中是通過定義一個 _balances 映射,對用戶的代幣余額進行記錄。但經過檢查,合約中并未實現對指定地址的 _balances 進行修改的代碼。
Compound總法律顧問:政府對BTC的看法可瞬間轉變 不能放松警惕:7月27日,Compound總法律顧問Jake Chervinsky發推,再次討論美國貨幣監理署加密政策稱,美國貨幣監理署的信件令人鼓舞,但不能放松警惕。政府對比特幣的看法可以瞬間轉變。我們在華盛頓還有很多工作要做。[2020/7/27]
既然沒有發現直接增加余額的代碼,那么項目方又是如何進行增發的呢?我們回顧下智能合約的基礎知識,可以知道用戶代幣余額的變化本質上就是修改了合約在鏈上存儲的數據狀態。因此,只要修改特定地址的 _balances 在合約中對應存儲的插槽數據,即可修改其代幣余額。
我們先簡單回顧下 EVM 中計算合約數據存儲位置的基礎知識,對于映射類型 _balances 來說,其會根據其鍵值 k 與其所占據位置 p 進行 keccak256 后得到偏移量,作為其存儲的插槽位置,即 keccak256(k,p)。通過分析 IEGT 合約的數據存儲位置,我們可以發現其 _balances 參數所在位置為 slot0,那么用戶的余額存儲位置即為 keccak256(address,0) 。
阿聯酋海灣新聞報提醒民眾警惕虛假比特幣投資廣告:阿聯酋發行量最大的英文報紙《海灣新聞報(Gulf News)》提醒居民,警惕在海外網站上推廣的虛假廣告,該廣告假冒Gulf News的社論風格進行兜售,謊稱一名當地商人支持一個可疑的比特幣投資機會。
Gulf News管理部門警告說,“欺詐者利用Gulf News的名稱來獲得可信度。這不是Gulf News發布的報道,我們與之無關。任何投資的人都將自行承擔風險。”該部門已向有關部門提出投訴。(Gulf News)[2020/5/10]
帶入惡意地址進行計算,可以得到其余額存儲位置為 0x9d1f25384689385576b577f0f3bf1fa04b6829457a3e65965ad8e59bd165a716。隨后查找此插槽數據變化,可以發現其在合約部署時已被修改為一個巨大的值。
動態 | 經觀社論?:新技術總是伴隨泡沫 警惕地方拿區塊鏈“割韭菜”:經濟觀察網今日發表社論文章《警惕地方拿區塊鏈“割韭菜”》稱:區塊鏈向我們展示了截然不同的兩樣圖景。一方面,很多公司積極嘗試基于區塊鏈技術的創新應用;另一方面,“虛擬貨幣”、“區塊鏈商城”和“區塊鏈游戲”等概念炒作,新瓶裝舊酒,究其實就是各種“割韭菜”。對于那些穿著區塊鏈技術馬甲,以創新之名非法吸收公眾資金,侵害公眾權益的行為,監管應該擔起責任。這方面,我們應強化監管協同,加快補足短板,避免監管空白和盲區。新技術落地總是伴隨泡沫。這一點幾乎無可避免。監管對此理當有清晰的認知和判斷。在這場角逐中,更需要關注的是行政之手和財政資金的去向。我們擔心那種地方官員拍腦袋的決策,缺乏足夠的科學精神和對規律的尊重,更多出于急功近利和好大喜功。市場的狂熱總歸會經歷一個去偽存真的過程,在試錯中回歸理性,并給予各類投資者最終的判定。這樣的成本,市場愿意支付。但對于那些政績驅動下的親身入場和大筆財政資金,決策部門恐怕應該要有足夠的警惕。[2019/11/22]
因此,我們可以確定在 IEGT 合約部署初始化時,項目方就隱蔽地增發了大量的代幣,為 Rug 做好準備。接下來我們跟進其初始化函數,分析發現其在進行 _pathSet 操作時,通過內聯匯編對合約存儲進行了修改,并且未對代碼進行格式化處理,以降低其可讀性。
聲音 | 慢霧:警惕“假充值”攻擊:慢霧分析預警,如果數字貨幣交易所、錢包等平臺在進行“EOS 充值交易確認是否成功”的判斷存在缺陷,可能導致嚴重的“假充值”。攻擊者可以在未損失任何 EOS 的前提下成功向這些平臺充值 EOS,而且這些 EOS 可以進行正常交易。
慢霧安全團隊已經確認真實攻擊發生,但需要注意的是:EOS 這次假充值攻擊和之前慢霧安全團隊披露過的 USDT 假充值、以太坊代幣假充值類似,更多責任應該屬于平臺方。由于這是一種新型攻擊手法,且攻擊已經在發生,相關平臺方如果對自己的充值校驗沒有十足把握,應盡快暫停 EOS 充提,并對賬自查。[2019/3/12]
跟進計算發現 y 值為 2b9b0748d575cb21de3cae868ed19a7b5b56,通過兩次 mstore 將內存 0~64 字節的位置填充為 00000000000000000000000000002b9b0748d575cb21de3cae868ed19a7b5b56,而惡意增加代幣余額的地址為 0x00002b9b0748d575CB21De3caE868Ed19a7B5B56。可以發現惡意用戶通過構造一連串的數據,計算使得正好可以得到其控制的目標地址。因此,我們也可以從編譯后的字節碼中發現此計算后未進行填充的“地址”。
緊接著通過 keccak256 對內存 0~64 字節的數據進行哈希后,正好得到惡意用戶的余額存儲插槽位置 0x9d1f25384689385576b577f0f3bf1fa04b6829457a3e65965ad8e59bd165a716,這也正是合約中將 _balances 置于 slot0 位置的原因,這極大方便了在內聯匯編中計算余額實際的存儲位置。然后使用 sstore 將合約中此存儲位置的值修改為當前時間的 6 次方,此時即完成了對指定地址的余額修改。隨后的內聯匯編操作類似,在此不做贅述。
至此,我們知道了項目方是在合約初始化時,通過內聯匯編的方式修改了指定地址余額,隱蔽地增發了大量未被其他用戶獲悉的代幣,導致用戶在參與項目時被 Rug。
追蹤分析
通過 MistTrack 分析此次事件獲利地址為 BSC 鏈上 0x000000481F40f88742399A627Cbc2Afb6Ec34FeD 與 0x00002b9b0748d575CB21De3caE868Ed19a7B5B56,共計獲利 114 萬 USDT,獲利地址轉移 USDT 的手續費來源為 Binance 交易所提款。
目前資金轉移情況如下圖:
此外,惡意合約創建者的手續費地址 0xb795ad917DAF9A1c98eE18E03E81FBBfb6D54355 同樣存在大量痕跡。
總結
此次事件中,項目方開源合約代碼以增加用戶信任度,通過未格式化的代碼降低代碼可讀性,并且使用內聯匯編來編寫直接修改用戶余額存儲插槽數據的代碼,提高了代碼分析門檻。其使用種種手段隱藏作惡痕跡,最后將池子席卷一空。可以發現,在用戶的安全意識越來越強的情況下,作惡者的手段也越發隱蔽與高明。據 SlowMist Hacked 統計,截止目前,由于 Rug Pull 導致的損失金額接近 5 億美元。因此,用戶在參與新項目時應著重分析其合約中是否存在可疑的代碼,盡量不參與合約未開源且未經過審計的項目。MistTrack 團隊也將持續跟進并監控此事件。
參考鏈接:
https://bscscan.com/address/0x8d07f605926837ea0f9e1e24dba0fb348cb3e97d
https://eips.ethereum.org/EIPS/eip-20
https://misttrack.io/
https://hacked.slowmist.io/
慢霧科技
個人專欄
閱讀更多
Foresight News
金色財經 Jason.
白話區塊鏈
金色早8點
LD Capital
-R3PO
MarsBit
深潮TechFlow
Tags:ANC區塊鏈NEWSNCEelk-finance區塊鏈dapp開發費多少錢NewSolution 2.0UniLend Finance
作者:Hannah Lang,REUTERS;編譯:松雪,金色財經國會的一個重要委員會將于本周就幾項旨在制定加密貨幣監管框架的法案進行投票.
1900/1/1 0:00:00作者:Robin Chang,Eddie Hsiung;編譯: TaxDAO 1. 政府的態度和定義 加密貨幣目前不被臺灣央行(“CBC”)接受為貨幣.
1900/1/1 0:00:00編譯:胡子觀幣社區 與Web2平臺在開發盈利方式取得了成功不同,加密應用仍在尋求將共享計算和用戶層結合為可持續商業模式。向加密本地化IP的轉變正在改變傳統的中心化IP創作和分發模式.
1900/1/1 0:00:00“沒收虛擬貨幣”,究竟是怎么執行的?執行機關是怎么把這些虛擬貨幣變現的?這些變現方式是否會違反法律規定?本文將為大家講解加密貨幣的司法執行.
1900/1/1 0:00:00來源:IMF 作者:Katherine Baer, Ruud de Mooij, Shafik Hebous, Michael Keen 編譯:朱覺翔自 2009 年比特幣首次亮相以來.
1900/1/1 0:00:00編譯:Peng SUN,Foresight News元宇宙的聲音,沉寂了太久,最近剛融資 5400 萬美元的 Futureverse 引起了關注,這是一家結合 AI 與元宇宙的初創公司.
1900/1/1 0:00:00