做個好人走到底2星評價
2020-11-03 11:35:10
區(qū)塊鏈是一道打開新世界的大門,它仿佛讓我們看到了一個透明、公平的世界,但是殊不知這道門也面臨著各種攻擊,有些什么樣的攻擊呢?
交易延展性攻擊,也叫交易可塑性攻擊。在現(xiàn)實生活中,我們把一塊金子敲變形之后,雖然形狀有所改變,但質(zhì)量卻沒有發(fā)生變化,也就是說金子外觀發(fā)生了變化但是仍然被認可,這種特性呢被稱為“可鍛性”。
在比特幣系統(tǒng)中,也有一個類似的名詞,“ Transaction Malleability ”。這個詞通常翻譯為“交易延展性”,也叫做“交易可鍛性”,而利用交易延展性而造成的攻擊就叫交易延展性攻擊。
具體指的是比特幣交易 A 發(fā)出之后,在還沒有被確認之前,攻擊者通過修改某些交易數(shù)據(jù),使得一筆交易的唯一標識——交易哈希發(fā)生了改變,就形成了新的交易 B ,假如交易 B 先被記錄到比特幣賬本中,那么交易 A 會因為雙重支付問題,被驗證為不合法,從而拒絕。
一個現(xiàn)實的例子就是:小黑從交易所發(fā)起提幣,然后他提幣這個交易就被廣播出去了,在他這筆交易還沒有被節(jié)點驗證之前,小黑進行了延展性攻擊,恰好攻擊產(chǎn)生的新交易先被確認,而新交易照樣會讓他獲得幣(就像金子外觀變了一樣被認可),但是貪心的小黑卻向交易所申訴自己并沒有收到幣,交易所一看之前給小黑轉(zhuǎn)幣的那筆交易確實被拒絕了,因此又給小黑匯了一筆幣,小黑心里就美滋滋了,貪心的小黑還不滿足,他又以同樣的攻擊方式繼續(xù)多次攻擊,這樣就導(dǎo)致了交易所的資金大量流失。
所以當遇到交易無法確認時,需要立即停止,應(yīng)當根據(jù)區(qū)塊鏈上的交易報錯信息以及查看是否在短時間內(nèi)已經(jīng)發(fā)起了這樣的交易,再進行手動處理。
“粉塵”的意思是少量的幣(比如 1 聰就是“粉塵”,它只有 0.00000001 比特幣)。通常情況下,很少人的交易金額會那么少,因為交易手續(xù)費就已經(jīng)超過交易金額。
正是由于“粉塵”很小所以容易被用戶忽視,這一現(xiàn)象被小黑(詐騙者)注意到了,因此小黑就像向用戶的錢包地址轉(zhuǎn)入“粉塵”,而收到這些“粉塵”的用戶并沒有引起注意,這些粉塵是收到的,但是還沒有花費出去的,所以這些“粉塵”就和原來錢包地址里那些收到但還沒有花費的幣( UTXO )混在了一起。
區(qū)塊鏈中的三大常見攻擊手段介紹
不過現(xiàn)在的問題不大,只是混在了一起而已,真正的問題是使用這筆未花費的費用,當傻乎乎的把這筆錢用來向別的地址轉(zhuǎn)賬或其他交易的時候,就可能會用到這些“粉塵”,這個時候“粉塵”就悄悄地隨著的交易跑到了別的用戶地址里,一直跟蹤。
這些“粉塵”就像熒光劑一樣,把用戶的行為一五一十的描述了出來,進而被小黑跟蹤到,小黑就利用這些線索來猜測的身份,進而對進行威脅和勒索。這就是粉塵攻擊。
要怎么避免這種攻擊呢?上面已經(jīng)提到真正出現(xiàn)問題的地方在于用了混有“粉塵”的未花費的貨幣,如果不花費這筆費用,“粉塵”就不會跑,小黑也就無法追蹤了,然而我們不能要求因為這些“粉塵”就永遠不花費那一池子的其他未花費的貨幣,因此一些錢包(比如:Electron Cash )可以把這些粉塵單獨標記起來,提醒用戶們不要去使用這些粉塵,相當于把粉塵和池子里其他的未花費貨幣隔離開,這樣就可以安安心心地使用之前那些未花費的貨幣啦。從而有效的避免了粉塵攻擊。
女巫攻擊又叫 Sybil 攻擊,名字來源于電影《女巫》( Sybli ),講的是一個有 16 種人格的女人心理治療的故事。而在區(qū)塊鏈中的女巫攻擊呢,指的是一個惡意的節(jié)點非法地對外呈現(xiàn)多個身份。
這就有點像小時候我們玩的“手拉手”游戲,當新的小朋友加入我們這個游戲圈的時候,他會去牽旁邊人的手,進而對旁邊的人有了進一步的認識。在區(qū)塊鏈中也是這樣,任何網(wǎng)絡(luò)節(jié)點是可以發(fā)送加入的請求消息的,收到請求消息的其他節(jié)點會立即做出響應(yīng),回復(fù)其鄰居節(jié)點信息。
可是有些小朋友為了認識更多的小伙伴,就每次換一個面具,這樣就可以到不同的位置去牽別的小朋友。惡意節(jié)點就像這個惡搞的小朋友,它對外偽裝成多個身份,這樣就可以獲取大量的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點信息,以便進一步的攻擊和破壞。
解決女巫攻擊的一種方法是工作量證明機制,即用計算能力去證明你是一個節(jié)點,這樣極大地增加了攻擊的成本。
另一個方法是身份認證,可以是基于第三方可靠節(jié)點的認證。就像在所有參加游戲的小伙伴中選出眼睛最亮的那個,這樣來避免大家被搞怪小朋友的面具蒙騙。身份認證也可以是全節(jié)點制的認證。這就相當于每個小朋友都要對惡搞小朋友進行身份審核,這樣就大大降低了惡搞小朋友成功偽裝多個身份的幾率。
天天快樂楊君8星評價
2020-10-24 11:38:48
目前對區(qū)塊鏈網(wǎng)絡(luò)安全威脅最大的3種攻擊方式:Sybil攻擊、Eclipse攻擊和DDoS攻擊。
本文將重點講解上述三種攻擊方式的原理,以供有關(guān)機構(gòu)參考,在開發(fā)基于區(qū)塊鏈網(wǎng)絡(luò)的應(yīng)用系統(tǒng)時采取措施加強防范。
Sybil攻擊最初是由Douceur在點對點網(wǎng)絡(luò)環(huán)境中提出的,他指出這種攻擊破壞了分布式存儲系統(tǒng)中的冗余機制,并提出直接身份驗證和間接身份驗證兩種驗證方式。后來,Chris Karlof等人指出Sybil攻擊對傳感器網(wǎng)絡(luò)中的路由機制同樣存在著威脅。
Sybil攻擊,又稱女巫攻擊,是指一個惡意結(jié)點非法地對外呈現(xiàn)出多個身份,通常把該結(jié)點的這些身份稱為Sybil結(jié)點。Sybil攻擊方式主要有以下幾種類型:直接通信、間接通信、偽造身份、盜用身份、同時攻擊、非同時攻擊。
在區(qū)塊鏈網(wǎng)絡(luò)中,用戶創(chuàng)建新身份或者新節(jié)點是不需要代價的,攻擊者可以利用這一漏洞發(fā)動Sybil攻擊,偽造自己的身份加入網(wǎng)絡(luò),在掌握了若干節(jié)點或節(jié)點身份之后,隨意做出一些惡意的行為。例如誤導(dǎo)正常節(jié)點的路由表,降低區(qū)塊鏈網(wǎng)絡(luò)節(jié)點的查找效率;或者在網(wǎng)絡(luò)中傳輸非授權(quán)文件,破壞網(wǎng)絡(luò)中文件共享安全,消耗節(jié)點間的連接資源等,而且不用擔心自己會受到影響。圖2示出了在區(qū)塊鏈網(wǎng)絡(luò)中攻擊者進行Sybil攻擊的原理。
Sybil攻擊對區(qū)塊鏈網(wǎng)絡(luò)的影響主要體現(xiàn)在以下幾個方面:
1. 虛假節(jié)點加入:在遵循區(qū)塊鏈網(wǎng)絡(luò)協(xié)議的基礎(chǔ)上,任何網(wǎng)絡(luò)節(jié)點都可以向區(qū)塊鏈網(wǎng)絡(luò)發(fā)送節(jié)點加入請求消息;收到請求消息的區(qū)塊鏈節(jié)點會立即做出響應(yīng),回復(fù)其鄰居節(jié)點信息。利用這個過程,Sybil攻擊者就可以獲取大量的區(qū)塊鏈網(wǎng)絡(luò)節(jié)點信息來分析區(qū)塊鏈網(wǎng)絡(luò)拓撲,以便更高效地對區(qū)塊鏈網(wǎng)絡(luò)進行攻擊或破壞。
2. 誤導(dǎo)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點的路由選擇:節(jié)點間路由信息的實時交互是保證區(qū)塊鏈網(wǎng)絡(luò)正常運行的關(guān)鍵因素之一。節(jié)點只需定時地向其鄰居節(jié)點宣告自己的在線情況,就能保證自己被鄰居節(jié)點加入到其路由表中。惡意的Sybil入侵者通過這個過程,可以入侵正常區(qū)塊鏈節(jié)點的路由表,誤導(dǎo)其路由選擇,大大降低區(qū)塊鏈節(jié)點的路由更新和節(jié)點查找效率,極端情況下,會導(dǎo)致Eclipse攻擊。
3. 虛假資源發(fā)布:Sybil攻擊者一旦入侵區(qū)塊鏈網(wǎng)絡(luò)節(jié)點的路由表,就可以隨意發(fā)布自己的虛假資源。區(qū)塊鏈網(wǎng)絡(luò)的目的是實現(xiàn)用戶間資源的分布式共享,如果網(wǎng)絡(luò)中充斥著大量的虛假資源,那么在用戶看來,這將是無法接受的。
Moritz Steiner等人在Kad網(wǎng)絡(luò)中提出了Eclipse攻擊,并且給出了該攻擊的原理。Eclipse攻擊是指攻擊者通過侵占節(jié)點的路由表,將足夠多的虛假節(jié)點添加到某些節(jié)點的鄰居節(jié)點集合中,從而將這些節(jié)點“隔離”于正常區(qū)塊鏈網(wǎng)絡(luò)之外。當節(jié)點受到Eclipse攻擊時,節(jié)點的大部分對外聯(lián)系都會被惡意節(jié)點所控制,由此惡意節(jié)點得以進一步實施路由欺騙、存儲污染、拒絕服務(wù)以及ID劫持等攻擊行為。因此,Eclipse攻擊對區(qū)塊鏈網(wǎng)絡(luò)的威脅非常嚴重。
區(qū)塊鏈網(wǎng)絡(luò)的正常運行依賴于區(qū)塊鏈節(jié)點間路由信息的共享。Eclipse攻擊者通過不斷地向區(qū)塊鏈節(jié)點發(fā)送路由表更新消息來影響區(qū)塊鏈節(jié)點的路由表,試圖使普通節(jié)點的路由表充滿虛假節(jié)點。當區(qū)塊鏈節(jié)點的路由表中虛假節(jié)點占據(jù)了較高的比例時,它對區(qū)塊鏈網(wǎng)絡(luò)的正常行為,包括路由查找或者資源搜索,都將被惡意節(jié)點所隔絕開,這也是這種攻擊被稱為月食攻擊的原因。圖3示出了在區(qū)塊鏈網(wǎng)絡(luò)中攻擊者進行Eclipse攻擊的原理。
Eclipse攻擊和Sybil攻擊密切相關(guān),它需要較多的Sybil攻擊節(jié)點相配合。為了實現(xiàn)對特定區(qū)塊鏈節(jié)點群的Eclipse攻擊,攻擊者必須首先設(shè)置足夠多的Sybil攻擊節(jié)點,并且向區(qū)塊鏈網(wǎng)絡(luò)宣稱它們是“正?!钡墓?jié)點,然后使用這些Sybil節(jié)點與正常的區(qū)塊鏈節(jié)點通信,入侵其路由表,最終把它們從區(qū)塊鏈網(wǎng)絡(luò)中隔離出去。
Eclipse攻擊對區(qū)塊鏈網(wǎng)絡(luò)的影響十分重大。對于區(qū)塊鏈網(wǎng)絡(luò)來說,Eclipse攻擊破壞了網(wǎng)絡(luò)的拓撲結(jié)構(gòu),減少了節(jié)點數(shù)目,使得區(qū)塊鏈網(wǎng)絡(luò)資源共享的效率大大降低,在極端情況下,它能完全控制整個區(qū)塊鏈網(wǎng)絡(luò),把它分隔成若干個區(qū)塊鏈網(wǎng)絡(luò)區(qū)域。對于受害的區(qū)塊鏈節(jié)點來說,它們在未知的情況下脫離了區(qū)塊鏈網(wǎng)絡(luò),所有區(qū)塊鏈網(wǎng)絡(luò)請求消息都會被攻擊者劫持,所以它們得到的回復(fù)信息大部分都是虛假的,無法進行正常的資源共享或下載。
DDoS攻擊是一種對區(qū)塊鏈網(wǎng)絡(luò)安全威脅最大的攻擊技術(shù)之一,它指借助于C/S技術(shù),將多個計算機聯(lián)合起來作為攻擊平臺,對一個或多個目標發(fā)動攻擊,從而成倍地提高拒絕服務(wù)攻擊的威力。
傳統(tǒng)的DDoS攻擊分為兩步:第一步利用病毒、木馬、緩沖區(qū)溢出等攻擊手段入侵大量主機,形成僵尸網(wǎng)絡(luò);第二部通過僵尸網(wǎng)絡(luò)發(fā)起DoS攻擊。常用的攻擊工具包括:Trinoo、TFN、TFN2K、Stacheldraht等。由于各種條件限制,攻擊的第一步成為制約DDoS攻擊規(guī)模和效果的關(guān)鍵。
新型的DDoS攻擊不需要建立僵尸網(wǎng)絡(luò)即可發(fā)動大規(guī)模攻擊,不僅成本低、威力巨大,而且還能確保攻擊者的隱秘性。圖4示出了在區(qū)塊鏈網(wǎng)絡(luò)中攻擊者進行DDoS攻擊的原理。
區(qū)塊鏈網(wǎng)絡(luò)中具有數(shù)以百萬計的同時在線用戶數(shù),這些節(jié)點提供了大量的可用資源,例如分布式存儲和網(wǎng)絡(luò)帶寬。如果利用這些資源作為一個發(fā)起大型DDoS攻擊的放大平臺,就不必入侵區(qū)塊鏈網(wǎng)絡(luò)節(jié)點所運行的主機,只需要在層疊網(wǎng)絡(luò)(應(yīng)用層)中將其控制即可。理論上說,將區(qū)塊鏈網(wǎng)絡(luò)作為DDoS攻擊引擎,如果該網(wǎng)絡(luò)中有一百萬個在線用戶,則可以將攻擊放大一百萬倍甚至更多。
根據(jù)攻擊方式的不同,基于區(qū)塊鏈的DDoS攻擊可分為主動攻擊和被動攻擊兩種?;趨^(qū)塊鏈的主動DDoS攻擊是通過主動地向網(wǎng)絡(luò)節(jié)點發(fā)送大量的虛假信息,使得針對這些信息的后續(xù)訪問都指向受害者來達到攻擊效果的,具有可控性較強、放大倍數(shù)高等特點。這種攻擊利用區(qū)塊鏈網(wǎng)絡(luò)協(xié)議中基于“推(push)”的機制,反射節(jié)點在短時間內(nèi)會接收到大量的通知信息,不易于分析和記錄,并且可以通過假冒源地址避過IP檢查,使得追蹤定位攻擊源更加困難。此外,主動攻擊在區(qū)塊鏈網(wǎng)絡(luò)中引入額外流量,會降低區(qū)塊鏈網(wǎng)絡(luò)的查找和路由性能;虛假的索引信息,會影響文件下載速度。
基于區(qū)塊鏈的被動DDoS攻擊通過修改區(qū)塊鏈客戶端或者服務(wù)器軟件,被動地等待來自其它節(jié)點的查詢請求,再通過返回虛假響應(yīng)來達到攻擊效果。通常情況下,會采取一些放大措施來增強攻擊效果,如:部署多個攻擊節(jié)點、在一個響應(yīng)消息中多次包含目標主機、結(jié)合其它協(xié)議或者實現(xiàn)漏洞等。這種攻擊利用了區(qū)塊鏈網(wǎng)絡(luò)協(xié)議中基于“取(pull)”的機制。被動攻擊屬于非侵擾式,對區(qū)塊鏈網(wǎng)絡(luò)流量影響不大,通常只能利用到局部的區(qū)塊鏈節(jié)點。
小結(jié)
Sybil攻擊是Eclipse攻擊成功實施的基礎(chǔ)。Sybil攻擊的目標是單個物理節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)上產(chǎn)生大量不同的身份,成功的Sybil攻擊可以使發(fā)動Eclipse攻擊變得更為容易。對單個節(jié)點進行DDoS攻擊的前提是向區(qū)塊鏈網(wǎng)絡(luò)發(fā)布大量的虛假消息或被動地做出虛假響應(yīng),Eclipse攻擊可以幫助攻擊者劫持網(wǎng)絡(luò)節(jié)點間傳遞的信息,增大成功實施DDoS攻擊的可能性。
Sybil攻擊只是冒充單個區(qū)塊鏈網(wǎng)絡(luò)節(jié)點,對區(qū)塊鏈網(wǎng)絡(luò)的影響是比較小的;Eclipse攻擊使得部分區(qū)塊鏈節(jié)點脫離區(qū)塊鏈網(wǎng)絡(luò),這對受攻擊的節(jié)點來說是無法接受的;DDoS攻擊的目的是大量占用受害節(jié)點的資源,使其無法正常提供服務(wù),因此DDoS攻擊對區(qū)塊鏈網(wǎng)絡(luò)的影響是致命的。