科普數字貨幣交易平臺面臨的安全威脅區塊鏈
科普|數字貨幣交易平臺面臨的安全威脅
一、近期部分與數字貨幣交易平臺相關的安全事件
近期,數字貨幣交易所安全事件頻發。2018年01月日本Coincheck交易所受到黑客攻擊被盜取NEM新經幣損失約5.34億美元;2018年02月基于以太坊的XMRG代幣的交易價格上漲787%后迅速暴跌歸零,造成大量用戶經濟損失,背后原因在于其智能合約代碼存在整數溢出漏洞,超額鑄幣后拋售造成惡性通脹;2018年03月Binance交易所,黑客利用盜取的用戶信息進行大量交易操縱市場行情獲利超過1億美元。2018年04月基于以太坊的BEC代幣和SMT代幣先后因智能合約存在溢出漏洞造成天量代幣轉出,引發恐慌拋售,導致市值幾近歸零……這樣的案例數不勝數。
筆者通過這些觀察,發現兩個現象:一是事件發生的頻率很頻繁,要知道這只是列舉近期部分影響比較大的事件,如果把時間范圍擴大,或者算上可能存在的影響較小的以及被掩蓋的事件的話,數量會比這個更多;二是平臺或用戶的損失數額巨大,動輒數千萬甚至數億美元。
實際上,通過這些事件記錄,還可以得到更多信息,接下來展開分析一下。
2018年3月初,著名的數字貨幣交易平臺幣安出現大量賬戶異常交易,繼而影響了整個數字貨幣市場的交易行情。這個事件的操作手法很有趣,后文會再提起。這里要說的是,事件發生之后,有人發文指責事件是幣安官方自導自演的,幣安聯合創始人何一后續發文回應,反駁這一指責。事件真相究竟如何筆者不打算在此討論,這里是想要援引何一回文中的一句話:“出現這種安全問題是幾乎不可避免的,任何種類的交易所每天都遭受攻擊,一方面政策空間狹窄,導致幣圈不太可能照搬傳統交易所體系,另一方面虛擬貨幣交易所面世才幾年,不管是風控還是技術積累都需要一個成長過程。”
是否認同這個說法,是個仁者見仁的問題,筆者所關注的主要是它的思路。這個說法當中,把數字貨幣交易平臺同傳統金融交易平臺做了對比,本文接下來也會使用同樣的思路來闡述。
二、黑客為何攻擊數字貨幣交易所?
從邏輯上說,任何主觀行為都是有目的的,黑客攻擊行為的目的,不乏有為了炫耀技術或者表達政治訴求之類的情況,但是占比最大的還是為了獲得經濟回報。
現實生活中,是存在攻擊傳統金融機構例如銀行或者證券交易所系統的情況的,但是這方面的記錄相對上文而言少很多,下面分析一下原因。
筆者認為,主要存在兩方面的原因,一方面,傳統金融機構所保有的資產,無論是數字化的(相對于實體化的紙幣和硬幣)法定貨幣,還是證券憑證,普遍都是記名的,其流轉過程有跡可循,并且接受監管,要實現難以追蹤的轉移效果,成本高難度大。另一方面,傳統金融行業的數字化歷史已經很久,無論是人才儲備,技術積累,制度規范都已經很成熟,單就信息安全方面的建設水平也相對很高了,要從技術上實現成功侵入盜走資產并逃脫追捕這一系列步驟難度非常大。
反觀數字貨幣交易所,一方面,數字貨幣的匿名性,不可篡改性以及無監管特性,導致了資產轉移便捷,溯源找回難度大。另一方面,數字貨幣交易行業出現時間短,發展又非常快,利潤高,導致本來技術積累就不足的情況下,仍然忽視信息安全方面的建設,隱藏的安全漏洞多,攻擊起來相對容易。
三、數字貨幣交易所在技術方面面臨的安全威脅
目前數字貨幣交易所在技術方面面臨的安全威脅,筆者分析主要分為兩大部分。
1.傳統信息系統安全漏洞
這一部分來說,數字貨幣交易所,和傳統金融機構差別不大,其整個信息系統,由Web服務器,后端數據庫等元素構成,用戶通過瀏覽器,移動端App以及交易所提供的API等多種方式作為客戶端訪問服務器。
結合本文第一部分的事件記錄,可以看出,這部分面臨的安全威脅主要包括,服務器軟件漏洞,配置不當,DDoS攻擊,服務端Web程序漏洞(包括技術性漏洞和業務邏輯缺陷),辦公電腦安全問題,內部人員攻擊等。
對于規模較大,用戶較多的交易所,還會面臨用戶被攻擊者利用仿冒的釣魚網站騙取認證信息的問題。上文中提到的幣安交易所的異常交易事件,據官方的說法,是攻擊者利用釣魚欺騙的方式騙取了部分用戶的認證憑證,繼而利用API發起大量交易,將用戶賬戶內的其他幣種交易成比特幣,幣安及時發現異常,凍結了提幣功能。有趣的是,攻擊者雖然不能提幣,但是想到了另一個巧妙的獲利方式,即利用其控制的大量場內比特幣操縱市場,影響其他幣種的價格,再在另外的數字貨幣期貨交易所進行做空操作,最終在無法提幣的情況下獲利超過1億美元。在這個事件中,攻擊者利用了幣安平臺對市場的巨大影響力,理論上來說,并沒有盜取誰的數字貨幣,只是“換了換幣種”,因大量的做空訂單分散在成百上千的其他交易所,導致根源也無從查起。
下圖是“去中心化漏洞平臺”DVP的漏洞統計。
該平臺收錄的最早的漏洞信息在2018年07月12日,截止到撰寫本文時,在不到兩個月的時間里已經收錄了超過1800個漏洞,并且仍在以每天數十個的速度增長。
上個月,某安全團隊稱捕獲到了一個0day漏洞,是某個數字貨幣交易所整站程序的邏輯漏洞,有上百個中小交易所在使用該程序,雖然大眾普遍認為,國內外的規模較大的交易所不會購買使用這種第三方開發的整站程序,但是現在數字貨幣交易行業利潤高,發展迅猛,后期可能會有很多人想要快速進入這個市場,在搜索引擎中搜索“數字貨幣 交易 平臺 開發”等關鍵字即可發現這一塊的需求量應該還是很大的。
其實在初期使用第三方外包開發的方式本來未嘗不可,就傳統的銀行領域來說,大量的中小規模銀行的信息系統也會使用第三方公司的產品來定制,因為政府層面的嚴格監管以及這一類開發公司長久的技術積累,銀行使用的類似系統通常安全性是有足夠保證的。但是在數字貨幣行業則不同,部分從事這一類開發的個人和團隊對于產品質量的保障能力很有限,導致通用型漏洞頻發也就不奇怪了。
對于這一部分安全威脅的解決方法來說,通過滲透測試,代碼審計等安全服務,挖掘并修復系統存在的安全漏洞,可以參考傳統金融行業的安全規范和最佳實踐結合自身情況完善安全體系的建設。
2.智能合約安全漏洞
以太坊被稱為“區塊鏈2.0”技術的代表,因為它支持智能合約的運行。可以這么來理解,比特幣系統就是在底層區塊鏈技術的基礎之上,加上一個定義了獎勵分發規則的“合約”所構成的。而以太坊的出現,提供了現成的底層區塊鏈網絡,開發者可以在這個基礎之上,使用Solidity等程序開發語言,開發部署自己的智能合約,包括模擬一個類似比特幣一樣的產品。因為Solidity是圖靈完備的程序開發語言,因此理論上,可以用來實現各類分布式應用。
開發者編寫好智能合約代碼之后,將代碼部署到區塊鏈上,程序在以太坊節點的EVM虛擬機上執行。代碼上鏈之后,各節點執行相同的操作,同步數據狀態。
和傳統的程序一樣,智能合約也不可避免的會存在安全漏洞,不同的是,由于區塊鏈技術的不可篡改特性,一旦合約部署好之后,就很難再修復其中的問題。一些存在例如整型溢出等漏洞的代幣分發合約部署之后,代幣上線交易所交易,接著漏洞被觸發利用,短時間內超發大量代幣影響市值,對交易所和用戶來說都會造成巨大的經濟損失。
這部分安全威脅,就與傳統的信息安全漏洞大不一樣了。在傳統金融市場中,也存在類似的攻擊,例如20世紀末期亞洲金融危機時,索羅斯對港元的操作。不同的是,在傳統金融市場要發動這樣的攻擊需要巨量的資金支持才能實現。而在數字貨幣領域,擁有挖掘合約漏洞能力的人理論上都有可能實現這樣的攻擊。
下圖是部分基于以太坊ERC-20智能合約標準開發的代幣合約的漏洞信息:
實際的威脅情況可能比這還要嚴重得多。我們說智能合約之所以“智能”,是因為一旦部署上鏈之后,它的執行過程透明可見,不可篡改,無需人工干預,自然解決了執行過程中的信任問題,這也是區塊鏈技術出現時所想要解決的根本問題。然而雖然解決了程序“運行”階段的問題,但是如果合約代碼存在漏洞,開始執行之后被利用,背離了原本的涉及初衷,那區塊鏈技術的這些優秀特性反而會成為挽救損失的障礙。
應對這部分安全威脅,需要交易所在上線新的代幣之前,先經過完善的合約代碼安全審計工作,防患于未然,將可能的攻擊威脅降到最低。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。