Blockchain Hacked!
來源:
時至今日,加密貨幣與智慧合約平台當中,開始出現越來越多安全漏洞,而其中部分漏洞,甚至源自這些平台的建構基礎。
就在上月月初,Coinbase公司的安全團隊注意到,乙太坊經典(Ethereum Classic)當中,出現了一些異常跡象。順帶一提,Coinbase所提供的高人氣加密貨幣交易平台,正是以乙太坊經典為基礎。事實上,
所謂異常並不足以說明,問題的嚴重性——整個區塊鏈,包括其中的全部交易歷史,盡皆遭到入侵。
攻擊者以某種方式,控制了超過半數的區塊鏈網路算力,並借此對交易歷史進行了重寫。這意味著其完全有能力,多次使用相同的加密貨幣——也就是所謂「重複花費」。
截至攻擊者被發現之時,其濫用的資金總額高達110萬美元。不過Coinbase方面宣稱,此次事件並沒有造成任何實際性的賬戶貨幣失竊。然而,第二大高人氣交易所Gate.io就沒這麼幸運了,問題出現之後,攻擊者共造成了約20萬美元的損失(但奇怪的是,幾天之後其中有半數資金得到了恢復)。
就在一年之前,上述噩夢般的場景,似乎還只存在於理論之中。但此番針對乙太坊經典網路的51%攻擊,只是近期一系列指向區塊鏈平台的攻擊活動中的一例,而這些問題,進一步加劇了加密貨幣,這一新興行業的整體波動。
單從已經公開披露的情況來看,自2017年年初開始,駭客就已經總計竊取到,價值近20億美元的加密貨幣,而且其中大部分來自交易所。
如今,受到巨大利益吸引的,已經不再是單槍匹馬的獨行劫匪,而是規模更大且更為複雜的網路犯罪集團。分析企業Chainalysis公司最近表示,單單是兩個最為活躍的駭客團隊,就有可能已經從交易所處,偷走了10億美元。
對於這樣的狀況,大家沒必要過度驚訝。實際上,區塊鏈對於盜竊分子一直有著極高的吸引力。這一方面是因為區塊鏈上的詐欺交易無法逆轉,這與傳統金融體系的情況完全不同。除此之外,正如大家所知,區塊鏈既擁有著獨特的安全功能,同時也有著特殊的安全漏洞。
自從十年前比特幣正式誕生以來,我們已經至少在理論上,理解到了這一點。但在過去一年中,新的加密貨幣項目,就如寒武紀生命大爆發一樣爭相湧現,而我們也已經在實踐層面,體會到了由此帶來的影響,甚至是此類固有缺失,可能給區塊鏈及數位資產的未來,造成的後續衝擊。
如何入侵區塊鏈?
在繼續講解之前,讓我們首先聊聊區塊鏈的本質。
區塊鏈實際上就是一套,由整體電腦網路所維護的加密數據庫,其中每一台電腦都儲存著,最新的數據副本。區塊鏈協議則代表一組規則,用於規定網路當中的各台電腦(被稱為節點),應如何驗證新交易,並將其添加至數據庫當中。
這項協議採用密碼學、博弈論,以及經濟學等手段,激勵各節點努力保護網路,而非出於個人利益而實施網路攻擊。如果設置得當,那麼這套系統有望極大程度提升,添加錯誤交易的難度與成本,同時以更理想的效率,對有效交易進行驗證。
正是憑借著這一核心特性,才讓區塊鏈技術,在眾多行業當中,具有著獨特的吸引力,而金融行業正是最直接的受眾。富達投資與紐約證券交易所的持有方洲際交易所等,知名機構已經在著手推出新的服務,計劃將區塊鏈技術融入現有金融體系當中。甚至多個國家的中央銀行,也在考慮借此發行數位形式的全新本國貨幣。
然而,區塊鏈系統越複雜,出現錯誤的可能性也就越高。本月早些時候,負責Zcash幣(一種利用極度複雜的數學方法,幫助用戶個人之間進行交易的加密貨幣)的公司指出,其已經悄悄修復了協議當中,偶然出現的一項「微妙的加密漏洞」。攻擊者可以借此偽造出無窮無盡的Zcash幣。幸運的是,在修復之前,該漏洞似乎並沒有被實際利用。
協議並不是唯一需要嚴格保護的對象。要進行加密貨幣交易或者節點運行,大家必須使用軟體客戶端,而客戶端當中也有可能包含漏洞。
去年9月,比特幣主要客戶端Bitcoin Core被曝出,存在一項嚴重bug(同樣沒有對外公佈),其有可能令攻擊者,獲得比系統設計量更高的比特幣產出。可以想見,相關開發者以近乎瘋狂的方式,將其快速修復掉了。
儘管如此,近期大部分最引人注目的駭客攻擊,並非針對區塊鏈網路本體的入侵,而是將矛頭指向了交易所——即人們購買、交易以及持有加密貨幣的網站。
更可怕的是,很多盜竊案之所以能夠得手,完全是由於這些交易所,在基礎安全措施方面非常糟糕。不過今年1月的事件有所不同,以乙坊經典面對的是51%攻擊。
51%原則
事實上,大多數加密貨幣對於51%攻擊,都有著極高的敏感性。這是因為大多數加密貨幣項目,都基於區塊鏈,這些區塊鏈所使用的工作證明機制,正是交易驗證的核心機制。
在這一過程(也被稱為挖礦)中,節點會花費大量算力,來證明自身足夠可信,從而將關於新交易的資訊,添加到數據庫之內。以此為前提,通過某種方式,控制大部分網路採礦能力的礦工,即可向這些規模可觀的節點發送付款交易,從而欺騙其他用戶,並創建出現有區塊鏈的新版本——在這套版本中,該付款操作從未發生。這樣的新版本被稱為分叉。
更重要的是,控制大部分挖礦能力的攻擊者,完全能夠讓這個分叉,被視為區塊鏈的權威版本,從而繼續消費同一批加密貨幣。
對於高人氣區塊鏈而言,這種盜竊方式可能會帶來極高的成本。根據Crypto51網站的統計,租用採礦權足以被用於攻擊比特幣區塊鏈的設備,目前的單小時成本,已經超過26萬美元。
但如果著眼於,比特幣之後的1500多種加密貨幣,我們會發現其網路規模明顯小得多,因此需要控制的算力,自然也就少得多。加密貨幣價格下跌,導致這些貨幣價值縮水,這又進一步促使礦工們退出網路,最終形成了網路保護能力持續弱化的惡性循環。
2018年年中,攻擊者開始針對一系列體量較小、交易活躍度較低的加密貨幣(包括Verge幣、Monacoin以及Bitcoin Cold)進行51%攻擊,並總共盜竊到大約2000萬美元。
去年秋季,駭客們又透過一系列針對Vertcoin加密貨幣的攻擊,偷走了大約10萬美元。此次針對乙太坊經典的攻擊,共涉及超過100萬美元,這也是人氣排名前二十位的貨幣,首次遭遇正面入侵。
基於區塊鏈型文件儲存平台Sia公司,聯合創始人David Vorick預測稱,未來51%攻擊活動,將在頻率與嚴重程度方面,持續升級,而且交易所將首當其衝,受到重複花費問題的損害。
他同時表示,推動這一趨勢的重大事件,就是所謂hashrate市場的興起。攻擊者可以透過這些市場,租賃到可觀的算力,並用於攻擊。Vorick在乙太坊經典遭遇駭客攻擊後寫道,「在決定支持哪種加密貨幣時,交易所顯然需要做出更為嚴格的限制與謹慎的判斷。」
一大堆全新的蠕蟲病毒
除了51%攻擊之外,區塊鏈安全漏洞中,還存在著一類全新分支,而研究人員們,也剛剛開始對其進行探索——這就是智慧合約漏洞。巧合的是,乙太坊經典、特別是其背後的設計思維,正是理解智慧合約漏洞的絕佳切入點。
所謂智慧合約,屬於在區塊鏈網路之上,運行的電腦程式。它可以根據預先制訂的規則與條件,自動完成加密貨幣的轉移。
智慧合約有著很多潛在用途,例如支持真實法律合約,或者複雜的金融交易等等。而其另一個重要用途,同時也是我們感興趣的方向,就是建立起一種投票機制。透過這種投票機制,風險投資基金的所有投資者,都能夠參與進來,共同決定資金的具體分配方式。
2016年,名為去中心化自治組織(簡稱DAO)的基金正式建立,其實現基礎正是乙太坊區塊鏈。此後不久,一名攻擊者通過利用DAO智慧合約管理系統中,存在的某一無法預料的缺陷,偷走了總價值超過6000萬美元的加密貨幣。
從本質上講,這項缺陷允許駭客,在系統未將註冊資金,辨識為已撤回的前提下,繼續向帳戶申請資金。
即時智慧合約中的bug,可以引發一種獨特的高危狀況。在傳統軟體中,我們可以利用補丁,修復此類bug。但在區塊鏈世界中,問題絕對沒那麼簡單。
乙太坊蘇格蘭分部研究科學家,兼智慧合約安全新創企業Chain Security公司聯合創始人Petar Tsankov指出,由於區塊鏈上的交易無法被撤銷,因智慧合約的部署,更像是發射火箭——「軟體絕對不可以出錯。」
當然,也存在著某些修復機制。雖然無法徹底解決問題,但研究人員可以透過部署其它智慧合約,並與原有合約進行交互,從而對後者進行「升級」。
另外,開發人員還可以在網路當中,建構集中式交易終止機制,從而在檢測到駭客攻擊之後,停止一切交易活動。然而對於資金已經遭到盜竊的用戶來說,一切都已經無法輓回。
實際上,恢復被盜資金的唯一方式,就是重寫歷史記錄——即將區塊鏈回溯至攻擊發生之前的某一時間點,建立新的區塊鏈分叉,並要求網路上的每一位用戶,接受這一新的區塊鏈版本。
當時,乙太坊的開發者們,就做出了這樣的決定。大部分(但並非全部)社區成員轉向了新鏈,也就是我們現在所說的乙太坊。但仍有一小部分堅持繼續使用原始鏈,而這就構成了乙太坊經典。
上個月,Tsankov在Chain Security的團隊,成功使乙太坊免於重復DAO的災難。在某項策劃許久的重大軟體,升級正式上線的前一天,該公司提醒乙太坊的核心開發人員,這次升級有可能引發意想不到的後果——即在區塊鏈上遺留一些合約,其很容易受到導致DAO攻擊的同類漏洞的影響。開發人員迅速推遲了升級進程,並決定在西服晚些時候再行推出。
然而,區塊鏈安全企業AnChain.ai公司聯合創始人兼CEO Victor Fang表示,數百份頗具價值的乙太坊智慧合約,仍面臨著這種所謂「重入bug」的威脅。
根據去年進行的一項研究,成千上萬份智慧合約中,可能包含著大量其它漏洞。公鏈的本質決定著,如果智慧合約當中存在bug,那麼駭客必然能夠將其發現——因為公鏈合約的源代碼通常會公開發佈。曾效力於網路安全廠商Fire Eye公司的Fang指出,「這與傳統的安全實現,思路存在很大差別。」
存在bug的合約,特別是那些涉及數十萬,甚至數百萬美元的合約,吸引到了那批,以往關注銀行或者政府機構的高水準駭客。去年8月,AnChain確定了五個乙太坊地址,它們都參與到了一起極為複雜的攻擊活動當中。透過這次攻擊,駭客憑借某高人氣賭博遊戲合約內的缺陷,竊取到總計400萬美元。
那麼,我們能夠成功抵御這些駭客嗎?
AnChain.ai公司,正是近來為瞭解決區塊鏈駭客威脅,而建立的幾家新創企業之一。其希望利用人工智慧技術監控交易,並檢測可疑活動,同時掃描智慧合約代碼,以確定其中的已知漏洞。
包括Tsankov的ChainSecurity在內的其它一些公司,則在著手開發基於所謂形式,驗證這一電腦科學技術的新型審計服務。其目標在於立足數學層面,證明合約代碼能夠切實滿足創建者的規則意圖。
Tsankov解釋稱,這些審計工具,在過去一年中才剛剛出現,這使得智慧合約創建者,得以提前消除諸多「低級」錯誤。然而,整個審計過程仍然既昂貴又耗時。
康奈爾大學隱形貨幣與合約,倡議研究員Philip Daian表示,行業也可以嘗試使用額外的智慧合約,以建立針對區塊鏈項目的「bug賞金計劃」,即鼓勵人們報告缺陷,以換取加密貨幣獎勵。
但確保代碼清潔正確的努力,終究是有上限的。畢竟區塊鏈代表著一類複雜的經濟系統,其取決於人類不可預測的行為,而人總能夠找到新的突破口。
舉例來說,Daian和他的同事,已經展示了攻擊者,能夠如何通過,各類高人氣遊戲的乙太坊智慧合約為自己謀利。
簡而言之,儘管區塊鏈技術長期以來,一直因天然具有安全優勢,而受到人們的歡迎,但在某些條件下,其也可能非常脆弱。有時候這些問題源自攻擊者的惡意計劃,有時候也單純因為軟體,在無意中發生了錯誤。而在其它情況下,這更像是一種灰色區域——即複雜的代碼、區塊鏈經濟學觀,以及人類的貪婪相互雜糅而形成的共同責任。
0 comments:
張貼留言