由於區塊鏈去中心化的特點,每一個處於區塊鏈網路中的節點都擁有一份完整的賬本資料,並且由網路中的共識機制執行相應的共識演算法來共同記錄整個網路中的交易等相關資訊。目前的共識機制有PoW、PoS、 DPoS、 Pool 驗證池機制、PBFT等,其主要面臨的攻擊有女巫攻擊、51%攻擊、長距離攻擊、短距離攻擊、幣齡累計攻擊、預計算攻擊。PoW、PoS、 DPoS這三種常見共識機制所面臨的攻擊方式如表2-1所示。
1) 51%攻擊
在PoW演算法中被證明存在51%算力攻擊威脅,即如果某一個節點或者由部分節點組成的組織掌握了全網超過51%的算力,這些節點就有能力將目前正在工作的區塊鏈轉移到另一-條包含有惡意行為的區塊鏈上,並使得全網節點在這條惡意的區塊鏈上繼續工作。
如果攻擊者能夠控制全網算力的一半以上,攻擊者可以比網路的其他部分更快地生成塊,隨著攻擊者堅持自己的私有分支,直到它比誠實節點網路建立的分支更長,將可以使得全網節點在這條惡意的區塊鏈上繼續工作,近而代替主鏈。
由於比特幣所使用的PoW演算法的安全性依賴於其所消耗的巨大算力,51%算力攻擊曾一度被認為是難以達到的。然而隨著礦池的出現,一個名為GHash的礦池就曾經在2014年6月擁有全網51%的算力,因此,51%算力攻擊的威脅始終存在,並且有可能發生。2016年8月份,基於以太坊的數字貨幣Krypton 遭受來自一個名為“51%Crew"的組織透過租用Nicehash算力所發起的51%攻擊,導致該區塊鏈損失約21,465KR的代幣。據Crypto51.app資料統計,想完成對比特幣一個小時的51%算力攻擊的成本大概要55萬美金,完成對以太坊的攻擊需要36萬美金,萊特幣需要6.4萬美金,比特幣現金需要7.2萬美金,最近剛被攻擊過的BitcoinGold比特幣黃金只需要三千八百六十美金就能完成51%攻擊,在統計的流通性比較高的數字貨幣裡攻擊成本最低的就是Bytecoin, 要完成攻擊僅僅需要五百五十七美金。而實際上,隨著挖礦業務的發展,現在透過網路租賃算力的業務也越來越成熟了,攻擊者不再需要花費大量成本去購買礦機,只需要在攻擊的時候即時從網上租賃算力來發動51%攻擊,利用51%算力攻擊一個數字貨幣的成本在越來越低。
2)女巫攻擊
女巫攻擊又稱Sybil攻擊,攻擊者透過建立大量的假名標識來破壞對等網路的信譽系統,使用它們獲得不成比例的大的影響。為了應對這種威脅,對等網路中的實體為了冗餘機制、資源共享、可靠性和完整性而使用多個標識。多個標識可以對應於單個實體,身份到實體的對映是多對一的。對等網路上的實體是能夠訪問本地資源的一塊軟體,實體透過呈現身份在網路上通告自身。在對等網路中,身份抽象化使得遠端實體可以知道身份而不必知道身份與本地實體的對應關係。預設情況下,通常假定每個不同的標識對應於不同的本地實體。實際上,許多身份可以對應於相同的本地實體。攻擊者可以向對等網路呈現多個身份,以便出現並充當多個不同的節點。因此,攻擊者可能能夠獲得對網路的不成比例的控制水平,例如影響投票結果。
3)短距離攻擊
攻擊者透過控制一定比例、保障系統安全性的計算資源、加密貨幣資源等各種資源,實現在執行花費代幣或執行智慧合約等操作時將 其回滾,從而進行雙花攻擊,即一個加密貨幣進行兩次花費。
當攻擊者發起短距離攻擊時,首先會向全網提交一個待回滾的交易,並在上一個區塊的分叉上(不包含待回滾交易的分叉)繼續進行挖礦,直到該交易得到n個區塊確認資訊。若分叉上的區塊數多於n,則攻擊者公佈包含有待回滾交易的區塊。這樣,由於分叉鏈的長度大於原本的主鏈,則全網節點將分叉鏈視為主鏈,此時,交易得到回滾。
4) 長距離攻擊
攻擊者透過控制一定比例的系統資源,在歷史區塊、甚至是創世區塊上對區塊鏈主鏈進行分叉,旨在獲取更多的區塊獎勵和/或者達到回滾交易的目的。這種攻擊更多的是針對基於權益證明共識機制的系統。即使攻擊者可能在分叉出現時僅持有一小部分的代幣,但他可以在分叉上自由地進行代幣交易,從而導致攻擊者能夠更加容易地進行造幣並快速形成一條更長的區塊鏈。
5) 幣齡累積攻擊
基於PoS共識機制的系統中,攻擊者可以利用幣齡計算節點權益,並透過總消耗的幣齡確定有效的區塊鏈。未花費交易輸出(UTXO)的幣齡是根據幣齡乘以該區塊之前的歷史區塊的數量得出(比如點點幣)。在幣齡累計攻擊中,攻擊者將其持有的代幣分散至不同的UTXO中,並等待直至其所佔權益遠大於節點平均值。這樣,攻擊者有極大的可能性連續進行造幣,從而達到對主鏈的分叉或交易回滾(如實施雙花攻擊)的目的。
6)預計算攻擊
在PoS共識機制中,解密當前區塊取決於前一個區塊的雜湊值。擁有足夠算力和權益的攻擊者可以在第n個區塊的虛擬挖礦過程中,透過隨機試錯法對該區塊的雜湊值進行干涉,直至攻擊者可以對第n+1個區塊進行挖礦,從而,攻擊者可以連續進行造幣,並獲取相對應的區塊獎勵或者發起雙花攻擊。
2.2 合約層安全威脅
智慧合約是區塊鏈2.0的一個特性,隨著區塊鏈2.0技術的不斷推進,智慧合約在以太坊、EOS、 Hyperledge 等平臺上得到廣泛應用。區塊鏈的智慧合約一般都用來控制資金流轉,應用在貿易結算、數字,資產交易、票據交易等場景中,其漏洞的嚴重性遠高於普通的軟體程式。由於智慧合約會部署在公鏈暴露於開放網路中,容易被駭客獲得,成為駭客的金礦和攻擊目標,一旦出現漏洞,將直接導致經濟損失。從TheDAO到BEC和SMT的整數溢位漏洞、再到EOS緩衝區溢位越界寫漏洞,智慧合約的安全漏洞頻發,“智慧合約”已經成為區塊鏈安全的重災區。
以太坊( Ethereum)是目前最熱門的具有智慧合約功能的開源公共區塊鏈平臺,區塊鏈上的所有使用者都可以看到基於區塊鏈的智慧合約。但是,這會導致包括安全漏洞在內的所有漏洞都可見。如果智慧合約開發者疏忽或者測試不充分,而造成智慧合約程式碼存在眾多漏洞,就非常容易被駭客利用並攻擊。並且功能越強大的智慧合約,邏輯越複雜,也越容易出現邏輯上的漏洞。來自新加坡國立大學、耶魯新加坡國立大學學院和倫敦大學學院的一組研究人員釋出了一份報告,聲稱已經發現了3.4萬多份以太坊智慧合約可能存在容易被攻擊的漏洞,其中大約3000個不安全的智慧合約可能會造成600萬美元的ETH被盜。表2-2列出了以太坊的合約層漏洞。
2.3 資料層安全威脅
區塊鏈資料具有不可篡改、去中心化生成和確認的特點,這也就造成了區塊鏈資料的難以監管,使之可被利用進行惡意攻擊和惡意內容傳播。
2017年在EuskalHack安全會議上,有安全研究者提出了基於區塊鏈模式的botnet網路,利用區塊鏈網路進行C&C的惡意指令釋出並且提供了POC。
2018年3月德國RWTH亞琛工業大學的研究人員發現了比特幣區塊鏈中的非財務資料,其中包括色情內容等。幸運的是,亞琛工業大學的研究人員沒有發現任何惡意軟體儲存在比特幣區塊鏈上。在他們的論文中,研究人員指出了你可以透過多種方式在加密貨幣的區塊鏈上插入內容,其中包括CryrtoGrafiti、Satoshi Uploader和Apertus等服務。但另一方面,如果不能開發出解決方案來移除區塊鏈當中的色情內容,那新增的資料就永遠無法管理,並且無法被清除。
目前比特幣、以太坊和Hyperledger Fabric都採用全網節點共享一條區塊鏈的單鏈方案,網路上的每個節點需要處理、儲存全網的所有交易和全部資料,整個區塊鏈系統的處理能力實際上受限於單個計算節點的處理能力。另外,受到共識演算法的影響,隨著節點數的增加,系統整體處理能力不但未隨之提升,甚至還會降低。
區塊鏈對於網路中的節點來說是透明的,任何一個節點都可以獲取區塊鏈上的所有資訊。雖然比特幣使用隨機數和非對稱加密演算法生成唯一地址作為使用者的地址進行交易,但是如果這些地址直接或間接地與真實世界發生了聯絡,就會失去其匿名性,從而洩露其個人隱私。另外,不同的地址之間如果出現穩定的關聯交易,透過分析交易規律,甚至能夠推測出使用者的身份資訊和位置資訊。如果交易節點被攻擊,攻擊者不僅可獲得使用者的交易資訊,而且很容易藉此為跳板破壞整個交易鏈。
3. 應用生態安全威脅
區塊鏈的應用已從數字貨幣的虛擬世界走向了與現實世界相對接的實際應用場景中,其應用生態安全涉及數字貨幣交易平臺、區塊鏈移動數字錢包App、網站、DApp等。
和傳統金融機構差別不大,數字貨幣交易所整個資訊系統由Web伺服器、後端資料庫等元素構成,使用者透過瀏覽器、移動端App以及交易所提供的API等多種方式作為客戶端訪問伺服器。美國數字貨幣安全公司CipherTrace釋出的二季度觀察報告顯示,2018年前6個月,全球數字貨幣交易所共有價值7.61億美元的數字貨幣被駭客竊取。而整個2017年的損失金額也不過2.66億美元。2018年上半年以來,被盜取的數字貨幣金額已經達到了2017年的3倍之多。結合各大交易所出現的攻擊事件發現,這部分面臨的安全威脅主要包括:伺服器軟體漏洞、配置不當、DDoS攻擊、服務端Web程式漏洞(包括技術性漏洞和業務邏輯缺陷)。
本部分重點介紹網站和移動數字錢包App面臨的威脅。
3.1交易網站面臨的安全威脅
和其他網站一樣,交易網站面臨賬戶洩露、DDoS、Web注入等攻擊,對於規模較大,使用者較多的交易所,還會面臨使用者被攻擊者利用仿冒的釣魚網站騙取認證資訊等威脅。
1)賬戶洩露攻擊事件
駭客可利用病毒、木馬、釣魚等傳統攻擊手段竊取使用者賬號,進而利用合法使用者賬號登入系統進行一系列非法操作,或者透過非法手段拿到交易所繫統的資料庫,由於資料庫儲存著使用者的註冊資訊,且這些資料沒有加密,駭客拿到這些資料後可以在網際網路上售賣或者對平臺進行惡意操作。攻擊者破解其他安全措施較弱的網站密碼,透過撞庫的方式獲得登入口令,因此採用雙因子認證等傳統安全使用者認證方式對於數字貨幣交易所和區塊鏈應用系統來說非常必要。
2017年10月2日,OKCoin旗下交易所出現大量賬戶被盜情況,不完全統計損失金額在1000萬人民幣左右,使用者懷疑平臺已被攻擊, 或有已被關閉平臺的交易所員工向駭客洩漏了平臺使用者的賬戶資訊,駭客透過使用者資訊破解賬戶密碼登入平臺,然後在平臺上完成數字資產轉移。
2) Web注入攻擊件
攻擊者可以採用SQL隱碼攻擊、XSS跨站指令碼攻擊等方式對Web進行注入攻擊,SQL隱碼攻擊是把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。XSS跨站指令碼攻擊指攻擊者在網頁中嵌入客戶端指令碼(例如IJavaScript),當使用者瀏覽此網頁時,指令碼就會在使用者的瀏覽器上執行,從而達到攻擊者的目的,比如獲取使用者的Cookie, 導航到惡意網站,攜帶木馬等。
2017年8月份,一款名為Ti ickbot的木馬就針對包括Coinbase在內的幾家數字貨幣交易所增加了Web注入攻擊功能,在受害者購買數字貨幣的時候和會將接收錢包重定向到攻擊者的錢包,讓使用者誤以為轉賬成功,實際上是給攻擊者轉賬了。
3) DDoS攻擊
在區塊鏈應用中,攻擊者可針對區塊鏈應用層和底層協議缺陷發起針對性的DDoS攻擊,影響各類應用業務的可用性。2017年5月12日,Poloniex交易平臺遭受了嚴重的DDoS攻擊,BTC/USDT的交易價格一度困於1761美元,絕大多數使用者都無法執行訂單或是提取資金。根據雲端計算安全服務提供商Incapsula釋出的2017年第四季度DDoS威脅報告,應用層DDoS攻擊數量較前一季度成倍增長,且針對加密貨幣行業的攻擊數量持續增長,佔所有攻擊數量的3.7%。
4)釣魚網頁攻擊
2017年4月14日,在約翰霍普金斯大學研究數學的學生xudongzheng發表了一篇論文, 題目是《Phishing with Unicode Domains》,中文大意為“用unicode網址釣魚”,文章中給出的一一種釣魚 方法會使用多語言字元混合來騙過使用者眼睛。
2018年3月7日,知名數字貨幣交易平臺幣安遭到駭客攻擊,此次攻擊造成全球數字幣價格大跌。根據交易所的公告,攻擊者利用釣魚欺騙的方式騙取了部分使用者的認證憑證,在掌握使用者的賬戶許可權之後,使用機器掛單,繼而利用API發起大量交易,進行程式化高頻交易,給使用者帶來巨大損失。
3.2 數字貨幣錢包App面臨的威脅
利用移動數字貨幣錢包App管理數字貨幣資產,可以隨時查詢錢包歷史,獲得全球實時交易行情。數字貨幣錢包App中儲存的私鑰是區塊鏈節點和數字貨幣賬戶授權活動的直接手段,加密數字貨幣資產的安全性建立在加密數字錢包私鑰本身的安全性上,私鑰是唯一的數字資產憑證,敵手一旦拿到私鑰,就可以拿到私鑰所擔保的任何錢包,因此駭客會想方設法竊取私鑰。移動數字貨幣錢包App與其他App一樣,會遭受破解、記憶體篡改攻擊等。
1)私鑰竊取
Google Play 商店中超過2000款移動數字貨幣錢包App,由於移動開發過程中缺乏對安全性的認識,前30款總安裝量達到10萬的數字貨幣錢包App中,有94%包含至少3個“中等風險”漏洞,77%包含至少2個“高風險”問題。根據分析顯示,最常見的漏洞是資料儲存安全性不足、密碼系統安全性不足,這些漏洞會導致私鑰的竊取,個人隱私資訊洩露等安全事件。
一些數字貨幣錢包為了便於使用者記住私鑰,使用助記詞的方式,但是部分數字貨幣錢包的助記詞采用明文儲存的方式,一旦數字貨幣錢包App存在漏洞,拿到系統的root許可權,就可以獲取錢包的助記詞,導致數字資產隨時被盜取。已有公司對市面上的數字錢包產品在私鑰儲存問題上進行了安全分析,發現Bitcoin Wallet 和Jaxx BlockchainWallet兩款產品在私鑰儲存中存在巨大的安全漏洞,加密數字貨幣資產面臨被盜風險。駭客透過嘗試捕獲資訊、植入惡意軟體和/或使用社會工程即可從使用者機器中竊取私鑰。
2)破解攻擊
數字貨幣錢包App涉及到數字貨幣資產,是網路黑產和駭客重點關注的物件,網路黑產可以從各種渠道找到App的apk,將apk檔案逆向破解後植入病毒、木馬程式碼,最後二次打包投入公開市場,當不明真相的幣友將帶病毒、木馬的App下載後,會帶來巨大經濟損失。
在開發移動App時,程式設計師會用到各類的程式語言,如Java、C、C++以及各類指令碼語言等都被廣泛大量使用。但Java、 C這樣的中間語言有一個極大的弱點就是極易被反編譯。Java的基本類庫(JDK)是開源的,這就使很多Java開發的應用被逆向破解的門檻很低。目前市面上有大量的逆向破解工具,例如: Dex2Jar、 JEB、JD-GUI 等等。且網上有公開、詳細的破解教程,只要懂程式碼程式設計,利用這些工具就可以破解市面上那些防禦薄弱、存在大量安全漏洞的App。
3) App記憶體篡改攻擊
App應用中的高度敏感和關鍵性資訊駐留在一個應用記憶體中, 如果未受到保護,則這些資訊可以被隨意檢視和篡改。駭客通常使用程序除錯、動態注入、HOOK等技術來實現對App記憶體的攻擊,這些攻擊方式主要是先對App Code控制,App Data控制進行攻擊修改。透過控制記憶體中的應用程式碼,可以除錯解析出應用內邏輯、功能、流程、漏洞等各類關鍵內容。針對發現的漏洞植入相應的後門程式碼,以便針對應用進一步攻擊對移動應用資料的攻擊,是駭客/攻擊者的核心內容,App記憶體中包含很多重要個人資訊和應用變現相關的資訊和邏輯。駭客對記憶體中的Data進行控制,以達到篡改App應用的目的,如修改轉賬金額、賬戶等。
4. 區塊鏈面臨的安全挑戰
4.1錢包安全管理
區塊鏈錢包(Block Chain Wallet)是金鑰的管理工具,它只包含i金鑰而不是確切的某一個代幣;錢包中包含成對的私鑰和公鑰,私鑰與使用者的資產直接關聯,使用者用私鑰來簽名交易,從而證明該使用者擁有交易的輸出權。獲取了私鑰,就獲得了資產的使用權和交易權。駭客複製或竊取私鑰可能不會在計算機上留下任何痕跡,甚至可以無限地嘗試解密或嘗試從給定的分類帳中複製加密資料,惡意使用者訪問錢包可能很難被發現。
私鑰保護不僅要考慮在駭客機器上發生的行為,例如不受伺服器強加的查詢限制進行檔案解密嘗試或私鑰再現,還需要保證在沒有任何其他人能夠注意的情況下保證私鑰執行時的安全。
錢包軟體需要保護私鑰在執行和儲存時的安全,包括未經授權不允許訪問、執行過程防止被監控,甚至做到軟體被控制、監視也無法獲取私鑰:此外,也需要考忠使用者金鑰被盜、丟失後賬戶資產的安全。因此,如何保證私鑰的執行安全以及在保證資產安全的前提下進行私鑰備份是錢包安全管理面臨的挑戰。
4.2 智慧合約安全
由於智慧合約的不完善,且還存在著許多漏洞,執行起來仍然是一-件具有挑戰性的問題。一旦這些漏洞被駭客利用,就會造成虛擬貨幣的財產外洩,被不法分子盜取。在智慧合約中採用全同態加密技術,可保證區塊鏈中資料的隱私和資料在不可信環境下運算的正確性,但全同態加密技術距離實際應用還存在一定的距離。
智慧合約本質上是一段執行在區塊鏈網路中的程式碼,它界定了各方使用合約的條件,在滿足合約條件下某些機器指令被執行。而程式碼在設計和開發過程中,不可避免出現漏洞。開原始碼大約每1000 行就含有一個安全漏洞,表現最好的Linux kermel 2.6版本的安全漏洞率為每一千行程式碼0.127個。安全智慧合約的開發對程式設計師本身是一個挑戰。智慧合約作為新生事物,熟悉智慧合約的開發人員不多,受限於程式設計師的安全意識和程式碼編寫能力,可能在開發時無法意識到自己造成了安全隱患,極有可能給智慧合約帶來相當大程度的安全風險,智慧合約的程式碼可靠性難以保證。
此外,智慧合約還是多方業務的互動規則,智慧合約的安全不僅要考忠程式碼編寫時防止整數溢位等漏洞,且需要先進行智慧合約協議安全性分析,防止業務邏輯漏洞的出現。如何保證智慧合約的安全是區塊鏈安全面臨的一大挑戰。
4.3 隱私安全
區塊鏈是一種分散式賬本,意味著資料在網路上的所有參與方之間共享。一方面,這會對許多參與節點鏈的節點的可用性產生積極影響,使其更加健壯和有彈性。另一方面,可能會對機密性產生負面影響。
隱私問題主要包括,保護匿名性和區塊鏈中內容的機密性。區塊鏈最初的設計具備一定的匿 名性,但隨著技術的發展,也出現了一些追蹤技術。交易追蹤技術透過追蹤交易在網路中的傳播路徑,最終發現交易的始發節點,一旦將交易與始發節點的IP地址關聯,就可以將交易中的匿名賬號和使用者身份關聯,從而破壞了區塊鏈的匿名性。該技術有助於識別惡意交易者的身份資訊,分析數字貨幣的流向增強監管,但如果被攻擊者使用則會破壞使用區塊鏈的公司和組織的業務隱秘性,對公司和組織的利益造成損害。
的隱私安全一方面要 加密交易的內容,不能讓人看到另一方面,需要驗證交易的正確性,不能都加密。這兩者本身存在矛盾,也是.隱私保護技術上的挑戰。一般採用同態加密、零知識證明等前沿技術進行隱私保護,這些技術需要進行一系列的運算,勢必會影響系統效能。隱私保護技術在保證使用者隱私情況下同時兼顧系統效能,是隱私保護技術面臨的一大挑戰。
本文來源:梆梆安全研究院釋出的《》
更多區塊鏈資訊:www.qukuaiwang.com.cn/news