摘要:前段時間,知名加密貨幣交易所Binance(幣安)遭受黑客攻擊,被盜707418枚比特幣。一個用來“釣魚”的假Binance登錄界面通常被盜取的信息是用戶API密鑰,這使得攻擊者能夠以編程的方式與交易所進行交互,就好像他們自己就是用戶一樣。...
前段時間,知名加密貨幣交易所 Binance(幣安)遭受黑客攻擊,被盜7074.18枚比特幣。
盡管其創(chuàng)始人趙長鵬在多次AMA中披露了一些黑客盜幣的細節(jié),并承諾使用“SAFU基金”全額承擔本次用戶的損失,此后也出現(xiàn)了“回滾交易”的爭議討論,但這7074.18枚比特幣究竟如何被盜?如今又被轉(zhuǎn)移到哪里?業(yè)界并沒有詳細的深究與討論。
但國外的這位小哥用 Google BigQuery 好好深扒了一下,發(fā)現(xiàn)了不少貓膩。丟掉的7074.18枚比特幣還能不能找回來?一起往下看!
事情是怎樣的?
如果你了解整個事件,可選擇跳過這部分。
對于這次“災難”,Binance 沒有對外發(fā)表太多言論。雖然他們已經(jīng)分享了關(guān)于盜竊的一些細節(jié),但對于更細微的細節(jié),他們卻仍在保持沉默。
根據(jù)他們最近(5月10日)更新的博客,他們正在努力保持最高程度的透明度,但擔心分享太多的安全細節(jié)會讓黑客感到不安,并最終削弱他們自己的安全。
盡管如此,我仍舊認為讓社區(qū)真正了解到底發(fā)生了什么是十分有必要的,因此我將在本文中深入探討。
活動時間表
以下是我們對事件發(fā)生時間的了解。
5月7日下午5:15(世界協(xié)調(diào)時),7074.18枚比特幣從 Binance 熱錢包中抽出。
5月7日下午7:00(世界協(xié)調(diào)時),Binance 關(guān)閉了非預定維護的存款和取款。 Cz 向用戶保證,基金是 SAFU,交易不會中斷。
5月7日11時36分(世界協(xié)調(diào)時),Binance 宣布了一個安全漏洞,并證實黑客能夠從 Binance 熱錢包中提取7074.18枚比特幣。
5月8日下午12時42分(世界協(xié)調(diào)時),Binance 限制所有現(xiàn)有 API 密鑰只允許交易,并宣布所有現(xiàn)有 API 密鑰將在 UTC 時間下午1:30刪除。
5月8日下午1:30(世界協(xié)調(diào)時),Binance 刪除所有現(xiàn)有 API 密鑰。
這次盜竊和之前有何相似之處?
無論是最近、還是過去的攻擊都涉及到 Binance 的 API 和網(wǎng)絡釣魚。
黑客通過將自己偽裝成值得信賴的實體,然后欺騙用戶泄露敏感信息。
一個用來“釣魚”的假 Binance 登錄界面
通常被盜取的信息是用戶 API 密鑰,這使得攻擊者能夠以編程的方式與交易所進行交互,就好像他們自己就是用戶一樣。
在 Binance 上有3個不同級別的 API 權(quán)限:
- 讀取ー獲得有關(guān)持幣、交易歷史和市場數(shù)據(jù)的能力。
- 交易 - 執(zhí)行交易的能力
- 提取ー取出資金的能力
當用戶創(chuàng)建一組 API 密鑰時,一般情況下,讀取和交易權(quán)限默認開啟,提取權(quán)限則被禁用。由于提取權(quán)限可能會帶來高風險,Binance 要求用戶首先設置雙重身份驗證和 IP 白名單。
在 SYS 和 VIA 攻擊期間,攻擊者大部分時間都只得到了純交易訪問API密鑰。因為攻擊者不能從只有交易訪問權(quán)限的賬戶中提取資金,所以他們必須首先重新分配資金。
他們是這樣做的:
- 首先,在攻擊之前,攻擊者將目標對準一個易于操縱的交易所。 通常情況下,被攻擊目標有著交易量小、訂單量也少的特點。黑客會提前購買一些這樣的數(shù)字貨幣。
- 然后,攻擊者發(fā)出限價訂單,以荒謬的價格(通常是正常價格的萬倍以上)出售他們的數(shù)字貨幣。
- 隨后,攻擊者利用盜取賬戶的 API 發(fā)送大量購買訂單,并以萬倍以上的價格在市場的另一邊購買自己的數(shù)字貨幣。完成這一步后,他們就有效地將財富從僅具有交易訪問權(quán)限的帳戶轉(zhuǎn)移到了具有提取權(quán)限的帳戶。
- 最后,攻擊者試圖從 Binance 取出“戰(zhàn)利品”。一旦取出并存入其他地方,就幾乎沒有人可以扭轉(zhuǎn)交易了。
你可以在 Binance 交易歷史中找到證明上述方法的證據(jù)。在2018年的 API 黑客攻擊中,攻擊者通過以提高 SYS 和 VIA 的價格的方式,試圖轉(zhuǎn)移前面提到的資金。
如下圖,在2018年7月3日和2018年3月6日,SYS / BTC 和 VIA / BTC 的價格和成交量分別出現(xiàn)了異常。
這次有什么不同?
這一次,攻擊方式有所不同。根據(jù) Binance 的官方聲明,黑客能夠獲得大量的用戶 API 密鑰、谷歌驗證 2FA 碼和一些其他敏感信息。
通過 2FA 碼,黑客完全可以啟用提取權(quán)限,同時禁用 IP 白名單。這一次,黑客不需要冒著被人懷疑的風險而提高數(shù)字貨幣價格,進行多次交易,然后將資金轉(zhuǎn)移,這次攻擊更容易。
為了證實這一推理,我從 Binance 的 API 中提取了上個月每小時的交易數(shù)據(jù)。
如果 API 密鑰被用來操縱交易,交易量和貨幣價格將會出現(xiàn)異常峰值。
交易數(shù)據(jù)比較
我計算了黑客攻擊前30天交易量和價格的每小時最大值,還計算了黑客攻擊當天的交易量和價格的每小時最大值。
目的是比較兩者,看看黑客攻擊當天的每小時價格和交易量是否有所上升。
成交量比較
下表按攻擊當天每小時最大值(1D_max)和攻擊前30天每小時最大值(30D_max)之間的百分比差排序。
交易量
可以看到,LINK/PAX 在黑客攻擊當天的每小時交易量出現(xiàn)了大于3倍增長,但這個數(shù)字還沒有大到能引起懷疑,特別是考慮到事實上,鏈接 / pax 的價格沒有飆升以及。
價格比較
在黑客入侵的當天,在最極端的情況下,我們也只看到價格上漲了34%。
這進一步說明,此次攻擊中黑客沒有操縱價格。
交易價格
雖然攻擊者可能會在周圍進行交易而不會引起注意,但我認為這是不可能的。在不影響價格和交易量的前提下,要轉(zhuǎn)移7074.18枚比特幣,需要許多賬戶,或者說,需要很長時間。
如果是這樣的話,長時間的交易活動很可能會引起原始賬戶所有者的懷疑,用戶會覺察到自己的資金正慢慢耗盡。一旦有用戶向 Binance 投訴,這將會給黑客們帶來災難。
黑客仍在逍遙法外
比特幣的價值和可靠性在很大程度上歸功于賬本的不可變性。但這也意味著,一旦成功提款,基本上就不可能追回被盜資金。
Binance 證實,黑客能夠在這一次交易中提取7074.18枚比特幣。我使用 Google BigQuery 查詢與黑客有關(guān)的交易,并繪制出被盜資金的動向圖如下。
圓圈代表錢包地址,線條代表被盜資金流向。圓圈和線寬與兩地址間發(fā)送的比特幣數(shù)成正比。
被盜比特幣能被追回嗎?
據(jù)我所知,還不存在 Depth>4 的交易。黑客們正“清洗”被盜的比特幣,并將其存在一些固定的地址中。
下面是一個更大的可視化圖像,標注了單個錢包地址。
從某種程度上來說,追蹤這些比特幣的來源是非常不可行的,因為涉及這些被盜比特幣的交易數(shù)量將呈指數(shù)級增長。
目前,有3種常見追蹤受污染數(shù)字貨幣的方法。
- Poison(污染):用3枚被盜比特幣和7枚正常比特幣一起進行交易,取出10枚「被盜」比特幣;
- Haircut(削發(fā)):用3枚被盜比特幣和7枚正常比特幣一起進行交易,10個中有30%被標記為「被盜」;
- FIFO(先進先出):用3枚被盜比特幣和7枚正常比特幣一起進行交易,最先出來的三個被標記為「被盜」。
從長遠來看,我認為這些方法都不能奏效。給受污染的貨幣貼上標簽或者加入黑名單,從根本上削弱了比特幣的可替代性和抗審查性。我不支持那些試圖追回或?qū)⒈槐I比特幣列入黑名單的想法。
無獨有偶,2019年1月,黑客攻擊了新西蘭的虛擬貨幣交易所 Cryptopia,盜取了以 ETH 為主的數(shù)字資產(chǎn)(當時價值1,600萬美元左右)之后銷聲匿跡。
近日,隨著幣價的攀升,該黑客在沉寂了數(shù)月后,開始密集的洗錢行動。據(jù) PeckShield 數(shù)字資產(chǎn)護航系統(tǒng)(AML)數(shù)據(jù)顯示,近兩天來,該黑客已經(jīng)將4,787個 ETH 轉(zhuǎn)入了火幣交易所,而且仍有26,003個 ETH 等待被洗時機。
一圖概覽黑客洗錢全過程
從上圖中可以看到,黑客先將部分數(shù)字資產(chǎn)轉(zhuǎn)移到一個地址,再偽裝成買家和賣家,在去中心化交易所 EtherDelta 中買賣交易,試圖逃避追蹤,之后將資產(chǎn)再次匯聚到一起,然后進入火幣交易所。進一步的細節(jié)如下:
第一步:資產(chǎn)轉(zhuǎn)移
在交易所等巨額資產(chǎn)出現(xiàn)安全問題后往往引來無數(shù)媒體關(guān)注,所有人都會緊盯資產(chǎn)流向,而此時黑客通常會沉寂數(shù)月乃至一年。在認為避開風頭之后,抓住一個最佳時機,開始銷贓洗錢。
此次黑客估計是被市場回暖喚醒,先將5,000個 ETH 以每筆1,000個的方式轉(zhuǎn)入一個新地址,并以此為起點,開始一輪洗錢操作。如果仔細地看這五筆交易,會發(fā)現(xiàn)它們共間隔16小時,而且是在每轉(zhuǎn)出一筆后,再進入后續(xù)的偽裝成買家賣家操作。可見黑客格外的小心翼翼,先探探頭,試試水再說。
第二步:偽裝買賣
黑客為了逃避資產(chǎn)追蹤,一般會將大額資產(chǎn),以小額多筆的形式分散到大量的地址中,再在各個地址上進行頻繁的分散匯聚。而此次黑客采用了一種新方式,通過偽裝成去中心化交易所的買家和賣家,試圖以正常的掛單配對交易來逃避追蹤。
黑客將每次收到的1,000 ETH,再分散成以約500個 ETH 一筆進入去中心化交易所,開始買賣。從以上兩圖中發(fā)現(xiàn),黑客以普通用戶的方式,不是僅用一兩筆,而是通過大量多筆的交易,完成從買家到賣家的資產(chǎn)轉(zhuǎn)移。
偽裝買家賣家,買賣 BAT、ELF 代幣
下圖中可以看到黑客控制多個帳號偽裝成買家和賣家將資產(chǎn)倒手,圖中是黑客成交的多筆 ELF 和BAT 代幣的訂單。
具體來看買家在去中心化交易所 EtherDelta 合約上的一條交易(trade)記錄
https://etherscan.io/tx/0x15ad9bac4391f5a6e57393ec3dc2418e73790eefb663a219fb1628501f1a31a6
在上圖中可以看到買家與賣家的配對交易,緊接著賣家做了提現(xiàn)(withdraw)操作,對應著鏈上的交易記錄截圖如下:
https://etherscan.io/tx/0x72917f72dfdfac50ff228f72a402a592ff79934bc5f3d138fd2c1f6c53091192
第三步:再次匯聚,進入交易所
通過去中心化交易所的倒手交易后,黑客已認為能夠避免資產(chǎn)被追蹤,又將獲得的 ETH 匯總到一個地址,并分批次進入火幣交易所。
至此,黑客最初的5,000枚 ETH,分批匯聚再進入去中心化交易所,經(jīng)過倒手買賣,再次匯聚進入火幣,看似天衣無縫的操作,實則在鏈上留下了諸多痕跡。
白帽黑客:一切鏈上行為皆可循
截至發(fā)文時,黑客共計將4,787個 ETH 轉(zhuǎn)入了火幣交易所,PeckShield 正協(xié)助火幣交易所對涉及贓款實施封堵。
目前尚有26,003個 ETH 控制在黑客手中,存在進一步洗錢的可能。PeckShield 正持續(xù)追蹤黑客下一步的洗錢行蹤。
今年1月份 Cryptopia 交易所遭黑客攻擊損失共計30,790個 ETH。時隔4個月,當時的 ETH 行情價格也已經(jīng)翻番了,黑客覺得時機差不多成熟了,開始活躍出來洗錢了。
整體來看,黑客此次行動還是很小心謹慎的,通過分散轉(zhuǎn)移賬號、偽裝買賣等多種手段來逃離追蹤,但區(qū)塊鏈世界,一切鏈上行為都有跡可循,安全公司更道高一丈。
附:黑客主要的洗錢地址:
文章來源:區(qū)塊鏈大本營,有刪減和新增