萬盛學電腦網

 萬盛學電腦網 >> 安全資訊防護 >> 設置路由器門限值 預防DDoS攻擊

設置路由器門限值 預防DDoS攻擊

一、預防DDoS攻擊原理

在分布式“拒絕服務”(DDOS)的攻擊過程中,一群惡意的主機或被惡意主機感染的主機將向受攻擊的服務器發送大量的數據。在這種情況下,靠近網 絡邊緣的網絡節點將會變得資源枯竭。原因有二:一是靠近服務器的節點通常在設計時只要求處理少量的用戶數據; 二是由於數據在網絡核心區的聚集使處於邊緣的節點會接收更多的數據。此外,服務器系統本身也很容易受到攻擊,在極度超載的情況下會癱瘓。

DDOS攻擊被視為一種資源管理問題。本文的目的就是要保護服務器系統在全局性網絡中不會收到過量的服務請求。當然,這種機制也可以很容易地變為 對網絡節點的保護。為此,必須采取一種預防性措施:在攻擊性數據包聚集到使服務器癱瘓之前,在傳送路徑上的路由器中對流量進行調節,避免攻擊的發生。具體 實現機制是要在與服務器有數級距離的上游路由器上設置門限值,只有在這個門限值以內的數據量可以通過路由器,而其他數據將被放棄或路由至其他路由器。

這種防御系統中的一個主要因素是各個路由點輸出“適當”的數據量。“適當”必須視當時的需求分配而定,因此服務器與網絡之間要進行動態協商。本文 中的協商方法由服務器(S)發起,如果服務器在低於設計容量(Us)的情況下運行,則不需要設置門限值;如果服務器的負載(Ls)超過了設計容量,則可以 在服務器的上游設置門限值來進行自我保護。此後,如果當前的門限值不能使S的負載低於Us,則應降低門限值;反之,如果Ls< Us,則應升高門限值;如果門限值的升高沒有使負載在監視期內明顯增加,則可以取消門限值。控制算法的目標就是將服務器的負載控制在[Ls,Us]范圍之 內。

很顯然,不可能要求保留所有網絡服務器的狀態信息,因為這樣會造成狀態信息爆炸。但按需求選擇保護機制是可行的,這一觀點是基於DDOS攻擊是一 種個別現象而非普遍情況的假設。在任何時間段內,我們認定只有少數的網絡受到攻擊,大部分網絡在“健康”狀態下運行。此外,惡意攻擊者通常選擇那些訪問用 戶最多的“主要站點”攻擊,這些站點就可以利用以下的網絡結構來保證自身的安全。

二、系統的模式

本文提及的所有數據量和服務器負載量的單位均為 kbps。系統網絡拓撲圖如圖1所示。本文給出了網絡模型G=(V,E),其中V代表一系列節點,E表示邊緣。所有的葉狀節點均為主機和數據來源。內部節 點為路由器,路由器不會產生數據但可以接收來自主機的數據或轉發來自其他路由器的數據。R表示內部路由節點,所有的路由器均假設是可以信任的。主機 H=V-R,被分為普通的正常用戶Hg和惡意用戶Ha,E是網絡鏈路模型,默認為雙向。

葉形節點V被當作目標服務器S。正常用戶以[0,rg]的速度將數據包發送到S。惡意攻擊者則以[0,ra]的速度向S發送數據包,從原則上講可 以根據用戶通常如何訪問S(假設rg< < Us)來為rg設置一個合理的水平,但ra的取值很難確定,實際上ra的值大大高於rg。

當S受到攻擊時,它會啟動前面談到的門限值防護機制。為了便於表示,假設一個超載的服務器仍然能夠啟動防護機制,因此沒有必要在每台路由器上均設置門限值。R(k)表示與S相距k層的路由器或短於k層的路由器,但它們均直接與主機相連。

圖中的方塊節點表示主機,圓形節點代表路由器。最左側的主機為目標服務器S,R(3)中的路由器為圖中綠色的部分,請注意R(3)中最下層的路由器與S只相隔兩層,之所以將其包括在內是因為它與主機直接相連。

三、門限值算法

在圖1的例子中,令每台主機上的數字(S除外)減去當前主機向S發送數據的速率。設Ls=18且Us=22,發往S的負載超出了Us,因此將在S 處啟動門限值。算法運行結束之後,S確定門限值為6.25並將此速率定制到R(3)的各個路由器中。在圖1中路由器上方的數字表示到達S的數據速率,下方 括號中的數字表示數據傳遞的速率(經過調節後的)。經過調節後S處的負載限制到了20.53,R(3)中經過調節的速率是服務器負載的公平值。

目前為止僅討論了如何使用基本的門限值算法,R(k)將隨k的增加而快速增加。因此如果某些路徑沒有受到攻擊,則這些路徑上的路由器資源就會造成浪費。如果位於S和R(k)之間的路由器可以監視通向S的分組數據速率,則可以在不影響性能的前提下使情況得到改善。

copyright © 萬盛學電腦網 all rights reserved