數字加密貨幣安全淺見
一、 區塊鏈現狀
本質上來說,區塊鏈還處於概念階段,除了數字貨幣以外,基本上沒有能夠大規模落地的應用場景,然而因為其分散式記賬以及去中心化的特點,依舊成為了近年最為火爆的話題之一。
國務院印發《“十三五”國家資訊化規劃》,區塊鏈與大資料、人工智慧、機器深度學習等新技術,成為國家佈局重點。中國人民銀行印發了《中國金融業資訊科技 “十三五” 發展規劃》,明確提出積極推進區塊鏈、人工智慧等新技術應用研究,去年 10 月,工信部發布《中國區塊鏈技術和應用發展白皮書》,這是首個落地的區塊鏈官方指導檔案。
在這樣的背景下,區塊鏈更是成為了許多人投資、創業的首選。根據《2018中國區塊鏈產業白皮書》顯示,截至2018年3月底,我國以區塊鏈業務為主營業務的區塊鏈公司數量已經達到了456家,產業初步形成規模。其中,2017年是近幾年的區塊鏈創業高峰,新成立公司數量達到178家。佔到了以區塊鏈為主營業務的公司數量的近40%。
如此火爆的背景下,安全問題隨之而來。
二、 區塊鏈(數字幣)安全事件
目前的區塊鏈,主要應用的領域還是數字幣,其他領域處於嘗試階段。因此本文的區塊鏈安全約等同於數字幣的安全,以下羅列三個數字幣史上著名的安全事件進行分析。
2.1 Mt.Gox關停事件
2.1.1 事件描述
比特幣交易平臺Mt.Gox曾經幾乎佔據了全球比特幣交易的80%,在2014年遭受黑客攻擊後,該公司承認,平臺上的850,000枚比特幣(當時價值約4.8億美元)已經從其金庫消失了。比特幣丟失後不久,位於東京的MtGox就申請了破產保護,撇下了大量憤怒的投資者並削弱了比特幣的聲譽。
在此間,Mt.Gox曾多次暫停了提現業務,尤其是在2014年2月7日,出現大量的提現無效,引起了比特幣價格的暴跌。隨後MtGox發出公告稱已查明原因,提現交易受到了“偽造交易ID攻擊”,並說明將盡快恢復提現。這次事件的罪魁禍首是由於“比特幣交易的可鍛性(transaction malleability)”引起的,可鍛性體現在“交易ID可被偽造”,而“交易ID可被偽造”的原因是簽名演算法不夠健壯。
2.1.2 安全問題分析
事件中的黑客攻擊,總結起來就是兩方面的攻擊:針對交易所大規模的DDOS攻擊以及所謂的“偽造交易ID攻擊”。
DDOS攻擊為我們所熟悉的攻擊方式,“偽造交易ID攻擊”是指:當交易傳送到比特幣網路中後,網路中的各個結點會根據之前生成的簽名來驗證交易的真實性。由於當時大部分使用的簽名演算法都是基於OpenSSL的ECDSA(橢圓曲線數字簽名),這個簽名演算法的一個問題就是,修改簽名的某個位元組能夠使得簽名依然校驗成功,這樣偽造簽名之後交易依然能成功進行。如果單在比特幣網路中這似乎沒什麼大不了的,頂多可以搗搗亂,但是對於第三方交易系統就不同了,由於交易ID是根據簽名生成的,而偽造之後的簽名會生成一個完全不同的交易ID,第三方交易系統判斷到兩個ID不同便會確定當前交易失敗,而事實上交易已經成功了。這時如果使用者發現提款交易提示失敗,可以再次發起提現交易,第三方交易系統一看之前確實失敗了,那就會再進行一次提款,這時使用者的比特幣錢包裡就會多收到一份比特幣,也就造成了第三方交易平臺資金損失。交易的可鍛性體現在雖然簽名被“鍛造過”(修改偽造),但最終的交易依然有效。
“偽造交易ID攻擊”利用了比特幣網路的特性:發出一個比特幣交易請求後不會立刻返回交易成功與否,所有交易請求是以網狀形式隨機處理的。這其實也是區塊鏈分散式記賬特性的體現。本質上,是屬於加密演算法的問題。
2.2 以太坊The DAO事件
2.2.1 事件描述
2016年6月17日,以太坊最大的智慧合約專案The DAO受到了黑客的攻擊原因是the DAO編寫的智慧合約中有一個splitDAO函式,攻擊者利用此函式的漏洞,不斷從the DAO項⽬的資產池中分離出the DAO資產並轉到黑客自己建立的子DAO。在攻擊發起的三個小時內,導致300多萬以太幣資產被轉出the DAO 資產池,按照當時的以太幣交易價格, 市值近6千萬美元的資產被轉移到了黑客的子DAO裡。The DAO監護人提議社群傳送垃圾交易阻塞以太坊網路,以減緩the DAO資產被分離的出去的速度。隨後Vitalik在以太坊官方部落格釋出文章解釋了被攻擊的細節以及解決方案提議。提議方案為進行一次軟分叉。不會有回滾,不會有任何交易或者區塊被撤銷。
2.2.2 安全問題分析
該事件的攻擊思路很清晰,利用了智慧合約的函式漏洞,進行了“轉賬”操作,從技術角度上來看,這就是一個原始碼問題,然而事件後續的處理方式(軟分叉+硬分叉)以及事件本身背後的定位(根據以太坊的三不不可原則:即,不可偽造、不可虛構、不可纂改),對區塊鏈的應用模式思考、安全的思考、甚至對區塊鏈本身的定位(尤其是去中心化)都帶來了很大的衝擊。
2.3 EOS私鑰被盜事件
2.3.1 事件描述
2018年6月,EOS在被伏爾甘團隊曝了高危漏洞後,又發生了EOS主網上線期間大量EOS私鑰被黑客偷走,原因可能是使用者在複製私鑰的時候造成了資料的洩露;無獨有偶,隨後360安全監測中心發現,該段時間正是“剪貼簿幽靈”木馬非常活躍,該木馬通過不斷監控使用者的剪貼簿內容,判斷是否為虛擬貨幣地址,並且在使用者交易的時候將目標地址修改成自己的地址。
2.3.2 安全問題分析
EOS的漏洞屬於社群漏洞,EOS 超級節點攻擊有幾個入口:1. P2P 埠;2. RPC 埠;3. 惡意智慧合約;4. 伺服器與叢集等其他缺陷;5. 人員安全缺陷。伏爾甘團隊釋出的漏洞,選擇的就是惡意智慧合約攻擊。智慧合約最大的優點是具有無限的靈活性,正因為此也留下了無限的隱患,任何一個小的共識協議的疏忽,都會有機會DDOS整個區塊鏈網路。
而隨後的“剪貼簿幽靈”則選擇攻擊的物件是人,也反映了我們ISC大會的理念:人是安全的尺度。
三、 區塊鏈(數字幣)安全建設思路
案例中的三個事件,都是發生在交易所的安全事件,當神祕的區塊鏈(數字幣)一旦被套上了交易所的實體設施後,安全要做的事情其實並不難思考。
3.1 交易所平臺安全
從Mt.Gox事件當中我們可以看到,其實該交易所一直受到了黑客的DDOS攻擊,雖然說在區塊鏈當中存在著51%這樣的透明化漏洞,然而一旦實體到了網路、交易所,DDOS攻擊依舊是原始而有有效的攻擊方式。
除了支付網站的可用性,網站的安全性也是幣商應該重視的問題。
3.2 智慧合約安全
The DAO事件以及EOS事件幾乎都提到了智慧合約,其本質就是原始碼;然而有別於其他的原始碼,智慧合約的程式碼更關注的是邏輯漏洞,如The DAO事件中的智慧合約,利用了合約的“不嚴謹”,導致黑客可以成功攻擊;如EOS事件中植入的惡意智慧合約,利用了區塊鏈去中心化的特性,進行了惡意操作。因此原始碼的安全問題是智慧合約本質的問題。
3.3 交易過程安全
數字幣作為區塊鏈最好的應用,以商業化交易的模式存在,涉及到交易就想到認證問題。在Mt.Gox事件中,黑客利用的就是數字簽名的漏洞。依照今天的發展模式,在完善簽名演算法的基礎上,我們還可以為各個驗證環節提供多元化的認證方式,以彌補單一簽名的單點故障。
3.4 人的安全
數字幣存在交易的雙方,因為雙方都可能被攻擊,作為交易所,具備一定的能力去思考安全的問題,作為個人,是否也具備同樣的能力呢?顯然答案是否定的,因此,在交易環節中的個人環境安全問題,尤其顯得重要。EOS事件中“剪貼簿幽靈”木馬攻擊的物件不再是交易平臺,而是交易者。所以作為一名交易者,我們需要做好最基本的環境安全保障,防毒軟體不可少。
當然人的安全不僅來自於外部,也同樣來自於內部,因此對於內部人員的操作,也需要進行記錄、稽核。
四、 對於未來的思考
區塊鏈對於大眾人來說,就好比TCP/IP協議,是一個完全看不見摸不著的東西,凌駕於協議之上的,才是我們關注的焦點。區塊鏈著力於解決信任問題,他最大的優勢在於加密演算法、去中心化、分散式記賬。然而隨著時間的流逝,基於區塊鏈的信任面臨了嚴重的考驗。
The DAO事件,最終採用了軟硬分叉的方式進行了資料的回滾,使得以太坊一分為二。這讓我們的認知有些被打破:所謂的去中心化,最終還是存在中心化;所謂的51%攻擊,其實並不一定要從外部發起,也可以從內部發起。該事件也是區塊鏈歷史一次關於信仰的戰爭。
區塊鏈的技術逐步成熟,然而阻止他發展、前行更多的是法律層面、道德層面的問題。《中華人民共和國網路安全法》中提到過三同步原則,在以區塊鏈為基礎的應用尤為艱難,因為面臨更多的不是安全問題,而是人性的問題:一旦發生對交易雙方不利的智慧合約,是否需要回滾?我們可以做大量的避免工作,然而知名如以太坊,依舊不能完全避免此類問題,以太坊的選擇讓我們看到,去中心化終究是很難實現,區塊鏈的信任機制猶如烏托邦,在如今,還是很難實現。
當然,這並不影響區塊鏈技術的前行。我們能在網上、大街上看到各類的區塊鏈廣告:數字幣、基於區塊鏈的企業活動(財務公開)、基於區塊鏈的物流,甚至還能看到蹭熱點有如基於區塊鏈的手遊等,這足以證明區塊鏈的火爆程度。當區塊鏈的防偽溯源、供應鏈管理、分散式記賬、身份認證、共享資料等特性不再侷限於金融行業,當區塊鏈能像大資料一樣不再侷限於高高懸空,而是真真能夠為各行各業當來實際的價值時,區塊鏈的輝煌必將到來。
(本文作者:360企業安全技術專家 黃曦)
宣告:本文來自安全內參,版權歸作者所有。文章內容僅代表作者獨立觀點,不代表安全內參立場,轉載目的在於傳遞更多資訊。如需轉載,請聯絡原作者獲取授權。