區(qū)塊鏈技術(shù)安全概述區(qū)塊鏈
國家互聯(lián)網(wǎng)金融安全技術(shù)專家委員會持續(xù)跟蹤區(qū)塊鏈技術(shù)發(fā)展,對區(qū)塊鏈安全、區(qū)塊鏈+AI、區(qū)塊鏈+供應鏈等領(lǐng)域進行深入調(diào)研,本報告聚焦于“區(qū)塊鏈技術(shù)安全”。
國家互聯(lián)網(wǎng)金融安全技術(shù)專家委員會持續(xù)跟蹤區(qū)塊鏈技術(shù)發(fā)展,對區(qū)塊鏈安全、區(qū)塊鏈+AI、區(qū)塊鏈+供應鏈等領(lǐng)域進行深入調(diào)研,將推出系列報告。本報告聚焦于“區(qū)塊鏈技術(shù)安全”,聯(lián)合上海圳鏈公司共同推出,以期成為行業(yè)發(fā)展的研究依據(jù)。
一、 簡述
區(qū)塊鏈技術(shù)目前的發(fā)展方興未艾,大多的技術(shù)和應用處于試驗階段,目前發(fā)生的安全事件多集中出現(xiàn)于加密資產(chǎn)相關(guān)領(lǐng)域,給用戶造成了較大的經(jīng)濟損失,其安全問題日益受到行業(yè)關(guān)注。
同時區(qū)塊鏈智能合約一旦在分布式、去中心化網(wǎng)絡(luò)中部署,就難以變更,這種難以變更性一方面防止了數(shù)據(jù)操縱,建立起基于加密算法的信任機制。但另一方面,當區(qū)塊鏈在面對安全攻擊時,也就缺乏了有效的糾正機制,難以逆轉(zhuǎn)。
本文主要討論了區(qū)塊鏈的安全性問題,以及相應的解決方案和建議。 本文中,區(qū)塊鏈應用從架構(gòu)上分為三層:基礎(chǔ)網(wǎng)絡(luò)、平臺層和應用層。三個層面相互影響,每一個環(huán)節(jié)出現(xiàn)的安全問題,都將給下個環(huán)節(jié)帶來更多的安全問題。因此,在進行區(qū)塊鏈項目開發(fā)的過程中,從設(shè)計到實現(xiàn),從驗證到響應,不僅僅需要考慮到單個環(huán)節(jié)的安全性問題,也需要將其放入到整體的層面中去判斷可能出現(xiàn)的風險點。
圖1(區(qū)塊鏈應用架構(gòu))
二、基礎(chǔ)網(wǎng)絡(luò)安全風險
基礎(chǔ)網(wǎng)絡(luò)由數(shù)據(jù)層及網(wǎng)絡(luò)層組成,是區(qū)塊鏈的基礎(chǔ)部分,該部分封裝了區(qū)塊鏈的底層數(shù)據(jù),對區(qū)塊鏈的數(shù)據(jù)采用非對稱性加密,利用P2P網(wǎng)絡(luò)并設(shè)置了傳播、驗證機制等,目前主要面臨以下幾類安全問題。
2.1 數(shù)據(jù)層:信息攻擊與加密算法攻擊
(1)數(shù)據(jù)區(qū)塊信息攻擊風險:一方面寫入?yún)^(qū)塊鏈后的信息很難刪除,不法分子將某些有害信息、病毒特征碼、淫穢信息等寫入?yún)^(qū)塊中,影響區(qū)塊鏈生態(tài)環(huán)境。另一方面,大量的垃圾交易數(shù)據(jù)攻擊會堵塞區(qū)塊鏈,使得有效交易和信息遲遲無法被處理。
(2)加密算法安全風險:早年普遍使用的SHA-1于2005年2月被王小云、殷益群及于紅波等人證明安全性不足,只需少于2的69次方的計算復雜度就能找到一組碰撞。此外SHA-2算法跟SHA-1基本相似,雖目前未出現(xiàn)有效攻擊,但安全性已被嚴重質(zhì)疑。其余的SHA-224、SHA-256、SHA-384、SHA-512等加密算法目前沒有公開證據(jù)表明存在漏洞,但在量子計算高速發(fā)展的情況下,并不是無懈可擊。目前針對加密算法進行攻擊的方式主要有:窮舉攻擊、碰撞攻擊、長度擴展攻擊、后門攻擊、量子攻擊等。
2.2 網(wǎng)絡(luò)層:節(jié)點傳播與驗證機制風險
(1)P2P網(wǎng)絡(luò)風險:區(qū)塊鏈信息傳播采用P2P的模式,節(jié)點之間的信息傳播,會將包含自身IP地址的信息發(fā)送給相鄰節(jié)點。由于節(jié)點安全性參差不齊,較差的節(jié)點容易受到攻擊,目前可進行攻擊的方式有:日食攻擊、竊聽攻擊、BGP劫持攻擊、節(jié)點客戶端漏洞、拒絕服務(DDoS)攻擊等。例如:2018年3月以太坊網(wǎng)絡(luò)爆出的“日食攻擊”。
(2)廣播機制風險:節(jié)點與節(jié)點之間相互鏈接,某節(jié)點將信息廣播給其他節(jié)點,這些節(jié)點確認信息后再向更多的節(jié)點進行廣播。在廣播機制中常見的攻擊方式有雙花攻擊及交易延展性攻擊。雙花攻擊即同一筆加密資產(chǎn)被多次花費,當商家接受0確認交易付款時或者通過51%算力攻擊時這種情況較容易發(fā)生。交易延展性攻擊也被稱為可鍛性,即同一個東西,本質(zhì)沒有變化,形狀發(fā)生了改變,攻擊者利用交易簽名算法特征修改原交易input簽名,生成一樣的input和output的新交易,導致原有交易一定概率不被確認形成雙花。
(3)驗證機制風險:驗證機制更新過程易出現(xiàn)驗證繞過,一旦出現(xiàn)問題將導致數(shù)據(jù)混亂,而且會涉及到分叉問題,需要確保機制的嚴謹性。
2.3 解決方案與建議
基礎(chǔ)網(wǎng)絡(luò)作為區(qū)塊鏈的底層,其安全性尤為重要。
(1)與時俱進,關(guān)注技術(shù)安全方面的最新進展。在量子計算快速發(fā)展的情況下,加密系統(tǒng)只有不斷研發(fā)更新才可防范黑客攻擊。
(2)接受專業(yè)的代碼審計,了解相關(guān)安全編碼規(guī)范。大多數(shù)區(qū)塊鏈項目為了增加可信度和透明性,對其項目代碼進行開源管理,然而這樣也使得項目更易受到攻擊,接受專業(yè)的代碼審計及注重安全編碼可以有效規(guī)避潛在的風險。
三、平臺層安全風險
平臺層由共識層、激勵層及合約層組成,是銜接基礎(chǔ)網(wǎng)絡(luò)與應用服務層的橋梁。該部分封裝了網(wǎng)絡(luò)節(jié)點的共識算法、發(fā)行機制、分配機制、腳本及智能合約等。
3.1 共識層:常見共識機制安全性對比
共識機制是對于一個時間窗口內(nèi)的事務先后順序達成共識的算法。區(qū)塊鏈可支持不同的共識機制,目前存有的共識機制有PoW、PoS、DPoS、Pool驗證池機制、BFT等等。本文將介紹以下三種常見的共識機制的安全性:
3.2 激勵層:發(fā)行與分配機制風險
(1)發(fā)行機制風險:目前暫無安全風險事件曝光,但不排除激勵層發(fā)行機制中存在安全隱患。
(2)分配機制風險:大量小算力節(jié)點易集中加入礦池,對于去中心化趨勢造成威脅。
3.3 合約層相關(guān)安全風險
合約層主要封裝區(qū)塊鏈的各類腳本、算法及智能合約。最初區(qū)塊鏈只能用于交易,合約層的出現(xiàn)使得很多領(lǐng)域可以使用區(qū)塊鏈技術(shù)。圖靈完備的代表是以太坊,其合約層包括了以太坊虛擬機和智能合約兩部分。目前合約層可能出現(xiàn)以下攻擊對區(qū)塊鏈的安全造成威脅:Solidity漏洞、逃逸漏洞、短地址漏洞、堆棧溢出漏洞、可重入性攻擊、交易順序依賴攻擊、時間戳依賴攻擊、整數(shù)溢出攻擊等。例如:2017年7月19日在github上出現(xiàn)一個針對VMware虛擬機的逃逸exploit源碼;2016年6月17日,DAO黑客利用重入性漏洞抽走了價值5000萬美金的以太坊;2018年4月22日,黑客利用機制漏洞,轉(zhuǎn)出大量的通證,計算結(jié)果產(chǎn)生溢出,完成通證增發(fā)。BEC無中生有出巨額通證,價值幾乎歸零。
圖2 智能合約運作原理(數(shù)據(jù)來源:百度百科)
3.4 解決方案與建議
(1)目前現(xiàn)有的共識機制均不是完美無缺的,需探求設(shè)計更安全性能更快的共識機制。
(2)智能合約開發(fā)前需要對當下已經(jīng)出現(xiàn)過的漏洞進行防范。
(3)發(fā)布智能合約之前需要充分的進行安全測試。
(4)關(guān)注相關(guān)情報,專業(yè)人員及時進行代碼優(yōu)化。
(5)定期進行代碼審計,包括但不限于:交易安全審查、訪問控制審查等
(6)異常操作監(jiān)控,監(jiān)控已部署合約異常行為,降低損失。
四、應用層安全風險
應用層作為區(qū)塊鏈技術(shù)一個實際的落地場景,也是目前區(qū)塊鏈產(chǎn)業(yè)的所有架構(gòu)中受到安全性事件影響最多也是最頻繁的一個層級。攻擊目標主要集中在與加密資產(chǎn)相關(guān)的領(lǐng)域例如用戶節(jié)點、數(shù)字資產(chǎn)錢包以及交易平臺之中,每一次的安全事件所帶來的實際損失可達千萬至上億美元。
4.1節(jié)點常見安全問題
(1)傀儡網(wǎng)絡(luò)是指惡意軟件開發(fā)者或運營者通過感染受害者的系統(tǒng)和設(shè)備在對方不知情的情況下進行加密資產(chǎn)挖礦行為。
黑客主要通過在例如網(wǎng)頁、游戲輔助程序、系統(tǒng)后臺中安裝木馬程序的方式侵占用戶的算力與電力,并用于采礦以謀求非法收益。美國哈佛大學與國家基金會的超級計算機在此前均受到過類似的攻擊方式,國內(nèi)也常常發(fā)生例如網(wǎng)頁被串改或者應用程序被植入采礦木馬的相關(guān)事件。
在當下采礦需要大量的計算能力的前提下,單一設(shè)備的算力已經(jīng)無法滿足采礦所需要的算力。于是攻擊者擴大了攻擊目標設(shè)備的范疇,尤其是易受到攻擊的物聯(lián)網(wǎng)設(shè)備成為了主要目標,這也形成更大規(guī)模的傀儡網(wǎng)絡(luò)采礦,目前主要的感染對象包括數(shù)字視頻攝像機、路由器、監(jiān)控攝像頭、打印服務器、游戲機等。常見的攻擊方式有:
跨站腳本
Microsoft中遠程執(zhí)行代碼的漏洞利用
命令緩沖區(qū)溢出漏洞利用
SQL注入
BlackNurse拒絕服務攻擊
(2)解決方案或建議
這些惡意軟件可能會威脅系統(tǒng)的可用性、完整性和安全性,并使最終用戶和企業(yè)面臨信息竊取,劫持和感染其他惡意軟件的風險。對于這些惡意軟件沒有一蹴而就的解決方案,但可以通過以下方式來減輕感染風險:
定期使用最新補丁更新設(shè)備有助于防止攻擊者利用系統(tǒng)漏洞。
更改設(shè)備默認憑據(jù)并啟用設(shè)備防火墻,尤其在使用家用路由器時。
禁用路由器中不必要的組件,也可重新配置路由器例如更改子網(wǎng)地址、使用隨機IP地址、強制執(zhí)行SSL等。
如果物聯(lián)網(wǎng)家庭設(shè)備鏈接到移動設(shè)備,則僅通過官方/可信應用商店使用合法應用程序。
咨詢IT管理員和安全專家,制定對策和監(jiān)控流程,以預防或緩解高級威脅,例如采用應用程序白名單或類似安全機制。
4.2加密資產(chǎn)錢包安全性對比
(1)區(qū)塊鏈的錢包主要用于存儲區(qū)塊鏈資產(chǎn)的地址和私鑰文件,目前根據(jù)使用場景的不同分為了不同類型的數(shù)字資產(chǎn)錢包,主要包括:
中心化錢包:使用用戶名/密碼進行登陸,可在多個鏈上交易多個通證。
多種類錢包:可通過相同的私鑰保存不同鏈上的通證。
網(wǎng)絡(luò)錢包:通過網(wǎng)絡(luò)托管的鏈上錢包,有的需要將私鑰存儲在密碼之后,有的則要求在對賬戶執(zhí)行任何操作之前存儲私鑰并上傳。
本地錢包:本地安裝的軟件,用于對特定區(qū)塊鏈執(zhí)行操作,私鑰仍然需要存儲在錢包可以訪問的地方。
硬件錢包:冷錢包,存儲在物理脫機設(shè)備中例如硬盤、USB,只在使用時連接網(wǎng)絡(luò)。
(2) 目前影響錢包安全的因素主要包括:
網(wǎng)絡(luò)釣魚:簡單來講為通過欺騙的方式獲取訪問賬戶所需信息。例如:通過郵件發(fā)送的需要輸入私鑰或賬戶密碼的虛假鏈接。
惡意三方程序:來自非官方地址下載的有后臺程序漏洞的錢包。
計算機黑客:跟蹤計算機上執(zhí)行的操作,輸入密鑰或密碼將會被盜。
丟失密碼/密鑰:丟失存儲的密鑰、密碼或助記詞。
(3)不同的數(shù)字資產(chǎn)錢包面臨的安全性問題
有別于其他的應用程序,錢包因為各自用途、屬性的不同,目前并無統(tǒng)一的解決方案,用戶可以通過各自的適用性來判斷相應適合的加密資產(chǎn)錢包,從用戶的角度出發(fā)目前主要有以下幾種拓展功能:
私鑰控制:意味著可以隨時使用其他軟件獲取私鑰并訪問數(shù)字資產(chǎn),甚至可以直接在鏈上進行交互。
賬戶恢復:忘記密碼或者丟失私鑰時,可使用服務來恢復訪問權(quán)限。
獲取AirDrop/Forks:當硬分叉發(fā)生或者通證被空投到另一個通證的持有者時,只能使用私鑰訪問這些新通證。
存儲不同鏈上的通證:使用同一個賬戶存儲不同鏈上的通證。
4.3加密資產(chǎn)交易平臺常見安全問題
(1)加密資產(chǎn)是數(shù)字經(jīng)濟中重要的組成部分,但針對加密資產(chǎn)交易平臺展開的頻繁網(wǎng)絡(luò)攻擊不斷沖擊著用戶對于數(shù)字資產(chǎn)的信任。就在最近的幾個月里,人們目睹了數(shù)起針對交易平臺的攻擊。例如日本的加密資產(chǎn)交易平臺Coincheck于2018年1月被入侵,損失超過5億美元。韓國交易平臺Coinrail也證實它在2018年6月被黑客攻擊,入侵損失達3,690萬美元。
目前看來,加密資產(chǎn)交易平臺主要有六類常見隱患和漏洞,即拒絕服務攻擊、網(wǎng)絡(luò)釣魚事件,熱錢包防護問題,內(nèi)部攻擊,軟件漏洞,和交易可鍛性。
拒絕服務攻擊:攻擊者通過拒絕服務攻擊使得交易平臺無法正常訪問,也是目前最主要的針對交易平臺的攻擊方式。用戶因為無法準確分辨攻擊程度,往往會造成恐慌性的資產(chǎn)轉(zhuǎn)移,從而給交易平臺帶來損失。
網(wǎng)絡(luò)釣魚事件:目前即使是最好的技術(shù)措施也無法保護加密資產(chǎn)交易平臺免受網(wǎng)絡(luò)釣魚攻擊。 欺詐者往往通過虛假域名或者仿冒頁面的方式迷惑受害者,受害者如無法分辨交易平臺的真實性便會遭受資產(chǎn)上的損失。
熱錢包防護問題:許多交易平臺使用單個私鑰來保護熱錢包,如果犯罪分子可以訪問單個私鑰,他們將能夠破解與私鑰相關(guān)的熱錢包。 私鑰攻擊的典型例子是2017年首爾交易所Yapizon的攻擊,攻擊者一年內(nèi)前后兩次對交易平臺發(fā)起了針對平臺上熱錢包的盜取,總共造成了交易平臺近50%的資產(chǎn)損失,并最終導致了交易平臺的破產(chǎn)。
內(nèi)部攻擊:由于沒有完善的風險隔離措施或?qū)τ趩T工權(quán)限監(jiān)督不力,導致了部分擁有平臺操作權(quán)限的員工利用內(nèi)部信任監(jiān)守自盜。例如2016年交易平臺ShapeShift發(fā)生的員工盜取BTC事件,其通過私下盜取和將敏感信息轉(zhuǎn)賣給其余人員的方式前后給交易平臺造成了23萬美元的損失。
軟件漏洞:包括單點登陸漏洞、oAuth協(xié)議漏洞等。各國都有法律要求銀行或其他金融機構(gòu)實施信息安全措施,以保護客戶的存款。但是,由于區(qū)塊鏈領(lǐng)域還處于起步階段,目前缺少適用于加密資產(chǎn)的此類規(guī)范。 因此,許多交易平臺在缺乏安全規(guī)范約束的條件下,存在大量漏洞并非偶然。
交易可鍛性:區(qū)塊鏈技術(shù)的支持者常常認為區(qū)塊鏈交易是高度安全的,因為它們被記錄在據(jù)稱不可更改的記錄上。 但是每個交易都需要有相應簽名,而在交易最終確認之前,記錄是可以被暫時偽造的。 “Mt.Gox事件“是加密資產(chǎn)歷史上最大的攻擊之一,共造成了4.73億美元的損失,而這次攻擊事件便是由黑客在初始交易發(fā)布之前向公共帳本提交代碼更改進行的。
(2)解決方案與建議
在技術(shù)開發(fā)方面持續(xù)的投入,抵御日益增長的黑客攻擊,切實的增強系統(tǒng)的安全性。
確保員工保護安裝在專業(yè)工作計算機或個人計算機上軟件應用程序相關(guān)的登錄憑據(jù),并完善安全培訓,提高安全意識。
定期的安全測試,建立完善的應急相應機制。
網(wǎng)絡(luò)安全隔離,謹慎進行服務端口開放。
選擇具備完善防護的能力的服務供應商。
行業(yè)需要統(tǒng)一的治理機制,引入第三方監(jiān)管與合作,在出現(xiàn)問題時及時與外部協(xié)同工作。
五、小結(jié)
以上內(nèi)容概述了區(qū)塊鏈三個架構(gòu)層中可能存在的安全問題。總體來說,一是在架構(gòu)設(shè)計上,由于區(qū)塊鏈應用具有高度自治特性,智能合約一旦運行就無法逆轉(zhuǎn),因此初期的安全設(shè)計規(guī)范尤顯重要。二是在具體開發(fā)階段,目前部分區(qū)塊鏈開發(fā)者的代碼質(zhì)量、開發(fā)工具和應用平臺的成熟度都需要進行不斷完善與提升。三是區(qū)塊鏈問題外延方面,鑒于安全問題始終是非靜態(tài)的,關(guān)注區(qū)塊鏈底層技術(shù)的安全問題同時,區(qū)塊鏈安全問題同樣外延到了傳統(tǒng)的個人信息安全保護、基礎(chǔ)設(shè)施安全、網(wǎng)絡(luò)安全等領(lǐng)域中,無論是在區(qū)塊鏈概念上,還是在實際應用層面上,都需要長期有效的校正機制。
國家互聯(lián)網(wǎng)金融安全技術(shù)專家委員會將持續(xù)跟蹤該行業(yè)發(fā)展,未來將陸續(xù)發(fā)布更多相關(guān)領(lǐng)域研究報告。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控熑危?br>
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補充。