尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
8月8日,國家互聯網金融安全技術專家委員會(以下簡稱專委會)發布《區塊鏈技術安全概述》報告,指出區塊鏈技術的安全性問題並給出建議。
報告認為,大多的技術和應用處於試驗階段,目前發生的安全事件多集中出現於加密資產相關領域,給用戶造成了較大的經濟損失。同時區塊鏈智能合約一旦在分布式、去中心化網路中部署,就難以變更,這種難以變更性一方面防止了數據操縱,建立起基於加密算法的信任機制。但另一方面,當區塊鏈在面對安全攻擊時,也就缺乏了有效的糾正機制,難以逆轉。
報告提及,區塊鏈合約層主要封裝區塊鏈的各類腳本、算法及智能合約。最初區塊鏈只能用於交易,合約層的出現使得很多領域可以使用區塊鏈技術。圖靈完備的代表是以太坊,其合約層包括了以太坊虛擬機和智能合約兩部分。目前合約層可能出現以下攻擊對區塊鏈的安全造成威脅:Solidity漏洞、逃逸漏洞、短地址漏洞、堆棧溢出漏洞、可重入性攻擊、交易順序依賴攻擊、時間戳依賴攻擊、整數溢出攻擊等。
以下是報告全文:
一、 簡述
區塊鏈技術目前的發展方興未艾,大多的技術和應用處於試驗階段,目前發生的安全事件多集中出現於加密資產相關領域,給用戶造成了較大的經濟損失,其安全問題日益受到行業關注。
同時區塊鏈智能合約一旦在分布式、去中心化網路中部署,就難以變更,這種難以變更性一方面防止了數據操縱,建立起基於加密算法的信任機制。但另一方面,當區塊鏈在面對安全攻擊時,也就缺乏了有效的糾正機制,難以逆轉。
本文主要討論了區塊鏈的安全性問題,以及相應的解決方案和建議。 本文中,區塊鏈應用從架構上分為三層:基礎網路、平台層和應用層。三個層面相互影響,每一個環節出現的安全問題,都將給下個環節帶來更多的安全問題。因此,在進行區塊鏈項目開發的過程中,從設計到做到,從驗證到響應,不僅僅需要考慮到單個環節的安全性問題,也需要將其放入到整體的層面中去判斷可能出現的風險點。
圖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等等。本文將介紹以下三種常見的共識機制的安全性:
3.2 激勵層:發行與分配機制風險
(1)發行機制風險:目前暫無安全風險事件曝光,但不排除激勵層發行機制中存在安全隱患。
(2)分配機制風險:大量小算力節點易集中加入礦池,對於去中心化趨勢造成威脅。
3.3 合約層相關安全風險
合約層主要封裝區塊鏈的各類腳本、算法及智能合約。最初區塊鏈只能用於交易,合約層的出現使得很多領域可以使用區塊鏈技術。圖靈完備的代表是以太坊,其合約層包括了以太坊虛擬機和智能合約兩部分。目前合約層可能出現以下攻擊對區塊鏈的安全造成威脅:Solidity漏洞、逃逸漏洞、短地址漏洞、堆棧溢出漏洞、可重入性攻擊、交易順序依賴攻擊、時間戳依賴攻擊、整數溢出攻擊等。例如:2017年7月19日在github上出現一個針對VMware虛擬機的逃逸exploit源碼;2016年6月17日,DAO黑客利用重入性漏洞抽走了價值5000萬美金的以太坊;2018年4月22日,黑客利用機制漏洞,轉出大量的通證,計算結果產生溢出,完成通證增發。BEC無中生有出巨額通證,價值幾乎歸零。
圖2 智能合約運作原理(數據來源:百度百科)
3.4 解決方案與建議
(1)目前現有的共識機制均不是完美無缺的,需探求設計更安全性能更快的共識機制。
(2)智能合約開發前需要對當下已經出現過的漏洞進行防范。
(3)發布智能合約之前需要充分的進行安全測試。
(4)關注相關情報,專業人員及時進行代碼優化。
(5)定期進行代碼審計,包括但不限於:交易安全審查、訪問控制審查等
(6)異常操作監控,監控已部署合約異常行為,降低損失。
四、應用層安全風險
應用層作為區塊鏈技術一個實際的落地場景,也是目前區塊鏈產業的所有架構中受到安全性事件影響最多也是最頻繁的一個層級。攻擊目標主要集中在與加密資產相關的領域例如用戶節點、數字資產錢包以及交易平台之中,每一次的安全事件所帶來的實際損失可達千萬至上億美元。
4.1節點常見安全問題
(1)傀儡網路是指惡意軟件開發者或經營者通過感染受害者的系統和設備在對方不知情的情況下進行加密資產挖礦行為。
黑客主要通過在例如網頁、遊戲輔助程序、系統後台中安裝木馬程序的方式侵占用戶的算力與電力,並用於采礦以謀求非法收益。美國哈佛大學與國家基金會的超級計算機在此前均受到過類似的攻擊方式,國內也常常發生例如網頁被串改或者應用程序被植入采礦木馬的相關事件。
在當下采礦需要大量的計算能力的前提下,單一設備的算力已經無法滿足采礦所需要的算力。於是攻擊者擴大了攻擊目標設備的范疇,尤其是易受到攻擊的物聯網設備成為了主要目標,這也形成更大規模的傀儡網路采礦,目前主要的感染對象包括數字視頻錄影機、路由器、監控錄影頭、列印服務器、遊戲機等。常見的攻擊方式有:
跨站腳本
Microsoft中遠程執行代碼的漏洞利用
命令緩沖區溢出漏洞利用
SQL注入
BlackNurse拒絕服務攻擊
圖3:2017部分傀儡網路攻擊事件統計(數據來源:TrendLabs)
(2)解決方案或建議
這些惡意軟件可能會威脅系統的可用性、完整性和安全性,並使最終用戶和企業面臨信息竊取,劫持和感染其他惡意軟件的風險。對於這些惡意軟件沒有一蹴而就的解決方案,但可以通過以下方式來減輕感染風險:
定期使用最新補丁更新設備有助於防止攻擊者利用系統漏洞。
更改設備默認憑據並啟用設備防火牆,尤其在使用家用路由器時。
禁用路由器中不必要的組件,也可重新配置路由器例如更改子網地址、使用隨機IP地址、強制執行SSL等。
如果物聯網家庭設備鏈接到移動設備,則僅通過官方/可信應用商店使用合法應用程序。
咨詢IT管理員和安全專家,制定對策和監控流程,以預防或緩解高級威脅,例如採用應用程序白名單或類似安全機制。
4.2加密資產錢包安全性對比
(1)區塊鏈的錢包主要用於存儲區塊鏈資產的地址和私鑰文件,目前根據使用場景的不同分為了不同類型的數字資產錢包,主要包括:
中心化錢包:使用用戶名/密碼進行登陸,可在多個鏈上交易多個通證。
多種類錢包:可通過相同的私鑰保存不同鏈上的通證。
網路錢包:通過網路托管的鏈上錢包,有的需要將私鑰存儲在密碼之後,有的則要求在對帳戶執行任何操作之前存儲私鑰並上傳。
本地錢包:本地安裝的軟件,用於對特定區塊鏈執行操作,私鑰仍然需要存儲在錢包可以訪問的地方。
硬件錢包:冷錢包,存儲在物理脫機設備中例如硬碟、USB,只在使用時連接網路。
(2) 目前影響錢包安全的因素主要包括:
網路釣魚:簡單來講為通過欺騙的方式獲取訪問帳戶所需信息。例如:通過郵件發送的需要輸入私鑰或帳戶密碼的虛假鏈接。
惡意三方程序:來自非官方地址下載的有後台程序漏洞的錢包。
計算機黑客:跟蹤計算機上執行的操作,輸入密鑰或密碼將會被盜。
丟失密碼/密鑰:丟失存儲的密鑰、密碼或助記詞。
(3)不同的數字資產錢包面臨的安全性問題
有別於其他的應用程序,錢包因為各自用途、屬性的不同,目前並無統一的解決方案,用戶可以通過各自的適用性來判斷相應適合的加密資產錢包,從用戶的角度出發目前主要有以下幾種拓展功能:
私鑰控制:意味著可以隨時使用其他軟件獲取私鑰並訪問數字資產,甚至可以直接在鏈上進行交互。
帳戶恢復:忘記密碼或者丟失私鑰時,可使用服務來恢復訪問權限。
獲取AirDrop/Forks:當硬分叉發生或者通證被空投到另一個通證的持有者時,只能使用私鑰訪問這些新通證。
存儲不同鏈上的通證:使用同一個帳戶存儲不同鏈上的通證。
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)解決方案與建議
在技術開發方面持續的投入,抵禦日益增長的黑客攻擊,切實的增強系統的安全性。
確保員工保護安裝在專業工作計算機或個人計算機上軟件應用程序相關的登錄憑據,並完善安全培訓,提高安全意識。
定期的安全測試,建立完善的應急相應機制。
網路安全隔離,謹慎進行服務端口開放。
選擇具備完善防護的能力的服務供應商。
行業需要統一的治理機制,引入第三方監管與合作,在出現問題時及時與外部協同工作。
五、小結
以上內容概述了區塊鏈三個架構層中可能存在的安全問題。總體來說,一是在架構設計上,由於區塊鏈應用具有高度自治特性,智能合約一旦運行就無法逆轉,因此初期的安全設計規範尤顯重要。二是在具體開發階段,目前部分區塊鏈開發者的代碼質量、開發工具和應用平台的成熟度都需要進行不斷完善與提升。三是區塊鏈問題外延方面,鑒於安全問題始終是非靜態的,關注區塊鏈底層技術的安全問題同時,區塊鏈安全問題同樣外延到了傳統的個人信息安全保護、基礎設施安全、網路安全等領域中,無論是在區塊鏈概念上,還是在實際應用層面上,都需要長期有效的校正機制。
國家互聯網金融安全技術專家委員會將持續跟蹤該行業發展,未來將陸續發布更多相關領域研究報告。
(來源:「國家互聯網金融安全技術專家委員會」)
編輯:版權區塊鏈聯盟
原文來源:中國區塊鏈技術和產業發展論壇