丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
政企安全 正文
發(fā)私信給李勤
發(fā)送

0

瘋狂“搬運”幣的黑客如何攻擊區(qū)塊鏈|干貨(二)

本文作者: 李勤 2018-05-09 18:01
導(dǎo)語:白帽匯安全研究院聯(lián)合安全智庫發(fā)布了一份《區(qū)塊鏈安全分析報告》,雷鋒網(wǎng)截取了其中“區(qū)塊鏈攻擊對象分析”部分章節(jié)。

雷鋒網(wǎng)編者按:“我們不生產(chǎn)幣,我們是幣的搬運工?!卑酌眳R安全研究院負責(zé)人鄧煥如此描繪他所觀察到黑客在區(qū)塊鏈幣世界的猖獗現(xiàn)象?!坝行┘夹g(shù)可以產(chǎn)品先行,但是自帶金融屬性的技術(shù)必須得安全先行?!卑酌眳R CEO 趙武這樣說。在專業(yè)的安全研究人員看來,黑客要想攻擊區(qū)塊鏈實在太簡單了,那么自帶金融屬性的區(qū)塊鏈又受到了哪些安全威脅?5月8日,白帽匯安全研究院聯(lián)合安全智庫發(fā)布了一份《區(qū)塊鏈安全分析報告》,雷鋒網(wǎng)截取了其中“區(qū)塊鏈攻擊對象分析”部分章節(jié)。

瘋狂“搬運”幣的黑客如何攻擊區(qū)塊鏈|干貨(二)

3.5         合約層

3.5.1     合約虛擬機

隨著區(qū)塊鏈技術(shù)的不斷升級,區(qū)塊鏈已經(jīng)具備在鏈上繁衍出多種應(yīng)用的功能,而實現(xiàn)這種功能的基礎(chǔ)就是合約虛擬機(用于運行各種智能合約的平臺),此技術(shù)的出現(xiàn)極大的提高了區(qū)塊鏈的可擴展性,是區(qū)塊鏈2.0的重要標志。

合約虛擬機的出現(xiàn)為合約代碼提供了沙盒式的執(zhí)行環(huán)境。

風(fēng)險

合約虛擬機運行在區(qū)塊鏈的各個節(jié)點上,接受并部署來自節(jié)點的智能合約代碼,若虛擬機存在漏洞或相關(guān)限制機制不完善,很可能運行來自攻擊者的惡意的智能合約。

針對合約虛擬機的安全風(fēng)險,我們分析總結(jié)了以下攻擊方式:

逃逸漏洞

虛擬機在運行字節(jié)碼的時候會提供一個沙盒環(huán)境,一般用戶只能在沙盒的限制中執(zhí)行相應(yīng)的代碼,此類型漏洞會使得攻擊者退出沙盒環(huán)境,執(zhí)行其他本不能執(zhí)行的代碼。

邏輯漏洞

虛擬機在發(fā)現(xiàn)數(shù)據(jù)或代碼不符合規(guī)范時,可能會對數(shù)據(jù)做一些“容錯處理”,這就導(dǎo)致可能會出現(xiàn)一些邏輯問題,最典型的是“以太坊短地址攻擊”。

堆棧溢出漏洞

攻擊者可通過編寫惡意代碼讓虛擬機去解析執(zhí)行,最終導(dǎo)致棧的深度超過虛擬機允許的最大深度,或不斷占用系統(tǒng)內(nèi)存導(dǎo)致內(nèi)存溢出。

此種攻擊可引發(fā)多種威脅,最嚴重的是造成命令執(zhí)行漏洞。

資源濫用漏洞

攻擊者可以在虛擬機上部署一份惡意代碼,消耗系統(tǒng)的網(wǎng)絡(luò)資源、存儲資源、計算資源、內(nèi)存資源。

所以在虛擬機中必須要有相應(yīng)的限制機制來防止系統(tǒng)的資源被濫用。

在以太坊中采用的是gas機制,攻擊者想要在以太坊虛擬機上做更多操作,需要付出經(jīng)濟代價。

案例

以太坊短地址漏洞:由于EVM并沒有嚴格校驗地址的位數(shù),并且還擅自自動補充消失的位數(shù),使得合約多發(fā)送很多代幣出來。

3.5.2     智能合約

智能合約是一種旨在以信息化方式傳播、驗證或執(zhí)行合同的計算機協(xié)議。智能合約允許在沒有第三方的情況下進行可信交易。這些交易可追蹤且不可逆轉(zhuǎn)。

風(fēng)險

智能合約本質(zhì)上是一份代碼程序,難免會有因為考慮不周的導(dǎo)致出現(xiàn)漏洞的情況,所以在發(fā)布一份智能合約之前,進行大量的模糊測試與白盒審計是必不可少的。

在將大量資金放入合約之前,合約應(yīng)當進行大量的長時間的測試。

至少應(yīng)該:

擁有100%測試覆蓋率的完整測試套件(或接近它)

在自己的testnet上部署

在公共測試網(wǎng)上部署大量測試和錯誤獎勵

徹底的測試應(yīng)該允許各種玩家與合約進行大規(guī)模互動

在主網(wǎng)上部署beta版以限制風(fēng)險總額

針對智能合約的安全風(fēng)險,我們分析總結(jié)了以下攻擊方式:

可重入攻擊

當智能合約A調(diào)用智能合約B時,智能合約B可以在被調(diào)用的函數(shù)中寫入“使智能合約A調(diào)用智能合約B”的代碼,這樣就造成了可重入攻擊。

比較典型的一個案例:

1.        智能合約A向智能合約B發(fā)起提現(xiàn)請求

2.        智能合約B向智能合約A轉(zhuǎn)賬,并調(diào)用智能合約A的回調(diào)函數(shù)

3.        智能合約A的回調(diào)函數(shù)中被寫入的操作是“智能合約A向智能合約B發(fā)起提現(xiàn)請求”。

4.        又回到了步驟1,一直循環(huán)步驟1234直到不滿足循環(huán)條件。

5.        提現(xiàn)結(jié)束

調(diào)用深度攻擊

在合約虛擬機中,會對智能合約的互相調(diào)用的深度定一個閾值,超過這個深度調(diào)用就會失敗,例如在以太坊EVM中,調(diào)用深度被限制為1024。

調(diào)用深度攻擊可以讓合約調(diào)用失敗,即使這個調(diào)用在邏輯上不存在任何問題,但是在虛擬機層面以及不被允許了,因為調(diào)用深度達到了虛擬機中的閾值,超過閾值不再往下執(zhí)行。

攻擊者可以通過控制調(diào)用深度,來使某些關(guān)鍵操作無法執(zhí)行,例如:轉(zhuǎn)賬、余額清零等。     

交易順序依賴攻擊

智能合約的執(zhí)行會隨著當前交易處理順序的不同而產(chǎn)生不同的結(jié)果。

場景:攻擊者發(fā)布一個解題合約,在合約中寫給出豐厚的解題獎勵。等有人提交了正確答案后,此時的答案還需要經(jīng)過其他節(jié)點的確認,合約才會執(zhí)行獎勵操作。此時攻擊者可以提交一個將獎勵額度調(diào)低的交易,這筆交易肯定是在獎勵操作的后面,理論上不會造成給答題人帶來損失。

但是,在區(qū)塊鏈項目中,交易順序并不是一成不變的,例如在以太坊中,交易順序就會隨著交易發(fā)布者的gas(交易費)的高低來決定先確認哪筆交易。

此時若攻擊者更改獎勵額度的交易給的交易費比較高,驗證節(jié)點會先執(zhí)行這筆交易,最終會導(dǎo)致答題人最后得到的獎勵額度是調(diào)低的額度。而攻擊者以一個較低的成本就買到了正確答案。

時間戳依賴攻擊

如果智能合約在敏感操作中依賴時間戳,可能會導(dǎo)致執(zhí)行結(jié)果被預(yù)測。

場景:若發(fā)布一個抽獎合約,抽獎結(jié)果由當前區(qū)塊的時間戳和其他因素組合計算而來,攻擊者可以通過提前嘗試不同的時間戳來計算這個抽獎結(jié)果,從而導(dǎo)致結(jié)果被預(yù)測。

誤操作異常攻擊

當合約A調(diào)用另外一個合約B的操作的時候,合約B操作的執(zhí)行可能會因為種種原因?qū)е聢?zhí)行失敗,從而退回到未執(zhí)行前的狀態(tài),此時合約A若不檢查合約B執(zhí)行的結(jié)果繼續(xù)往下執(zhí)行,會導(dǎo)致很多問題。

場景:合約A調(diào)用合約B的提現(xiàn)操作后并在合約A的余額中增加與提現(xiàn)額度一樣的數(shù)值。此時若沒檢查合約B的執(zhí)行提現(xiàn)操作的返回值,就可能會導(dǎo)致合約B中的余額并沒減少,而合約A中的余額卻已經(jīng)增加了。

整數(shù)溢出攻擊

在常見的程序語言中,對整數(shù)類型的變量一般都會有最大值和最小值。智能合約本質(zhì)上也是一份程序代碼,合約中的整數(shù)也會有相應(yīng)的最大值和最小值。一旦變量所存儲的值超過了最大值就會發(fā)生整數(shù)上溢錯誤,導(dǎo)致變量最后存儲的值為0,反之則是整數(shù)下溢錯誤,變量最后存儲的值為變量最大值。當然,溢出的情況并不限于以上整數(shù)上溢或者整數(shù)下溢,還可能會在計算、轉(zhuǎn)換等過程中發(fā)生溢出。

場景:假設(shè)某個智能合約中的余額為無符號整數(shù)類型,此類型的范圍為0~65535,當攻擊者通過某種方法使余額小于0時,它在智能合約中的余額將下溢為65535。使余額大于65535時,它在智能合約中的余額將上溢為0。

基于以太坊的多個ERC20智能合約就遭受過整形溢出漏洞的影響,如圖:該漏洞就是一個典型的整形溢出導(dǎo)致,繞過業(yè)務(wù)邏輯,能夠刷出大量的token。

ERC20相關(guān)的智能合約中就曾曝出過batchTransfer(CVE-2018–10299),SmartMesh 合約中transferProxy函數(shù),proxyTransfer函數(shù)(CVE-2018-10376),UET合約的 transferFrom函數(shù)(CVE-2018-10468),都出現(xiàn)過整形溢出的問題。

案例

1.        2016年6月發(fā)生了一起史上最大的智能合約事件,它就是著名的The DAO攻擊事件。導(dǎo)致價值6000萬美元的以太幣被盜,迫使以太幣被硬分叉為ETH和ETC。

2.        2017年7月,以太坊發(fā)生了Parity多重簽名錢包被盜事件,黑客從從三個高安全的多重簽名合約中竊取到超過15萬ETH(約3000萬美元)。

3.        2018年4月,BeautyChain(BEC)智能合約中出現(xiàn)了一個災(zāi)難性的漏洞(整形溢出漏洞),導(dǎo)致?lián)p失約10億美元

4.        2018年4月, SMT的智能合約漏洞(整形溢出)。

3.6         業(yè)務(wù)層

3.6.1     交易平臺

3.6.1.1         網(wǎng)絡(luò)帶寬

目前在網(wǎng)絡(luò)中有許多以區(qū)塊鏈作為底層技術(shù)的加密貨幣的交易平臺,用戶在通過交易平臺來購買和出售加密貨幣,對于主流的交易平臺,每天都有大量的用戶在平臺上進行交易,其網(wǎng)絡(luò)帶寬對于交易平臺來說至關(guān)重要。

風(fēng)險

針對交易平臺的安全風(fēng)險主要為拒絕服務(wù)攻擊:

拒絕服務(wù)攻擊

由于交易平臺對于網(wǎng)絡(luò)帶寬的存在高需求,所以一旦發(fā)生DDoS攻擊,對于平臺和整個行業(yè)來說是非常嚴重的。若交易平臺被DDoS攻擊,不但交易平臺蒙受損失,區(qū)塊鏈貨幣的交易量也將大大減少,間接影響區(qū)塊鏈貨幣的漲跌,在我們統(tǒng)計的安全事件中,以及調(diào)查的相關(guān)案例顯示目前只要是交易平臺上線都遭受到DDOS攻擊過。

場景:攻擊者首先通過DDOS使平臺無法訪問,此時通常一定會有相關(guān)的新聞資訊報道這次事件。然而普通大眾并分不清拒絕訪問攻擊與入侵的區(qū)別,在自己所使用的交易平臺被“攻擊”后,為了自己的資金安全通常會選擇轉(zhuǎn)向別的平臺,導(dǎo)致此平臺資金、用戶流失。

案例

1.     2017年5月12日,Poloniex交易平臺遭受了嚴重的DDoS攻擊,BTC/USDT的交易價格一度困于1761美元,絕大多數(shù)用戶都無法執(zhí)行訂單或是提取資金。

2.     2017年12月12日,比特幣交易平臺Bitfinex遭受嚴重DDoS攻擊,API癱瘓。消息傳出后,比特幣下跌1.1%,報16968美元。

3.6.1.2         賬戶體系

賬戶是交易平臺必須具備的基礎(chǔ)配置,賬戶是開戶的憑證,包含賬號和密碼,意味著你成為他們的用戶,平臺必須根據(jù)相關(guān)條約對你賬號的隱私、安全負責(zé)。

風(fēng)險

交易平臺為保證用戶的資金安全需要建立高強度的賬戶安全體系。具體需要做到如下幾點:

1.     防撞庫,人機識別

2.     進行敏感操作的時候啟用多因素認證

3.     邏輯縝密,務(wù)必要杜絕“密碼找回漏洞”、“登陸繞過”、“越權(quán)訪問/調(diào)用”等漏洞

4.     防暴力破解,對登陸頻率進行限制

5.     防cookie泄露,開啟httponly,杜絕XSS漏洞

6.     防跨站請求偽造,提交動作盡量使用POST并且增加token,杜絕CSRF漏洞

7.     若使用SSO、oauth等登陸方式,務(wù)必嚴格遵循協(xié)議標準實現(xiàn)

8.     賬號風(fēng)控

針對交易平臺賬戶體系的安全風(fēng)險,我們分析總結(jié)了以下攻擊方式:

撞庫攻擊

由于目前的網(wǎng)民普遍安全意識不足,經(jīng)常會使用通用的用戶名和密碼,在不同的網(wǎng)站上使用同樣的賬號和口令登陸。

導(dǎo)致攻擊者通過手機互聯(lián)網(wǎng)上已公開或還未公開的用戶名、郵箱、密碼等信息來在要攻擊的網(wǎng)站上通過程序批量嘗試。

場景:攻擊者通過網(wǎng)絡(luò)釣魚或者收集網(wǎng)絡(luò)上已公開的與區(qū)塊鏈相關(guān)網(wǎng)站的用戶數(shù)據(jù)(包括用戶名、密碼等)在目標交易平臺上使用程序自動化逐個嘗試,導(dǎo)致賬戶安全受到極大威脅。

窮舉攻擊

若網(wǎng)站不對登陸接口做請求限制或者風(fēng)控,會導(dǎo)致攻擊者可以無限發(fā)送請求逐個測試可能的值來暴力破解某些關(guān)鍵信息。

場景:

1.        在短信驗證中,若不對短信驗證碼的有效期做限制或者驗證接口做限制,很容易短信驗證碼被破解。

2.        若登陸接口未做請求限制,攻擊者可以通過大量的密碼字典來暴力破解某個賬戶的密碼。又或者說,攻擊者可以通過大量的用戶名字典來暴力破解密碼為某個值的用戶,比如密碼為123456的用戶。

單點登陸漏洞

在賬戶體系中此類漏洞比較隱蔽,攻擊者可以通過CSRF、XSS等手段來竊取用戶登陸的ticket,從而導(dǎo)致用戶賬號被竊取。

主要有以下攻擊面:

●  未使用HTTPS導(dǎo)致中間人劫持

●  Jsonp接口泄露ticket

●  CSRF漏洞竊取ticket

●  XSS漏洞竊取ticket

oAuth協(xié)議漏洞

oAuth協(xié)議到2.0實際上已經(jīng)足夠安全,但是只是協(xié)議安全,并不代表它的最終實現(xiàn)就沒有問題,在安全意識不足的情況下很容易導(dǎo)致出現(xiàn)一些潛在威脅,導(dǎo)致攻擊者可以通過CSRF等手段來越權(quán)登陸他人賬號。 

主要有以下攻擊面:

●  利用CSRF漏洞綁定劫持

●  利用redirect_uri授權(quán)劫持

●  利用scope權(quán)限控制不當越權(quán)訪問

案例

2017年10月2日,OKCoin旗下交易所出現(xiàn)大量賬戶被盜情況,不完全統(tǒng)計損失金額在一千余萬人民幣左右,用戶懷疑平臺已被攻擊,或有已被關(guān)閉平臺的交易所員工向黑客泄漏了平臺用戶的賬戶信息,黑客通過用戶信息破解賬戶密碼登錄平臺,然后在平臺上完成數(shù)字資產(chǎn)轉(zhuǎn)移。

3.6.1.3         支付體系

交易平臺內(nèi)充值、提現(xiàn)都涉及到了支付,所以完整的支付體系也是交易平臺必備的基礎(chǔ)配置。

風(fēng)險

針對交易平臺支付體系的安全風(fēng)險,我們分析總結(jié)了以下攻擊方式:

支付漏洞

凡是涉及到支付,則就有可能出現(xiàn)支付漏洞,且支付漏洞直接涉及到資金的安全問題,無論對平臺或是用戶來說都是高風(fēng)險,必須要謹慎對待。以下總結(jié)了支付體系中常見的問題:

1.     修改支付價格問題:在支付時未對支付價格做后端驗證,導(dǎo)致可以將價格調(diào)低甚至設(shè)為負數(shù)來通過交易獲得收入。

2.     修改購買數(shù)量問題:在支付的過程中,數(shù)量也同時決定著價格,比如:1個數(shù)量商品對應(yīng)的是100,2個數(shù)據(jù)就是200,那么當你修改這個值數(shù)量值為負數(shù)時,那么其金額也會變?yōu)樨摂?shù),最后就會導(dǎo)致支付問題的產(chǎn)生。

3.     最大值支付問題:通過購買大量商品使得最后的支付數(shù)額非常大,后端可能存在大整數(shù)溢出漏洞,當數(shù)值超過了某個閾值后,得到的結(jié)果會為0或者負數(shù)。

4.     越權(quán)支付問題:后端缺少驗證,導(dǎo)致可通過改包修改當前用戶ID使用他人余額進行支付。

案例

目前暫無實際攻擊曝光,但在某些層面可能存在致命安全隱患

3.6.1.4         業(yè)務(wù)邏輯

業(yè)務(wù)邏輯即交易平臺的業(yè)務(wù)流程或用戶操作流程,還包含交易平臺的交易策略和規(guī)范。

風(fēng)險

針對交易平臺業(yè)務(wù)邏輯的安全風(fēng)險,我們分析總結(jié)了以下攻擊方式:

邏輯漏洞

業(yè)務(wù)邏輯必須嚴謹,必須要對每段業(yè)務(wù)邏輯代碼進行大量的模糊測試與代碼審計,因為此類漏洞很難用傳統(tǒng)的方式發(fā)現(xiàn),只能借助于人的邏輯思維去思考其中可能出現(xiàn)的問題。目前常見的業(yè)務(wù)邏輯漏洞有如下幾種:

●  越權(quán)漏洞
●  驗證碼漏洞
●  條件競爭漏洞
●  認證漏洞

案例

目前暫無實際攻擊曝光,但在某些層面可能存在致命安全隱患

3.6.2     首次代幣發(fā)行(ICO)

ICO是類似于IPO的一種區(qū)塊鏈項目融資方式,用于項目的起步資金,與IPO不同的是:ICO是一種以幣換幣的融資行為,一般以比特幣或以太坊換取該項目代幣。

風(fēng)險

針對目前ICO的業(yè)務(wù)形態(tài),已經(jīng)發(fā)生了各種針對ICO業(yè)務(wù)的特定攻擊場景如下:

篡改攻擊

ICO在募集資金的時候,一般會在項目官網(wǎng)上掛出收款地址,然后投資人會陸續(xù)往此地址轉(zhuǎn)賬以換取相應(yīng)代幣。

攻擊場景:黑客通過域名劫持、web漏洞、或社會工程學(xué)等等之類的攻擊手段來篡改項目官網(wǎng)上的收款地址,此之后項目募集到的資金便落到了黑客的手中。

釣魚攻擊

攻擊者利用社會工程學(xué)等手段來冒充官方,使用戶向攻擊者的錢包地址中轉(zhuǎn)賬。

攻擊場景:

1.        利用近似域名+高度仿冒網(wǎng)站欺騙投資者

2.        利用電子郵件散步虛假信息,如ICO項目的收款地址更改通知等

3.        在社交軟件、媒體上散步釣魚信息來欺詐投資者

案例

2017年7月,CoinDash項目ICO收款地址遭到黑客篡改,價值約1000萬美元的eth流入黑客錢包。

3.6.3     礦工

3.6.3.1         礦機系統(tǒng)

普通的家用PC、服務(wù)器等,并不是挖礦最合適的設(shè)備。一些廠商為了減少挖礦成本以及提高挖礦效率,根據(jù)幣種的算法專門研發(fā)出了相應(yīng)的挖礦設(shè)備。并在上面搭建相應(yīng)的訪問來提供遠程訪問以及控制,這種專門用來進行挖礦的設(shè)備即被稱為礦機。

風(fēng)險

設(shè)備廠商們的安全防護意識是參差不齊的,而且由于其閉源的特性,其代碼的安全性無法被大眾檢查,一旦出現(xiàn)安全問題,結(jié)果就是致命的。

而且設(shè)備廠商是否會在設(shè)備中穿插后門進行遠程控制,亦或是偷偷竊取挖礦產(chǎn)出,這些都還有待商榷。

針對礦機系統(tǒng)的安全風(fēng)險,我們分析總結(jié)了以下攻擊方式:

0day漏洞攻擊

礦機系統(tǒng)大多都是屬于通用系統(tǒng),很少會定制開發(fā)。一般是廠家售賣礦機時自帶的,多個廠商肯能會使用同一套系統(tǒng),只是貼牌配置不一樣的硬件。

沒有絕對安全的系統(tǒng),礦機也不例外,一旦某個礦機系統(tǒng)被發(fā)現(xiàn)存在0day漏洞[15],那系統(tǒng)的安全壁壘將瞬間被打破,攻擊者可以利用漏洞拿到修改權(quán)限后進行獎勵接收地址篡改然后劫持用戶的獎勵。

所以有必要對礦機進行訪問控制以及網(wǎng)絡(luò)隔離,以及相應(yīng)的防護來抵御0day漏洞攻擊。

滲透攻擊

目前已經(jīng)有組織對礦機進行持續(xù)性的滲透攻擊,利用漏洞組合拳,最終獲取到系統(tǒng)的篡改控制權(quán)限威脅礦機的系統(tǒng)安全,該攻擊方式不限制于某一特定漏洞,最終以拿到系統(tǒng)權(quán)限為目的。

弱口令攻擊

目前市面的礦機系統(tǒng)都是以B/S架構(gòu),在訪問礦機系統(tǒng)一般是通過web或者是別的途徑,若是在礦機上使用弱密碼,則會極易遭到入侵。

獎勵接收地址篡改

在挖礦主機系統(tǒng)被攻陷后,可能利用各種漏洞,最終黑客目的都是為了獲取相關(guān)利益,而最直接的就是通過修改獎勵的接受地址來使受害者的收獲全部被黑客獲取。

案例

1.     2017年4月份,比特大陸旗下螞蟻礦機被指存在后門,可導(dǎo)致礦機被遠程關(guān)閉。若此攻擊發(fā)生,將導(dǎo)致比特幣區(qū)塊鏈中損失大量算力。

2.     以下某挖礦系統(tǒng)存在弱口令,可導(dǎo)致比特幣接受地址被篡改。

3.6.3.2         礦池

由于比特幣全網(wǎng)的運算水準在不斷的呈指數(shù)級別上漲,單個設(shè)備或少量的算力都無法在比特幣網(wǎng)絡(luò)上獲取到比特幣網(wǎng)絡(luò)提供的區(qū)塊獎勵。在全網(wǎng)算力提升到了一定程度后,過低的獲取獎勵的概率,促使一些“bitcointalk”(全球最大的比特幣論壇)上的極客開發(fā)出一種可以將少量算力合并聯(lián)合運作的方法,使用這種方式建立的網(wǎng)站便被稱作“礦池”(Mining Pool)。

在此機制中,不論個人礦工所能使用的運算力多寡,只要是透過加入礦池來參與挖礦活動,無論是否有成功挖掘出有效資料塊,皆可經(jīng)由對礦池的貢獻來獲得少量比特幣獎勵,亦即多人合作挖礦,獲得的比特幣獎勵也由多人依照貢獻度分享。

截止2018年4月,全球算力排名前五的比特幣礦池有:AntPool、BTC.com 、BTC.TOP、ViaBTC、F2Pool,目前全球約70%的算力在中國礦工手中。(以上數(shù)據(jù)來至https://btc.com/stats/pool)

風(fēng)險

針對礦池平臺的安全風(fēng)險以及礦池本身在區(qū)塊鏈網(wǎng)絡(luò)的特殊角色,我們分析總結(jié)了以下影響區(qū)塊鏈網(wǎng)絡(luò)的攻擊方式:

算力偽造攻擊

礦池會通過某種特定的工作量證明檢驗算法來檢驗當前礦工的實際算力,但是在算法的實現(xiàn)上可能不一定完美無瑕,當算法的實現(xiàn)上存在某種漏洞可以虛報算力時,會給礦池平臺帶來很大的經(jīng)濟損失。

因為當前礦工實際上并沒有給礦池貢獻那么高的算力,卻拿了與算力相當?shù)莫剟罘峙?,對于礦池中的其他礦工來說極其不公平。

場景:黑客通過尋找礦池算力檢驗算法的漏洞來虛報算力,然后獲取到與實際算力不想當?shù)某~獎勵。

扣塊攻擊

也叫做藏塊攻擊。在礦工參與礦池進行挖礦的過程中,只要有一個礦工解題成功,題解會上交給礦池,整個礦池所有的礦工便會共享這次的解題成果,并按照算力貢獻大小來分配獎勵。

但在實際情況中,礦池中的礦工可以不遵守規(guī)則,在得到題解后不回傳給礦池,而是選擇私吞,在這種情況下就會造成礦池利益的極大損失。

場景:礦池中的某節(jié)點在挖到區(qū)塊之后并不上交給礦池,而是選擇“私吞”,這樣既能享受礦池所帶來的福利,又能從挖礦中獲得利益。

自私采礦攻擊

自私采礦攻擊(Selfish  Mining  Attack)[11]是針對區(qū)塊鏈的一種典型攻擊。由于挖取像比特幣這樣的加密貨幣,對于一個礦工(Miner)來說,需要高計算能力來解決密碼難題(即工作量證明),因此采礦變得十分困難。鑒于此,一組礦工(Mining pool,采礦池)通常會相互組合起來,并在成功解決密碼難題之后,分享收到的獎勵。這樣有助于個體礦工在單獨采礦時產(chǎn)生較連續(xù)恒定的收入而不是很少的收益。Eyal和Sirer認為如果存在一群自私的礦工,采用自私的采礦戰(zhàn)略,并獲得成功,就可能會使誠實礦工的工作無效。這種自私采礦攻擊表現(xiàn)為:一個惡意的采礦池決定不發(fā)布它發(fā)現(xiàn)的塊,進而創(chuàng)建一個分叉,因此,網(wǎng)絡(luò)中就存在由誠實礦工維護的公共鏈和惡意采礦池的私人分叉惡意采礦池在此私人分叉下繼續(xù)進行挖掘,當私人分叉比公共鏈長的時候,惡意采礦池就發(fā)布該私人分叉,由于該分叉是當前網(wǎng)絡(luò)中最長的鏈,因此會被誠實的礦工認定為合法鏈,所以原公共鏈及其包含的誠實數(shù)據(jù)將被丟棄。研究結(jié)果表明,一般情況下惡意采礦池采用自私采礦策略將獲得更多的收益。

中心化問題(算力過于集中問題)

目前因為礦池的存在,違背了區(qū)塊鏈去中心化的原則,當?shù)V池做大,算力提高后,礦池變得過于集中,當算力達到全網(wǎng)的51%后,從理倫上來說,如果能夠控制整個網(wǎng)絡(luò)達到或超過51%以上的算力,將可以壟斷開采權(quán)、記賬權(quán)、分配權(quán),將影響區(qū)塊鏈的生態(tài)安全,這樣加密貨幣的信用體系將不復(fù)存在,加密貨幣體系也將徹底摧毀。

案例

1.     2014年5月份,Eligius礦池遭受扣塊攻擊,損失約300個比特幣,在當時價值約16萬美元

3.6.4     普通用戶

3.6.4.1         系統(tǒng)資源

在使用PoW共識機制的區(qū)塊鏈中,存在一個非常重要的角色,那就是“礦工”,他們的主要作用是:

1.     解題:礦工需要通過計算來解決每過一段時間產(chǎn)生的“數(shù)學(xué)難題”,并通過“解題答案”來證明自己的工作結(jié)果,從而獲取報酬。 

2.     對賬:對區(qū)塊內(nèi)的交易合法性以及其他礦工廣播的“解題答案”進行核對,確認交易沒有造假以及“解題答案”是正確的并蓋章。

3.     記賬:核對交易的合法性以及“解題答案”后,將這段時間的交易打包進新區(qū)塊中。

風(fēng)險

針對目前用戶的普通用戶計算資源被濫用,用于挖礦的安全風(fēng)險,我們分析總結(jié)了以下一些風(fēng)險點:

挖礦傀儡

并不是人人都愿意當“礦工”。對于黑客而言,通過一些漏洞獲得一些主機的權(quán)限或者網(wǎng)頁端來挖礦是很容易的,黑客可以輕易地在被入侵主機上部署挖礦程序,消耗主機的系統(tǒng)資源與電力,以此來獲取利益,目前市面上被黑客應(yīng)用最多的就是門羅幣(Monero),因為植入部署方便,導(dǎo)致現(xiàn)在很大一部分黑產(chǎn)團體從原來的篡改網(wǎng)頁,到現(xiàn)在直接植入挖礦腳本在網(wǎng)頁里。

案例

1.     2017年下旬,有人發(fā)現(xiàn)很多網(wǎng)站首頁中插入了coinhive平臺的JS挖礦代碼,使得大量訪問網(wǎng)站的人系統(tǒng)變慢,疑似為黑客篡改首頁權(quán)限導(dǎo)致。

2.     2018年初,上百款《荒野行動》游戲輔助被植入挖礦木馬,利用游戲主機的高性能來挖礦獲取利益。

3.     2017年至現(xiàn)在,很多攻擊者利用“永恒之藍”漏洞獲取大量主機權(quán)限,然后在受害者的系統(tǒng)內(nèi)長期潛伏挖礦。

3.6.4.2         錢包

區(qū)塊鏈的錢包指的是存儲區(qū)塊鏈資產(chǎn)的地址和私鑰的文件。

目前主流的錢包分為冷錢包和熱錢包。冷錢包是沒有聯(lián)網(wǎng)環(huán)境的,如市面上的硬件錢包就是冷錢包,由于其不聯(lián)網(wǎng)的特性,使得它的安全性要在熱錢包之上,但不方便交易。熱錢包是在線的,例如電腦客戶端錢包、手機APP錢包、網(wǎng)頁錢包等,都屬于熱錢包,它的交易是很方便的,但是安全性相對于冷錢包來說要低很多。

風(fēng)險

針對錢包的安全風(fēng)險,我們分析總結(jié)了以下攻擊方式:

錢包客戶端RPC API風(fēng)險

區(qū)塊鏈項目的客戶端中目前通常都會有RPC API接口,給用戶提供一個可程序化操作的接口,其中涉及到用戶的一些敏感操作,例如:轉(zhuǎn)賬。

所以API的訪問控制和鑒權(quán)至關(guān)重要,在沒有鑒權(quán)和訪問控制的情況下會造成如下攻擊場景,以eth客戶端geth為例。

場景:

1.        用戶開啟RPC API,此時API只能做常規(guī)查詢操作,并不能轉(zhuǎn)賬

2.        用戶執(zhí)行解鎖錢包操作,此時API能執(zhí)行轉(zhuǎn)賬操作并且無任何鑒權(quán)

3.        攻擊者趁機在此API上執(zhí)行轉(zhuǎn)賬操作

4.        代幣竊取完畢

釣魚攻擊

在目前的互聯(lián)網(wǎng)環(huán)境中,欺詐隨處可見,這種攻擊手段在區(qū)塊鏈應(yīng)用上也同樣受用。攻擊者可以偽造某個錢包客戶端,無論從界面和操作上都可以做到和真錢包沒有區(qū)別,可能他們只是在你轉(zhuǎn)賬的時候竊取你的私鑰信息或者在轉(zhuǎn)賬地址上動手腳,就可以輕易地偷偷竊取你的資產(chǎn)。

所以,客戶端一定要在官網(wǎng)下載,并驗證官網(wǎng)發(fā)布的客戶端文件hash是否與下載的客戶端文件hash一致。

私鑰竊取

因為私鑰信息至關(guān)重要,所以很多人會選擇將錢包私鑰文件多點備份,而備份得多或者備份點不安全都有可能導(dǎo)致錢包私鑰泄露。經(jīng)調(diào)研,目前針對比特幣的wallet.dat文件就出現(xiàn)在各個互聯(lián)網(wǎng)中,例如:OSS服務(wù)、網(wǎng)盤、GitHub、NAS服務(wù)器、Web服務(wù)等等互聯(lián)網(wǎng)可接入的地方,都能看到密鑰的存儲,這是極其危險的,甚至已經(jīng)有攻擊者開始針對密鑰文件進行專門掃描,以及開發(fā)相關(guān)的木馬病毒進竊取。

錢包軟硬件漏洞攻擊

錢包軟件本身可能因為其本身或是開放的一些服務(wù)存在漏洞,影響用戶的資金安全。

硬件廠商提供的錢包只是將錢包與線上網(wǎng)絡(luò)隔離,并不能保證其本身的安全性就足夠,由于其是封閉的,其代碼質(zhì)量對于大眾是未知,且不良廠商在其中穿插后門也不是并無可能。

在線錢包賬號竊取

由于在線錢包其方便、快捷等特性,使得很多人直接選擇使用在線錢包。所以個人的資產(chǎn)安全與服務(wù)商的安全是一個強綁定的關(guān)系,個人的資產(chǎn)過分依賴于外部保障其實和中心化的應(yīng)用比較類似,這與區(qū)塊鏈根本理念相沖突,同時也給個人資產(chǎn)帶來的很大風(fēng)險。

案例

1          2013年11月,比特幣在線錢包服務(wù)商Inputs.io遭受黑客攻擊,黑客透過電子郵件賬號進行入侵,進而劫持代管賬號,從中盜取了4100個比特幣(在當時折算為130萬美元)。

2          萊特幣假錢包客戶端盜幣事件,攻擊者通過修改開源錢包源代碼,將顯示的錢包地址固化為攻擊者的錢包地址再重新編譯,用戶使用此地址接收轉(zhuǎn)賬的時候很自然的就轉(zhuǎn)賬到了攻擊者的賬戶中。

3          Ledger 硬件錢包漏洞,該漏洞讓黑客可以在設(shè)備發(fā)貨之前和發(fā)貨之后竊取密碼。

4          2015年2月23日,比特幣錢包運營商比特幣存錢罐被盜,比特幣存錢罐官方表示:黑客于2014年6月30日入侵了平臺的Linode賬號,并修改了Linode賬號密碼和服務(wù)器的root密碼,從而入侵了服務(wù)器并且獲得了服務(wù)器的控制和管理權(quán)限,導(dǎo)致比特幣被盜。

5          在社區(qū)上,經(jīng)常有用戶表示自己的比特幣余額被盜,而原因大多與錢包私鑰泄露有關(guān)。

6          2018年3月25日,幣安發(fā)布公告表示部分社區(qū)ERC20錢包用戶收到一封冒充Binance名義發(fā)送的“Binance開啟ERC20私鑰綁定”詐騙郵件,郵件主要是為了盜取用戶的ERC20錢包私鑰。

7          2018年1月份,名錢包開發(fā)商 Electrum 近期針對其比特幣錢包的 JSONRPC 接口漏洞發(fā)布了安全補丁,這個漏洞能使攻擊者通過JSONPRNC接口獲取私人數(shù)據(jù)和加密貨幣。

3.6.4.3         交易所賬戶

要在交易所中進行交易需要注冊相應(yīng)的賬戶,有了交易所賬戶就可以很方便的在交易所內(nèi)進行買入賣出交易,相當于交易所賬戶掌握了你的數(shù)字貨幣的買賣權(quán)。

風(fēng)險

在交易所中的賬戶安全需要在各個方面都有保障,只要有一個短板就會面臨危險。

針對交易所賬戶的安全風(fēng)險,從用戶角度來說,我們分析總結(jié)了以下攻擊方式:

釣魚攻擊

通過仿冒交易所網(wǎng)站的域名和頁面來達到從視覺上欺騙受害者的手段,一般用來竊取用戶的交易所登陸口令,攻擊者拿到相關(guān)口令后開始進行轉(zhuǎn)賬操作。

中間人劫持攻擊

攻擊者可以在流量中轉(zhuǎn)處截獲流量,例如:路由器、網(wǎng)關(guān)等流量出口。不過好在目前多數(shù)的交易所一般都是采用https,在此方面問題不算大,但是不排除在某些API接口的子域名未使用https。

木馬劫持攻擊

木馬通過按鍵記錄,或是hook瀏覽器的方式來獲取交易所賬號的登陸口令或是直接劫持用戶的資產(chǎn),在歷史安全事件就有攻擊團體再各種相關(guān)虛擬貨幣網(wǎng)站,論壇社區(qū)發(fā)布帶有木馬的APP程序,來盜取劫持用戶。

案例

1.     2018年3月8日,幣安網(wǎng)公布部分幣安釣魚網(wǎng)站案例

2.     2017年8月份,一款名為Trickbot的木馬就針對包括Coinbase在內(nèi)的幾家數(shù)字貨幣交易所增加了web注入攻擊的功能,在受害者購買數(shù)字貨幣的時候和會將接受錢包重定向到攻擊者的錢包,讓用戶誤以為轉(zhuǎn)賬成功,其實最終轉(zhuǎn)賬操作都進了攻擊者的錢包。

3.6.4.4         交易所API

各大交易所為了滿足用戶需要調(diào)用平臺數(shù)據(jù)的需求,會開放一些API提供給用戶使用。交易所API大致分為兩類:

1.     公共 API 可以參考交易所的訂單狀況、公開的交易記錄、交易版信息。

2.     私有 API 可以確認交易所的新訂單及其取消、個人余額等信息,需要相應(yīng)的key才可以使用。

風(fēng)險

針對交易所API的安全風(fēng)險,我們分析總結(jié)了以下攻擊方式:

關(guān)鍵Key&Token竊取

私有API一般都涉及到用戶的一些敏感操作,例如:買入、賣出等操作。所以,API key一旦泄露,很可能會使自己的賬戶蒙受經(jīng)濟損失。而大部分人,甚至包括程序員都不一定有這種安全意識,存在key泄露的隱患,例如一些使用者,開發(fā)者可能有意或者無意就把相關(guān)的代碼配置信息同步在GitHub、公開網(wǎng)盤等互聯(lián)網(wǎng)公共區(qū)域,互聯(lián)網(wǎng)任意用戶都能輕易的通過一些檢索把這些敏感信息找出來。

案例

2018年3月8日,幣安網(wǎng)大量用戶API key泄露,通過泄露的key直接操作用戶買賣,導(dǎo)致一萬余枚的比特幣被用于購買其他幣種,造成幣市動蕩。而某些交易所的API key到目前截稿為止在GitHub還能搜到。

雷鋒網(wǎng)注:若想獲取整份報告,鏈接如下:https://www.bcsec.org。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

分享:
相關(guān)文章

編輯、作者

跟蹤互聯(lián)網(wǎng)安全、黑客、極客。微信:qinqin0511。
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說