背景
從 DeFi 之夏到現在,我們在遭受各種漏洞、后門、跑路等層出不窮的手段洗禮后,總算學會了在 DEX 上參與新項目前,應先檢查代幣合約的權限、代幣的持倉分布及合約的代碼以保護自己的資產安全。但相對的,壞人們的作惡手段也更加高明與隱蔽。近期,慢霧安全團隊收到來自 PancakeSwap 社區用戶的求助,其參與項目時觀察到,在項目代幣沒有任何增發記錄的情況下,惡意用戶使用未被記錄的大量增發代幣卷走了池子中的資金。慢霧安全團隊跟進分析此事件并將結果分享如下:
攻擊細節
惡意代幣 IEGT 在 BSC 上的部署地址是 0x8D07f605926837Ea0F9E1e24DbA0Fb348cb3E97D。我們通過區塊瀏覽器觀察其 Holders,發現在 dead 與 pair 地址持有大量 IEGT 代幣的情況下,合約記錄的 totalSupply 仍為 5,000,000。
通過進一步查看這些代幣的來源可以發現,這些代幣在0x00002b9b0748d575CB21De3caE868Ed19a7B5B56 中只有轉出記錄而沒有轉入記錄。
警惕Tampermonkey擴展的惡意JavaScript插件劫持盜幣攻擊:據慢霧區情報反饋,有人在LocalBitcoins進行交易時,被誘騙使用了一段所謂增強的JavaScript插件導致被盜比特幣,該JavaScript插件可以在瀏覽器知名擴展Tampermonkey(油猴)上方便使用。一旦使用,該惡意JavaScript即可篡改用戶在LocalBitcoins上的比特幣地址,達到劫持盜幣攻擊的目的。[2020/11/5 11:42:19]
我們都知道,EIP20 標準 規定了代幣轉移時必須實現 Transfer 事件,包括在代幣鑄造時,從 0x0 地址進行轉移也必須進行事件記錄。區塊瀏覽器依賴這些標準的事件記錄進行數據統計。因此,當在區塊瀏覽器中發現其代幣總額與實際數量不匹配時,則表明代幣在進行增發時并未進行事件記錄,導致區塊瀏覽器只統計了轉賬后相關地址的余額變化,而沒有任何代幣增發記錄。據此,我們可以確定代幣合約中必然存在增發代幣的惡意代碼。
Cardano社區官推提示用戶警惕仿冒的虛假賬戶:Cardano社區官推發聲提醒用戶稱,一些知名的社區成員賬戶正在被大規模地模仿,請勿上當受騙,并報告所有已知的虛假帳戶。[2020/4/22]
此代幣合約的代碼是開源的,想來是項目方為了增加項目的可信度。接下來我們對其源碼進行分析。一般來說,進行代幣增發最簡單的方式就是實現一個直接增加指定地址余額的方法。在當前合約中是通過定義一個 _balances 映射,對用戶的代幣余額進行記錄。但經過檢查,合約中并未實現對指定地址的 _balances 進行修改的代碼。
既然沒有發現直接增加余額的代碼,那么項目方又是如何進行增發的呢?我們回顧下智能合約的基礎知識,可以知道用戶代幣余額的變化本質上就是修改了合約在鏈上存儲的數據狀態。因此,只要修改特定地址的 _balances 在合約中對應存儲的插槽數據,即可修改其代幣余額。
我們先簡單回顧下 EVM 中計算合約數據存儲位置的基礎知識,對于映射類型 _balances 來說,其會根據其鍵值 k 與其所占據位置 p 進行 keccak256 后得到偏移量,作為其存儲的插槽位置,即 keccak256(k,p)。通過分析 IEGT 合約的數據存儲位置,我們可以發現其 _balances 參數所在位置為 slot0,那么用戶的余額存儲位置即為 keccak256(address,0) 。
警惕多種 Omni USDT 雙花攻擊:近日,OmniCore 團隊修復了一個重大安全漏洞,由于節點在收到新區塊時沒有處理好并發鎖問題,攻擊者可通過發送特殊構造的區塊,導致一次交易多次記賬,使得賬戶余額出錯。
而在此前,慢霧安全團隊捕獲了一起針對交易所的 USDT 假充值攻擊事件,經分析發現,由于部分交易所使用了舊版本的 omnicore 客戶端(如0.5.0),黑客使用精心構造的轉賬交易,可以在舊版本的客戶端上標記為轉賬成功,而在新版本的客戶端上顯示為失敗,從而達到假充值的目的。
慢霧安全團隊提醒相關節點運營方,利用未升級的節點來發起雙花攻擊是一種常見的黑客攻擊方法,尤其是在OmniLayer等二層網絡應用上,此類攻擊并不會導致主鏈分叉,不容易被發現,應十分警惕,及時升級節點至最新版本(0.8.0)。[2020/3/6]
帶入惡意地址進行計算,可以得到其余額存儲位置為 0x9d1f25384689385576b577f0f3bf1fa04b6829457a3e65965ad8e59bd165a716。隨后查找此插槽數據變化,可以發現其在合約部署時已被修改為一個巨大的值。
動態 | MEET.ONE:社區需警惕REX釣魚網站:據MEET.ONE消息,一個名為rexexchanger的合約賬戶發起批量誘導轉賬,并在MEMO中試圖引導用戶進入一個REX釣魚網站,以騙取用戶私鑰。該合約利用區塊鏈瀏覽器解析的規則, 偽裝成eosio帳號發出REX,試圖欺騙用戶。若用戶有REX購買需求,可以通過“MEET.ONE錢包-發現-REX 交易”進行購買以及總覽當前全網 REX 交易情況。[2019/5/11]
因此,我們可以確定在 IEGT 合約部署初始化時,項目方就隱蔽地增發了大量的代幣,為 Rug 做好準備。接下來我們跟進其初始化函數,分析發現其在進行 _pathSet 操作時,通過內聯匯編對合約存儲進行了修改,并且未對代碼進行格式化處理,以降低其可讀性。
跟進計算發現 y 值為 2b9b0748d575cb21de3cae868ed19a7b5b56,通過兩次 mstore 將內存 0~64 字節的位置填充為 00000000000000000000000000002b9b0748d575cb21de3cae868ed19a7b5b56,而惡意增加代幣余額的地址為 0x00002b9b0748d575CB21De3caE868Ed19a7B5B56。可以發現惡意用戶通過構造一連串的數據,計算使得正好可以得到其控制的目標地址。因此,我們也可以從編譯后的字節碼中發現此計算后未進行填充的“地址”。
Refe官方推特發布公告 警惕“李詩琴”詐騙:昨日有國內媒體稱,3月5號左右OKEx官網發布公告,說Refereum可以充值進行交易,但是投了這個項目的投資人卻遲遲沒有收到幣。代投人給出的答復是:幣還沒到手上,大家耐心等待。其中涉及到一位名叫“李詩琴”的帶投人,媒體稱其卷走數萬ETH跑路。今日Refe官方推特發出消息稱,項目方與“李詩琴”從未有過關聯,警告消費者注意相關欺詐行為。[2018/3/15]
緊接著通過 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
編譯:區塊鏈騎士 很難說我們已經來到了 Web3 游戲的轉折點,活躍錢包的數量仍然少于一款普通的手機游戲,更不用說真正的人類玩家了.
1900/1/1 0:00:00作者:BEN STRACK,blockworks 翻譯:善歐巴,金色財經分析師表示,萊特幣減半帶來的歷史性價格上漲已經在此次事件中發生。大多數加密圈人士都知道,明年比特幣的挖礦獎勵將減少一半.
1900/1/1 0:00:00作者:Pablo Bartol;編譯:深潮 TechFlow在衍生品領域,永續合約比期權更受歡迎,這在散戶和機構市場上獲得了廣泛的認可.
1900/1/1 0:00:00引言 假充值攻擊,是指攻擊者通過利用交易所在處理充值過程中的漏洞或系統錯誤,發送偽造的交易信息到交易所錢包地址,這些偽造的交易信息被交易所誤認為是真實的充值請求.
1900/1/1 0:00:00【07.23 - 07.29】周報概要:1、上周NFT總交易額:104,642,920(美元)2、上周NFT總交易筆數:283,3713、上周NFT總用戶數:130.
1900/1/1 0:00:00作者:BitAns,Krypital Group在FTX破產后,去中心化衍生品交易所的交易量和關注度獲得了顯著的提升, 近幾年隨著L2和各類Appchain開源架構的完善.
1900/1/1 0:00:00