沒有絕對安全的技術

國家互聯網金融安全技術專家委員會持續跟蹤區塊鏈技術發展,對區塊鏈安全、區塊鏈+AI、區塊鏈+供應鏈等領域進行深入調研,將推出系列報告。本報告聚焦於“區塊鏈技術安全”,聯合上海圳鏈公司共同推出,以期成爲行業發展的研究依據。

微信圖片_20180814164045.jpg

一、 簡述

區塊鏈技術目前的發展方興未艾,大多的技術和應用處於試驗階段,目前發生的安全事件多集中出現於加密資產相關領域,給用戶造成了較大的經濟損失,其安全問題日益受到行業關注。

同時區塊鏈智能合約一旦在分佈式、去中心化網絡中部署,就難以變更,這種難以變更性一方面防止了數據操縱,建立起基於加密算法的信任機制。但另一方面,當區塊鏈在面對安全攻擊時,也就缺乏了有效的糾正機制,難以逆轉。

本文主要討論了區塊鏈的安全性問題,以及相應的解決方案和建議。 本文中,區塊鏈應用從架構上分爲三層:基礎網絡、平臺層和應用層。三個層面相互影響,每一個環節出現的安全問題,都將給下個環節帶來更多的安全問題。因此,在進行區塊鏈項目開發的過程中,從設計到實現,從驗證到響應,不僅僅需要考慮到單個環節的安全性問題,也需要將其放入到整體的層面中去判斷可能出現的風險點。

微信圖片_20180814164218.png

圖 1(區塊鏈應用架構)

二、基礎網絡安全風險

基礎網絡由數據層及網絡層組成,是區塊鏈的基礎部分,該部分封裝了區塊鏈的底層數據,對區塊鏈的數據採用非對稱性加密,利用 P2P 網絡並設置了傳播、驗證機制等,目前主要面臨以下幾類安全問題。

2.1 數據層:信息攻擊與加密算法攻擊

(1) 數據區塊信息攻擊風險:一方面寫入區塊鏈後的信息很難刪除,不法分子將某些有害信息、病毒特徵碼、淫穢信息等寫入區塊中,影響區塊鏈生態環境。另一方面,大量的垃圾交易數據攻擊會堵塞區塊鏈,使得有效交易和信息遲遲無法被處理。

(2) 加密算法安全風險:早年普遍使用的 SHA-1 於 2005 年 2 月被王小云、殷益羣及於紅波等人證明安全性不足,只需少於 2 的 69 次方的計算複雜度就能找到一組碰撞。此外 SHA-2 算法跟 SHA-1 基本相似,雖目前未出現有效攻擊,但安全性已被嚴重質疑。其餘的 SHA-224、SHA-256、SHA-384、SHA-512 等加密算法目前沒有公開證據表明存在漏洞,但在量子計算高速發展的情況下,並不是無懈可擊。目前針對加密算法進行攻擊的方式主要有:窮舉攻擊、碰撞攻擊、長度擴展攻擊、後門攻擊、量子攻擊等。

2.2 網絡層:節點傳播與驗證機制風險

(1)P2P 網絡風險:區塊鏈信息傳播採用 P2P 的模式,節點之間的信息傳播,會將包含自身 IP 地址的信息發送給相鄰節點。由於節點安全性參差不齊,較差的節點容易受到攻擊,目前可進行攻擊的方式有:日食攻擊、竊聽攻擊、BGP 劫持攻擊、節點客戶端漏洞、拒絕服務 (DDoS) 攻擊等。例如:2018 年 3 月以太坊網絡爆出的“日食攻擊”。

(2) 廣播機制風險:節點與節點之間相互鏈接,某節點將信息廣播給其他節點,這些節點確認信息後再向更多的節點進行廣播。在廣播機制中常見的攻擊方式有雙花攻擊及交易延展性攻擊。雙花攻擊即同一筆加密資產被多次花費,當商家接受 0 確認交易付款時或者通過 51% 算力攻擊時這種情況較容易發生。交易延展性攻擊也被稱爲可鍛性,即同一個東西,本質沒有變化,形狀發生了改變,攻擊者利用交易簽名算法特徵修改原交易 input 簽名,生成一樣的 input 和 output 的新交易,導致原有交易一定概率不被確認形成雙花。

(3) 驗證機制風險:驗證機制更新過程易出現驗證繞過,一旦出現問題將導致數據混亂,而且會涉及到分叉問題,需要確保機制的嚴謹性。

2.3 解決方案與建議

基礎網絡作爲區塊鏈的底層,其安全性尤爲重要。

(1) 與時俱進,關注技術安全方面的最新進展。在量子計算快速發展的情況下,加密系統只有不斷研發更新纔可防範黑客攻擊。

(2) 接受專業的代碼審計,瞭解相關安全編碼規範。大多數區塊鏈項目爲了增加可信度和透明性,對其項目代碼進行開源管理,然而這樣也使得項目更易受到攻擊,接受專業的代碼審計及注重安全編碼可以有效規避潛在的風險。

三、平臺層安全風險

平臺層由共識層、激勵層及合約層組成,是銜接基礎網絡與應用服務層的橋樑。該部分封裝了網絡節點的共識算法、發行機制、分配機制、腳本及智能合約等。

3.1 共識層:常見共識機制安全性對比

共識機制是對於一個時間窗口內的事務先後順序達成共識的算法。區塊鏈可支持不同的共識機制,目前存有的共識機制有 PoW、PoS、DPoS、Pool 驗證池機制、BFT 等等。本文將介紹以下三種常見的共識機制的安全性:

微信圖片_20180814164213.png

3.2 激勵層:發行與分配機制風險

(1) 發行機制風險:目前暫無安全風險事件曝光,但不排除激勵層發行機制中存在安全隱患。

(2) 分配機制風險:大量小算力節點易集中加入礦池,對於去中心化趨勢造成威脅。

3.3 合約層相關安全風險

合約層主要封裝區塊鏈的各類腳本、算法及智能合約。最初區塊鏈只能用於交易,合約層的出現使得很多領域可以使用區塊鏈技術。圖靈完備的代表是以太坊,其合約層包括了以太坊虛擬機和智能合約兩部分。目前合約層可能出現以下攻擊對區塊鏈的安全造成威脅:Solidity 漏洞、逃逸漏洞、短地址漏洞、堆棧溢出漏洞、可重入性攻擊、交易順序依賴攻擊、時間戳依賴攻擊、整數溢出攻擊等。例如:2017 年 7 月 19 日在 github 上出現一個針對 VMware 虛擬機的逃逸 exploit 源碼 ;2016 年 6 月 17 日,DAO 黑客利用重入性漏洞抽走了價值 5000 萬美金的以太坊 ;2018 年 4 月 22 日,黑客利用機制漏洞,轉出大量的通證,計算結果產生溢出,完成通證增發。BEC 無中生有出鉅額通證,價值幾乎歸零。

微信圖片_20180814164205.png

圖 2 智能合約運作原理 (數據來源:百度百科)

3.4 解決方案與建議

(1) 目前現有的共識機制均不是完美無缺的,需探求設計更安全性能更快的共識機制。

(2) 智能合約開發前需要對當下已經出現過的漏洞進行防範。

(3) 發佈智能合約之前需要充分的進行安全測試。

(4) 關注相關情報,專業人員及時進行代碼優化。

(5) 定期進行代碼審計,包括但不限於:交易安全審查、訪問控制審查等

(6) 異常操作監控,監控已部署合約異常行爲,降低損失。

四、應用層安全風險

應用層作爲區塊鏈技術一個實際的落地場景,也是目前區塊鏈產業的所有架構中受到安全性事件影響最多也是最頻繁的一個層級。攻擊目標主要集中在與加密資產相關的領域例如用戶節點、數字資產錢包以及交易平臺之中,每一次的安全事件所帶來的實際損失可達千萬至上億美元。

4.1 節點常見安全問題

(1) 傀儡網絡是指惡意軟件開發者或運營者通過感染受害者的系統和設備在對方不知情的情況下進行加密資產挖礦行爲。

黑客主要通過在例如網頁、遊戲輔助程序、系統後臺中安裝木馬程序的方式侵佔用戶的算力與電力,並用於採礦以謀求非法收益。美國哈佛大學與國家基金會的超級計算機在此前均受到過類似的攻擊方式,國內也常常發生例如網頁被串改或者應用程序被植入採礦木馬的相關事件。

在當下採礦需要大量的計算能力的前提下,單一設備的算力已經無法滿足採礦所需要的算力。於是攻擊者擴大了攻擊目標設備的範疇,尤其是易受到攻擊的物聯網設備成爲了主要目標,這也形成更大規模的傀儡網絡採礦,目前主要的感染對象包括數字視頻攝像機、路由器、監控攝像頭、打印服務器、遊戲機等。常見的攻擊方式有:

跨站腳本

Microsoft 中遠程執行代碼的漏洞利用

命令緩衝區溢出漏洞利用

SQL 注入

BlackNurse 拒絕服務攻擊

微信圖片_20180814164154.png

圖 3:2017 部分傀儡網絡攻擊事件統計

(2) 解決方案或建議

這些惡意軟件可能會威脅系統的可用性、完整性和安全性,並使最終用戶和企業面臨信息竊取,劫持和感染其他惡意軟件的風險。對於這些惡意軟件沒有一蹴而就的解決方案,但可以通過以下方式來減輕感染風險:

定期使用最新補丁更新設備有助於防止攻擊者利用系統漏洞。

更改設備默認憑據並啓用設備防火牆,尤其在使用家用路由器時。

禁用路由器中不必要的組件,也可重新配置路由器例如更改子網地址、使用隨機 IP 地址、強制執行 SSL 等。

如果物聯網家庭設備鏈接到移動設備,則僅通過官方 / 可信應用商店使用合法應用程序。

諮詢 IT 管理員和安全專家,制定對策和監控流程,以預防或緩解高級威脅,例如採用應用程序白名單或類似安全機制。

4.2 加密資產錢包安全性對比

(1) 區塊鏈的錢包主要用於存儲區塊鏈資產的地址和私鑰文件,目前根據使用場景的不同分爲了不同類型的數字資產錢包,主要包括:

中心化錢包:使用用戶名 / 密碼進行登陸,可在多個鏈上交易多個通證。

多種類錢包:可通過相同的私鑰保存不同鏈上的通證。

網絡錢包:通過網絡託管的鏈上錢包,有的需要將私鑰存儲在密碼之後,有的則要求在對賬戶執行任何操作之前存儲私鑰並上傳。

本地錢包:本地安裝的軟件,用於對特定區塊鏈執行操作,私鑰仍然需要存儲在錢包可以訪問的地方。

硬件錢包:冷錢包,存儲在物理脫機設備中例如硬盤、USB,只在使用時連接網絡。

(2) 目前影響錢包安全的因素主要包括:

網絡釣魚:簡單來講爲通過欺騙的方式獲取訪問賬戶所需信息。例如:通過郵件發送的需要輸入私鑰或賬戶密碼的虛假鏈接。

惡意三方程序:來自非官方地址下載的有後臺程序漏洞的錢包。

計算機黑客:跟蹤計算機上執行的操作,輸入密鑰或密碼將會被盜。

丟失密碼 / 密鑰:丟失存儲的密鑰、密碼或助記詞。

(3) 不同的數字資產錢包面臨的安全性問題

微信圖片_20180814164154.png

有別於其他的應用程序,錢包因爲各自用途、屬性的不同,目前並無統一的解決方案,用戶可以通過各自的適用性來判斷相應適合的加密資產錢包,從用戶的角度出發目前主要有以下幾種拓展功能:

私鑰控制:意味着可以隨時使用其他軟件獲取私鑰並訪問數字資產,甚至可以直接在鏈上進行交互。

賬戶恢復:忘記密碼或者丟失私鑰時,可使用服務來恢復訪問權限。

獲取 AirDrop/Forks: 當硬分叉發生或者通證被空投到另一個通證的持有者時,只能使用私鑰訪問這些新通證。

存儲不同鏈上的通證:使用同一個賬戶存儲不同鏈上的通證。

微信圖片_20180814164149.png

4.3 加密資產交易平臺常見安全問題

(1) 加密資產是數字經濟中重要的組成部分,但針對加密資產交易平臺展開的頻繁網絡攻擊不斷衝擊着用戶對於數字資產的信任。就在最近的幾個月裏,人們目睹了數起針對交易平臺的攻擊。例如日本的加密資產交易平臺 Coincheck 於 2018 年 1 月被入侵,損失超過 5 億美元。韓國交易平臺 Coinrail 也證實它在 2018 年 6 月被黑客攻擊,入侵損失達 3,690 萬美元。

目前看來,加密資產交易平臺主要有六類常見隱患和漏洞,即拒絕服務攻擊、網絡釣魚事件,熱錢包防護問題,內部攻擊,軟件漏洞,和交易可鍛性。

拒絕服務攻擊:攻擊者通過拒絕服務攻擊使得交易平臺無法正常訪問,也是目前最主要的針對交易平臺的攻擊方式。用戶因爲無法準確分辨攻擊程度,往往會造成恐慌性的資產轉移,從而給交易平臺帶來損失。

網絡釣魚事件:目前即使是最好的技術措施也無法保護加密資產交易平臺免受網絡釣魚攻擊。 欺詐者往往通過虛假域名或者仿冒頁面的方式迷惑受害者,受害者如無法分辨交易平臺的真實性便會遭受資產上的損失。

熱錢包防護問題:許多交易平臺使用單個私鑰來保護熱錢包,如果犯罪分子可以訪問單個私鑰,他們將能夠破解與私鑰相關的熱錢包。 私鑰攻擊的典型例子是 2017 年首爾交易所 Yapizon 的攻擊,攻擊者一年內前後兩次對交易平臺發起了針對平臺上熱錢包的盜取,總共造成了交易平臺近 50% 的資產損失,並最終導致了交易平臺的破產。

內部攻擊:由於沒有完善的風險隔離措施或對於員工權限監督不力,導致了部分擁有平臺操作權限的員工利用內部信任監守自盜。例如 2016 年交易平臺 ShapeShift 發生的員工盜取 BTC 事件,其通過私下盜取和將敏感信息轉賣給其餘人員的方式前後給交易平臺造成了 23 萬美元的損失。

軟件漏洞:包括單點登陸漏洞、oAuth 協議漏洞等。各國都有法律要求銀行或其他金融機構實施信息安全措施,以保護客戶的存款。但是,由於區塊鏈領域還處於起步階段,目前缺少適用於加密資產的此類規範。 因此,許多交易平臺在缺乏安全規範約束的條件下,存在大量漏洞並非偶然。

交易可鍛性:區塊鏈技術的支持者常常認爲區塊鏈交易是高度安全的,因爲它們被記錄在據稱不可更改的記錄上。 但是每個交易都需要有相應簽名,而在交易最終確認之前,記錄是可以被暫時僞造的。 “Mt.Gox 事件“是加密資產歷史上最大的攻擊之一,共造成了 4.73 億美元的損失,而這次攻擊事件便是由黑客在初始交易發佈之前向公共帳本提交代碼更改進行的。

(2) 解決方案與建議

在技術開發方面持續的投入,抵禦日益增長的黑客攻擊,切實的增強系統的安全性。

確保員工保護安裝在專業工作計算機或個人計算機上軟件應用程序相關的登錄憑據,並完善安全培訓,提高安全意識。

定期的安全測試,建立完善的應急相應機制。

網絡安全隔離,謹慎進行服務端口開放。

選擇具備完善防護的能力的服務供應商。

行業需要統一的治理機制,引入第三方監管與合作,在出現問題時及時與外部協同工作。

五、小結

以上內容概述了區塊鏈三個架構層中可能存在的安全問題。總體來說,一是在架構設計上,由於區塊鏈應用具有高度自治特性,智能合約一旦運行就無法逆轉,因此初期的安全設計規範尤顯重要。二是在具體開發階段,目前部分區塊鏈開發者的代碼質量、開發工具和應用平臺的成熟度都需要進行不斷完善與提升。三是區塊鏈問題外延方面,鑑於安全問題始終是非靜態的,關注區塊鏈底層技術的安全問題同時,區塊鏈安全問題同樣外延到了傳統的個人信息安全保護、基礎設施安全、網絡安全等領域中,無論是在區塊鏈概念上 , 還是在實際應用層面上 , 都需要長期有效的校正機制。

來源鏈接:www.chainknow.com