區塊鏈面臨的安全威脅和挑戰

買賣虛擬貨幣
在技術安全範疇中,既有“傳統”網際網路世界中面臨的網路拒絕服務攻擊、程式碼漏洞等攻擊威脅,也包含區塊鏈獨有的風險點(如智慧合約漏洞)。2010年8月15 日,比特幣發生的程式碼漏洞攻擊事件中,有人在比特幣區塊鏈的第74638塊上發現了一條讓人驚愕的交易,這筆交易裡竟然出現了184,467.440737.09551616 個比特幣,其中各有922億個比特幣被髮送到兩個比特幣地址。這次攻擊的根本原因則是比特幣的驗證機制中存在大整數溢位漏洞,由於大整數溢位為負數,網路各個節點對駭客的交易均驗證透過,導致了比特幣區塊鏈中憑空出現了大量比特幣。本文將從區塊鏈的技術架構出發,分析基礎元件和設施安全風險、系統核心設計風險和應用生態面臨的安全威脅。1. 基礎元件和設施面臨的安全威脅基礎元件層利用基礎設施可以實現區塊鏈系統網路中資訊的記錄、驗證和傳播。在基礎元件層之中,區塊鏈是建立在傳播機制、驗證機制和儲存機制基礎上的一個分散式系統,整個網路沒有中心化的硬體或管理機構,任何節點都有機會參與總賬的記錄和驗證,將計算結果廣播傳送給其他節點,且任一節點的損壞或者退出都不會影響整個系統的運作。其對應的安全風險包括網路安全問題、密碼學安全問題和資料儲存安全問題。其中的資料儲存安全問題涉及內容安全層面,面臨有害資訊上鍊以及資源濫用等風險,限於篇幅,具體內容不展開介紹。1.1 密碼學安全威脅分析區塊鏈技術本身採用了密碼學的很多機制,例如非對稱加密、雜湊演算法等,這些密碼學演算法目前來講是相對安全的。隨著數學、密碼學和計算技術的發展,尤其是人工智慧和量子計算的興起,這些演算法面臨著被破解的可能性。同時,這些密碼演算法需要程式設計實現,在程式碼實現方面也可能存在缺陷和漏洞。
ECC、RSA、 雜湊等複雜加密演算法本身以及在演算法的工程實現過程中都可能存在後門和安全漏洞,進而危及整個區塊鏈驗證機制的安全性。具有超級計算能力量子計算機的出現也在對密碼學構成潛在威脅,隨著量子計算技術的飛速發展,大量子位元數的量子計算機、量子晶片、量子計算服務系統等相繼問世,可在秒級時間內破解非對稱密碼演算法中的大數因子分解問題(其破解擁有1024位金鑰的RSA演算法只需數秒),這正在成為威脅區塊鏈資料驗證機制的典型攻擊手段之一。2017年5月,新型數字加密貨幣IOTA團隊請求MIT研究組審計其軟體及程式碼。7月,MIT研究者告知IOTA團隊,他們發現了IOTA的加密雜湊功能函式Curl中存在嚴重的漏洞(雜湊碰撞),因此IOTA的數字簽名及PoW安全性均無法保障。8月,IOTA 團隊採用SHA-3替代掉了備受質疑的Curl雜湊演算法。移動數字錢包等區塊鏈客戶端軟體的安全實現涉及公私鑰的使用,而通常情況下使用者都是使用軟體來生成公私鑰,其中私鑰的安全性會直接涉及到使用者錢包或資產的安全問題,如果在不安全的環境中執行私鑰,會增加私鑰的洩露風險給使用者帶來不可預知的損失。目前,針對區塊鏈客戶端軟體進行攻擊的方法基本相同:一種方法是透過竊取憑據來尋求獲得系統未經授權的訪問許可權;另外一種方法則是透過捕獲資訊、植入惡意軟體和/或使用社會工程實現對使用者機器中私鑰的竊 取。2017年,以太坊瀏覽器Mist爆出“高危”漏洞,漏洞來源於底層軟體框架Electron, 這個漏洞讓加密數字貨幣私鑰處於未知風險。一再發生的區塊鏈金鑰被盜攻擊事件已經表明,一些程式正在生成弱金鑰,產生有限範圍的可能值,而透過這些有限的隨機數生成器生成的金鑰可以更容易地被蠻力攻擊。1.2 P2P網路安全威脅區塊鏈系統以P2P網路為基礎,針對P2P網路,攻擊者可以發動Eclipse日食攻擊、分割攻擊、延遲攻擊、竊聽攻擊、DDoS拒絕服務攻擊,進而造成整個區塊鏈系統的安全問題。在區塊鏈P2P網路中通常採用廣播機制來傳播節點資訊,而廣播機制中常見的攻擊方式則主要有雙花攻擊和交易延展性攻擊兩種。1)日食攻擊
日食攻擊是透過其他節點實施的網路層面攻擊,其攻擊手段是囤積和霸佔受害者的點對點連線間隙,將該節點保留在一個隔離的網路中。這種型別的攻擊旨在阻止最新的區塊鏈資訊進入到被攻擊的節點,從而隔離節點。比特幣和以太坊網路已被證實均能被實施日食攻擊。針對比特幣網路,攻擊者會先控制足夠數量的IP地址來壟斷所有受害節點之間的有效連線,之後攻擊者則會徵用受害者的挖掘能力,並用它來攻擊區塊鏈的一致性演算法或用於“重複支付和私自挖礦”。而針對以太坊網路,攻擊者會壟斷受害節點所有的輸入和輸出連線,將受害節點與網路中其他正常節點隔離開來,進而攻擊者會誘騙受害者檢視不正確的乙太網交易細節,誘騙賣家在交易其實還沒有完成的情況下將物品交給攻擊者。對比特幣網路上的節點實施日食攻擊需要成千上萬個惡意節點才能搞垮一個受害者的節點,而在以太坊網路上,攻擊者只需透過建立一個殭屍網路(如購買雲服務)就可以發起攻擊。論文《Low-Resource Eclipse Attacks on Ethereum' s Peer- to-Peer Network》指出:攻擊者只需要兩個惡意的以太坊節點就能隔離和影響另一個節點進行日食攻擊,因此對以太坊網路實施日食攻擊的成本較低。2)分割攻擊邊界閘道器協議(BGP)是因特網的關鍵組成部分,其主要用於確定路由路徑,而透過劫持BGP可以實現對基於物聯網資訊傳遞的區塊鏈節點流量的誤導和攔截。利用BGP操縱因特網路由路徑,在最近幾年中已經變得越來越頻繁。網路犯罪分子可以利用劫持BGP誤導和攔截流量,一旦區塊鏈網路中節點的流量被接管,會對整個網路造成巨大影響,如破壞共識機制、交易等各種資訊。攻擊者可以利用BGP劫持將區塊鏈網路劃分成兩個或多個無法通訊的獨立不相交網路,此時的區塊鏈分叉為兩條或多條並行鏈。攻擊停止後,區塊鏈會重新統一為一條鏈,以最長的鏈為主鏈,其他的鏈將被廢棄,被廢棄的鏈上的交易、獎勵將全部無效,從而導致雙重花費甚至是多次花費問題的出現。3)延遲攻擊
攻擊者可以利用BGP劫持來延遲目標的區塊更新,而且不被發現。在目標請求獲取最新區塊的時候,攻擊者可以基於中間人攻擊修改目標請求為獲取舊區塊的請求,使得目標獲得較舊的區塊。例如在挖礦過程中如果遭遇了延遲攻擊,礦工獲取最新塊的請求被惡意修改使其無法獲取到新區塊,這將導致礦工的算力無辜受損。4) DDoS攻擊區塊鏈網路中具有數以百萬計的線上使用者數,區塊鏈節點會提供大量的分散式儲存和網路頻寬可用資源服務於百萬線上使用者。攻擊者只需在層疊網路(應用層)中控制這些節點資源,而無需入侵區塊鏈網路節點所執行的主機,即可利用這些資源作為一個發起大型DDoS攻擊的放大平臺。理論而言,將區塊鏈網路作為DDoS攻擊引擎時,假如該網路中有一百萬個線上使用者,則可使得攻擊放大一百萬倍甚至更多。2017年2月份,以太坊Ropsten測試鏈遭到惡意攻擊,攻擊者發動了千萬級別的垃圾交易資訊,直接阻塞了網路的正常執行。2018年3月22日,閃電網路節點遭受DDoS攻擊,導致大約200個節點被迫離線,其線上節點從大約1,050 個降到了870個。根據攻擊方式的不同,基於區塊鏈的DDoS攻擊可分為主動攻擊和被動攻擊兩種。基於區塊鏈的主動DDoS攻擊是透過主動向網路節點傳送大量虛假資訊,使得針對這些資訊的後續訪問都指向受害者來達到攻擊效果,其具有可控性較強、放大倍數高等特點。這種攻擊利用了區塊鏈網路協議中的“推(push)” 機制,反射節點在短時間內接收到大量通知資訊後不易於分析和記錄,攻擊者還可以透過假冒源地址來躲避IP檢查,使得追蹤定位攻擊源更加困難。此外,主動攻擊在區塊鏈網路中引入額外流量,會降低區塊鏈網路的查詢和路由效能,而虛假的索引資訊則會影響檔案下載速度。基於區塊鏈的被動DDoS攻擊是透過修改區塊鏈客戶端或者伺服器軟體,被動等待來自其它節點的查詢請求,再透過返回虛假響應實現攻擊效果。通常情況下,其會採取一些放大措施來增強攻擊效果,如:部署多個攻擊節點、在一個響應訊息中多次包含目標主機、結合其它協議或者實現漏洞等。這種攻擊利用了區塊鏈網路協議中的“取(pul)”機制。被動攻擊屬於非侵擾式,對區塊鏈網路流量影響不大,通常只是針對區域性的區塊鏈節點。
5) 交易延展性攻擊區塊鏈節點與節點互相連線,當某節點接入到區塊鏈網路後,單個節點會與其他節點建立連線並擁有廣播資訊的資格,這些具備廣播資訊資格的節點在將資訊傳播給其他節點後,其他節點會驗證此資訊是否為有效資訊,確認無誤後再繼續向其他節點廣^播,這種廣播機制會面臨如交易延展性攻擊等風險攻擊者透過偵聽P2P網路中的交易,利用交易簽名演算法特徵修改原交易中的input簽名,生成擁有一樣input和output的新交易,廣播到網路中形成雙花,這樣原來的交易就可能有一定概率不被確認,在虛擬貨幣交易的情況下,它可以被用來進行二次存款或雙重提現。2013年11月,GHashio 礦池對賭博網站BetCoin Dice進行多次付款欺詐,進行雙花攻擊。2014年8月,線上黑市Silk Road2遭遇交易延展性攻擊,部分比特幣被盜,損失約260萬美元。2. 系統核心設計安全威脅智慧合約作為區塊鏈2.0區別於1.0的顯著特性,正在被廣泛使用。資料層和共識層作為區塊鏈系統的必要元素,與合約層一起共同構成了區塊鏈系統的核心,銜接著基礎服務與應用生態。
2.1 共識層安全威脅

由於區塊鏈去中心化的特點,每一個處於區塊鏈網路中的節點都擁有一份完整的賬本資料,並且由網路中的共識機制執行相應的共識演算法來共同記錄整個網路中的交易等相關資訊。目前的共識機制有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

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;