據 DappReview 監測,波場 DApp TronBank 於 4 月 11 日凌晨 1 點遭到假幣攻擊,1 小時內被盜走約 1.7 億枚 BTT (價值約 85 萬元人民幣)。針對此次攻擊事件,成都鏈安發佈安全預警:近期針對波場項目方的攻擊測試頻率開始上升並已造成實際損失,黑客團隊未來可能將攻擊重點轉向波場。

原文標題:《波場 DApp 超 1.7 億 BTT 被盜,官方迴應:與協議本身沒任何關係》
作者:文學、孫曜

監測顯示,黑客創建了名爲 BTTx 的假幣向合約發起「invest」函數,而合約並沒有判定發送者的代幣 id 是否與 BTT 真幣的 id1002000 一致。因此黑客拿到真幣 BTT 的投資回報和推薦獎勵,以此方式迅速掏空資金池。

上線 3 小時即被盜走 1.7 億 BTT:TronBank 未審計代碼致假幣攻擊

事件發生後,TronBank 項目方於 4 月 11 日上午 10:15 關閉了 BTT 服務頁面,並表示會對損失的 BTT 部分全額進行賠付。

受此次攻擊事件影響,TRX 和 BTT 雙雙下跌,截止發稿時,TRX 火幣報價 0.027025 美元,24 小時跌 10.64%,BTT 火幣報價 0.000715 美元,24 小時跌 6.04%。

針對 DApp TronBank 因「假幣攻擊」而損失 1.7 億 BTT 的事件,波場迴應稱,該合約安全問題出現在波場 DApp 上,與協議本身沒有任何關係,波場協議完全安全可靠。

波場創始人孫宇晨在社交媒體中也表達了類似觀點,表示未來波場會聯合安全企業與合作伙伴對開發者進行合約安全輔導,提升 DApp 的安全性。

上線 3 小時即被盜走 1.7 億 BTT:TronBank 未審計代碼致假幣攻擊

針對此次假幣攻擊事件,我們採訪了 DappReview 創始人牛鳳軒、PeckShield 創始人蔣旭憲和成都鏈安創始人楊霞。

牛鳳軒提到,攻擊事件產生的根本原因是合約代碼問題:TronBank 的 BTT 投資產品高度複製了 TRX 投資產品的代碼,但無法判斷用戶投資的代幣是真 BTT,還是假 BTT。

蔣旭憲和楊霞同樣認爲項目方的疏忽給黑客以可乘之機,提醒 TRON 合約開發者警惕假幣攻擊安全風險。

一、DApp 專家:實際被盜數量大於 1.7 億枚

據 Dappreview 創始人牛鳳軒透露,TronBank 的 BTT 投資產品於 4 月 10 日晚 10 點正式開放,僅三小時內總投資額超過 2 億枚 BTT,此前該項目的 TRX 投資產品最高資金池餘額超過 2.6 億枚 TRX。

至於爲何 1.7 億枚 BTT 被盜,他將根本原因歸結爲合約代碼問題:BTT 投資產品高度複製了 TRX 投資產品的代碼,卻沒有判斷髮送者的代幣 id 是否與 BTT 真幣的 id1002000 一致。

上線 3 小時即被盜走 1.7 億 BTT:TronBank 未審計代碼致假幣攻擊

牛鳳軒提供了兩個投資產品的代碼對比圖,圖左爲 BTT 投資產品代碼。通過對比,可見除第 26 行之後的代碼存在差異外,其餘代碼幾乎一樣。

但最致命的是 BTT 投資產品代碼沒有增加額外的判斷函數,無法判斷用戶投資的代幣是真 BTT,還是假 BTT。黑客顯然已經意識到了這個漏洞。

據牛鳳軒介紹,用戶在 TronBank 的收益主要有兩個來源,一是投資收益,隨時可以提取,二是用戶推薦返利,返利金額爲投資數額的 5%。這兩個收益來源,正是黑客盜走 BTT 的通道。

他同時提到,在發現該攻擊後,Dappreview 團隊第一時間進行了分析,發現黑客是同時用 4 個小號進行假幣攻擊。針對這一情況,他們隨即反饋給項目方,後者雖在社羣中提醒用戶不要再繼續投資,但並沒有及時關閉頁面,仍有不明真相的羣衆進入投資,而他們投入的 BTT 同樣會被黑客提走。因此,牛鳳軒判斷,實際被盜的 BTT 數量大於 1.7 億枚。

上線 3 小時即被盜走 1.7 億 BTT:TronBank 未審計代碼致假幣攻擊

令牛鳳軒感到遺憾的是,項目方直到 4 月 11 日上午 10:15 才關閉網站頁面,並表示將對損失的 BTT 部分全額進行賠付。

談及該解決方案,牛鳳軒補充了一個信息:TronBank 項目的 TRX 投資產品上線運行近一個月,總計用戶投資金額約 4.4 億 TRX,其中項目方抽成總計 6%,共 2640 萬 TRX,約 500 萬人民幣。

由此可以推斷,項目方此前的營收完全可以承擔此次 BTT 賠付。

二、區塊鏈安全專家:主要過失在於項目方

針對此次攻擊事件,我們聯繫了 PeckShield 創始人蔣旭憲和成都鏈安創始人楊霞。

蔣旭憲表示,黑客採用的是假幣攻擊方式,通過調用 BTTBank 智能合約的 invest 函數,之後調用多次 withdraw 函數取出 BTT 真幣。

PeckShield 認爲,這是繼 TransferMint 漏洞之後,一種新型的具有廣泛性危害的漏洞,會威脅到多個類似 DApp 合約的安全,這主要跟開發者有關,因此提醒 TRON 合約開發者警惕此類安全風險。

上線 3 小時即被盜走 1.7 億 BTT:TronBank 未審計代碼致假幣攻擊TronBank 官網截圖

楊霞進一步補充道,假幣攻擊指的是攻擊者通過發行與被攻擊代幣同名代幣等方式欺騙項目方或用戶,造成的危害主要是攻擊者在沒有付出任何代價的前提下執行了業務邏輯,擾亂了正常交易秩序。

在她看來,假幣攻擊的產生因素主要是項目方沒有做完整的代幣信息校驗,錯誤地將攻擊者的無價值假幣識別爲真實的有價代幣。

至於該如何應對假幣攻擊事件,楊霞提到了 2 點:

1、項目方應事先進行安全審計,提前做好預防措施,即在合約中對交易的代幣信息做完整的校驗而不是單純通過名稱等不可靠信息判斷。
2、假幣攻擊事件發生之後,項目方應立刻響應,暫時停止業務,排查問題並修復,之後追查損失資金流向,儘量追回損失。

與此同時,成都鏈安發佈了安全預警:近期針對波場項目方的攻擊測試頻率開始上升並已造成實際損失,黑客團隊未來可能將攻擊重點轉向波場,波場公鏈的 DApp 市場高度繁榮但一直未曾遭到過 EOS 公鏈級別的高強度攻擊,攻擊者目前主要是將其他公鏈上已成熟的攻擊方式遷移到波場並進行大範圍攻擊測試,尋找安全防護較爲薄弱的合約,此階段後,攻擊者可能更進一步深度挖掘波場本身可能被利用的機制,進行更高強度和威脅的攻擊。

三、假幣攻擊事件盤點

事實上,假幣攻擊事件在區塊鏈世界並不少見。

PeckShield 創始人蔣旭憲指出,假幣攻擊手法在 EOS 中已經出現,比如 2018 年 9 月 14 日發生在 Newdex 的假 EOS 刷幣事件。攻擊者預先在 EOS 賬戶中發行假 EOS,並由實施攻擊的賬戶使用假 EOS 掛單委託買入 IPOS 和 ADD,最終分多筆共 11800 假 EOS 掛市價單購買 BLACK、IQ、ADD,且全部成交。最後由其他賬戶賣出以上代幣,獲得 4028 個真實 EOS。

上線 3 小時即被盜走 1.7 億 BTT:TronBank 未審計代碼致假幣攻擊

PeckShield 對假 EOS 攻擊原理的解釋是,黑客創建了一種基於 EOS 的代幣,並將其命名爲「EOS」,並向被攻擊合約賬號大量轉賬假 EOS 代幣,沒有檢測 EOS 的發行方的合約會將假 EOS 轉賬視爲真的,進而調用了合約中的 transfer 函數,按照開獎流程分配獎金。

這種「假 EOS」攻擊方式的關鍵是合約函數中沒有檢測發行代幣的合約名。PeckShield 表示「假 EOS」漏洞在 10 月份較爲普遍,不過隨着多數開發者合約開發趨於規範,類似攻擊事件已經很少,並提供了自去年至今相關案例統計。

上線 3 小時即被盜走 1.7 億 BTT:TronBank 未審計代碼致假幣攻擊

我們梳理了 EOS 合約上發生的假幣攻擊事件

1、比特派 EETH 遭受「假幣攻擊」,暴跌 99%

據 IMEOS 消息,2018 年 12 月 12 日下午 4 點在去中心化交易所 NEWDEX 上線的比特派 EETH 遭遇假幣攻擊,並且遇到大量砸盤。

EETH 12 日 16 時上線後,在 17 時遭到假幣攻擊。受此影響,EETH 短時間暴跌 99%。

上線 3 小時即被盜走 1.7 億 BTT:TronBank 未審計代碼致假幣攻擊

2、NEWDEX 兩度被黑,損失 5.9 萬美元

2018 年 9 月 19 日,據 thenextweb 消息,「假幣攻擊」發起者創造了一種全新的 EOS 代幣,並將該假幣名爲「EOS」,發起攻擊者的 EOS 賬戶 oo1122334455 總共發行了 10 億個 EOS 假幣。

經測試發現攻擊可行之後,攻擊者將假幣衝進 NEWDEX 交易所,並掛出大額買單,用 11800 個 EOS 假幣購買 BLACK、IQ 和 ADD 三種代幣。

據交易所 Newdex 透露,攻擊者拿到了 4028 個 EOS (價值 2 萬美元)。9 月 14 日,Newdex 再次遭到黑客攻擊,黑客依然利用假幣攻擊在交易所換取真幣,共計獲利 11803 個 EOS,價值 5.9 萬美金。

3.EOSBet 一個月內被攻擊 3 次

2018 年 9 月 10 日,EOSBet 也遭到了類似的黑客攻擊,共計損失 4000 個 EOS。而該博彩遊戲在 9 月共遭到了三次黑客攻擊。

第二次發生在 9 月 12 日,EOSBet 遭受黑客利用假幣套用真幣,未投注就獲得 42000 個 EOS 大獎。第三次發生在 9 月 14 日,EOSBet 遭黑客「假通知」攻擊,損失 145321 個 EOS,目前損失已被追回。

9 月 15 日,EOS 博彩遊戲 EOS.Win 也遭受了黑客假幣攻擊,共計損失超過 4000 個 EOS。

當然,這僅僅是假幣攻擊事件的一部分,黑客早已將假幣攻擊當做斂財工具,這無疑對廣大開發者提出了更高的安全要求。