2600萬TRX被盜背後的羅生門 - 第二集

導讀:隨着新一天的調查,更多證據被各方挖掘出來,本次事件的真相正在逐漸浮出水面,戲劇化程度堪比一場年度大戲。文末還附上了wojak的財富密碼。



沒有讀過上一篇文章的讀者

請先移步閱讀本次事件第一集

2600萬TRX被盜背後的羅生門



注:以下調查的信息收集全部來自於Discord頻道Scam Watch、Telegram羣“TronBank抱團維權”,以及DappReview與關聯人的聊天記錄。



wojak反悔退款


自從5月3日晚上9點wojak出現並貼出一份退款對比名單之後,再次從Discord消失,在此期間很多人開始給wojak打上Scammer(騙子)的標籤,並認爲“他不會退款,可能已經開上蘭博基尼去度假了”,諸如此類言論不絕於耳。


640?wx_fmt=png


5月5日中午12點

wojak再次現身,聲稱“我投入了8個小時寫工具來給所有人退款,等我寫完代碼回來發現大家都在把我想象成是一個騙子,而沒有意識到Tronbank纔是放置後門坑了你們的人。你們原本會因此損失所有的投資。但在看到你們把我當成騙子而不是開發者後,我認爲我沒有任何理由把TRX退還給你們”


此番言論遭到衆人反駁,wojak堅持認爲自己所做的事情並不違法(illegal),自己也不是小偷,只是發起了一筆交易調用了智能合約,並且遵守了智能合約的規則。此後,wojak再也沒有表示過退款的可能性,而是讓所有人去找Tronbank進行索賠。



證據開始指向TSC開發者Khanh


5月5日中午12點

在真相依舊處於衆說紛紜的迷霧之中時,telegram中某開發者(要求匿名)發現了一條關鍵證據,進而扭轉了整個調查的方向,把更多的信息帶出水面。


640?wx_fmt=jpeg


TTX5N2wxLeyWBSNE6UeaBjCFZbpa2FH6jr 該地址於4月28日部署了一個與事發TRX Pro合約有同樣後門的“測試合約”(合約地址爲 TYZ4oPdPmwZS9xTUXhnFtQkPFFTi2iAydz),並在4月30日對後門進行了測試。


640?wx_fmt=png       

如上圖所示,TTX5N**該地址用同樣的方式發送了0.011911 TRX調用withdraw函數,觸發後門,提走自己事先存入的約100 TRX。


也就是說,在被盜時間(5月3日凌晨4點)約4天之前,竟然已經有人熟知此後門以及其調用方式。當我們去反編譯該測試合約並與TRX Pro被盜合約對比時,不難發現:


640?wx_fmt=png反編譯工具:

https://www.trustlook.com/products/smartcontractguardian


這兩段代碼的後門部分完全一致!


而且更爲神奇的是,“測試合約”的部署時間比項目方部署的正式合約竟然早了5小時23分鐘。


毫無疑問,TTX5N** 地址與本次後門事件必定脫不了關係。


而該地址的所有者是誰呢?


打開TSC的網站https://tronsmartcontract.space

點擊About Us


640?wx_fmt=png


這正是TSC的開發者Khanh所擁有的地址


至此,Discord和tg羣各路開發者開始梳理Khanh地址以及Tronbank開發者地址的合約部署、調用信息,梳理出以下時間線。



驚人的時間線


640?wx_fmt=png


以上爲Discord頻道中梳理的時間線(均爲UTC時間),下面我們按照北京時間進行更細節的梳理。


4/28/2019 4:07 PM

TronBank開發者部署了TRX Pro的測試合約,該合約中通過反編譯並沒有發現後門,合約地址爲:

https://tronscan.org/#/contract/TAWLPqFn33U7iaAfP6cXRdJXcBUc1ewCRJ


4/28/2019 5:35 PM

僅在一個半小時後,由TSC開發者Khanh所擁有的地址TTX5N**部署了上文提到的“測試合約”,該合約中存在後門代碼,合約地址爲:

https://tronscan.org/#/contract/TYZ4oPdPmwZS9xTUXhnFtQkPFFTi2iAydz


4/28/2019 10:48 PM

Tronbank開發者了部署TRX Pro的正式版合約,該合約即被盜合約,其中有後門代碼,合約地址爲:

https://tronscan.org/#/contract/TW9AE7u5QADp2uej9xdaNVTYtqsRuJZNxJ


4/28/2019 11:00 PM

在12分鐘之後,TSC開發者Khanh調用TRX Pro的正式版合約,併發送0.011011來測試後門。該筆交易記錄爲:

https://tronscan.org/#/transaction/d6d89713ebdb98402ddfd1d454be394a5521c83b7d385ce2c394924a2b923c89


4/30/2019 10:12 AM

TSC開發者Khanh調用自己在4/28/2019 5:35 PM 部署的存在後門的“測試合約”,觸發後門,並取走自己充進去的100 TRX,該筆交易記錄爲:

https://tronscan.org/#/transaction/87bf173c126c4873ad333c02d4e352bacda9bfaae4d91d0bce156eb64bd5219f


5/3/2019 4:11 AM

wojak 調用TRX Pro的正式版合約withdraw函數,第一筆轉入了0.000123,並沒有任何效果,交易記錄爲:

https://tronscan.org/#/transaction/aabfc7b6cedb2e8ce055c7fdc7a62df558213c63a33092293886b0e4b58277e5


5/3/2019 4:12 AM

1分鐘後,wojak 再次調用TRX Pro的正式版合約withdraw函數,轉入0.011911,成功觸發後門,提走合約餘額2673萬TRX,交易記錄爲:

https://tronscan.org/#/transaction/e26666a806e24697fd049e60cf83cf412f58d85cdb0493c014cef0d29d8bdc2e


根據以上信息,可以歸納出兩個事實:


1. Tronbank上線之前的測試版本合約,沒有後門,但最終線上正式版存在後門;

2. TSC開發者Khanh在Tronbank測試版合約發佈當天部署過一個有相同後門的合約,並且知道後門的調用方式,且在4月30日自己進行過測試。也就是說,該後門與TSC脫不了關係。


在與Tronbank團隊的溝通中,開發者提到,他們是使用TSC進行編譯的。(針對該言論的真實性,DappReview無法做出驗證)


640?wx_fmt=png      


注:以下內容是基於現有事實依據的可能性探討,不代表最終結論和真相,請再次傳播時不要斷章取義。


在第一篇文章《2600萬TRX被盜背後的羅生門》中,我們曾提到過三種可能性,


可能性一:Tronbank開發者在實際部署的合約中夾雜私貨放置了後門,併成功欺騙了TSC完成了另一份沒有後門的代碼驗證。

可能性二:Tronbank團隊和TSC團隊合謀,部署了有後門的合約,同時TSC協助用另一個沒有後門的合約完成驗證。

可能性三:Tronbank團隊沒有在合約中放置後門,而是後門在合約部署過程中以某種方式產生。


根據以上掌握到的更新信息,第一種可能性被否決,因爲整個事件中,TSC開發者是最早調用後門的人,並不存在不知情被欺騙的情況,而第三種可能性的概率極大地增加。


TSC集合了編譯、部署、驗證的一條龍服務,從理論上來說,如果開發者使用TSC進行編譯並部署,期間確實有可能增加後門代碼。


在事發當天5月3日,Discord上詢問爲什麼TRX Pro的實際運行代碼與驗證代碼不一致時,Khank的迴應如下:


640?wx_fmt=png

640?wx_fmt=png       

上午7點22分迴應:我剛起牀聽到消息,讓我來掃描一下所有(代碼)

晚上9點18分迴應:各位抱歉,我也不知道爲什麼他們通過了我的代碼(驗證)


而5月5日當Khank的地址部署過後門合約並且調用的證據出現後,在Discord網友的質疑下,Khanh的迴應如下:


640?wx_fmt=png       

Mr Fahrenheit:你怎麼解釋你的地址對另一個合約調用過可以觸發後門的交易?

Khanh:我的私鑰泄露了,github的密碼也泄露了


這個迴應顯然過於蒼白,一方面人們質疑如果私鑰泄露爲什麼官網還掛着這個地址,另一方面該地址中還有28,052 TRX (價值約4400RMB)沒有被轉走。


640?wx_fmt=png


此時此刻根據已有的信息進行客觀的分析,存在的可能性(注意,此處僅討論可能性,即便該可能性極低,真相目前沒有任何實錘證據)依舊有以下幾種:


可能性一:Tronbank團隊和TSC團隊合謀,部署了有後門的合約,同時TSC協助用另一個沒有後門的合約完成驗證。

可能性二:Tronbank團隊沒有在合約中放置後門,而是後門在合約部署過程中以某種方式產生。


以上的兩種可能性中,目前的證據對於而言偏向於第二種可能性,Tronbank團隊目前正在多次與Khanh溝通,並將部分對話截圖貼出,Tronbank團隊堅持沒有放置任何的後門,而是指向TSC是真正放置後門的元兇。目前雖沒有決定性的證據顯示後門是由Khanh放置,但是TSC和Khanh自身與後門已經脫不了干係。


可能性三:Khanh的github賬號被盜,地址私鑰泄露,幕後黑手另有其人。


關於這一點依照現有的證據,可能性較低,Khanh的迴應含糊其辭,也並沒有提供賬戶被盜的證據(比如github關聯郵箱提示不安全登錄、密碼被修改等輔助信息)



至此 最終的謎題仍未解開

這一場年度大戲尚未落下帷幕

更多的證據仍待挖掘



wojak的財富密碼


整個事件中,wojak的那一筆神奇的交易依舊是關注本次事件的羣衆口中一直談論的話題。究竟是什麼樣的奇技能讓自動執行的代碼找到後門,並且觸發後門?


在DappReview與wojak的對話中,給出了答案:


640?wx_fmt=png

wojak的靈感來自於2018年8月的一篇論文《TEETHER: Gnawing at Ethereum to Automatically Exploit Smart Contracts》


該論文主要講了什麼呢?


  • 基於底層的EVM指令,提出了存在漏洞的智能合約的一種廣義定義;

  • 提出了TEETHER工具,該工具能夠對於智能合約的字節碼進行自動化的漏洞識別並生成相應的漏洞利用代碼;

  • 對於以太坊區塊鏈中部署的38,757個智能合約進行了大規模的漏洞分析,其中TEETHER工具發現了815個合約中的漏洞,整個過程完全自動化。


用一個不恰當但是通俗的比喻來說:TEETHER工具就是一臺能自動從智能合約找漏洞並且提款的ATM機。


wojak基於這篇文章做了什麼事情?


640?wx_fmt=png


1. 把TEETHER工具針對波場虛擬機做了適配

2. 收集波場上所有智能合約

3. 對所有的合約執行TEETHER工具來分析

4. 找到可能的套利機會 比如從合約A中以X的價格購買某Token,然後在合約B中以Y價格賣出(Y大於X),整個流程都是自動化執行而且合法

5. 工具會產生一系列可能產生收益的交易列表

6. 腳本自動執行並出發這些交易


本質上,那一筆神奇的交易就是這樣自動觸發的,連他自己都不知道發生了什麼。至於wojak本身的行爲是否可以定義爲“黑客”,或者“違法”,此處暫且不展開深究。


有興趣研究這篇“財富密碼”的請看:

https://publications.cispa.saarland/2612/1/main.pdf


截至發稿,Tronbank已經宣佈完成了鏈上投資數據的收集,統計完成後將按照原計劃發放賠付TRX。此外,TSC開發者Khanh已經關閉了個人Twitter和Facebook。



--------

DappReview網站全新改版上線

點擊“閱讀原文”,查看全球最大的Dapp數據排行榜

支持8大主鏈,超過3000+Dapps


640?wx_fmt=png


DappReview必讀文章系列


後臺回覆“遊戲”,獲取遊戲類文章合集

後臺回覆“觀點”,獲取觀點類文章合集

後臺回覆“行業”,獲取行業類文章合集

後臺回覆“解謎”,獲取解謎類文章合集


關於Dapp的一切,都在這裏

640?wx_fmt=jpeg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章