BTT假币攻击事件细节披露及修复方案
波場DApp tronbank于4月11日凌晨1點遭受假幣攻擊。
11日上午Beosin成都鏈安技術團隊作出初步分析,判斷該次假幣攻擊事件主要原因在于合約沒有嚴格驗證代幣的唯一標識符代幣ID,錯誤的將攻擊者自己發行的無價值代幣識別為價值85萬元的BTT代幣,從而造成了損失。同時及時發出預警,預判黑客團隊未來可能將攻擊重點轉向波場。
?
現針對此次事件,我們Beosin成都的技術團隊進一步作出深度分析。
黑客攻擊手法解析
?
首先,我們先看此次BTT假幣攻擊事件中的漏洞源碼,如下圖:
?
?
經過我們分析發現,該假幣漏洞是由于invest函數只判斷了msg.tokenvalue,而沒有判斷msg.tokenid是否為真實BTT代幣的ID:1002000所導致。
?
TRC10標準是波場本身支持的技術代幣標準,標準規定了兩個重要參數:msg.tokenvalue和msg.tokenid。其中msg.tokenvalue表示當前msg調用的代幣數量,而msg.tokenid表示當前調用者使用的代幣種類標記ID。每種TRC10標準的代幣都有一個獨一無二的標記ID作為代幣種類證明。
?
BTTBank合約在收取代幣時沒有對收到代幣的tokenid做任何判斷,合約中僅僅判斷了msg發送代幣的數量msg.tokenvalue。
當合約收到調用者發送的代幣數量msg.tokenvalue時,合約錯誤的認為該代幣數量是BTT的數量。但實際上調用者使用的是假幣tokenid為1002278的代幣數量。BTTBank將假幣視同于真幣(真幣的tokenid為10022000)記錄到投資者賬號。
?
而攻擊者賬號TRC10代幣中存在BTT和BTTx兩種代幣,可見兩種代幣的ID差異,BTT代幣ID:1002000,BTTx代幣ID:1002278。
攻擊者于4月11日凌晨創建發行990,000,000,000,000,000個名為BTTx的假幣(代幣ID:1002278)
假幣創建完成后,攻擊者將創建的四千萬假幣BTTx發送給四個攻擊小號:
TB9jB76Bk4tk2VhzGAb6t1aCYgW7Z4iicY,TQM4uEWPQvVe2kGbWPZtVLMDFrTLERfmp4,TKp1stjapNqr4pkDQjU9GTitsYBUrKAGkh,
TF2EWZJZSokGdtk4fj7PqCmuGpJasVXJ3K。
當攻擊小號收到假幣后,攻擊者又調用BTTBank合約有缺陷的invest函數。
接下來在觸發invest函數后,BTTBank項目方將大量BTT轉入了預先設置的投資賬號TPk,TT4,TGD,這筆資金實際上未被黑客獲得,但項目方在沒有收到BTT的情況下進行了真實的投資。
?
下圖為源碼中對三個投資地址的具體設置代碼:
BTTBank投資的三個投資賬號中都收到了大量BTT代幣,如下圖所示。
黑客觸發invest函數后通過withdraw函數取到了BTTBank獎勵池的真正的BTT代幣,
最終四個小號將贓款集中轉向黑客主賬號TCX1Cay4T3eDC88LWL7vvvLBGvBcE7GAMW
攻擊者賬戶中的BTT贓款和攻擊使用的假幣BTTx如下:
此外,成都鏈安技術團隊對在Github上開源的其他項目方代碼進行檢查,發現還有其他項目方存在此安全問題:
如下為有問題的合約地址:
TF3YXXXXXXXXXXXXXXXXXXXXXXXWt3hx
?
TKHNXXXXXXXXXXXXXXXXXXXXXXXAEzx5
?
TK8NXXXXXXXXXXXXXXXXXXXXXXXZkQy
?
TUvUXXXXXXXXXXXXXXXXXXXXXXXxLETV
?
TG17XXXXXXXXXXXXXXXXXXXXXXXkQ9i
?
因此我們呼吁廣大項目方提高警惕予以重視,檢查自己的合約是否存在上述安全漏洞,并及時進行更新。
?
事件發生原因:
?
據我們技術團隊分析,上述問題的發生存在兩個方面的原因:
1)開發者對波場代幣的使用機制研究不足,可能套用了以太坊的代幣使用方法;
2)攻擊者在遷移其它公鏈上存在的攻擊方式,如EOS已經存在的假幣攻擊方式。
?
修復意見:
對此,我們建議:項目方在收取代幣時應同時判斷msg.tokenvalue和msg.tokenid是否符合預期。
該漏洞代碼修復方式,如下:
?
Invest函數增加代碼:
require(msg.tokenid==1002000);
require(msg.tokenvalue?>=?minimum);
?minimum是最小投資額
?
?
?
同時,Beosin成都鏈安提示:黑客團隊未來可能將攻擊重點轉向波場,波場公鏈的DApp市場高度繁榮但一直未曾遭到過eos公鏈級別的高強度攻擊,攻擊者目前主要是將其他公鏈上已成熟的攻擊方式遷移到波場并進行大范圍攻擊測試,尋找安全防護較為薄弱的合約,此階段后,攻擊者可能更進一步深度挖掘波場本身可能被利用的機制,進行更高強度、更具威脅力的攻擊。
?
我們再次提醒各大項目方加強合約的安全防護級別和安全運維強度,盡量防范未然,避免不必要的損失,必要時可聯系第三方專業審計團隊,在上鏈前進行完善的代碼安全審計,共同維護公鏈安全生態。
歡迎大家體驗:
一、智能合約自動形式化驗證平臺VaaS精簡版,準確率達到95%以上
Beosin(成都鏈安科技)已向全球發布VaaS平臺,全球首個同時支持ETH、EOS、Fabric、ONT、TRON等多個區塊鏈平臺的智能合約形式化驗證平臺,準確率達到95%以上。
VaaS(精簡版)系統為所有區塊鏈從業者提供方便而免費的智能合約安全審計服務,對智能合約安全漏洞進行形式化驗證,從容應對常規合約安全問題。歡迎大家登陸官方網址體驗:
官方網址:
https://beosin.com/vaas/index.html#/audit/ptsj
▲VaaS 精簡版平臺
二、在線 Beosin-IDE 免費版本
Beosin-IDE?是一款免費的面向BOS、EOS區塊鏈平臺的智能合約在線集成開發環境,可同時支持合約開發、部署、測試和源碼調試等功能的在線區塊鏈應用開發集成環境。
歡迎大家免費體驗:通過瀏覽器訪問
https://beosin.com/BEOSIN-IDE/index.html#/
(如下圖,推薦Chrome瀏覽器)。
▲Beosin EOS-IDE
Beosin官方發表正式聲明:
為了全球化市場戰略需要,公司發布全新英文品牌?“Beosin”。作為深耕區塊鏈安全領域的公司,“Beosin”力求為行業保駕護航,以打造區塊鏈全生態安全為宗旨,竭誠為客戶提供包括智能合約安全審計、智能合約開發審計一條龍、錢包安全加固與審計、DApp安全加固與審計、區塊鏈平臺安全檢測、交易所安全檢測、企業級安全服務等。但公司英文名稱更名并不涉及業務架構或公司所有權變化。新品牌的Logo如下圖:
近期,有XX鏈安科技與成都鏈安科技重名,且Logo及宣傳語相似。成都鏈安科技是一家由分布式資本、界石資本、盤古創富投資的專門從事區塊鏈安全的公司,與其他XX鏈安科技無任何關聯。請大家認準成都鏈安科技唯一指定商標品牌,謹防上當受騙,一切消息以官網及官方公眾號為準。
成都鏈安科技官方公眾號名稱:Beosin成都鏈安
成都鏈安科技官方網址:
www.lianantech.com
——Beosin
關于Beosin:
Beosin(成都鏈安)成立于2018年,公司位于四川省成都市,專注于區塊鏈生態安全。公司由楊霞和郭文生兩位教授共同創建,團隊核心成員由來自海內外知名高校和實驗室留學經歷的教授、博士后、博士及阿里、華為等知名企業精英組成。已獲得分布式資本、界石資本、盤古創富等著名投資機構的兩輪股權投資。其核心技術為形式化驗證,是全球最早一批將此技術應用到區塊鏈安全領域的公司。
公司首批入選Etherscan智能合約審計推薦名單及普華永道創新加速器,榮獲全國首屆中小微企業SaaS應用創新創業大賽冠軍,獲得OKEx最佳安全審計合作伙伴獎等榮譽,參加工信部多項區塊鏈安全標準的撰寫,入選工信部“2018區塊鏈白皮書”,作為唯一安全公司入選“2018中國區塊鏈企業百強榜”,榮膺金色財經“2018年度最專業安全服務機構”、“2019中國區塊鏈安全領軍企業”稱號,榮獲火星財經“最佳區塊鏈數據安全團隊”獎項。已與Huobi、OKEx、KuCoin、LBank、CoinBene、CoinMex、CoinTiger、Becent、ONT、Qtum、比原鏈、Wanchain、Scry、布比區塊鏈、云象區塊鏈、QuarkChain、IoTeX、麥子錢包、EOSPark等共計超過40家區塊鏈公司建立戰略合作關系,審計報告被國內外各大知名交易所認可。審計智能合約超500份,獨立發現區塊鏈安全漏洞10余個,獲得行業及客戶的一致好評和認可。讓區塊鏈全生態更安全,是我們的美好愿景!
「Beosin」
作為Huobi、OKEx、KuCoin、LBank等
著名交易所指定的合約審計公司。?
入選Etherscan智能合約安全審計名單。
歡迎聯系Beosin,了解智能合約安全審計
智能合約開發審計一條龍
錢包安全加固與審計
DApp安全加固與審計
區塊鏈平臺安全檢測
交易所安全檢測
企業級安全服務
?·
電話:028-83262585
網站:www.lianantech.com
郵箱:vaas@lianantech.com
地址:成都市世紀城南路599號
天府軟件園D7座504室
官網:
https://www.lianantech.com
GitHub網址:
https://github.com/Lianantech/VCA
Facebook網址:
https://www.facebook.com/BeosinChengdu/
twitter網址:
https://twitter.com/Beosin_com
Telegram中文群:
https://t.me/LiananTech_cn
Telegram英文群:
https://t.me/LiananTech_en
微博:
https://weibo.com/u/6566884467
CSDN博客:
https://blog.csdn.net/CDLianan
知乎專欄:
??點擊了解更多
總結
以上是生活随笔為你收集整理的BTT假币攻击事件细节披露及修复方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寓言小故事
- 下一篇: linux安装wl工具,【驱动】博通wl