在區(qū)塊鏈技術(shù)安全范疇中,既有“傳統(tǒng)”互聯(lián)網(wǎng)世界中面臨的網(wǎng)絡(luò)拒絕服務(wù)攻擊、代碼漏洞等攻擊威脅,也包含區(qū)塊鏈獨有的風(fēng)險點(如智能合約漏洞)。2010年8月15 日,比特幣發(fā)生的代碼漏洞攻擊事件中,有人在比特幣區(qū)塊鏈的第74638塊上發(fā)現(xiàn)了一條讓人驚愕的交易,這筆交易里竟然出現(xiàn)了184,467.440737.09551616 個比特幣,其中各有922億個比特幣被發(fā)送到兩個比特幣地址。這次攻擊的根本原因則是比特幣的驗證機制中存在大整數(shù)溢出漏洞,由于大整數(shù)溢出為負(fù)數(shù),網(wǎng)絡(luò)各個節(jié)點對黑客的交易均驗證通過,導(dǎo)致了比特幣區(qū)塊鏈中憑空出現(xiàn)了大量比特幣。
1. 基礎(chǔ)組件和設(shè)施面臨的安全威脅
基礎(chǔ)組件層利用基礎(chǔ)設(shè)施可以實現(xiàn)區(qū)塊鏈系統(tǒng)網(wǎng)絡(luò)中信息的記錄、驗證和傳播。在基礎(chǔ)組件層之中,區(qū)塊鏈?zhǔn)墙⒃趥鞑C制、驗證機制和存儲機制基礎(chǔ)上的一個分布式系統(tǒng),整個網(wǎng)絡(luò)沒有中心化的硬件或管理機構(gòu),任何節(jié)點都有機會參與總賬的記錄和驗證,將計算結(jié)果廣播發(fā)送給其他節(jié)點,且任一節(jié)點的損壞或者退出都不會影響整個系統(tǒng)的運作。其對應(yīng)的安全風(fēng)險包括網(wǎng)絡(luò)安全問題、密碼學(xué)安全問題和數(shù)據(jù)存儲安全問題。其中的數(shù)據(jù)存儲安全問題涉及內(nèi)容安全層面,面臨有害信息上鏈以及資源濫用等風(fēng)險,限于篇幅,具體內(nèi)容不展開介紹。
1.1 密碼學(xué)安全威脅分析
區(qū)塊鏈技術(shù)本身采用了密碼學(xué)的很多機制,例如非對稱加密、哈希算法等,這些密碼學(xué)算法目前來講是相對安全的。隨著數(shù)學(xué)、密碼學(xué)和計算技術(shù)的發(fā)展,尤其是人工智能和量子計算的興起,這些算法面臨著被破解的可能性。同時,這些密碼算法需要編程實現(xiàn),在代碼實現(xiàn)方面也可能存在缺陷和漏洞。
ECC、RSA、 哈希等復(fù)雜加密算法本身以及在算法的工程實現(xiàn)過程中都可能存在后門和安全漏洞,進而危及整個區(qū)塊鏈驗證機制的安全性。具有超級計算能力量子計算機的出現(xiàn)也在對密碼學(xué)構(gòu)成潛在威脅,隨著量子計算技術(shù)的飛速發(fā)展,大量子比特數(shù)的量子計算機、量子芯片、量子計算服務(wù)系統(tǒng)等相繼問世,可在秒級時間內(nèi)破解非對稱密碼算法中的大數(shù)因子分解問題(其破解擁有1024位密鑰的RSA算法只需數(shù)秒),這正在成為威脅區(qū)塊鏈數(shù)據(jù)驗證機制的典型攻擊手段之一。2017年5月,新型數(shù)字加密貨幣IOTA團隊請求MIT研究組審計其軟件及代碼。7月,MIT研究者告知IOTA團隊,他們發(fā)現(xiàn)了IOTA的加密哈希功能函數(shù)Curl中存在嚴(yán)重的漏洞(哈希碰撞),因此IOTA的數(shù)字簽名及PoW安全性均無法保障。8月,IOTA 團隊采用SHA-3替代掉了備受質(zhì)疑的Curl哈希算法。
移動數(shù)字錢包等區(qū)塊鏈客戶端軟件的安全實現(xiàn)涉及公私鑰的使用,而通常情況下用戶都是使用軟件來生成公私鑰,其中私鑰的安全性會直接涉及到用戶錢包或資產(chǎn)的安全問題,如果在不安全的環(huán)境中運行私鑰,會增加私鑰的泄露風(fēng)險給用戶帶來不可預(yù)知的損失。目前,針對區(qū)塊鏈客戶端軟件進行攻擊的方法基本相同:一種方法是通過竊取憑據(jù)來尋求獲得系統(tǒng)未經(jīng)授權(quán)的訪問權(quán)限;另外一種方法則是通過捕獲信息、植入惡意軟件和/或使用社會工程實現(xiàn)對用戶機器中私鑰的竊 取。2017年,以太坊瀏覽器Mist爆出“高危”漏洞,漏洞來源于底層軟件框架Electron, 這個漏洞讓加密數(shù)字貨幣私鑰處于未知風(fēng)險。一再發(fā)生的區(qū)塊鏈密鑰被盜攻擊事件已經(jīng)表明,一些程序正在生成弱密鑰,產(chǎn)生有限范圍的可能值,而通過這些有限的隨機數(shù)生成器生成的密鑰可以更容易地被蠻力攻擊。
1.2 P2P網(wǎng)絡(luò)安全威脅
區(qū)塊鏈系統(tǒng)以P2P網(wǎng)絡(luò)為基礎(chǔ),針對P2P網(wǎng)絡(luò),攻擊者可以發(fā)動Eclipse日食攻擊、分割攻擊、延遲攻擊、竊聽攻擊、DDoS拒絕服務(wù)攻擊,進而造成整個區(qū)塊鏈系統(tǒng)的安全問題。
在區(qū)塊鏈P2P網(wǎng)絡(luò)中通常采用廣播機制來傳播節(jié)點信息,而廣播機制中常見的攻擊方式則主要有雙花攻擊和交易延展性攻擊兩種。
1)日食攻擊
日食攻擊是通過其他節(jié)點實施的網(wǎng)絡(luò)層面攻擊,其攻擊手段是囤積和霸占受害者的點對點連接間隙,將該節(jié)點保留在一個隔離的網(wǎng)絡(luò)中。這種類型的攻擊旨在阻止最新的區(qū)塊鏈信息進入到被攻擊的節(jié)點,從而隔離節(jié)點。
比特幣和以太坊網(wǎng)絡(luò)已被證實均能被實施日食攻擊。針對比特幣網(wǎng)絡(luò),攻擊者會先控制足夠數(shù)量的IP地址來壟斷所有受害節(jié)點之間的有效連接,之后攻擊者則會征用受害者的挖掘能力,并用它來攻擊區(qū)塊鏈的一致性算法或用于“重復(fù)支付和私自挖礦”。而針對以太坊網(wǎng)絡(luò),攻擊者會壟斷受害節(jié)點所有的輸入和輸出連接,將受害節(jié)點與網(wǎng)絡(luò)中其他正常節(jié)點隔離開來,進而攻擊者會誘騙受害者查看不正確的以太網(wǎng)交易細(xì)節(jié),誘騙賣家在交易其實還沒有完成的情況下將物品交給攻擊者。對比特幣網(wǎng)絡(luò)上的節(jié)點實施日食攻擊需要成千上萬個惡意節(jié)點才能搞垮一個受害者的節(jié)點,而在以太坊網(wǎng)絡(luò)上,攻擊者只需通過建立一個僵尸網(wǎng)絡(luò)(如購買云服務(wù))就可以發(fā)起攻擊。論文《Low-Resource Eclipse Attacks on Ethereum‘ s Peer- to-Peer Network》指出:攻擊者只需要兩個惡意的以太坊節(jié)點就能隔離和影響另一個節(jié)點進行日食攻擊,因此對以太坊網(wǎng)絡(luò)實施日食攻擊的成本較低。
2)分割攻擊
邊界網(wǎng)關(guān)協(xié)議(BGP)是因特網(wǎng)的關(guān)鍵組成部分,其主要用于確定路由路徑,而通過劫持BGP可以實現(xiàn)對基于物聯(lián)網(wǎng)信息傳遞的區(qū)塊鏈節(jié)點流量的誤導(dǎo)和攔截。利用BGP操縱因特網(wǎng)路由路徑,在最近幾年中已經(jīng)變得越來越頻繁。網(wǎng)絡(luò)犯罪分子可以利用劫持BGP誤導(dǎo)和攔截流量,一旦區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點的流量被接管,會對整個網(wǎng)絡(luò)造成巨大影響,如破壞共識機制、交易等各種信息。
攻擊者可以利用BGP劫持將區(qū)塊鏈網(wǎng)絡(luò)劃分成兩個或多個無法通信的獨立不相交網(wǎng)絡(luò),此時的區(qū)塊鏈分叉為兩條或多條并行鏈。攻擊停止后,區(qū)塊鏈會重新統(tǒng)一為一條鏈,以最長的鏈為主鏈,其他的鏈將被廢棄,被廢棄的鏈上的交易、獎勵將全部無效,從而導(dǎo)致雙重花費甚至是多次花費問題的出現(xiàn)。
3)延遲攻擊
攻擊者可以利用BGP劫持來延遲目標(biāo)的區(qū)塊更新,而且不被發(fā)現(xiàn)。在目標(biāo)請求獲取最新區(qū)塊的時候,攻擊者可以基于中間人攻擊修改目標(biāo)請求為獲取舊區(qū)塊的請求,使得目標(biāo)獲得較舊的區(qū)塊。例如在挖礦過程中如果遭遇了延遲攻擊,礦工獲取最新塊的請求被惡意修改使其無法獲取到新區(qū)塊,這將導(dǎo)致礦工的算力無辜受損。
4) DDoS攻擊
區(qū)塊鏈網(wǎng)絡(luò)中具有數(shù)以百萬計的在線用戶數(shù),區(qū)塊鏈節(jié)點會提供大量的分布式存儲和網(wǎng)絡(luò)帶寬可用資源服務(wù)于百萬在線用戶。攻擊者只需在層疊網(wǎng)絡(luò)(應(yīng)用層)中控制這些節(jié)點資源,而無需入侵區(qū)塊鏈網(wǎng)絡(luò)節(jié)點所運行的主機,即可利用這些資源作為一個發(fā)起大型DDoS攻擊的放大平臺。理論而言,將區(qū)塊鏈網(wǎng)絡(luò)作為DDoS攻擊引擎時,假如該網(wǎng)絡(luò)中有一百萬個在線用戶,則可使得攻擊放大一百萬倍甚至更多。
2017年2月份,以太坊Ropsten測試鏈遭到惡意攻擊,攻擊者發(fā)動了千萬級別的垃圾交易信息,直接阻塞了網(wǎng)絡(luò)的正常運行。
2018年3月22日,閃電網(wǎng)絡(luò)節(jié)點遭受DDoS攻擊,導(dǎo)致大約200個節(jié)點被迫離線,其在線節(jié)點從大約1,050 個降到了870個。
根據(jù)攻擊方式的不同,基于區(qū)塊鏈的DDoS攻擊可分為主動攻擊和被動攻擊兩種。基于區(qū)塊鏈的主動DDoS攻擊是通過主動向網(wǎng)絡(luò)節(jié)點發(fā)送大量虛假信息,使得針對這些信息的后續(xù)訪問都指向受害者來達到攻擊效果,其具有可控性較強、放大倍數(shù)高等特點。這種攻擊利用了區(qū)塊鏈網(wǎng)絡(luò)協(xié)議中的“推(push)” 機制,反射節(jié)點在短時間內(nèi)接收到大量通知信息后不易于分析和記錄,攻擊者還可以通過假冒源地址來躲避IP檢查,使得追蹤定位攻擊源更加困難。此外,主動攻擊在區(qū)塊鏈網(wǎng)絡(luò)中引入額外流量,會降低區(qū)塊鏈網(wǎng)絡(luò)的查找和路由性能,而虛假的索引信息則會影響文件下載速度。基于區(qū)塊鏈的被動DDoS攻擊是通過修改區(qū)塊鏈客戶端或者服務(wù)器軟件,被動等待來自其它節(jié)點的查詢請求,再通過返回虛假響應(yīng)實現(xiàn)攻擊效果。通常情況下,其會采取一些放大措施來增強攻擊效果,如:部署多個攻擊節(jié)點、在一個響應(yīng)消息中多次包含目標(biāo)主機、結(jié)合其它協(xié)議或者實現(xiàn)漏洞等。這種攻擊利用了區(qū)塊鏈網(wǎng)絡(luò)協(xié)議中的“取(pul)”機制。被動攻擊屬于非侵?jǐn)_式,對區(qū)塊鏈網(wǎng)絡(luò)流量影響不大,通常只是針對局部的區(qū)塊鏈節(jié)點。
5) 交易延展性攻擊
區(qū)塊鏈節(jié)點與節(jié)點互相連接,當(dāng)某節(jié)點接入到區(qū)塊鏈網(wǎng)絡(luò)后,單個節(jié)點會與其他節(jié)點建立連接并擁有廣播信息的資格,這些具備廣播信息資格的節(jié)點在將信息傳播給其他節(jié)點后,其他節(jié)點會驗證此信息是否為有效信息,確認(rèn)無誤后再繼續(xù)向其他節(jié)點廣^播,這種廣播機制會面臨如交易延展性攻擊等風(fēng)險攻擊者通過偵聽P2P網(wǎng)絡(luò)中的交易,利用交易簽名算法特征修改原交易中的input簽名,生成擁有一樣input和output的新交易,廣播到網(wǎng)絡(luò)中形成雙花,這樣原來的交易就可能有一定概率不被確認(rèn),在虛擬貨幣交易的情況下,它可以被用來進行二次存款或雙重提現(xiàn)。
2013年11月,GHashio 礦池對賭博網(wǎng)站BetCoin Dice進行多次付款欺詐,進行雙花攻擊。
2014年8月,在線黑市Silk Road2遭遇交易延展性攻擊,部分比特幣被盜,損失約260萬美元。
2. 系統(tǒng)核心設(shè)計安全威脅
智能合約作為區(qū)塊鏈2.0區(qū)別于1.0的顯著特性,正在被廣泛使用。數(shù)據(jù)層和共識層作為區(qū)塊鏈系統(tǒng)的必要元素,與合約層一起共同構(gòu)成了區(qū)塊鏈系統(tǒng)的核心,銜接著基礎(chǔ)服務(wù)與應(yīng)用生態(tài)。
2.1 共識層安全威脅
由于區(qū)塊鏈去中心化的特點,每一個處于區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點都擁有一份完整的賬本數(shù)據(jù),并且由網(wǎng)絡(luò)中的共識機制執(zhí)行相應(yīng)的共識算法來共同記錄整個網(wǎng)絡(luò)中的交易等相關(guān)信息。目前的共識機制有PoW、PoS、 DPoS、 Pool 驗證池機制、PBFT等,其主要面臨的攻擊有女巫攻擊、51%攻擊、長距離攻擊、短距離攻擊、幣齡累計攻擊、預(yù)計算攻擊。PoW、PoS、 DPoS這三種常見共識機制所面臨的攻擊方式如表2-1所示。
1) 51%攻擊
在PoW算法中被證明存在51%算力攻擊威脅,即如果某一個節(jié)點或者由部分節(jié)點組成的組織掌握了全網(wǎng)超過51%的算力,這些節(jié)點就有能力將目前正在工作的區(qū)塊鏈轉(zhuǎn)移到另一-條包含有惡意行為的區(qū)塊鏈上,并使得全網(wǎng)節(jié)點在這條惡意的區(qū)塊鏈上繼續(xù)工作。
如果攻擊者能夠控制全網(wǎng)算力的一半以上,攻擊者可以比網(wǎng)絡(luò)的其他部分更快地生成塊,隨著攻擊者堅持自己的私有分支,直到它比誠實節(jié)點網(wǎng)絡(luò)建立的分支更長,將可以使得全網(wǎng)節(jié)點在這條惡意的區(qū)塊鏈上繼續(xù)工作,近而代替主鏈。
由于比特幣所使用的PoW算法的安全性依賴于其所消耗的巨大算力,51%算力攻擊曾一度被認(rèn)為是難以達到的。然而隨著礦池的出現(xiàn),一個名為GHash的礦池就曾經(jīng)在2014年6月?lián)碛腥W(wǎng)51%的算力,因此,51%算力攻擊的威脅始終存在,并且有可能發(fā)生。2016年8月份,基于以太坊的數(shù)字貨幣Krypton 遭受來自一個名為“51%Crew“的組織通過租用Nicehash算力所發(fā)起的51%攻擊,導(dǎo)致該區(qū)塊鏈損失約21,465KR的代幣。據(jù)Crypto51.app數(shù)據(jù)統(tǒng)計,想完成對比特幣一個小時的51%算力攻擊的成本大概要55萬美金,完成對以太坊的攻擊需要36萬美金,萊特幣需要6.4萬美金,比特幣現(xiàn)金需要7.2萬美金,最近剛被攻擊過的BitcoinGold比特幣黃金只需要三千八百六十美金就能完成51%攻擊,在統(tǒng)計的流通性比較高的數(shù)字貨幣里攻擊成本最低的就是Bytecoin, 要完成攻擊僅僅需要五百五十七美金。而實際上,隨著挖礦業(yè)務(wù)的發(fā)展,現(xiàn)在通過網(wǎng)絡(luò)租賃算力的業(yè)務(wù)也越來越成熟了,攻擊者不再需要花費大量成本去購買礦機,只需要在攻擊的時候即時從網(wǎng)上租賃算力來發(fā)動51%攻擊,利用51%算力攻擊一個數(shù)字貨幣的成本在越來越低。
2)女巫攻擊
女巫攻擊又稱Sybil攻擊,攻擊者通過創(chuàng)建大量的假名標(biāo)識來破壞對等網(wǎng)絡(luò)的信譽系統(tǒng),使用它們獲得不成比例的大的影響。為了應(yīng)對這種威脅,對等網(wǎng)絡(luò)中的實體為了冗余機制、資源共享、可靠性和完整性而使用多個標(biāo)識。多個標(biāo)識可以對應(yīng)于單個實體,身份到實體的映射是多對一的。對等網(wǎng)絡(luò)上的實體是能夠訪問本地資源的一塊軟件,實體通過呈現(xiàn)身份在網(wǎng)絡(luò)上通告自身。在對等網(wǎng)絡(luò)中,身份抽象化使得遠(yuǎn)程實體可以知道身份而不必知道身份與本地實體的對應(yīng)關(guān)系。默認(rèn)情況下,通常假定每個不同的標(biāo)識對應(yīng)于不同的本地實體。實際上,許多身份可以對應(yīng)于相同的本地實體。攻擊者可以向?qū)Φ染W(wǎng)絡(luò)呈現(xiàn)多個身份,以便出現(xiàn)并充當(dāng)多個不同的節(jié)點。因此,攻擊者可能能夠獲得對網(wǎng)絡(luò)的不成比例的控制水平,例如影響投票結(jié)果。
3)短距離攻擊
攻擊者通過控制一定比例、保障系統(tǒng)安全性的計算資源、加密貨幣資源等各種資源,實現(xiàn)在執(zhí)行花費代幣或執(zhí)行智能合約等操作時將 其回滾,從而進行雙花攻擊,即一個加密貨幣進行兩次花費。
當(dāng)攻擊者發(fā)起短距離攻擊時,首先會向全網(wǎng)提交一個待回滾的交易,并在上一個區(qū)塊的分叉上(不包含待回滾交易的分叉)繼續(xù)進行挖礦,直到該交易得到n個區(qū)塊確認(rèn)信息。若分叉上的區(qū)塊數(shù)多于n,則攻擊者公布包含有待回滾交易的區(qū)塊。這樣,由于分叉鏈的長度大于原本的主鏈,則全網(wǎng)節(jié)點將分叉鏈視為主鏈,此時,交易得到回滾。
4) 長距離攻擊
攻擊者通過控制一定比例的系統(tǒng)資源,在歷史區(qū)塊、甚至是創(chuàng)世區(qū)塊上對區(qū)塊鏈主鏈進行分叉,旨在獲取更多的區(qū)塊獎勵和/或者達到回滾交易的目的。這種攻擊更多的是針對基于權(quán)益證明共識機制的系統(tǒng)。即使攻擊者可能在分叉出現(xiàn)時僅持有一小部分的代幣,但他可以在分叉上自由地進行代幣交易,從而導(dǎo)致攻擊者能夠更加容易地進行造幣并快速形成一條更長的區(qū)塊鏈。
5) 幣齡累積攻擊
基于PoS共識機制的系統(tǒng)中,攻擊者可以利用幣齡計算節(jié)點權(quán)益,并通過總消耗的幣齡確定有效的區(qū)塊鏈。未花費交易輸出(UTXO)的幣齡是根據(jù)幣齡乘以該區(qū)塊之前的歷史區(qū)塊的數(shù)量得出(比如點點幣)。在幣齡累計攻擊中,攻擊者將其持有的代幣分散至不同的UTXO中,并等待直至其所占權(quán)益遠(yuǎn)大于節(jié)點平均值。這樣,攻擊者有極大的可能性連續(xù)進行造幣,從而達到對主鏈的分叉或交易回滾(如實施雙花攻擊)的目的。
6)預(yù)計算攻擊
在PoS共識機制中,解密當(dāng)前區(qū)塊取決于前一個區(qū)塊的哈希值。擁有足夠算力和權(quán)益的攻擊者可以在第n個區(qū)塊的虛擬挖礦過程中,通過隨機試錯法對該區(qū)塊的哈希值進行干涉,直至攻擊者可以對第n+1個區(qū)塊進行挖礦,從而,攻擊者可以連續(xù)進行造幣,并獲取相對應(yīng)的區(qū)塊獎勵或者發(fā)起雙花攻擊。
2.2 合約層安全威脅
智能合約是區(qū)塊鏈2.0的一個特性,隨著區(qū)塊鏈2.0技術(shù)的不斷推進,智能合約在以太坊、EOS、 Hyperledge 等平臺上得到廣泛應(yīng)用。區(qū)塊鏈的智能合約一般都用來控制資金流轉(zhuǎn),應(yīng)用在貿(mào)易結(jié)算、數(shù)字,資產(chǎn)交易、票據(jù)交易等場景中,其漏洞的嚴(yán)重性遠(yuǎn)高于普通的軟件程序。由于智能合約會部署在公鏈暴露于開放網(wǎng)絡(luò)中,容易被黑客獲得,成為黑客的金礦和攻擊目標(biāo),一旦出現(xiàn)漏洞,將直接導(dǎo)致經(jīng)濟損失。從TheDAO到BEC和SMT的整數(shù)溢出漏洞、再到EOS緩沖區(qū)溢出越界寫漏洞,智能合約的安全漏洞頻發(fā),“智能合約”已經(jīng)成為區(qū)塊鏈安全的重災(zāi)區(qū)。
以太坊( Ethereum)是目前最熱門的具有智能合約功能的開源公共區(qū)塊鏈平臺,區(qū)塊鏈上的所有用戶都可以看到基于區(qū)塊鏈的智能合約。但是,這會導(dǎo)致包括安全漏洞在內(nèi)的所有漏洞都可見。如果智能合約開發(fā)者疏忽或者測試不充分,而造成智能合約代碼存在眾多漏洞,就非常容易被黑客利用并攻擊。并且功能越強大的智能合約,邏輯越復(fù)雜,也越容易出現(xiàn)邏輯上的漏洞。來自新加坡國立大學(xué)、耶魯新加坡國立大學(xué)學(xué)院和倫敦大學(xué)學(xué)院的一組研究人員發(fā)布了一份報告,聲稱已經(jīng)發(fā)現(xiàn)了3.4萬多份以太坊智能合約可能存在容易被攻擊的漏洞,其中大約3000個不安全的智能合約可能會造成600萬美元的ETH被盜。表2-2列出了以太坊的合約層漏洞。
2.3 數(shù)據(jù)層安全威脅
區(qū)塊鏈數(shù)據(jù)具有不可篡改、去中心化生成和確認(rèn)的特點,這也就造成了區(qū)塊鏈數(shù)據(jù)的難以監(jiān)管,使之可被利用進行惡意攻擊和惡意內(nèi)容傳播。
2017年在EuskalHack安全會議上,有安全研究者提出了基于區(qū)塊鏈模式的botnet網(wǎng)絡(luò),利用區(qū)塊鏈網(wǎng)絡(luò)進行C&C的惡意指令發(fā)布并且提供了POC。
2018年3月德國RWTH亞琛工業(yè)大學(xué)的研究人員發(fā)現(xiàn)了比特幣區(qū)塊鏈中的非財務(wù)數(shù)據(jù),其中包括色情內(nèi)容等。幸運的是,亞琛工業(yè)大學(xué)的研究人員沒有發(fā)現(xiàn)任何惡意軟件保存在比特幣區(qū)塊鏈上。在他們的論文中,研究人員指出了你可以通過多種方式在加密貨幣的區(qū)塊鏈上插入內(nèi)容,其中包括CryrtoGrafiti、Satoshi Uploader和Apertus等服務(wù)。但另一方面,如果不能開發(fā)出解決方案來移除區(qū)塊鏈當(dāng)中的色情內(nèi)容,那添加的數(shù)據(jù)就永遠(yuǎn)無法管理,并且無法被清除。
目前比特幣、以太坊和Hyperledger Fabric都采用全網(wǎng)節(jié)點共享一條區(qū)塊鏈的單鏈方案,網(wǎng)絡(luò)上的每個節(jié)點需要處理、存儲全網(wǎng)的所有交易和全部數(shù)據(jù),整個區(qū)塊鏈系統(tǒng)的處理能力實際上受限于單個計算節(jié)點的處理能力。另外,受到共識算法的影響,隨著節(jié)點數(shù)的增加,系統(tǒng)整體處理能力不但未隨之提升,甚至還會降低。
區(qū)塊鏈對于網(wǎng)絡(luò)中的節(jié)點來說是透明的,任何一個節(jié)點都可以獲取區(qū)塊鏈上的所有信息。雖然比特幣使用隨機數(shù)和非對稱加密算法生成唯一地址作為用戶的地址進行交易,但是如果這些地址直接或間接地與真實世界發(fā)生了聯(lián)系,就會失去其匿名性,從而泄露其個人隱私。另外,不同的地址之間如果出現(xiàn)穩(wěn)定的關(guān)聯(lián)交易,通過分析交易規(guī)律,甚至能夠推測出用戶的身份信息和位置信息。如果交易節(jié)點被攻擊,攻擊者不僅可獲得用戶的交易信息,而且很容易借此為跳板破壞整個交易鏈。
3. 應(yīng)用生態(tài)安全威脅
區(qū)塊鏈的應(yīng)用已從數(shù)字貨幣的虛擬世界走向了與現(xiàn)實世界相對接的實際應(yīng)用場景中,其應(yīng)用生態(tài)安全涉及數(shù)字貨幣交易平臺、區(qū)塊鏈移動數(shù)字錢包App、網(wǎng)站、DApp等。
和傳統(tǒng)金融機構(gòu)差別不大,數(shù)字貨幣交易所整個信息系統(tǒng)由Web服務(wù)器、后端數(shù)據(jù)庫等元素構(gòu)成,用戶通過瀏覽器、移動端App以及交易所提供的API等多種方式作為客戶端訪問服務(wù)器。美國數(shù)字貨幣安全公司CipherTrace發(fā)布的二季度觀察報告顯示,2018年前6個月,全球數(shù)字貨幣交易所共有價值7.61億美元的數(shù)字貨幣被黑客竊取。而整個2017年的損失金額也不過2.66億美元。2018年上半年以來,被盜取的數(shù)字貨幣金額已經(jīng)達到了2017年的3倍之多。結(jié)合各大交易所出現(xiàn)的攻擊事件發(fā)現(xiàn),這部分面臨的安全威脅主要包括:服務(wù)器軟件漏洞、配置不當(dāng)、DDoS攻擊、服務(wù)端Web程序漏洞(包括技術(shù)性漏洞和業(yè)務(wù)邏輯缺陷)。
本部分重點介紹網(wǎng)站和移動數(shù)字錢包App面臨的威脅。
3.1交易網(wǎng)站面臨的安全威脅
和其他網(wǎng)站一樣,交易網(wǎng)站面臨賬戶泄露、DDoS、Web注入等攻擊,對于規(guī)模較大,用戶較多的交易所,還會面臨用戶被攻擊者利用仿冒的釣魚網(wǎng)站騙取認(rèn)證信息等威脅。
1)賬戶泄露攻擊事件
黑客可利用病毒、木馬、釣魚等傳統(tǒng)攻擊手段竊取用戶賬號,進而利用合法用戶賬號登錄系統(tǒng)進行一系列非法操作,或者通過非法手段拿到交易所系統(tǒng)的數(shù)據(jù)庫,由于數(shù)據(jù)庫存儲著用戶的注冊信息,且這些數(shù)據(jù)沒有加密,黑客拿到這些數(shù)據(jù)后可以在互聯(lián)網(wǎng)上售賣或者對平臺進行惡意操作。攻擊者破解其他安全措施較弱的網(wǎng)站密碼,通過撞庫的方式獲得登錄口令,因此采用雙因子認(rèn)證等傳統(tǒng)安全用戶認(rèn)證方式對于數(shù)字貨幣交易所和區(qū)塊鏈應(yīng)用系統(tǒng)來說非常必要。
2017年10月2日,OKCoin旗下交易所出現(xiàn)大量賬戶被盜情況,不完全統(tǒng)計損失金額在1000萬人民幣左右,用戶懷疑平臺已被攻擊, 或有已被關(guān)閉平臺的交易所員工向黑客泄漏了平臺用戶的賬戶信息,黑客通過用戶信息破解賬戶密碼登錄平臺,然后在平臺上完成數(shù)字資產(chǎn)轉(zhuǎn)移。
2) Web注入攻擊件
攻擊者可以采用SQL注入、XSS跨站腳本攻擊等方式對Web進行注入攻擊,SQL注入是把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務(wù)器執(zhí)行惡意的SQL命令。XSS跨站腳本攻擊指攻擊者在網(wǎng)頁中嵌入客戶端腳本(例如IJavaScript),當(dāng)用戶瀏覽此網(wǎng)頁時,腳本就會在用戶的瀏覽器上執(zhí)行,從而達到攻擊者的目的,比如獲取用戶的Cookie, 導(dǎo)航到惡意網(wǎng)站,攜帶木馬等。
2017年8月份,一款名為Ti ickbot的木馬就針對包括Coinbase在內(nèi)的幾家數(shù)字貨幣交易所增加了Web注入攻擊功能,在受害者購買數(shù)字貨幣的時候和會將接收錢包重定向到攻擊者的錢包,讓用戶誤以為轉(zhuǎn)賬成功,實際上是給攻擊者轉(zhuǎn)賬了。
3) DDoS攻擊
在區(qū)塊鏈應(yīng)用中,攻擊者可針對區(qū)塊鏈應(yīng)用層和底層協(xié)議缺陷發(fā)起針對性的DDoS攻擊,影響各類應(yīng)用業(yè)務(wù)的可用性。2017年5月12日,Poloniex交易平臺遭受了嚴(yán)重的DDoS攻擊,BTC/USDT的交易價格一度困于1761美元,絕大多數(shù)用戶都無法執(zhí)行訂單或是提取資金。根據(jù)云計算安全服務(wù)提供商Incapsula發(fā)布的2017年第四季度DDoS威脅報告,應(yīng)用層DDoS攻擊數(shù)量較前一季度成倍增長,且針對加密貨幣行業(yè)的攻擊數(shù)量持續(xù)增長,占所有攻擊數(shù)量的3.7%。
4)釣魚網(wǎng)頁攻擊
2017年4月14日,在約翰霍普金斯大學(xué)研究數(shù)學(xué)的學(xué)生xudongzheng發(fā)表了一篇論文, 題目是《Phishing with Unicode Domains》,中文大意為“用unicode網(wǎng)址釣魚”,文章中給出的一一種釣魚 方法會使用多語言字符混合來騙過用戶眼睛。
2018年3月7日,知名數(shù)字貨幣交易平臺幣安遭到黑客攻擊,此次攻擊造成全球數(shù)字幣價格大跌。根據(jù)交易所的公告,攻擊者利用釣魚欺騙的方式騙取了部分用戶的認(rèn)證憑證,在掌握用戶的賬戶權(quán)限之后,使用機器掛單,繼而利用API發(fā)起大量交易,進行程序化高頻交易,給用戶帶來巨大損失。
3.2 數(shù)字貨幣錢包App面臨的威脅
利用移動數(shù)字貨幣錢包App管理數(shù)字貨幣資產(chǎn),可以隨時查詢錢包歷史,獲得全球?qū)崟r交易行情。數(shù)字貨幣錢包App中保存的私鑰是區(qū)塊鏈節(jié)點和數(shù)字貨幣賬戶授權(quán)活動的直接手段,加密數(shù)字貨幣資產(chǎn)的安全性建立在加密數(shù)字錢包私鑰本身的安全性上,私鑰是唯一的數(shù)字資產(chǎn)憑證,敵手一旦拿到私鑰,就可以拿到私鑰所擔(dān)保的任何錢包,因此黑客會想方設(shè)法竊取私鑰。移動數(shù)字貨幣錢包App與其他App一樣,會遭受破解、內(nèi)存篡改攻擊等。
1)私鑰竊取
Google Play 商店中超過2000款移動數(shù)字貨幣錢包App,由于移動開發(fā)過程中缺乏對安全性的認(rèn)識,前30款總安裝量達到10萬的數(shù)字貨幣錢包App中,有94%包含至少3個“中等風(fēng)險”漏洞,77%包含至少2個“高風(fēng)險”問題。根據(jù)分析顯示,最常見的漏洞是數(shù)據(jù)存儲安全性不足、密碼系統(tǒng)安全性不足,這些漏洞會導(dǎo)致私鑰的竊取,個人隱私信息泄露等安全事件。
一些數(shù)字貨幣錢包為了便于用戶記住私鑰,使用助記詞的方式,但是部分?jǐn)?shù)字貨幣錢包的助記詞采用明文存儲的方式,一旦數(shù)字貨幣錢包App存在漏洞,拿到系統(tǒng)的root權(quán)限,就可以獲取錢包的助記詞,導(dǎo)致數(shù)字資產(chǎn)隨時被盜取。已有公司對市面上的數(shù)字錢包產(chǎn)品在私鑰存儲問題上進行了安全分析,發(fā)現(xiàn)Bitcoin Wallet 和Jaxx BlockchainWallet兩款產(chǎn)品在私鑰存儲中存在巨大的安全漏洞,加密數(shù)字貨幣資產(chǎn)面臨被盜風(fēng)險。黑客通過嘗試捕獲信息、植入惡意軟件和/或使用社會工程即可從用戶機器中竊取私鑰。
2)破解攻擊
數(shù)字貨幣錢包App涉及到數(shù)字貨幣資產(chǎn),是網(wǎng)絡(luò)黑產(chǎn)和黑客重點關(guān)注的對象,網(wǎng)絡(luò)黑產(chǎn)可以從各種渠道找到App的apk,將apk文件逆向破解后植入病毒、木馬代碼,最后二次打包投入公開市場,當(dāng)不明真相的幣友將帶病毒、木馬的App下載后,會帶來巨大經(jīng)濟損失。
在開發(fā)移動App時,程序員會用到各類的編程語言,如Java、C、C++以及各類腳本語言等都被廣泛大量使用。但Java、 C這樣的中間語言有一個極大的弱點就是極易被反編譯。Java的基本類庫(JDK)是開源的,這就使很多Java開發(fā)的應(yīng)用被逆向破解的門檻很低。目前市面上有大量的逆向破解工具,例如: Dex2Jar、 JEB、JD-GUI 等等。且網(wǎng)上有公開、詳細(xì)的破解教程,只要懂代碼編程,利用這些工具就可以破解市面上那些防御薄弱、存在大量安全漏洞的App。
3) App內(nèi)存篡改攻擊
App應(yīng)用中的高度敏感和關(guān)鍵性信息駐留在一個應(yīng)用內(nèi)存中, 如果未受到保護,則這些信息可以被隨意查看和篡改。黑客通常使用進程調(diào)試、動態(tài)注入、HOOK等技術(shù)來實現(xiàn)對App內(nèi)存的攻擊,這些攻擊方式主要是先對App Code控制,App Data控制進行攻擊修改。通過控制內(nèi)存中的應(yīng)用代碼,可以調(diào)試解析出應(yīng)用內(nèi)邏輯、功能、流程、漏洞等各類關(guān)鍵內(nèi)容。針對發(fā)現(xiàn)的漏洞植入相應(yīng)的后門代碼,以便針對應(yīng)用進一步攻擊對移動應(yīng)用數(shù)據(jù)的攻擊,是黑客/攻擊者的核心內(nèi)容,App內(nèi)存中包含很多重要個人信息和應(yīng)用變現(xiàn)相關(guān)的信息和邏輯。黑客對內(nèi)存中的Data進行控制,以達到篡改App應(yīng)用的目的,如修改轉(zhuǎn)賬金額、賬戶等。
4. 區(qū)塊鏈面臨的安全挑戰(zhàn)
4.1錢包安全管理
區(qū)塊鏈錢包(Block Chain Wallet)是密鑰的管理工具,它只包含i密鑰而不是確切的某一個代幣;錢包中包含成對的私鑰和公鑰,私鑰與用戶的資產(chǎn)直接關(guān)聯(lián),用戶用私鑰來簽名交易,從而證明該用戶擁有交易的輸出權(quán)。獲取了私鑰,就獲得了資產(chǎn)的使用權(quán)和交易權(quán)。黑客復(fù)制或竊取私鑰可能不會在計算機上留下任何痕跡,甚至可以無限地嘗試解密或嘗試從給定的分類帳中復(fù)制加密數(shù)據(jù),惡意用戶訪問錢包可能很難被發(fā)現(xiàn)。
私鑰保護不僅要考慮在黑客機器上發(fā)生的行為,例如不受服務(wù)器強加的查詢限制進行文件解密嘗試或私鑰再現(xiàn),還需要保證在沒有任何其他人能夠注意的情況下保證私鑰運行時的安全。
錢包軟件需要保護私鑰在運行和存儲時的安全,包括未經(jīng)授權(quán)不允許訪問、運行過程防止被監(jiān)控,甚至做到軟件被控制、監(jiān)視也無法獲取私鑰:此外,也需要考忠用戶密鑰被盜、丟失后賬戶資產(chǎn)的安全。因此,如何保證私鑰的運行安全以及在保證資產(chǎn)安全的前提下進行私鑰備份是錢包安全管理面臨的挑戰(zhàn)。
4.2 智能合約安全
由于智能合約的不完善,且還存在著許多漏洞,執(zhí)行起來仍然是一-件具有挑戰(zhàn)性的問題。一旦這些漏洞被黑客利用,就會造成虛擬貨幣的財產(chǎn)外泄,被不法分子盜取。在智能合約中采用全同態(tài)加密技術(shù),可保證區(qū)塊鏈中數(shù)據(jù)的隱私和數(shù)據(jù)在不可信環(huán)境下運算的正確性,但全同態(tài)加密技術(shù)距離實際應(yīng)用還存在一定的距離。
智能合約本質(zhì)上是一段運行在區(qū)塊鏈網(wǎng)絡(luò)中的代碼,它界定了各方使用合約的條件,在滿足合約條件下某些機器指令被執(zhí)行。而代碼在設(shè)計和開發(fā)過程中,不可避免出現(xiàn)漏洞。開源代碼大約每1000 行就含有一個安全漏洞,表現(xiàn)最好的Linux kermel 2.6版本的安全漏洞率為每一千行代碼0.127個。安全智能合約的開發(fā)對程序員本身是一個挑戰(zhàn)。智能合約作為新生事物,熟悉智能合約的開發(fā)人員不多,受限于程序員的安全意識和代碼編寫能力,可能在開發(fā)時無法意識到自己造成了安全隱患,極有可能給智能合約帶來相當(dāng)大程度的安全風(fēng)險,智能合約的代碼可靠性難以保證。
此外,智能合約還是多方業(yè)務(wù)的交互規(guī)則,智能合約的安全不僅要考忠代碼編寫時防止整數(shù)溢出等漏洞,且需要先進行智能合約協(xié)議安全性分析,防止業(yè)務(wù)邏輯漏洞的出現(xiàn)。如何保證智能合約的安全是區(qū)塊鏈安全面臨的一大挑戰(zhàn)。
4.3 隱私安全
區(qū)塊鏈?zhǔn)且环N分布式賬本,意味著數(shù)據(jù)在網(wǎng)絡(luò)上的所有參與方之間共享。一方面,這會對許多參與節(jié)點鏈的節(jié)點的可用性產(chǎn)生積極影響,使其更加健壯和有彈性。另一方面,可能會對機密性產(chǎn)生負(fù)面影響。
隱私問題主要包括,保護匿名性和區(qū)塊鏈中內(nèi)容的機密性。區(qū)塊鏈最初的設(shè)計具備一定的匿 名性,但隨著技術(shù)的發(fā)展,也出現(xiàn)了一些追蹤技術(shù)。交易追蹤技術(shù)通過追蹤交易在網(wǎng)絡(luò)中的傳播路徑,最終發(fā)現(xiàn)交易的始發(fā)節(jié)點,一旦將交易與始發(fā)節(jié)點的IP地址關(guān)聯(lián),就可以將交易中的匿名賬號和用戶身份關(guān)聯(lián),從而破壞了區(qū)塊鏈的匿名性。該技術(shù)有助于識別惡意交易者的身份信息,分析數(shù)字貨幣的流向增強監(jiān)管,但如果被攻擊者使用則會破壞使用區(qū)塊鏈的公司和組織的業(yè)務(wù)隱秘性,對公司和組織的利益造成損害。
區(qū)塊鏈的隱私安全一方面要 加密交易的內(nèi)容,不能讓人看到另一方面,需要驗證交易的正確性,不能都加密。這兩者本身存在矛盾,也是。隱私保護技術(shù)上的挑戰(zhàn)。一般采用同態(tài)加密、零知識證明等前沿技術(shù)進行隱私保護,這些技術(shù)需要進行一系列的運算,勢必會影響系統(tǒng)性能。隱私保護技術(shù)在保證用戶隱私情況下同時兼顧系統(tǒng)性能,是隱私保護技術(shù)面臨的一大挑戰(zhàn)。
評論
查看更多