比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 聚幣 > Info

TOK:PeckShield 深入代碼層面分析,黑客究竟如何盜走 1.7 億 BTT?

Author:

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

04月11日凌晨00:17,PeckShield態勢感知平臺監測到TCX1Cay…開頭的黑客,創建了名為BTTx,tokenid為1002278的TRC10token,并于凌晨00:25至01:00之間向多個地址轉入4,000萬個BTTx代幣,這多個地址對TXHFhq…開頭的BTTBank理財類合約實施攻擊。

原文標題:《波場假幣攻擊全過程:BTTBank理財合約遭黑客假BTT攻擊》

BTTBank項目介紹

BTTBank又名TronBankBTT,是屬于TronBank旗下的一款專屬于BitTorrent(BTT)-ThetokenthatwillenableblockchainmassadoptionBTTtoken的投資產品,根據官網TronBank介紹:

TronBankBTT的智能合約將為您產生每天3.6-6.6%的投資收益(取決于你購買的產品計劃),自動發放到你的收益余額中。舉例,購買4.6%收益計劃,21天你即可獲得超過100%收益。收益每秒都會計算,你甚至每秒都可以提取收益或重新投資。當您重新投資收益時,投資金額會增加,可以更快的獲得更多收益。

PeckShield:Hashflow 疑似遭遇與授權有關的攻擊:6月14日消息,PeckShield 發推稱,Hashflow 疑似遭遇與授權有關的攻擊,目前損失金額約為 40 萬美元,其中 19.5 萬美元的損失發生在 Arbitrum 上,21.5 萬美元的損失發生在以太坊上。[2023/6/15 21:37:20]

其產品界面如下:

其理財過程大致如下:

1、用戶根據收益率和投資期限購買相應的理財產品;2、投資期限到期之后,用戶提現理財產品到自己的錢包。

使用上,和當前的各類P2P理財產品類似,用戶的使用門檻僅在于一個TRON錢包,但從產品收益率來看,這個資產回報率還是相當可觀的。

攻擊回溯

攻擊事件簡述

去年年底,波場孫宇晨發起12號提議,即符合波場TRC10規范的Nativetoken的名字將不再唯一,涉及到TRC10token的轉賬等操作將使用ID來代替。這使得波場創建token的流程變得簡單易上手,然而卻帶來一個潛在的威脅,一旦合約疏于檢查tokenid的匹配性,就會存在假幣攻擊的可能。簡而言之,本次BTTBank遭受攻擊正是因為缺乏tokenid的一致性驗證造成的。

ApeCoin DAO投票通過質押系統相關漏洞賞金計劃及特別委員會成員提名和選舉程序:11月3日消息,ApeCoin在推特上宣布,ApeCoin DAO已投票通過了為APE質押系統智能合約設立漏洞賞金計劃的提案AIP-134。這意味著APE質押系統的上線日期將被推遲至漏洞賞金計劃結束后。該提案作者表示漏洞賞金計劃將持續約3周時間,因此質押系統可能會在11月24日上線,質押獎勵分配將于12月7日開始。

此外,ApeCoin DAO關于“特別委員會成員提名程序”AIP-137和“特別委員會成員選舉程序”AIP-138的提案投票已獲通過,ApeCoin基金會將于明天發布提名公告。[2022/11/3 12:13:17]

背景知識

TRON中的token分為幾種規范:

TRXTRC20TRC10其中,TRX為TRON的平臺幣,類似于Ethereum中的ETH。

而TRC20是與EthereumERC20兼容的token,實質是一種可編程的智能合約,由用戶通過智能合約創建token之后,其token的轉賬、發送等操作均在智能合約內部完成,對于一般的小白用戶來說,ERC20/TRC20使用過于復雜,不便于上手使用。

Avalanche和FLOW將支持ApeCoin從以太坊區塊鏈遷移:金色財經報道,ApeCoin 為元宇宙項目 Otherside 虛擬地塊 Otherdeed 五月初啟動鑄造時引發了以太坊網絡大面積阻塞,作為ApeCoin 背后的去中心化自治組織,ApecoinDAO 曾在社交媒體發文暗示可能會離開以太坊區塊鏈,目前 Avalanche 和 FLOW 均透露已與 ApeCoin 就區塊鏈遷移事宜進行了接觸。Avalanche 背后公司 Ava Labs 聯合創始人 Kevin Sekniqi 表示,該公司已經和 ApeCoin DAO 就 遷移到 Avalanche 區塊鏈的相關事宜進行了討論,而且已經為遷移做好了準備。FLOW 區塊鏈背后公司Dapper Labs 首席商務官 Mik Naayem 也表示:“我認為 Flow 將成為 ApeCoin 的理想家園,我們已經與 ApeCoin DAO 董事會成員進行了一些對話,但最后仍需要通過社區投票來決定。”[2022/5/24 3:37:24]

故此,TRON中引入了TRC10token,這是一種可以由用戶直接操控的token,每一個自然用戶支付1024TRX便可創建一個TRC10token,同時一個用戶只能創建一個TRC10token。每一個TRC10token在創建之后,由系統分配一個唯一ID,這是一個從1,000,001開始往后自增的整數,一個tokenId標識一個唯一的token,當前TRON平臺上共有1850個TRC10。

Yat Siu:有人提議批準AIP-4但拒絕AIP-5,僅AIP-4無法運行Apecoin分配:3月29日消息,Animoca Brands聯合創始人兼CEO Yat Siu今日在推特上表示:Apecoin論壇已上線,我鼓勵大家閱讀有關AIP-4和AIP-5的討論。特別是Matt Galligan提出了一個有趣的提議,即批準AIP-4但拒絕AIP-5。 實現AIP-4的步驟之一要求‘通過ApeCoin DAO起草并批準一項提案,以便為AIP-4分配ApeCoin。’ 這本質上意味著,為了實現AIP-4,社區需要批準一個質押提案,它不需要是AIP-5。如果社區認為AIP-4的支撐機制是可以接受的,批準AIP-4將允許基金會立即開始工作,這可能需要3.5-4.5個月的時間來安全地構建。批準AIP-4并拒絕AIP-5允許現在構建質押基礎設施,同時讓社區有更多時間討論質押池并增加NFT質押上限的提議。沒有社區批準,僅AIP-4就無法運行Apecoin分配。[2022/3/29 14:24:23]

為了提高TRC10的流動性和使用價值,TRON平臺在Odyssey3.2版本之后,使能了在智能合約內部轉賬TRC10token的功能,參考TRC10TransferinSmartContracts,其示例代碼如下所示:

動態 | PeckShield:1月新興穩定幣種環比增幅3.2%,USDT份額小幅回升:據PeckShield態勢感知平臺數據顯示:截止1月31日,新興穩定幣種總發行量為8.87億美元,其中USDC總發行量為3.07億美元,占比34.7%,繼續保持第一位;TUSD總發行量為2.05億美元,占比23.1%,排第二位;排名第三位的是PAX,總發行量為1.27億美元,占比14.4%;其余穩定幣種GUSD、DAI、EURS、nUSD等共占27.8%。近一個月新興穩定幣種增發2753萬美元,環比增幅為3.2%。就穩定幣總體市場分布情況而言,USDT現占市場總量69.9%,較去年12月份環比增加1.7%,但較三個月前的93%,還是縮水近23%。[2019/2/1]

上述代碼簡單解釋如下:

1、transferTokenTest()接口內部用于轉賬TRC10token,接口調用方可以通過address.transferToken(uint256tokenValue,trcTokentokenId)往address轉賬數量為tokenValue的tokenid為tokenid的TRC10token;2、msgTokenValueAndTokenIdTest()接口表明,調用者可以直接在發送的message中加入tokenid和tokenvalue字段,這也說明了TRC10是TRON平臺上的一等公民,屬于內置類型,與TRC20通過函數參數的形式來表征token價值是完全不同的;3、getTokenBalanceTest()通過tokenid獲取賬號的余額。

由此可知,TRC10token可以在智能合約內部通過tokenid完成轉賬,TRC10token作為價值承載者,在智能合約內部即反映在tokenid的差異上。

因此,合約開發者在處理TRC10轉賬相關邏輯時,需要特別注意tokenId的有效性和真實性。

攻擊事件

PeckShield安全人員在分析BTTBank合約時,發現其合約源碼實現中存在致命漏洞,可導致項目方資金受損。

下圖為黑客攻擊的原過程:

1、黑客先行創建一個名為BTTx的TRC10token;2、黑客往一批自己控制的賬號中轉入4,000萬個BTTxtoken;3、通過控制的賬號往BTTBank合約發起數次攻擊;4、最后順序將BTT提取到控制的賬號中。

下文從BTTBank投資及贖回的過程還原本次BTT假幣攻擊的全過程。

投資

投資的核心代碼如下:

public接口的invest()提取msg.tokenvalue,并調用private的invest()函數完成投資的過程,invest()內部計算并保存用戶這一次的投資數量、時間等信息到合約的內部資產賬單上。值得注意的是,這里invest()只提取了msg.tokenvalue,這里并沒有提取msg.tokenid,也沒有驗證msg.tokenid是否屬于BTTToken的tokenid(為1002000)。

前面我們提到BTTBank是一款投資理財類DApp,用戶存入BTTtoken,資產到期之后,再贖回投資的BTT和對應的利息,在這里并沒有檢查是否是真正的BTT,也就是不論你投資的阿貓阿狗幣,都被認為是BTTtoken。

提現

提現的核心代碼如下:

贖回的過程比較簡單,先從合約的內部投資賬單上計算用戶已經到期的投資金額,并將這一部分投資金額轉回給用戶,注意:msg.sender.transferToken(withdrawalAmount,BTT_ID)中是固定的BTT_ID即1002000.

至此,用戶投入BTT,收獲BTT;而黑客投入BTTx,收獲BTT,一個完美的『貍貓換太子』過程。

防御策略

PeckShield安全人員在此提醒廣大開發者,雖然TRC10/TRC20都是token,但兩者在TRON平臺上有著本質的差異性,若要在智能合約內部轉賬TRC10,一定要檢查所轉移的TRC10對應的tokenid是否為預期值。針對上例,可將投資代碼增強如下:

另外,PeckShield安全人員根據上述的代碼樣式分析TRON平臺上其它類BTTBank合約時,也發現了相似的問題。在此,PeckShield安全人員提醒在進行智能合約開發的時候,雖然復用現有代碼可能會帶來開發功能上面的便利,但也須注意可能帶來的安全風險。

來源鏈接:mp.weixin.qq.com

本文來源于非小號媒體平臺:

PeckShield

現已在非小號資訊平臺發布1篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/3627176.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

波場DApp再遭手!游戲TronWow變提款機,Peckshield深度講解黑客手法

下一篇:

少寫一行代碼的教訓:TronBank1.7億BTT僅3小時就被洗劫一空

Tags:TOKKENTOKETOKENBituan TokenBaguette TokenFreemoon Tokenimtoken最新安卓版本

聚幣
區塊鏈:火星一線 | 百度大力布局區塊鏈,百度超級鏈將于5月底開源

火星財經APP一線報道,據百度旗下區塊鏈原生應用度宇宙官方消息,百度超級鏈將于5月底開源。據悉,超級鏈是百度自主研發的區塊鏈底層技術,擁有鏈內并行技術、可插拔共識機制、一體化智能合約等技術,具備.

1900/1/1 0:00:00
BTC:3個跡象表明在8000盤整的BTC將這樣走

BTC第三次上探高點8300,未突破前高,一直處于盤整階段!市場的投資者都陷入迷茫不知道該怎么操作!下面三個市場跡象或許可以告訴你市場的方向!一、BTC自2018年2月以來一直處于下行通道Bwa.

1900/1/1 0:00:00
穩定幣:美元穩定幣市值超過40億美元,創歷史新高

根據Diar的數據,美元穩定幣已突破43億美元的市值。該報告還顯示,美元穩定幣交易量穩定上升,Circle和Coinbase支持的USDC在4月至5月期間交易量增長130%,本月迄今為止達到36.

1900/1/1 0:00:00
穩定幣:穩定幣3.0報告——新的歷史使命和競爭格局

穩定幣是指與法幣的兌換比例保持相對穩定的類似“貨幣”的一般等價物。因為法幣與商品和服務之間的兌換比例相對穩定,因此穩定幣的最終錨定對象是商品和服務,也就是實際的購買力.

1900/1/1 0:00:00
區塊鏈:市場潛力超百億 企業區塊鏈賽道波濤涌動

近期,各方在企業區塊鏈方面動作頻出:三星SDS推出更新版的企業級區塊鏈平臺NexledgerUniversal;唯鏈Vechain推出ToolChain企業區塊鏈解決方案;量子鏈Qtum推出了企.

1900/1/1 0:00:00
比特幣:如果你擺脫不了“窮人魔咒” 就請不要炒幣

如果你認為自己的窮人,那我希望你不要炒幣。前證監會主席郭樹清說過一句話:“窮人”不適合炒股,建議散戶離場。放到幣圈,這句話就變成:“窮人”,不適合炒幣.

1900/1/1 0:00:00
ads