系列回顧:
區(qū)塊鏈安全入門筆記(一)
公鏈 Public Blockchain
公有鏈(Public Blockchain)簡稱公鏈,是指全世界任何人都可隨時進入讀取、任何人都能發(fā)送交易且能獲得有效確認的共識區(qū)塊鏈。公鏈通常被認為是完全去中心化的,鏈上數(shù)據(jù)都是公開透明的,不可更改,任何人都可以通過交易或挖礦讀取和寫入數(shù)據(jù)。一般會通過代幣機制(Token)來鼓勵參與者競爭記賬,來確保數(shù)據(jù)的安全性。
由于要檢測所有的公鏈的工作量非常大,只靠一家公司不可能監(jiān)測整個區(qū)塊鏈生態(tài)安全問題,這就導致了黑客極有可能在眾多公鏈之中找尋到漏洞進行攻擊。2017 年 4 月 1 日,Stellar 出現(xiàn)通脹漏洞,一名攻擊者利用此漏洞制造了 22.5 億的 Stellar 加密貨幣 XLM,當時價值約 1000 萬美元。
交易所 Exchange
與買賣股票的證券交易所類似,區(qū)塊鏈交易所即數(shù)字貨幣買賣交易的平臺。數(shù)字貨幣交易所又分為中心化交易所和去中心化交易所。
去中心化交易所:交易行為直接發(fā)生在區(qū)塊鏈上,數(shù)字貨幣會直接發(fā)回使用者的錢包,或是保存在區(qū)塊鏈上的智能合約。這樣直接在鏈上交易的好處在于交易所不會持有用戶大量的數(shù)字貨幣,所有的數(shù)字貨幣會儲存在用戶的錢包或平臺的智能合約上。去中心化交易通過技術手段在信任層面去中心化,也可以說是無需信任,每筆交易都通過區(qū)塊鏈進行公開透明,不負責保管用戶的資產(chǎn)和私鑰等信息,用戶資金的所有權完全在自己手上,具有非常好的個人數(shù)據(jù)安全和隱私性。目前市面上的去中心化交易所有 WhaleEx、Bancor、dYdX 等
中心化交易所:目前熱門的交易所大多都是采用中心化技術的交易所,使用者通常是到平臺上注冊,并經(jīng)過一連串的身份認證程序(KYC)后,就可以開始在上面交易數(shù)字貨幣。用戶在使用中心化交易所時,其貨幣交換不見得會發(fā)生在區(qū)塊鏈上,取而代之的可能僅是修改交易所數(shù)據(jù)庫內的資產(chǎn)數(shù)字,用戶看到的只是賬面上數(shù)字的變化,交易所只要在用戶提款時準備充足的數(shù)字貨幣可供匯出即可。當前的主流交易大部分是在中心化交易所內完成的,目前市面上的中心化交易所有幣安,火幣,OKEx 等。
由于交易所作為連接區(qū)塊鏈世界和現(xiàn)實世界的樞紐,儲存了大量數(shù)字貨幣,它非常容易成為黑客們覬覦的目標,截止目前全球數(shù)字貨幣交易所因安全問題而遭受損失金額已超過 29 億美元(數(shù)據(jù)來源 SlowMist Hacked)。數(shù)字貨幣領域,攻擊者的屠戮步伐從未停止。激烈的攻防對抗之下,防守方處于絕對的弱勢,其攻擊手法多種多樣,我們會在之后的文章中為大家進行介紹。職業(yè)黑客往往會針對數(shù)字貨幣交易所開啟定向打擊,因此慢霧安全團隊建議各方交易所加強安全建設,做好風控和內控安全,做到:“早發(fā)現(xiàn),早預警,早止損。”
相關交易所防御建議可參考:
慢霧紅色警報:交易所接連被黑的防御建議
節(jié)點 Node
在傳統(tǒng)互聯(lián)網(wǎng)領域,企業(yè)所有的數(shù)據(jù)運行都集中在一個中心化的服務器中,那么這個服務器就是一個節(jié)點。由于區(qū)塊鏈是去中心化的分布式數(shù)據(jù)庫,是由千千萬萬個“小服務器”組成。區(qū)塊鏈網(wǎng)絡中的每一個節(jié)點,就相當于存儲所有區(qū)塊數(shù)據(jù)的每一臺電腦或者服務器。所有新區(qū)塊的生產(chǎn),以及交易的驗證與記帳,并將其廣播給全網(wǎng)同步,都由節(jié)點來完成。節(jié)點分為“全節(jié)點”和“輕節(jié)點”,全節(jié)點就是擁有全網(wǎng)所有的交易數(shù)據(jù)的節(jié)點,那么輕節(jié)點就是只擁有和自己相關的交易數(shù)據(jù)節(jié)點。由于每一個全節(jié)點都保留著全網(wǎng)數(shù)據(jù),這意味著,其中一個節(jié)點出現(xiàn)問題,整個區(qū)塊鏈網(wǎng)絡世界也依舊能夠安全運行,這也是去中心化的魅力所在。
RPC
遠程過程調用(Remote Procedure Call,縮寫為 RPC)是一個計算機通信協(xié)議。以太坊 RPC 接口是以太坊節(jié)點與其他系統(tǒng)交互的窗口,以太坊提供了各種 RPC 調用:HTTP、IPC、WebSocket 等等。在以太坊源碼中,server.go 是核心邏輯,負責 API 服務的注入,以及請求處理、返回。http.go 實現(xiàn) HTTP 的調用,websocket.go 實現(xiàn) WebSocket 的調用,ipc.go 實現(xiàn) IPC 的調用。以太坊節(jié)點默認在 8545 端口提供了 JSON RPC 接口,數(shù)據(jù)傳輸采用 JSON 格式,可以執(zhí)行 Web3 庫的各種命令,可以向前端(例如 imToken、Mist 等錢包客戶端)提供區(qū)塊鏈上的信息。
以太坊黑色情人節(jié)漏洞
ETH Black Valentine's Day
2018 年 3 月 20 日,慢霧安全團隊觀測到一起自動化盜幣的攻擊行為,攻擊者利用以太坊節(jié)點 Geth/Parity RPC API 鑒權缺陷,惡意調用 eth_sendTransaction 盜取代幣,持續(xù)時間長達兩年,單被盜的且還未轉出的以太幣價值就高達現(xiàn)價 2 千萬美金(以當時 ETH 市值計算),還有代幣種類 164 種,總價值難以估計(很多代幣還未上交易所正式發(fā)行)。通過慢霧安全團隊獨有的墨子(MOOZ)系統(tǒng)對全球約 42 億 IPv4 空間進行掃描探測,發(fā)現(xiàn)暴露在公網(wǎng)且開啟 RPC API 的以太坊節(jié)點有 1 萬多個。這些節(jié)點都存在被直接盜幣攻擊的高風險。這起利用以太坊 RPC 鑒權缺陷實施的自動化盜幣攻擊,已經(jīng)在全球范圍內對使用者造成了非常嚴重的經(jīng)濟損失。
漏洞詳情及修復方案可點擊:
以太坊生態(tài)缺陷導致的一起億級代幣盜竊大案
以太坊黑色情人節(jié)事件數(shù)據(jù)統(tǒng)計及新型攻擊手法披露








