公鏈和DDOS攻擊:防守反擊型節點設計

引言

DDOS(DistributedDenial of Service)分佈式拒絕服務攻擊,是最常用、最粗暴的網絡服務攻擊手段,其破壞性巨大。其主要特徵是處於不同位置的多個攻擊者同時向一個或者數個目標發起攻擊,或者一個或多個攻擊者控制了位於不同位置的多臺機器並利用這些機器對目標同時實施攻擊,惡意造成網絡服務不能正常運轉從而不能向正常用戶提供所需要的服務或者使得服務質量降低。針對區塊鏈公鏈的節點分佈式特徵和區塊數據全網同步特徵,本文設計了一種有效的區塊鏈防守攻擊型節點機制,在防範對區塊鏈節點做DDOS攻擊的同時,可對攻擊者發起懲罰性反擊,震懾並提高其做惡成本,維護合法DAPP開發者對區塊鏈的正常使用。

攻擊方式

區塊鏈公鏈作為一個開放的分佈式數據庫,最容易被進行DDOS攻擊,攻擊的技術方式一般有如下三種:

(1) 攻擊者向公鏈主網節點或公開節點服務器端口,使用Socket發起TCP請求,在建立通信前基於TCP三次握手協議,首先要協商,正常情況下,客戶端發送一個SYN數據包表示要進行通信,服務器收到該SYN包後回應一個ACK確認包,客戶端再回應一個確認包後握手通信就完成了。攻擊者通過操縱多個主機向被攻擊的服務器發送SYN數據包,當服務器回覆ACK確認包後,主機不再回應,這樣服務器就會保持這個半連接的並等待,這些很多的半連接會耗費極大的服務器I/O等資源,導致服務器不能正常工作。

公鏈和DDOS攻擊:防守反擊型節點設計

(2) 攻擊者使用無連接的UDP協議或ICMP協議,在短時間內向區塊鏈節點發送大量無用的數據包,飽和節點服務器的帶寬、內存和CPU資源,導致服務器的擁塞和癱瘓。

公鏈和DDOS攻擊:防守反擊型節點設計

(3) 攻擊者仿造正常DAPP應用,批量高頻地向區塊鏈發起偽交易,製造大量的垃圾交易數據,區塊鏈作為一個分佈式數據庫對業務數據語義本身是沒有判斷標準和判斷能力的,這些數據會被正常打包進入區塊,造成區塊數據龐大,嚴重影響區塊節點數據的同步效率和交易響應時長。

防守反擊

針對不同的區塊鏈DDOS攻擊方式,防守和反攻的方式不盡相同:

(1) 利用對稱性判斷分析TCP攻擊,通過檢查TCP鏈接池狀態,統計是否有大量ACK包存在並判斷其活動狀態,對異常鏈接主動斷開並收回系統I/O資源。

(2) 根據業務UDP包大小的正常範圍,過濾異常包大小的流量,丟棄UDP碎片。

(3) 直接過濾ICMP報文,如禁止PING協議等。

瞬間提高作惡用戶地址和對應合約地址的交易GAS消耗,做歸零處理

封閉其對應節點IP和用戶地址的交易請求,封閉正常區塊數據同步及用戶狀態請求

引入懲罰性區塊數據,讓該節點只能同步無效且數據量巨大的無用區塊數據,消耗該節點帶寬和存儲資源

公鏈和DDOS攻擊:防守反擊型節點設計

總結

當前市場上眾多公鏈之間的競爭歸根結底將是生態的競爭,誰能如似傳統App Store一樣吸引更多優秀開發者和更多優質DAPP誰就將最後勝出,其前提是公鏈開發者和運營者,必須通過經濟和技術手段解決好區塊鏈的安全性和真正大規模可用性問題,在去中心化、安全、效率這三角之間做好務實的平衡。


分享到:


相關文章: