撰文:Thinking@慢霧安全團隊
事件背景
分析源自一筆轉賬金額10wUSDT,手續費卻高達7,676枚ETH的天價手續費交易。https://etherscan
將int轉成Hexhttps://github
判斷是否可以被2整除,如果不行需要在字符開頭添加一個0,這里主要是為了能夠成功的將數據2個1組寫入到buffer。https://github
if(a
returna;}
以出錯的示例數據:33974229950.550003進行分析,經過intToBuffer函數中的intToHex和padToEven處理后得到7e9059bbe.8ccd,這部分瀏覽器js和nodejs的結果都是一致的。
慢霧:BXH 第一次被盜資金再次轉移,BTC 網絡余額超 2700 BTC:金色財經報道,10月8日凌晨(UTC+8),慢霧監控到 BXH 第一次被盜資金再次出現異動,經慢霧 MistTrack 分析,異動詳情如下:
黑客地址 0x48c9...7d79 將部分資金(213.77 BTCB,5 BNB 和 1 ETH)轉移至新地址 0xc01f...2aef,接著將資金兌換為 renBTC 跨鏈到 BTC 網絡,跨鏈后地址為 1JwQ...u9oU。1JwQ...u9oU 在此次轉移中接收到的總資金為 204.12 BTC。截止目前,BXH 第一次被盜事件在 BTC 網絡共有 4 個黑客地址,總計余額為 2701.3 BTC,暫未進一步轉移。慢霧 MistTrack 將持續監控被盜資金的轉移。[2022/10/8 12:49:28]
不一致的地方是在newBuffer的操作:
聲音 | 慢霧科技余弦:數字貨幣行業缺乏國家相關的監管背書,有很多的亂象:據《每日經濟新聞》消息,區塊鏈生態安全公司慢霧科技創始人余弦在接受采訪時分析,簡單來說,幣圈的風險主要有兩個。第一個風險是地下黑客,當前的幣圈,無論是基礎設施還是上層建筑都比較脆弱,相對互聯網來說,攻擊者的攻擊成本很低。通過這些攻擊手法,地下黑客能夠盜取很多數字貨幣。第二個風險是這個行業缺乏監管,缺乏國家相關的監管背書,有很多的亂象,比如說各種資金盤、等,這些行為其實都是打著區塊鏈噱頭的非法集資。而針對如何保護數字貨幣的安全,余弦表示,這是一個新的行業,小白投資者應該多學習這個行業的知識,不要只看表面。隨著知識的加深,對很多表面上的包裝、噱頭,自己就會有一些判斷。另外,存儲數字貨幣的手機、電腦,要安裝殺軟件。不使用通過不明渠道下載的軟件來存儲數字貨幣,這是最基本的安全防范。[2019/8/30]
newBuffer(padToEven(hex.slice(2)),'hex');
聲音 | 慢霧:99%以上的勒索病使用BTC進行交易:據慢霧消息,勒索病已經成為全球最大的安全威脅之一,99%以上的勒索病使用BTC進行交易,到目前為止BTC的價格已經漲到了一萬多美元,最近一兩年針對企業的勒索病攻擊也越來越多,根據Malwarebytes統計的數據,全球TO B的勒索病攻擊,從2018年6月以來已經增加了363%,同時BTC的價格也直線上漲,黑客現在看準了數字貨幣市場,主要通過以下幾個方式對數字貨幣進行攻擊:
1.通過勒索病進行攻擊,直接勒索BTC。
2.通過惡意程序,盜取受害者數字貨幣錢包。
3.通過數字貨幣網站漏洞進行攻擊,盜取數字貨幣。[2019/8/25]
處理方式分析:瀏覽器js
通過webpack打包好js文件并對文件進行引用,然后在瀏覽器上進行調試分析。
動態 | 慢霧發布針對 EOS 交易 hard_fail 狀態的新型攻擊說明:據 IMEOS 報道,慢霧發文解析了 hard_fail 狀態攻擊,根據其的情報捕獲與分析,慢霧意識到針對 EOS hard_faild 狀態的新型攻擊手法可能會造成更大范圍的影響,本次手法成因為項目方未對交易狀態進行嚴格且完備的檢驗導致攻擊發生,屬于“假充值”攻擊類型的一種。在此,慢霧安全團隊建議交易所和錢包要對發送給自己的轉賬交易在不可逆的區塊前提下檢測以下幾點:1. 判斷 status 是否為 executed2. 判斷 action 是否為 transfer3. 判斷合約賬號是否為 eosio.token 或其它 token 的官方合約4. 判斷代幣名稱及精度5. 判斷金額6. 判斷 to 是否是自己平臺的充幣賬號補充說明:本次攻擊可繞過節點 read-only 模式,開啟 read-only 模式仍然會受到攻擊。因為交易的狀態為:未執行->已經執行但執行失敗,并不是回滾所以即使開啟了 read-only 模式,依然會受到攻擊。[2019/3/12]
首先輸入的示例字符33974229950.550003會進入到intToBuffer的函數中進行處理。
現場 | 慢霧安全負責人:好的公鏈需要滿足安全穩定運行最基本的要求:金色財經11月9日現場報道,今日,由imondo和鏈人聯合主辦的“DAPP開發者大會”在北京舉行。慢霧安全負責人海賊王做了以“DApp安全現狀深度分析”為主題的演講。他表示,現在的公鏈如以太坊、EOS,都有自己的優勢,應保持開放的心態去看待公鏈。好的公鏈應該滿足一些基本要求,即公鏈需穩定運行,官方錢包要安全可靠,區塊鏈瀏覽器要安全可用。[2018/11/9]
同步分析intToBuffer的處理過程,這部分和」關鍵代碼分析「部分的代碼邏輯是一樣的,處理轉換部分得到的結果是7e9059bbe.8ccd。
接下來分析如何將轉換后的字符填充進入的buffer中,通過這步可以得到buffer的內容是126,144,89,187,14,140,205對應的是7e,90,59,bb,e,8c,cd。
>0x7e->126>0x90->144>0x59->89>0xbb->187>0xe->14>0x8c->140>0xcd->205
這里發現e.這部分的小數點消失了,于是開始解小數點消失之迷,追蹤到hexWrite這個函數,這個函數會將得到的數據2個一組進行切分。然后用了parseInt對切分后的數據進行解析。
然而parseInt('e.',16)->14===parseInt('e',16)->14消失的小數點被parseInt吃掉了,導致最終寫入到buffer中的數據發生了錯誤,寫入buffer的值是7e9059bbe8ccd。
處理方式分析:nodejs
由于瀏覽器上出問題的是7_**__**_e9059bbe.8ccd在寫入buffer的時候小數點被parseInt吃掉了導致數據出錯,但是經過分析,node的數據也是錯誤的,且產生錯誤的原因是和瀏覽器的不一樣。
首先我們先看下如下的示例:
node三組不同的數據填充到buffer得到的結果居然是一樣的,經過分析node的buffer有個小特性,就是2個一組切分后的數據,如果沒法正常通過hex解析的,就會把那一組數據以及之后的數據都不處理了,直接返回前面可以被正常處理的那部分數據。可以理解為被截斷了。這部分可以參考node底層的buffer中node_buffer.cc中的代碼邏輯。
>newBuffer('7e9059bbe','hex')>newBuffer('7e9059bbe.8ccd','hex')>newBuffer('7e9059bb','hex')
執行結果的比較
node由于會將原始數據7e9059bbe.8ccd中的e.及之后的數據進行截斷,所以最終錯誤的值是7e9059bb,相比正確的值07e9059bbe小。
node的執行結果:
瀏覽器由于會將原始數據7e9059bbe.8ccd中的.吃掉,所以最終錯誤的值是7e9059bbe8ccd,相比正確的值07e9059bbe大很多。
瀏覽器的執行結果:
問題的原因
ethjs-util的intToBuffer函數不支持浮點型的數據,且在這個函數中沒有判斷傳入的變量類型,來確保變量類型是預期內的。由于ethereumjs的toBuffer引用了ethjs-util的intToBuffer進行處理,也沒有對數據進行檢查。導致了這次事件的發生,所幸最終善良的礦工歸還了「天價手續費7626ETH」。
吸取的教訓
從第三方的庫的角度來看,在編碼過程中應該要遵循可靠的安全的編碼規范,在函數的開頭要對傳入的數據進行合法性的檢查,確保數據和代碼邏輯是按照預期內執行。
從庫的使用者的角度來看,使用者應該要自行閱讀第三方庫的開發文檔和對接文檔,并且也要對代碼中接入第三方庫的邏輯進行測試,通過構造大量的數據進行測試,確保業務上能夠正常按照期望執行,保證高標準的測試用例的覆蓋率。
參考資料:https://github.com/ethereumjs/ethereumjs-monorepo/issues/1497https://blog.deversifi.com/23-7-million-dollar-ethereum-transaction-fee-post-mortem/https://www.chainnews.com/news/611706276133.htm
1.NBA魔術隊球星ColeAnthony將推特頭像更換為CreatureWorldNFT作品2.
1900/1/1 0:00:00本文來自Mycrypto,原文作者:ChrisHamer,由Odaily星球日報譯者Katie辜編譯。整個2021年,NFT一直在主導加密貨幣市場,2017年的市場氛圍仿佛卷土從來.
1900/1/1 0:00:009月15日,“第十二屆中國西部國際資本論壇暨全球經濟發展論壇?中東歐峰會--數字經濟發展峰會”在成都世外桃源酒店順利舉辦.
1900/1/1 0:00:00據《證券日報》消息,9月7日,中國工程院《中國區塊鏈發展戰略研究》項目發布“發現100個中國區塊鏈創新應用”欄目之“基于區塊鏈的電子證據平臺”案例.
1900/1/1 0:00:00據CoinDesk消息,用于場外交易和數字貨幣清算的機構級平臺PureDigital周二宣布,它已使用由NorthernTrust和渣打銀行開發的ZodiaCustody解決方案進行了現場測試交.
1900/1/1 0:00:00據Cointelegraph9月28日消息,Glassnode數據顯示,閃電網絡節點的數量在9月份增加了160%,創下了15600個的歷史新高。據悉,8月底,只有6000個LN節點處于活動狀態.
1900/1/1 0:00:00