路由器設(shè)置實現(xiàn)DDoS防御教程
路由器設(shè)置實現(xiàn)DDoS防御的操作是什么呢?首先我們要認(rèn)識到做好DDoS防御之前我們要明白DDoS攻擊的原理是什么,然后我們針對原因逐一分析并采取措施。
一、路由器設(shè)置實現(xiàn)DDoS防御之DDoS攻擊原理討論
在分布式“拒絕服務(wù)”(DDoS)的攻擊過程中,一群惡意的主機(jī)或被惡意主機(jī)感染的主機(jī)將向受攻擊的服務(wù)器發(fā)送大量的數(shù)據(jù)。在這種情況下,靠近網(wǎng)絡(luò)邊緣的網(wǎng)絡(luò)節(jié)點將會變得資源枯竭。原因有二:一是靠近服務(wù)器的節(jié)點通常在設(shè)計時只要求處理少量的用戶數(shù)據(jù); 二是由于數(shù)據(jù)在網(wǎng)絡(luò)核心區(qū)的聚集使處于邊緣的節(jié)點會接收更多的數(shù)據(jù)。此外,服務(wù)器系統(tǒng)本身也很容易受到攻擊,在極度超載的情況下會癱瘓。
DDoS攻擊被視為一種資源管理問題。本文的目的就是要保護(hù)服務(wù)器系統(tǒng)在全局性網(wǎng)絡(luò)中不會收到過量的服務(wù)請求。當(dāng)然,這種機(jī)制也可以很容易地變?yōu)閷W(wǎng)絡(luò)節(jié)點的保護(hù)。為此,必須采取一種預(yù)防性措施:在攻擊性數(shù)據(jù)包聚集到使服務(wù)器癱瘓之前,在傳送路徑上的路由器中對流量進(jìn)行調(diào)節(jié),避免攻擊的發(fā)生。具體實現(xiàn)機(jī)制是要在與服務(wù)器有數(shù)級距離的上游路由器上設(shè)置門限值,只有在這個門限值以內(nèi)的數(shù)據(jù)量可以通過路由器,而其他數(shù)據(jù)將被放棄或路由至其他路由器。
這種防御系統(tǒng)中的一個主要因素是各個路由點輸出“適當(dāng)”的數(shù)據(jù)量。“適當(dāng)”必須視當(dāng)時的需求分配而定,因此服務(wù)器與網(wǎng)絡(luò)之間要進(jìn)行動態(tài)協(xié)商。本文中的協(xié)商方法由服務(wù)器(S)發(fā)起,如果服務(wù)器在低于設(shè)計容量(Us)的情況下運行,則不需要設(shè)置門限值;如果服務(wù)器的負(fù)載(Ls)超過了設(shè)計容量,則可以在服務(wù)器的上游設(shè)置門限值來進(jìn)行自我保護(hù)。此后,如果當(dāng)前的門限值不能使S的負(fù)載低于Us,則應(yīng)降低門限值;反之,如果Ls< Us,則應(yīng)升高門限值;如果門限值的升高沒有使負(fù)載在監(jiān)視期內(nèi)明顯增加,則可以取消門限值??刂扑惴ǖ哪繕?biāo)就是將服務(wù)器的負(fù)載控制在[Ls,Us]范圍之內(nèi)。
很顯然,不可能要求保留所有網(wǎng)絡(luò)服務(wù)器的狀態(tài)信息,因為這樣會造成狀態(tài)信息爆炸。但按需求選擇保護(hù)機(jī)制是可行的,這一觀點是基于DDoS攻擊是一種個別現(xiàn)象而非普遍情況的假設(shè)。在任何時間段內(nèi),我們認(rèn)定只有少數(shù)的網(wǎng)絡(luò)受到攻擊,大部分網(wǎng)絡(luò)在“健康”狀態(tài)下運行。此外,惡意攻擊者通常選擇那些訪問用戶最多的“主要站點”攻擊,這些站點就可以利用以下的網(wǎng)絡(luò)結(jié)構(gòu)來保證自身的安全。
二、路由器設(shè)置實現(xiàn)DDoS防御之系統(tǒng)的模式討論
本文提及的所有數(shù)據(jù)量和服務(wù)器負(fù)載量的單位均為 kbps。系統(tǒng)網(wǎng)絡(luò)拓?fù)鋱D如圖1所示。本文給出了網(wǎng)絡(luò)模型G=(V,E),其中V代表一系列節(jié)點,E表示邊緣。所有的葉狀節(jié)點均為主機(jī)和數(shù)據(jù)來源。內(nèi)部節(jié)點為路由器,路由器不會產(chǎn)生數(shù)據(jù)但可以接收來自主機(jī)的數(shù)據(jù)或轉(zhuǎn)發(fā)來自其他路由器的數(shù)據(jù)。R表示內(nèi)部路由節(jié)點,所有的路由器均假設(shè)是可以信任的。主機(jī) H=V-R,被分為普通的正常用戶Hg和惡意用戶Ha,E是網(wǎng)絡(luò)鏈路模型,默認(rèn)為雙向。
葉形節(jié)點V被當(dāng)作目標(biāo)服務(wù)器S。正常用戶以[0,rg]的速度將數(shù)據(jù)包發(fā)送到S。惡意攻擊者則以[0,ra]的速度向S發(fā)送數(shù)據(jù)包,從原則上講可以根據(jù)用戶通常如何訪問S(假設(shè)rg< < Us)來為rg設(shè)置一個合理的水平,但ra的取值很難確定,實際上ra的值大大高于rg。
當(dāng)S受到攻擊時,它會啟動前面談到的門限值防護(hù)機(jī)制。為了便于表示,假設(shè)一個超載的服務(wù)器仍然能夠啟動防護(hù)機(jī)制,因此沒有必要在每臺路由器上均設(shè)置門限值。R(k)表示與S相距k層的路由器或短于k層的路由器,但它們均直接與主機(jī)相連。
圖中的方塊節(jié)點表示主機(jī),圓形節(jié)點代表路由器。最左側(cè)的主機(jī)為目標(biāo)服務(wù)器S,R(3)中的路由器為圖中綠色的部分,請注意R(3)中最下層的路由器與S只相隔兩層,之所以將其包括在內(nèi)是因為它與主機(jī)直接相連
三、路由器設(shè)置實現(xiàn)DDoS防御之路由器門限值算法
在圖1的例子中,令每臺主機(jī)上的數(shù)字(S除外)減去當(dāng)前主機(jī)向S發(fā)送數(shù)據(jù)的速率。設(shè)Ls=18且Us=22,發(fā)往S的負(fù)載超出了Us,因此將在S處啟動門限值。算法運行結(jié)束之后,S確定門限值為6.25并將此速率定制到R(3)的各個路由器中。在圖1中路由器上方的數(shù)字表示到達(dá)S的數(shù)據(jù)速率,下方括號中的數(shù)字表示數(shù)據(jù)傳遞的速率(經(jīng)過調(diào)節(jié)后的)。經(jīng)過調(diào)節(jié)后S處的負(fù)載限制到了20.53,R(3)中經(jīng)過調(diào)節(jié)的速率是服務(wù)器負(fù)載的公平值。
目前為止僅討論了如何使用基本的門限值算法,R(k)將隨k的增加而快速增加。因此如果某些路徑?jīng)]有受到攻擊,則這些路徑上的路由器資源就會造成浪費。如果位于S和R(k)之間的路由器可以監(jiān)視通向S的分組數(shù)據(jù)速率,則可以在不影響性能的前提下使情況得到改善。
圖2為圖1中在S和R(3)之間引入了監(jiān)視路由器后的方式。請注意,圖中R(3)所屬的三個路由器的門限值被取消,因為在這些路徑上并沒有任何攻擊。
四、路由器設(shè)置實現(xiàn)DDoS防御各種考核測量標(biāo)準(zhǔn)
性能測量的一個基本指標(biāo)是門限值能在多大程度上防DDoS攻擊。除了基本指標(biāo),還必須考慮安裝這一機(jī)制的成本。因此,可采用下述評估標(biāo)準(zhǔn):
1.服務(wù)器中普通用戶的數(shù)量;
2.保護(hù)S時需要介入的路由器數(shù)量;
3.針對用戶需求變化的應(yīng)變能力。
一般來講,我們認(rèn)為攻擊者比普通用戶的攻擊性更強(qiáng)。但是某個惡意的攻擊能使其他大量的主機(jī)參與到惡意攻擊中來,雖然每個主機(jī)看上去像是一般的普通用戶,但它們加在一起仍然會造成DDoS攻擊。從本質(zhì)上說,防御此類攻擊比較困難。
在實際布置此類防護(hù)機(jī)制時必須遵守幾點要求。首先,必須保證門限值的可靠性,否則,機(jī)制本身就可能成為攻擊點。為了保證可靠性,門限值消息在被邊緣路由器接納到網(wǎng)絡(luò)中時,必須先進(jìn)行驗證。第二,必須保證這些消息能夠安全地從發(fā)起點到達(dá)目的點。由于門限值消息的發(fā)送量很小,其鑒權(quán)和傳輸優(yōu)先性應(yīng)該可以接受,而且,由于控制方法必須收到反饋,服務(wù)器可能會在瞬時超載,為了確保該調(diào)節(jié)機(jī)制仍能運行,可以使用協(xié)處理器或幫助設(shè)備。第三,門限值保護(hù)機(jī)制可能不會在整個網(wǎng)絡(luò)中得到支持,但只要受攻擊的路由上有一臺路由器支持此機(jī)制就行