本發(fā)明涉及計算機網路技術領域,尤其涉及一種UDP FLOOD攻擊的清洗方法及系統(tǒng)。
背景技術:
拒絕服務攻擊(DoS, Denial of Service)是指利用各種服務請求耗盡被攻擊網絡的系統(tǒng)資源,從而使被攻擊網絡無法處理合法用戶的請求。而隨著僵尸網絡的興起,同時由于攻擊方法簡單、影響較大、難以追查等特點,又使得分布式拒絕服務攻擊(DDoS,Distributed Denial of Service)得到快速壯大和日益泛濫。成千上萬主機組成的僵尸網絡為DDoS攻擊提供了所需的帶寬和主機,形成了規(guī)模巨大的攻擊和網絡流量,對被攻擊網絡造成了極大的危害。
隨著DDoS攻擊技術的不斷提高和發(fā)展,ISP、ICP、IDC等運營商面臨的安全和運營挑戰(zhàn)也不斷增多,運營商必須在DDoS威脅影響關鍵業(yè)務和應用之前,對流量進行檢測并加以清洗,確保網絡正常穩(wěn)定的運行以及業(yè)務的正常開展。同時,對DDoS攻擊流量的檢測和清洗也可以成為運營商為用戶提供的一種增值服務,以獲得更好的用戶滿意度。
而多種DDoS攻擊方式,又以UDP_FLOOD的危害最大,UDP攻擊往往能夠制造巨大的攻擊流量,不僅極大的影響被攻擊的服務器,甚至可能令運營商的傳輸網絡癱瘓,造成災難性的損失,所以必須有效地清洗處理UDP FLOOD攻擊流量。
目前的UDP FLOOD攻擊清洗方法一般有兩種,其一是使用UDP報文限流的方式;其二是通過統(tǒng)計報文特征,過濾大量特征相同的報文。
以上兩種方法都有明顯的缺點,第一種使用限流的方式,會把正常的UDP 報文也過濾掉,實際上由于攻擊流量的巨大,相對較小的正常流量,在限流方式下,根本不可能被正常通過,此種方式只能用于保障其他相鄰服務器不受攻擊流量的影響;而第二種利用報文特征的手段來過濾報文,首先報文特征統(tǒng)計會極大地影響處理性能,而特征字段抽取的多與少都會極大的影響清洗準確率。
目前比較普遍的UDP FLOOD攻擊都是新型的反射型攻擊流量,這種流量的載體內容一般都比較隨機,要應付新舊型UDP FLOOD攻擊,只統(tǒng)計報文特征的手段已不再適用。
技術實現(xiàn)要素:
為了解決上述技術問題,本發(fā)明的目的是提供一種能準確發(fā)現(xiàn)并過濾UDP攻擊流量的一種UDP FLOOD攻擊的清洗方法及系統(tǒng)。
本發(fā)明所采取的技術方案是:
一種UDP FLOOD攻擊的清洗方法,包括以下步驟:
A、對預設的特定檢測端口進行初始化;
B、當接收到報文時,判斷該報文的類型是否為UDP報文,若是,則執(zhí)行步驟C;反之,則放行該報文;
C、獲取該報文的源地址、源端口、目標端口和報文校驗碼;
D、根據(jù)該報文的源地址、源端口、目標端口和報文校驗碼,計算得出該報文的負載內容校驗碼;
E、根據(jù)該報文的負載內容校驗碼,從而進行傳統(tǒng)UDP攻擊檢測,并對通過檢測的報文執(zhí)行步驟F;反之,則對負載內容檢測狀態(tài)進行標記并執(zhí)行步驟G;
F、根據(jù)預設的特定檢測端口,對報文進行新型反射型UDP攻擊檢測,并對通過檢測的報文執(zhí)行步驟G;反之,則對端口檢測狀態(tài)進行標記后再執(zhí)行步驟G;
G、判斷負載內容檢測狀態(tài)或端口檢測狀態(tài)是否為需過濾,若是,則丟棄該報文;反之,則進行變種UDP攻擊檢測,并對通過檢測的報文執(zhí)行步驟H;
H、對該報文進行分片檢測,并對通過檢測的報文進行放行。
作為所述的一種UDP FLOOD攻擊的清洗方法的進一步改進,所述步驟E包括:
E1、根據(jù)該報文的負載內容校驗碼,對負載內容進行頻率統(tǒng)計,得到負載內容頻率;
E2、判斷該負載內容頻率是否大于預設的負載內容頻率閾值,若是,則將負載內容檢測狀態(tài)標記為需過濾,并執(zhí)行步驟G;反之,則執(zhí)行步驟F。
作為所述的一種UDP FLOOD攻擊的清洗方法的進一步改進,所述步驟F包括:
F1、對預設的特定檢測端口進行報文頻率統(tǒng)計,得到端口報文頻率;
F2、判斷端口報文頻率是否大于預設的端口頻率閾值,若是,則將端口檢測狀態(tài)標記為需過濾,并執(zhí)行步驟G;反之,則直接執(zhí)行步驟G。
作為所述的一種UDP FLOOD攻擊的清洗方法的進一步改進,所述的變種UDP攻擊檢測,其具體為:
根據(jù)該報文的負載內容的前16字節(jié),判斷是否均滿足以下所有條件:
第1字節(jié)=第2字節(jié);
第1~2字節(jié)=第3~4字節(jié);
第1~4字節(jié)=第5~8字節(jié);
第1~8字節(jié)=第9~16字節(jié);
若是,則丟棄該報文;反之,則該報文通過變種UDP攻擊檢測。
作為所述的一種UDP FLOOD攻擊的清洗方法的進一步改進,所述步驟H包括:
H1、判斷該報文的類型是否為分片,若是,則執(zhí)行步驟H2;反之,則將該報文的源地址存入放行記錄中并放行該報文;
H2、判斷該報文的源地址是否在放行記錄中,若是,放行該報文;反之,則丟棄該報文。
本發(fā)明所采用的另一技術方案是:
一種UDP FLOOD攻擊的清洗系統(tǒng),包括:
端口初始化單元,用于對預設的特定檢測端口進行初始化;
UDP判斷單元,用于當接收到報文時,判斷該報文的類型是否為UDP報文,若是,則執(zhí)行信息獲取單元;反之,則放行該報文;
信息獲取單元,用于獲取該報文的源地址、源端口、目標端口和報文校驗碼;
校驗碼計算單元,用于根據(jù)該報文的源地址、源端口、目標端口和報文校驗碼,計算得出該報文的負載內容校驗碼;
傳統(tǒng)攻擊檢測單元,用于根據(jù)該報文的負載內容校驗碼,從而進行傳統(tǒng)UDP攻擊檢測,并對通過檢測的報文執(zhí)行反射型攻擊檢測單元;反之,則對負載內容檢測狀態(tài)進行標記并執(zhí)行過濾判斷單元;
反射型攻擊檢測單元,用于根據(jù)預設的特定檢測端口,對報文進行新型反射型UDP攻擊檢測,并對通過檢測的報文執(zhí)行過濾判斷單元;反之,則對端口檢測狀態(tài)進行標記后再執(zhí)行過濾判斷單元;
過濾判斷單元,用于判斷負載內容檢測狀態(tài)或端口檢測狀態(tài)是否為需過濾,若是,則丟棄該報文;反之,則進行變種UDP攻擊檢測,并對通過檢測的報文執(zhí)行分片檢測單元;
分片檢測單元,用于對該報文進行分片檢測,并對通過檢測的報文進行放行。
作為所述的一種UDP FLOOD攻擊的清洗系統(tǒng)的進一步改進,所述傳統(tǒng)攻擊檢測單元包括:
負載內容頻率統(tǒng)計單元,用于根據(jù)該報文的負載內容校驗碼,對負載內容進行頻率統(tǒng)計,得到負載內容頻率;
負載內容頻率判斷單元,用于判斷該負載內容頻率是否大于預設的負載內容頻率閾值,若是,則將負載內容檢測狀態(tài)標記為需過濾,并執(zhí)行過濾判斷單元;反之,則執(zhí)行反射型攻擊檢測單元。
作為所述的一種UDP FLOOD攻擊的清洗系統(tǒng)的進一步改進,所述反射型攻擊檢測單元包括:
端口報文頻率統(tǒng)計單元,用于對預設的特定檢測端口進行報文頻率統(tǒng)計,得到端口報文頻率;
端口報文頻率判斷單元,用于判斷端口報文頻率是否大于預設的端口頻率閾值,若是,則將端口檢測狀態(tài)標記為需過濾,并執(zhí)行過濾判斷單元;反之,則直接執(zhí)行過濾判斷單元。
作為所述的一種UDP FLOOD攻擊的清洗系統(tǒng)的進一步改進,所述的變種UDP攻擊檢測,其具體為:
根據(jù)該報文的負載內容的前16字節(jié),判斷是否均滿足以下所有條件:
第1字節(jié)=第2字節(jié);
第1~2字節(jié)=第3~4字節(jié);
第1~4字節(jié)=第5~8字節(jié);
第1~8字節(jié)=第9~16字節(jié);
若是,則丟棄該報文;反之,則該報文通過變種UDP攻擊檢測。
作為所述的一種UDP FLOOD攻擊的清洗系統(tǒng)的進一步改進,所述分片檢測單元包括:
分片判斷單元,用于判斷該報文的類型是否為分片,若是,則執(zhí)行步驟H2;反之,則將該報文的源地址存入放行記錄中并放行該報文;
源地址判斷單元,用于判斷該報文的源地址是否在放行記錄中,若是,放行該報文;反之,則丟棄該報文。
本發(fā)明的有益效果是:
本發(fā)明一種UDP FLOOD攻擊的清洗方法及系統(tǒng)通過統(tǒng)計預設的特定端口的端口報文頻率,能夠準確發(fā)現(xiàn)并過濾新型反射型攻擊流量,并通過統(tǒng)計負載內容的真實校驗碼頻率和取特征于負載內容的前16字節(jié),能夠準確識別傳統(tǒng)的UDP攻擊流量。本發(fā)明在準確的鑒別新舊UDP流量的基礎上,進一步過濾UDP攻擊所產生的分片流量,相比傳統(tǒng)的限流方式,本發(fā)明能免除去大量地統(tǒng)計報文特征帶來的性能損耗,面對即使數(shù)十Gbps的流量,也一樣能夠輕松應對,大大提高清除效果。
附圖說明
下面結合附圖對本發(fā)明的具體實施方式作進一步說明:
圖1是本發(fā)明一種UDP FLOOD攻擊的清洗方法的步驟流程圖;
圖2是本發(fā)明一種UDP FLOOD攻擊的清洗方法中傳統(tǒng)攻擊檢測的步驟流程圖;
圖3是本發(fā)明一種UDP FLOOD攻擊的清洗方法中反射型攻擊檢測的步驟流程圖;
圖4是本發(fā)明一種UDP FLOOD攻擊的清洗方法中分片檢測的步驟流程圖;
圖5是本發(fā)明一種UDP FLOOD攻擊的清洗系統(tǒng)的模塊方框圖。
具體實施方式
參考圖1,本發(fā)明一種UDP FLOOD攻擊的清洗方法,包括以下步驟:
A、對預設的特定檢測端口進行初始化;
B、當接收到報文時,判斷該報文的類型是否為UDP報文,若是,則執(zhí)行步驟C;反之,則放行該報文;
C、獲取該報文的源地址、源端口、目標端口和報文校驗碼;
D、根據(jù)該報文的源地址、源端口、目標端口和報文校驗碼,計算得出該報文的負載內容校驗碼;
E、根據(jù)該報文的負載內容校驗碼,從而進行傳統(tǒng)UDP攻擊檢測,并對通過檢測的報文執(zhí)行步驟F;反之,則對負載內容檢測狀態(tài)進行標記并執(zhí)行步驟G;
F、根據(jù)預設的特定檢測端口,對報文進行新型反射型UDP攻擊檢測,并對通過檢測的報文執(zhí)行步驟G;反之,則對端口檢測狀態(tài)進行標記后再執(zhí)行步驟G;
G、判斷負載內容檢測狀態(tài)或端口檢測狀態(tài)是否為需過濾,若是,則丟棄該報文;反之,則進行變種UDP攻擊檢測,并對通過檢測的報文執(zhí)行步驟H;
H、對該報文進行分片檢測,并對通過檢測的報文進行放行。
參考圖2,進一步作為優(yōu)選的實施方式,所述步驟E包括:
E1、根據(jù)該報文的負載內容校驗碼,對負載內容進行頻率統(tǒng)計,得到負載內容頻率;
E2、判斷該負載內容頻率是否大于預設的負載內容頻率閾值,若是,則將負載內容檢測狀態(tài)標記為需過濾,并執(zhí)行步驟G;反之,則執(zhí)行步驟F。
參考圖3,進一步作為優(yōu)選的實施方式,所述步驟F包括:
F1、對預設的特定檢測端口進行報文頻率統(tǒng)計,得到端口報文頻率;
F2、判斷端口報文頻率是否大于預設的端口頻率閾值,若是,則將端口檢測狀態(tài)標記為需過濾,并執(zhí)行步驟G;反之,則直接執(zhí)行步驟G。
進一步作為優(yōu)選的實施方式,所述的變種UDP攻擊檢測,其具體為:
根據(jù)該報文的負載內容的前16字節(jié),判斷是否均滿足以下所有條件:
第1字節(jié)=第2字節(jié);
第1~2字節(jié)=第3~4字節(jié);
第1~4字節(jié)=第5~8字節(jié);
第1~8字節(jié)=第9~16字節(jié);
若是,則丟棄該報文;反之,則該報文通過變種UDP攻擊檢測。
參考圖4,進一步作為優(yōu)選的實施方式,所述步驟H包括:
H1、判斷該報文的類型是否為分片,若是,則執(zhí)行步驟H2;反之,則將該報文的源地址存入放行記錄中并放行該報文;
H2、判斷該報文的源地址是否在放行記錄中,若是,放行該報文;反之,則丟棄該報文。
其中,由于一些UDP FLOOD攻擊容易產生IP分片,因為IP分片并沒有UDP報文頭字段,本方法通過記錄放行的正常源地址,以此來選擇放行分片報文,達到能夠徹底清洗UDP FLOOD攻擊流量的目的。
本發(fā)明實施例中,預設的負載內容頻率閾值設為100,預設的端口頻率閾值設為100,則具體實施例如下:
S1、建立全局數(shù)組reply_sport,并初始化預設的特定檢測端口reply_sport[53, 1900, 123, 19, 520, 5353, 17, 137, 138, 139, 111, 161, 69]的值為1;
S2、建立全局數(shù)組sport_count、check_count、accept_ip、drop_sport、drop_check;
S3、當接收到報文時,判斷該報文的類型是否為UDP報文,若是,則執(zhí)行步驟S4;反之,則放行該報文;
S4、取出報文源地址sip、源端口sport、目標端口dport、校驗碼check;
S5、根據(jù)該報文的源地址、源端口、目標端口和報文校驗碼,按照如下方法算出報文屏蔽源地址、源端口和目標端口后的負載內容校驗碼:
sum=0, o1=sip>>16, o2=sip&0xffff;
sum += (ntohs(o1) + ntohs(o2) + (~ntohs(0) & 0xffff) + (~ntohs(0) & 0xffff));
sum += (ntohs(sport) + (~(0) & 0xffff));
sum += (ntohs(dport) + (~(0) & 0xffff));
sum += check;
sum = (sum & 0xffff) + (sum >> 16);
sum即為最后得到的負載內容校驗碼;
S6、根據(jù)該報文的負載內容校驗碼,對負載內容進行頻率統(tǒng)計,得到負載內容頻率check_count[sum],并判斷是否滿足check_count[sum]>100,則負載內容檢測狀態(tài)drop_check[check]=1,并執(zhí)行步驟S8;
S7、判斷是否滿足reply_sport[sport]=1,若是則表明其為預設的特定檢測端口,則端口報文頻率sport_count[sport]++,若最后得到的端口報文頻率sport_count[sport]>100,則端口檢測狀態(tài)drop_sport[sport]=1;
S8、若端口檢測狀態(tài)drop_sport[sport]或負載內容檢測狀態(tài)drop_check[check]為1,則丟棄該報文;反之,則執(zhí)行步驟S9
S9、根據(jù)該報文的負載內容的前16字節(jié),判斷是否均滿足以下所有條件:第1字節(jié)=第2字節(jié)、第1~2字節(jié)=第3~4字節(jié)、第1~4字節(jié)=第5~8字節(jié)、第1~8字節(jié)=第9~16字節(jié),滿足以上四個條件,則丟棄該報文;反之,則執(zhí)行步驟S10;
S10、判斷該報文的類型是否為分片,且該報文的源地址不在放行記錄中,即該源地址的放行狀態(tài)accept_ip[sip]不為1,則丟棄該報文;反之,則將該源地址的放行狀態(tài)accept_ip[sip]設為1,并放行該報文。
參考圖5,本發(fā)明一種UDP FLOOD攻擊的清洗系統(tǒng),包括:
端口初始化單元,用于對預設的特定檢測端口進行初始化;
UDP判斷單元,用于當接收到報文時,判斷該報文的類型是否為UDP報文,若是,則執(zhí)行信息獲取單元;反之,則放行該報文;
信息獲取單元,用于獲取該報文的源地址、源端口、目標端口和報文校驗碼;
校驗碼計算單元,用于根據(jù)該報文的源地址、源端口、目標端口和報文校驗碼,計算得出該報文的負載內容校驗碼;
傳統(tǒng)攻擊檢測單元,用于根據(jù)該報文的負載內容校驗碼,從而進行傳統(tǒng)UDP攻擊檢測,并對通過檢測的報文執(zhí)行反射型攻擊檢測單元;反之,則對負載內容檢測狀態(tài)進行標記并執(zhí)行過濾判斷單元;
反射型攻擊檢測單元,用于根據(jù)預設的特定檢測端口,對報文進行新型反射型UDP攻擊檢測,并對通過檢測的報文執(zhí)行過濾判斷單元;反之,則對端口檢測狀態(tài)進行標記后再執(zhí)行過濾判斷單元;
過濾判斷單元,用于判斷負載內容檢測狀態(tài)或端口檢測狀態(tài)是否為需過濾,若是,則丟棄該報文;反之,則進行變種UDP攻擊檢測,并對通過檢測的報文執(zhí)行分片檢測單元;
分片檢測單元,用于對該報文進行分片檢測,并對通過檢測的報文進行放行。
進一步作為優(yōu)選的實施方式,所述傳統(tǒng)攻擊檢測單元包括:
負載內容頻率統(tǒng)計單元,用于根據(jù)該報文的負載內容校驗碼,對負載內容進行頻率統(tǒng)計,得到負載內容頻率;
負載內容頻率判斷單元,用于判斷該負載內容頻率是否大于預設的負載內容頻率閾值,若是,則將負載內容檢測狀態(tài)標記為需過濾,并執(zhí)行過濾判斷單元;反之,則執(zhí)行反射型攻擊檢測單元。
進一步作為優(yōu)選的實施方式,所述反射型攻擊檢測單元包括:
端口報文頻率統(tǒng)計單元,用于對預設的特定檢測端口進行報文頻率統(tǒng)計,得到端口報文頻率;
端口報文頻率判斷單元,用于判斷端口報文頻率是否大于預設的端口頻率閾值,若是,則將端口檢測狀態(tài)標記為需過濾,并執(zhí)行過濾判斷單元;反之,則直接執(zhí)行過濾判斷單元。
進一步作為優(yōu)選的實施方式,所述的變種UDP攻擊檢測,其具體為:
根據(jù)該報文的負載內容的前16字節(jié),判斷是否均滿足以下所有條件:
第1字節(jié)=第2字節(jié);
第1~2字節(jié)=第3~4字節(jié);
第1~4字節(jié)=第5~8字節(jié);
第1~8字節(jié)=第9~16字節(jié);
若是,則丟棄該報文;反之,則該報文通過變種UDP攻擊檢測。
進一步作為優(yōu)選的實施方式,所述分片檢測單元包括:
分片判斷單元,用于判斷該報文的類型是否為分片,若是,則執(zhí)行步驟H2;反之,則將該報文的源地址存入放行記錄中并放行該報文;
源地址判斷單元,用于判斷該報文的源地址是否在放行記錄中,若是,放行該報文;反之,則丟棄該報文。
從上述內容可知,本發(fā)明一種UDP FLOOD攻擊的清洗方法及系統(tǒng)通過統(tǒng)計預設的特定端口的端口報文頻率,能夠準確發(fā)現(xiàn)并過濾新型反射型攻擊流量,并通過統(tǒng)計負載內容的真實校驗碼頻率和取特征于負載內容的前16字節(jié),能夠準確識別傳統(tǒng)的UDP攻擊流量。本發(fā)明在準確的鑒別新舊UDP流量的基礎上,進一步過濾UDP攻擊所產生的分片流量,相比傳統(tǒng)的限流方式,本發(fā)明能免除去大量地統(tǒng)計報文特征帶來的性能損耗,面對即使數(shù)十Gbps的流量,也一樣能夠輕松應對,大大提高清除效果。
以上是對本發(fā)明的較佳實施進行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實施例,熟悉本領域的技術人員在不違背本發(fā)明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權利要求所限定的范圍內。