再議Wannacry的比特幣錢包

FreeBuf2019-07-12 04:36:13

0×00 回顧

兩年前正值Wannacry爆發不久,筆者發表了《“數”說Wannacry的比特幣錢包》一文,受到很多小夥伴的關注。文章從比特幣基本特性、交易數據採集、交易記錄分析、資金流可視化等多個方面介紹了Wannacry事件所涉及的三個比特幣賬戶。由於“涉案”賬戶並未轉移“贓款”,所以當時只分析了資金的來源,並沒有就去向開展研究。

有熱心小夥伴提示,賬戶在2017年8月3日對資金進行了轉移操作,那麼我們一起來看看賬戶裡的錢去了哪?這兩年來賬戶發生了什麼?

Tip:為簡化描述,文中分別將wannacry的三個比特幣錢包重命名為如下:

0x01 When 轉移時間

經過對三個錢包所有交易記錄進行篩查,共有397筆交易,其中6筆轉出,每個錢包分別對應2筆,具體如下圖:

圖1 11錢包轉出記錄

圖2 12錢包轉出記錄

圖3 13錢包轉出記錄

6筆交易分別發生在20170803日的11:39:15、12:28:20、12:41:34這三個時刻,需要說明的是交易時間相同的交易記錄都記載在同一塊上,所以出塊時間都是一樣的。據此可以推斷出,有人在北京時間2017年8月3日(距離5.12共83天)12點左右對三個賬戶進行了操作,轉走了裡面的錢。

0x02 Where 資金去向

1、賬戶裡一共多少錢

三個錢包的轉入交易筆數分別為:11錢包119筆, 12錢包136筆, 13錢包138筆,從分佈情況看無明顯差異,也符合《“數”說wannacry的比特幣錢包》裡面提到的wannacry病毒程序對付款賬戶的隨機化。

圖4 各錢包轉入交易佔比圖

截至2017.8.3日,各錢包收到的比特幣數額分別為:14.41067602btc、17.77113037btc、19.74510304btc,共計51.92690943btc。

圖5 各錢包轉入金額佔比圖

2、資金去哪了

為了回答這個問題,我們需要對2017.8.3日的轉出數據進行收集追蹤,我們依舊使用scrapy框架進行爬取,由於數據來源網站使用了js腳本,所以urllib獲取到的內容並非是真實展現的數據,因此引入selenium+phantomjs的方式調用無界面瀏覽器對網頁進行爬取。(高版本的selenium已經放棄了對phantomjs的支持,可以選用chrome或Firefox瀏覽器進行,通常為了減少資源消耗選用headless無頭模式)

Step1:確定爬蟲入口

為了追蹤錢包裡錢財去向,需要緊盯轉出交易順藤摸瓜,所以3個錢包在8.3日的6筆轉出記錄是重點,爬蟲的入口即為6筆轉出記錄,6條轉出交易的id如下:

d17829f8097ed86fa2e961b5ccefc51877673f649196621bf90e03f42f1e9ab8

ef0ac1c130740138805bfb7cd605456e440266db1fd85ae5b4a852a7172fcf2f

35e5d5fe8c8128cfa6884f56be5817e4138c58c91b79d78d3e78a8d365b9d8a7

409803bb5e124fd028c0482027c7722e84ce55b78204b279d3a44aba5e7c1698

8def6458a46234ab0e040602e7852ff5cf58650f3f1102803b1d4bca4cc293a1

a028bb2d4c795cb8a8fd2f03285934fba8747fa84296fb7711dcda179b21cc4c

根據數據特點,我們製作如下的兩張表來分別記錄交易概況和交易詳情。

表1:交易概況。記錄每筆交易的id、塊高度、確認數、出塊時間、rawtx、虛擬大小、權重、輸入、輸出、Sigops、礦工費、礦工費率。

圖6 交易記錄要素

表2:交易詳情。記錄每一筆資金流詳情,包括交易Id、錢包地址、流入流出類型、btc數量、上一筆或下一筆交易id。下圖所示本筆交易共包含3條資金流信息,1筆輸入資金,2筆輸出資金。

圖7 交易詳情要素

Step2:開始爬取

由於爬蟲是以6個入口地址為起點爬取,順著資金流追蹤,只有完成一個交易記錄的爬取才能獲取到下一個交易的頁面地址,所以同時爬取的最大請求數只能是6,這極大限制了爬蟲的工作效率。為了簡化爬取過程,這裡只爬取了部分數據進行分析。

Step3:可視化分析

我們對11錢包的兩條轉出記錄進行追蹤,共收集到593筆交易,涉及40756條資金流。將數據進行格式化處理後,導入gephi中進行可視化展示。

圖8 錢包11的交易可視化

我去~~~~密集恐懼症都犯了。。。。。可以看到圖中共36409個節點和37247條邊。

這些節點和邊都代表了什麼?根據比特幣交易的特點,很多交易記錄都不是單個賬戶對單個賬戶,而是一對多、多對一和多對多的資金流關係,所以我們在繪製資金流時無法將賬戶直接關聯到另一個賬戶,而是需要以交易塊為中介進行關聯,所以圖中的節點包含兩種類型:錢包和交易塊;圖中的連線連接了錢包與交易塊,代表著資金流,連線的箭頭方向代表了資金流向。

為了使上面的圖更加清晰直觀,我們對數據進行一下處理,按照節點的類型對其進行標色。紅色代表錢包,綠色代表交易塊,可以看出圖中被密密麻麻的錢包所籠罩。

圖9 錢包11的交易可視化圖(標色)

根據交易特性,交易塊肯定連接輸入和輸出賬戶,所以圖上交易塊節點的度必定大於1,利用k-核心算法對圖中度為1的節點進行過濾。

圖10 錢包11的交易可視化圖(標色)k-核心>1

可以看到圖中的點和邊均銳減到1163(3.19%)和2003(5.38%),除去593個交易塊節點,有570個錢包節點被保留了下來,說明這些錢包與不止一個交易塊發生了關係,參與了多筆交易。我們利用節點的出度值調整節點大小,得到如下圖。

圖11 錢包11的交易可視化圖(標色)出度調整

可以看到其中有一個錢包格外的大,說明其資金流出的筆數非常多。為了驗證我們查看該錢包的交易信息,可以看到交易210650筆,總接收2,096,890.53333999 BTC,2017年4月有幾筆交易,從5月底開始交易數激增。從該錢包的流水來看很像是用來提供洗錢服務的賬戶。

圖12 關鍵錢包交易統計

當把k-核心過濾條件調整為3,將邊的寬度也按資金流大小進行等比例縮放,可以看到下圖中剩下的錢包均可視為核心節點,從該圖的線條就可以看出上圖所得到的錢包的交易量確實非常大。

圖13 錢包11的交易可視化圖(標色)邊調整

以上的分析只是11錢包的資金流去向情況,就已經非常複雜了。為了簡化問題,我們對三個錢包的分析只採用2017年12月31日之前的交易數據進行,將數據導入gephi後,形成16萬個節點近10萬條邊,選用k-核心算法過濾3度以下節點,得到下圖。

圖14 涉案錢包交易可視化圖(標色)k-核心>3

使用加權出入度對節點大小進行調整得到如下圖所示

圖15 涉案錢包交易可視化圖(標色)加權出入度

可以看出圖中有部分節點調整後變得異常大,隨便選中其中一個點查詢後可看到,31比交易的流水資金高達11,777.56150534BTC,不禁為這個賬戶增添神祕色彩。

根據以上圖像顯示,三個賬戶的資金去向異常複雜,還經過了很多Mix賬戶,這些賬戶專門用於洗錢。

3、8月3日之後的賬戶

2017年8月3日三個賬戶同時轉出“贓款”後,依舊有資金絡繹不絕得轉到賬戶裡。

圖16 錢包11“轉髒”後的交易記錄

圖17錢包12“轉髒”後的交易記錄

圖18錢包13“轉髒”後的交易記錄

Question:為什麼還有錢轉入?

A:可以看到最近轉入得時間竟然是2019年5月,可以猜測或許很多不知情得人還在中招wannacry,或者這些賬戶又在進行其他不可告人得勾當。

4、為什麼會選擇2017年8月3日那有一天?

畢竟筆者也是局外人,所以只能腦洞大開的來回答這個問題啦。

圖19 按月統計交易筆數

上圖是2017.5月以來各月接收到的交易筆數,可以看出5月分交易異常活躍,只用了18天就拿下33筆交易,6月就驟降到17筆,7月更是可憐的2筆。由此可見,交易活躍度的極具下降使得賬戶所有者不再有耐心等待下去,選擇了在8.3日轉出了比特幣。

5、什麼時候兌換現金?

眾所周知,比特幣在2017年開始進入瘋狂,走勢如下:

圖20 比特幣2017-2019價格走勢圖

短短半年時間,比特幣從5.12日的近7千刀漲到近2萬刀,三個賬戶收到的51.92690943btc如果在最高點變現,將獲利100.4552萬美元。

0x04 比特幣賬戶真的很難追查嗎

加密貨幣比特幣以其匿名性深受非法交易喜歡,已經成為許多在線地下交易的首選付款方式。雖然比特幣賬戶是匿名的,但其交易並非匿名,即比特幣賬戶的註冊無需實名認證,但是比特幣全網的交易記錄都基於區塊鏈技術進行,其整個支付網絡中所發生的每一筆交易都會被記錄在“區塊鏈”,這是比特幣貨幣體系用以追蹤誰何時擁有哪些比特幣,以及防止欺詐和偽造的分散化交易記錄機制。但這些交易只是按照比特幣地址記錄下來的,這些地址未必與任何人的身份相綁定,因此光從這些公開的交易記錄是無法追蹤到使用者身份。

如果針對流量數據來進行監控識別比特幣交易,從而確定交易者位置,是不是就可以獲取其身份,首先需要說明的是,為了提升追蹤難度,交易者往往配合“暗網”來進行比特幣交易,這也正如wannary利用tor來構建C&C;通道一樣,同樣是為了達到鏈路匿名話。針對比特幣交易的研究,一些學者利用大數據來關聯分析各個賬戶的彼此關係,來從中發現蛛絲馬跡,但交易如果通過諸如Bitlaundry、Bitmix或Bitcoinlaundry等“比特幣洗錢服務”平臺支付比特幣的話,那麼對這些比特幣進行跟蹤就會變得更加困難,甚至是不可能的。

0x05 寫在最後

本文只是對比特幣交易分析做了淺顯的介紹,有關其追蹤的研究還是非常複雜繁瑣,涉及到很多很多的知識,筆者還是需要多多學習,趁著高考結束的日子多加努力。

*本文原創作者:追影人,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載

精彩推薦


https://weiwenku.net/d/201132379