以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > SHIB > Info

慢霧深度解析 Bitfinex 天價手續費轉賬:BUG+顯示錯誤「釀成大錯」_UFF

Author:

Time:1900/1/1 0:00:00

撰文: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的結果都是一致的。

慢霧:Distrust發現嚴重漏洞,影響使用Libbitcoin Explorer3.x版本的加密錢包:金色財經報道,據慢霧區消息,Distrust 發現了一個嚴重的漏洞,影響了使用 Libbitcoin Explorer 3.x 版本的加密貨幣錢包。該漏洞允許攻擊者通過破解 Mersenne Twister 偽隨機數生成器(PRNG)來訪問錢包的私鑰,目前已在現實世界中造成了實際影響。

漏洞詳情:該漏洞源于 Libbitcoin Explorer 3.x 版本中的偽隨機數生成器(PRNG)實現。該實現使用了 Mersenne Twister 算法,并且僅使用了 32 位的系統時間作為種子。這種實現方式使得攻擊者可以通過暴力破解方法在幾天內找到用戶的私鑰。

影響范圍:該漏洞影響了所有使用 Libbitcoin Explorer 3.x 版本生成錢包的用戶,以及使用 libbitcoin-system 3.6 開發庫的應用。

已知受影響的加密貨幣包括 Bitcoin、Ethereum、Ripple、Dogecoin、Solana、Litecoin、Bitcoin Cash 和 Zcash 等。

風險評估:由于該漏洞的存在,攻擊者可以訪問并控制用戶的錢包,從而竊取其中的資金。截至 2023 年 8 月,已有超過 $900,000 美元的加密貨幣資產被盜。

解決方案:我們強烈建議所有使用 Libbitcoin Explorer 3.x 版本的用戶立即停止使用受影響的錢包,并將資金轉移到安全的錢包中。請務必使用經過驗證的、安全的隨機數生成方法來生成新的錢包。[2023/8/10 16:18:20]

不一致的地方是在newBuffer的操作:

慢霧:NimbusPlatform遭遇閃電貸攻擊,損失278枚BNB:據慢霧安全團隊情報,2022 年 12 月 14 日, BSC 鏈上的NimbusPlatform項目遭到攻擊,攻擊者獲利約278枚BNB。慢霧安全團隊以簡訊的形式分享如下:

1. 攻擊者首先在 8 天前執行了一筆交易(0x7d2d8d),把 20 枚 BNB 換成 NBU_WBNB 再換成 GNIMB 代幣,然后把 GNIMB 代幣轉入 Staking 合約作質押,為攻擊作準備;

2. 在 8 天后正式發起攻擊交易(0x42f56d3),首先通過閃電貸借出 75477 枚 BNB 并換成 NBU_WBNB,然后再用這些 NBU_WBNB 代幣將池子里的絕大部分 NIMB 代幣兌換出;

3. 接著調用 Staking 合約的 getReward 函數進行獎勵的提取,獎勵的計算是和 rate 的值正相關的,而 rate 的值則取決于池子中 NIMB 代幣和 GNIMB 代幣的價格,由于 NIMB 代幣的價格是根據上一步閃電貸中被操控的池子中的代幣數量來計算的,導致其由于閃電貸兌換出大量的代幣而變高,最后計算的獎勵也會更多;

4. 攻擊者最后將最后獲得的 GNIMB 代幣和擁有的 NIMB 代幣換成 NBU_WBNB 代幣后再換成 BNB,歸還閃電貸獲利;

此次攻擊的主要原因在于計算獎勵的時候僅取決于池子中的代幣數量導致被閃電貸操控,從而獲取比預期更多的獎勵。慢霧安全團隊建議在進行代幣獎計算時應確保價格來源的安全性。[2022/12/14 21:44:29]

newBuffer(padToEven(hex.slice(2)),'hex');

慢霧:PREMINT攻擊者共竊取約300枚NFT,總計獲利約280枚ETH:7月18日消息,慢霧監測數據顯示,攻擊PREMINT的兩個黑客地址一共竊取了大約300枚NFT,賣出后總計獲利約280枚ETH。此前報道,黑客在PREMINT網站植入惡意JS文件實施釣魚攻擊,從而盜取用戶的NFT等資產。[2022/7/18 2:19:58]

處理方式分析:瀏覽器js

通過webpack打包好js文件并對文件進行引用,然后在瀏覽器上進行調試分析。

首先輸入的示例字符33974229950.550003會進入到intToBuffer的函數中進行處理。

慢霧:Let's Encrypt軟件Bug導致3月4日吊銷 300 萬個證書:Let's Encrypt由于在后端代碼中出現了一個錯誤,Let's Encrypt項目將在撤銷超過300萬個TLS證書。詳情是該錯誤影響了Boulder,Let's Encrypt項目使用該服務器軟件在發行TLS證書之前驗證用戶及其域。慢霧安全團隊提醒:數字貨幣行業有不少站點或內部系統為安全目的而使用 Let's Encrypt 自簽證書,請及時確認是否受到影響。如有影響請及時更新證書,以免造成不可預知的風險。用戶可查看原文鏈接在線驗證證書是否受到影響。[2020/3/4]

同步分析intToBuffer的處理過程,這部分和」關鍵代碼分析「部分的代碼邏輯是一樣的,處理轉換部分得到的結果是7e9059bbe.8ccd。

動態 | 慢霧情報:本次AWS 故障主要受影響區域是日本東京周邊:據慢霧情報,針對剛剛突發的“AWS 故障影響數字貨幣交易所”事件,本次 AWS 故障主要位于區域是日本東京服務,具體可見AWS 全球服務狀態鏈接,點擊“Asia Pacific”(詳見原文鏈接)。

如果是 AWS 云數據庫產品(RDS)故障,數據庫故障如果業務沒處理好,確實有可能出現各種怪異 bug,包括價格異動。這方面的容災機制需要注意。[2019/8/23]

接下來分析如何將轉換后的字符填充進入的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

Tags:UFFFERBUFFINTruff幣未來價格預測SAFERMOONBuffer FinanceExperience Points

SHIB
非托管以太坊 2.0 質押協議 Blox 代幣 CDT 將升級為 SSV,以對 SSV.Network 進行治理_SSV

巴比特訊,9月17日,非托管以太坊2.0質押協議Blox的代幣升級提案已通過,該提案提議將原CDT代幣合約升級為SSV代幣合約.

1900/1/1 0:00:00
一文復盤萊特幣和沃爾瑪的烏龍事件,到底是誰在割韭菜?_萊特幣

來源:財聯社|區塊鏈日報 記者董宇佳徐賜豪 北京時間9月13日晚間,加密貨幣行情因萊特幣與沃爾瑪的“烏龍”消息出現了戲劇性震動.

1900/1/1 0:00:00
科普 | 加密貨幣中的熵是什么?使用24字短語比12字短語更安全嗎?_區塊鏈

原標題:《24個比12個更安全嗎?熵來決定》熵本身就是一個重要的熱力學定律,是一個涉及……熱力學的深刻主題。熵讓我們感興趣的是,熵對密碼學和加密貨幣至關重要。沒有熵,加密貨幣就不安全.

1900/1/1 0:00:00
新西蘭聯儲:數字貨幣將通過三種方式支持央行貨幣價值錨定角色_數字貨幣

據智通財經9月30日消息,新西蘭聯儲正在探索發行數字貨幣的可能性,并表示其帶來的好處包括作為貨幣政策工具的潛在用途.

1900/1/1 0:00:00
富蘭克林鄧普頓「謹慎」布局加密業務,申請推出2000萬美元的區塊鏈風險基金_區塊鏈

本文來自?Decrypt,原文作者:MathewDiSalvoOdaily星球日報譯者?|念銀思唐 摘要: -富蘭克林鄧普頓已為一只區塊鏈風險基金募資1000萬美元.

1900/1/1 0:00:00
Loot VS CryptoPunks,NFT加密文化的諸神之戰_OOT

作者:邊界的LilyKing作者簡介:作為總法律顧問任職于一家管理超400億美元資產的亞洲最大的另類投資管理基金,即將加入亞洲最大的加密資產托管平臺和機構資管平臺Cobo擔任COO.

1900/1/1 0:00:00
ads