亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

識(shí)別源IP地址合法性、網(wǎng)絡(luò)攻擊防御的方法及裝置與流程

文檔序號(hào):12278775閱讀:191來源:國(guó)知局
識(shí)別源IP地址合法性、網(wǎng)絡(luò)攻擊防御的方法及裝置與流程

本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種識(shí)別源IP地址合法性的方法及裝置、網(wǎng)絡(luò)攻擊防御的方法及裝置。



背景技術(shù):

傳輸控制協(xié)議(Transmission Control Protocol,TCP)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。發(fā)送端與接收端之間,需要進(jìn)行三次握手過程,才能建立一個(gè)TCP連接。接收端接收到發(fā)送端發(fā)送的第一次握手報(bào)文后,即分配一個(gè)內(nèi)存空間和一個(gè)線程處理該TCP連接的三次握手過程。

SYN Flood是常見的拒絕服務(wù)攻擊(Denial of Service,DOS)和分布式拒絕服務(wù)攻擊(Distributed Denial of Service),DDOS)之一,利用上述建立TCP連接的設(shè)計(jì)缺陷,由發(fā)送端偽造大量虛假的源IP地址或者源IP地址范圍,向接收端發(fā)送海量的建立TCP連接的第一次握手報(bào)文。接收端需要處理發(fā)送端發(fā)送的大量的第一次握手報(bào)文,影響對(duì)正常服務(wù)請(qǐng)求的處理。

為了有效的防御SYN Flood攻擊,需要識(shí)別請(qǐng)求建立TCP連接的源IP地址是否有效?,F(xiàn)有技術(shù)中,主要采用延遲分配TCB(Transmission Control Block,傳輸控制塊)的方法?;驹硎牵悍阑饓κ盏降谝淮挝帐謭?bào)文后,先不將該第一次握手報(bào)文發(fā)送給接收端,而是根據(jù)第一次握手報(bào)文的源IP地址直接向發(fā)送端回復(fù)第二次握手報(bào)文,并建立一個(gè)專用的哈希表,記錄第一次握手報(bào)文中的序列號(hào),以及回復(fù)的第二次握手報(bào)文的序列號(hào)等半連接信息。若防火墻能收到發(fā)送端返回的第三次握手報(bào)文,則確認(rèn)該源IP地址合法;若防火墻不能收到發(fā)送端返回的第三次握手報(bào)文,則該源IP地址不合法。

采用上述方法識(shí)別源IP地址是否合法時(shí),防火墻需要給每個(gè)第一次握手報(bào)文都建立一個(gè)哈希表存儲(chǔ)半連接信息。當(dāng)遇到SYN Flood攻擊時(shí),發(fā)送端發(fā)送海量的第一次握手報(bào)文,即需要建立大量的哈希表,因此,需要消耗大量的內(nèi)存。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明解決的技術(shù)問題在于提供一種識(shí)別源IP地址合法性的方法及裝置、網(wǎng)絡(luò)攻擊防御的方法及裝置,從而能夠不需要建立哈希表存儲(chǔ)半連接信息,降低內(nèi)存的消耗。

為此,本發(fā)明解決技術(shù)問題的技術(shù)方案是:

一種識(shí)別源IP地址合法性的方法,所述方法包括:

接收發(fā)送端發(fā)送的第一報(bào)文,將所述第一報(bào)文的源IP地址添加至第一集合,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定,所述第一報(bào)文是第一次握手報(bào)文;

向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào);

當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文。

可選的,所述方法還包括:

當(dāng)沒有接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合,所述第三集合包括至少一個(gè)非法的源IP地址,所述非法的源IP地址用于表征該非法的源IP地址所對(duì)應(yīng)的報(bào)文不合法。

可選的,所述方法還包括:

查詢所述第一報(bào)文的源IP地址是否屬于所述第二集合;

當(dāng)所述第一報(bào)文的源IP地址不屬于所述第二集合時(shí),查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合;

當(dāng)所述第一報(bào)文的源IP地址不屬于所述第一集合時(shí),執(zhí)行將所述第一報(bào)文的源IP地址添加至第一集合;

當(dāng)所述第一報(bào)文的源IP地址屬于第一集合時(shí),識(shí)別所述第一報(bào)文的IP地址是待定的源IP地址,獲取所述源IP地址對(duì)應(yīng)的確認(rèn)報(bào)文數(shù),所述確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù);

判斷所述確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值;

當(dāng)所述確認(rèn)報(bào)文數(shù)不大于所述預(yù)設(shè)的第一閾值時(shí),執(zhí)行向所述發(fā)送端返回第二報(bào)文,所述確認(rèn)報(bào)文數(shù)加1;

當(dāng)所述確認(rèn)報(bào)文數(shù)大于預(yù)設(shè)的第一閾值時(shí),執(zhí)行將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

可選的,所述方法還包括:

查詢所述第一報(bào)文的源IP地址是否屬于所述第三集合;

當(dāng)所述第一報(bào)文的源IP地址不屬于所述第三集合時(shí),執(zhí)行查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合。

可選的,執(zhí)行將所述第一報(bào)文的源IP地址添加至第一集合后,所述方法還包括:

判斷是否接收到第四報(bào)文,所述第四報(bào)文與所述第一報(bào)文的源IP地址相同,所述第四報(bào)文是第一次握手報(bào)文;

當(dāng)收到所述第四報(bào)文時(shí),執(zhí)行向所述發(fā)送端返回第二報(bào)文;

當(dāng)沒有收到所述第四報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

可選的,所述方法還包括:

獲取預(yù)設(shè)的會(huì)話表中半連接表項(xiàng)的個(gè)數(shù);

判斷所述半連接表項(xiàng)的個(gè)數(shù)是否大于預(yù)設(shè)的第二閾值;

當(dāng)所述半連接表項(xiàng)的個(gè)數(shù)大于預(yù)設(shè)的第二閾值時(shí),將所述半連接表項(xiàng)對(duì)應(yīng)的源IP地址從所述第二集合中轉(zhuǎn)移至第三集合中。

可選的,所述方法還包括:

生成一個(gè)有效全局表,將所述第二集合存儲(chǔ)至有效全局表,所述有效全局表能夠被每個(gè)CPU采用無鎖查詢機(jī)制訪問;

給每個(gè)CPU生成一個(gè)第一局部表,每個(gè)第一局部表存儲(chǔ)有該第一局部表所屬的CPU所獲得的第一集合,每個(gè)第一局部表只能被該第一局部表所屬的CPU訪問。

可選的,所述方法還包括:

給每個(gè)CPU生成一個(gè)第二局部表,每個(gè)第一局部表存儲(chǔ)有該第一局部表所屬的CPU所獲得的第三集合,每個(gè)第二局部表只能被該第二局部表所屬的CPU訪問。

可選的,所述方法還包括:

每個(gè)CPU的第一局部表和第二局部表的超時(shí)機(jī)制采用一個(gè)近期最少使用算法LRU表進(jìn)行維護(hù)。

一種網(wǎng)絡(luò)攻擊防御方法,所述方法包括:

接收發(fā)送端發(fā)送的第一報(bào)文,所述第一報(bào)文是第一次握手報(bào)文;

查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址,所述預(yù)設(shè)的第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法;

當(dāng)所述預(yù)設(shè)的第二集合中存在所述第一報(bào)文的源IP地址時(shí),利用所述第一報(bào)文獲得會(huì)話表項(xiàng),利用所述會(huì)話表項(xiàng)對(duì)所述第一報(bào)文進(jìn)行轉(zhuǎn)發(fā);

當(dāng)所述預(yù)設(shè)的第二集合中不存在所述第一報(bào)文的源IP地址時(shí),丟棄所述第一報(bào)文。

可選的,所述當(dāng)所述預(yù)設(shè)的第二集合中不存在所述第一報(bào)文的源IP地址時(shí),丟棄所述第一報(bào)文包括:

當(dāng)所述預(yù)設(shè)的第二集合中不存在所述第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第三集合中是否存在所述第一報(bào)文的源IP地址,所述預(yù)設(shè)的第三集合包括至少一個(gè)非法的源IP地址,所述非法的源IP地址用于表征該非法的源IP地址所對(duì)應(yīng)的報(bào)文不合法;

當(dāng)所述預(yù)設(shè)的第三集合中存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文;

當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文。

可選的,所述當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文包括:

當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第一集合中是否存在所述第一報(bào)文的源IP地址,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定;

當(dāng)所述預(yù)設(shè)的第一集合中不存在所述第一報(bào)文的源IP地址時(shí),將所述第一報(bào)文的源IP地址添加至所述預(yù)設(shè)的第一集合,丟棄所述第一報(bào)文;

當(dāng)所述預(yù)設(shè)的第一集合中存在所述第一報(bào)文的源IP地址時(shí),確定所述第一報(bào)文的源IP地址是否合法,丟棄所述第一報(bào)文。

可選的,所述確定所述第一報(bào)文的源IP地址是否合法包括:

向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào);

當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文;

當(dāng)沒有接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址不合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

可選的,所述確定所述第一報(bào)文的源IP地址是否合法包括:

獲取確認(rèn)報(bào)文數(shù),所述確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù);

判斷所述確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值;

當(dāng)所述確認(rèn)報(bào)文數(shù)不大于所述預(yù)設(shè)的第一閾值時(shí),向所述發(fā)送端返回第二報(bào)文,當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合;

當(dāng)所述確認(rèn)報(bào)文數(shù)大于預(yù)設(shè)的第一閾值時(shí),確定所述第一報(bào)文的源IP地址不合法將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

可選的,所述查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址包括:

根據(jù)所述第一報(bào)文的五元組從預(yù)設(shè)的會(huì)話表中查找會(huì)話表項(xiàng);

當(dāng)從所述預(yù)設(shè)的會(huì)話表中查找到所述會(huì)話表項(xiàng)時(shí),所述預(yù)設(shè)的第二集合中存在所述第一報(bào)文的源IP地址,利用所述會(huì)話表項(xiàng)對(duì)所述第一報(bào)文進(jìn)行轉(zhuǎn)發(fā);

當(dāng)沒有從所述預(yù)設(shè)的會(huì)話表中查找到所述會(huì)話表項(xiàng)時(shí),執(zhí)行直接查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址。

一種識(shí)別源IP地址合法性的裝置,所述裝置包括:

第一添加單元,用于接收發(fā)送端發(fā)送的第一報(bào)文,將所述第一報(bào)文的源IP地址添加至第一集合,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定,所述第一報(bào)文是第一次握手報(bào)文;

第一發(fā)送單元,用于向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào);

第一轉(zhuǎn)移單元,用于當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文。

可選的,所述裝置還包括:

第二轉(zhuǎn)移單元,用于當(dāng)沒有接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合,所述第三集合包括至少一個(gè)非法的源IP地址,所述非法的源IP地址用于表征該非法的源IP地址所對(duì)應(yīng)的報(bào)文不合法。

可選的,所述裝置還包括:

第一查詢單元,用于查詢所述第一報(bào)文的源IP地址是否屬于所述第二集合;

第二查詢單元,用于當(dāng)所述第一報(bào)文的源IP地址不屬于所述第二集合時(shí),查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合;

第二添加單元,用于當(dāng)所述第一報(bào)文的源IP地址不屬于所述第一集合時(shí),執(zhí)行將所述第一報(bào)文的源IP地址添加至第一集合;

第一獲取單元,用于當(dāng)所述第一報(bào)文的源IP地址屬于第一集合時(shí),識(shí)別所述第一報(bào)文的IP地址是待定的源IP地址,獲取所述源IP地址對(duì)應(yīng)的確認(rèn)報(bào)文數(shù),所述確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù);

第一判斷單元,用于判斷所述確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值;

第二發(fā)送單元,用于當(dāng)所述確認(rèn)報(bào)文數(shù)不大于所述預(yù)設(shè)的第一閾值時(shí),向所述發(fā)送端返回第二報(bào)文,所述確認(rèn)報(bào)文數(shù)加1;

第三轉(zhuǎn)移單元,用于當(dāng)所述確認(rèn)報(bào)文數(shù)大于預(yù)設(shè)的第一閾值時(shí),執(zhí)行將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

可選的,所述裝置還包括:

第三查詢單元,用于查詢所述第一報(bào)文的源IP地址是否屬于所述第三集合;

第四查詢單元,用于當(dāng)所述第一報(bào)文的源IP地址不屬于所述第三集合時(shí),執(zhí)行查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合。

可選的,執(zhí)行將所述第一報(bào)文的源IP地址添加至第一集合后,所述裝置還包括:

第二判斷單元,用于判斷是否接收到第四報(bào)文,所述第四報(bào)文與所述第一報(bào)文的源IP地址相同,所述第四報(bào)文是第一次握手報(bào)文;

第三發(fā)送單元,用于當(dāng)收到所述第四報(bào)文時(shí),執(zhí)行向所述發(fā)送端返回第二報(bào)文;

第四轉(zhuǎn)移單元,用于當(dāng)沒有收到所述第四報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

可選的,所述裝置還包括:

第二獲取單元,用于獲取預(yù)設(shè)的會(huì)話表中半連接表項(xiàng)的個(gè)數(shù);

第三判斷單元,用于判斷所述半連接表項(xiàng)的個(gè)數(shù)是否大于預(yù)設(shè)的第二閾值;

第五轉(zhuǎn)移單元,用于當(dāng)所述半連接表項(xiàng)的個(gè)數(shù)大于預(yù)設(shè)的第二閾值時(shí),將所述半連接表項(xiàng)對(duì)應(yīng)的源IP地址從所述第二集合中轉(zhuǎn)移至第三集合中。

可選的,所述裝置還包括:

第一生成單元,用于生成一個(gè)有效全局表,將所述第二集合存儲(chǔ)至有效全局表,所述有效全局表能夠被每個(gè)CPU采用無鎖查詢機(jī)制訪問;

第二生成單元,用于給每個(gè)CPU生成一個(gè)第一局部表,每個(gè)第一局部表存儲(chǔ)有該第一局部表所屬的CPU所獲得的第一集合,每個(gè)第一局部表只能被該第一局部表所屬的CPU訪問。

可選的,所述裝置還包括:

第三生成單元,用于給每個(gè)CPU生成一個(gè)第二局部表,每個(gè)第一局部表存儲(chǔ)有該第一局部表所屬的CPU所獲得的第三集合,每個(gè)第二局部表只能被該第二局部表所屬的CPU訪問。

可選的,所述裝置還包括:

維護(hù)單元,用于每個(gè)CPU的第一局部表和第二局部表的超時(shí)機(jī)制采用一個(gè)近期最少使用算法LRU表進(jìn)行維護(hù)。

一種網(wǎng)絡(luò)攻擊防御裝置,所述裝置包括:

接收模塊,用于接收發(fā)送端發(fā)送的第一報(bào)文,所述第一報(bào)文是第一次握手報(bào)文;

查詢模塊,用于查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址,所述預(yù)設(shè)的第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法;

轉(zhuǎn)發(fā)模塊,用于當(dāng)所述預(yù)設(shè)的第二集合中存在所述第一報(bào)文的源IP地址時(shí),利用所述第一報(bào)文獲得會(huì)話表項(xiàng),利用所述會(huì)話表項(xiàng)對(duì)所述第一報(bào)文進(jìn)行轉(zhuǎn)發(fā);

丟棄模塊,用于當(dāng)所述預(yù)設(shè)的第二集合中不存在所述第一報(bào)文的源IP地址時(shí),丟棄所述第一報(bào)文。

可選的,所述丟棄模塊包括:

查詢單元,用于當(dāng)所述預(yù)設(shè)的第二集合中不存在所述第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第三集合中是否存在所述第一報(bào)文的源IP地址,所述預(yù)設(shè)的第三集合包括至少一個(gè)非法的源IP地址,所述非法的源IP地址用于表征該非法的源IP地址所對(duì)應(yīng)的報(bào)文不合法;

第一丟棄單元,用于當(dāng)所述預(yù)設(shè)的第三集合中存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文;

第二丟棄單元,用于當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文。

可選的,所述第二丟棄單元包括:

查詢子單元,用于當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第一集合中是否存在所述第一報(bào)文的源IP地址,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定;

添加子單元,用于當(dāng)所述預(yù)設(shè)的第一集合中不存在所述第一報(bào)文的源IP地址時(shí),將所述第一報(bào)文的源IP地址添加至所述預(yù)設(shè)的第一集合,丟棄所述第一報(bào)文;

確定子單元,用于當(dāng)所述預(yù)設(shè)的第一集合中存在所述第一報(bào)文的源IP地址時(shí),確定所述第一報(bào)文的源IP地址是否合法,丟棄所述第一報(bào)文。

可選的,所述確定子單元用于:

向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào);

當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文;

當(dāng)沒有接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址不合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

可選的,所述確定子單元用于:

獲取確認(rèn)報(bào)文數(shù),所述確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù);

判斷所述確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值;

當(dāng)所述確認(rèn)報(bào)文數(shù)不大于所述預(yù)設(shè)的第一閾值時(shí),向所述發(fā)送端返回第二報(bào)文,當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合;

當(dāng)所述確認(rèn)報(bào)文數(shù)大于預(yù)設(shè)的第一閾值時(shí),確定所述第一報(bào)文的源IP地址不合法將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

可選的,所述查詢模塊包括:

查找單元,用于根據(jù)所述第一報(bào)文的五元組從預(yù)設(shè)的會(huì)話表中查找會(huì)話表項(xiàng);

轉(zhuǎn)發(fā)單元,用于當(dāng)從所述預(yù)設(shè)的會(huì)話表中查找到所述會(huì)話表項(xiàng)時(shí),所述預(yù)設(shè)的第二集合中存在所述第一報(bào)文的源IP地址,利用所述會(huì)話表項(xiàng)對(duì)所述第一報(bào)文進(jìn)行轉(zhuǎn)發(fā);

查詢單元,用于當(dāng)沒有從所述預(yù)設(shè)的會(huì)話表中查找到所述會(huì)話表項(xiàng)時(shí),執(zhí)行直接查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址。

通過上述技術(shù)方案可知,本發(fā)明有如下有益效果:

本發(fā)明實(shí)施例提供的了一種識(shí)別源IP地址合法性的方法及裝置、網(wǎng)絡(luò)攻擊防御的方法及裝置,接收發(fā)送端發(fā)送的第一報(bào)文,將所述第一報(bào)文的源IP地址添加至第一集合,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定,所述第一報(bào)文是第一次握手報(bào)文;向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào);當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文。上述識(shí)別源IP地址合法性時(shí),接收到第一次握手報(bào)文后,回復(fù)一個(gè)第二報(bào)文,第二報(bào)文中攜帶的是根據(jù)第一次握手報(bào)文的序列號(hào)生成的錯(cuò)誤的序列號(hào),而不是正確的序列號(hào),因此,無需判斷發(fā)送端返回的序列號(hào)是否正確,即無需占用內(nèi)存存儲(chǔ)第一次握手報(bào)文和第二次握手報(bào)文的半連接等信息,降低了內(nèi)存的消耗。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實(shí)施例提供的識(shí)別源IP地址合法性方法一實(shí)例流程圖;

圖2為本發(fā)明實(shí)施例提供的識(shí)別源IP地址合法性方法另一實(shí)例流程圖;

圖3為本發(fā)明實(shí)施例提供的識(shí)別源IP地址合法性方法再一實(shí)例流程圖;

圖4為本發(fā)明實(shí)施例提供的識(shí)別源IP地址合法性方法又一實(shí)例流程圖;

圖5為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)攻擊防御方法一實(shí)例流程圖;

圖6為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)攻擊防御方法另一實(shí)例流程圖;

圖7為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)攻擊防御方法再一實(shí)例流程圖;

圖8為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)攻擊防御方法又一實(shí)例流程圖;

圖9為本發(fā)明實(shí)施例提供的識(shí)別源IP地址合法性的裝置結(jié)構(gòu)示意圖;

圖10為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)攻擊防御的裝置結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了給出降低內(nèi)存消耗識(shí)別源IP地址合法性、以及網(wǎng)絡(luò)攻擊防御的實(shí)現(xiàn)方案,本發(fā)明實(shí)施例提供了一種一種識(shí)別源IP地址合法性的方法及裝置、網(wǎng)絡(luò)攻擊防御的方法及裝置,以下結(jié)合說明書附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明。

圖1為本發(fā)明實(shí)施例提供的識(shí)別源IP地址合法性方法流程圖,包括:

101:接收發(fā)送端發(fā)送的第一報(bào)文,將所述第一報(bào)文的源IP地址添加至第一集合,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定,所述第一報(bào)文是第一次握手報(bào)文。

發(fā)送端與接收端建立TCP連接時(shí),需要與接收端進(jìn)行三次握手。第一報(bào)文是發(fā)送端要求建立TCP連接時(shí)所發(fā)送的第一次握手報(bào)文,第一次握手報(bào)文是建立TCP連接時(shí),發(fā)送端發(fā)送的第一個(gè)報(bào)文。該第一次握手報(bào)文是一個(gè)SYN(synchronous)報(bào)文,攜帶有發(fā)送端的源IP地址和該第一報(bào)文的同步序列號(hào)(即SYN序列號(hào))。

接收到第一報(bào)文時(shí),不確定發(fā)送該第一報(bào)文的發(fā)送端是否合法,即該第一報(bào)文的源IP地址的合法性不確定,該第一報(bào)文的源IP地址是待定的源IP地址,將該第一報(bào)文的源IP地址添加至第一集合。其中,該第一集合包括待定的源IP地址。

其中,將第一報(bào)文的源IP地址添加至第一集合有很多種實(shí)現(xiàn)方式,例如,給該第一報(bào)文的源IP地址添加一個(gè)狀態(tài)標(biāo)識(shí),該狀態(tài)標(biāo)識(shí)的值用于表征該第一報(bào)文的源IP地址的合法性,則將該狀態(tài)標(biāo)識(shí)的值修改為待定,來表征該源IP地址的合法性不確定。再例如,將該第一報(bào)文的源IP地址存儲(chǔ)至一個(gè)紅表,該紅表用于存儲(chǔ)該第一集合,即存儲(chǔ)合法性不確定的源IP地址。當(dāng)然,還可以采用其他實(shí)現(xiàn)方式將第一報(bào)文的源IP地址添加至第一集合,這里不再贅述,只要能夠表征該第一報(bào)文的源IP地址的合法性不確定,是一個(gè)待定的源IP地址即可。

102:向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào)。

現(xiàn)有技術(shù)中,防火墻接收到第一報(bào)文時(shí),不確定第一報(bào)文的源IP地址的合法性,在確定該第一報(bào)文的源IP地址的合法性時(shí),采用如下方法:根據(jù)第一報(bào)文的同步序列號(hào)(SYN序列號(hào))生成一個(gè)確認(rèn)(Acknowledgement,ACK)序列號(hào),一般情況下,該ACK序列號(hào)是該SYN序列號(hào)加1,給發(fā)送端回復(fù)一個(gè)第二握手報(bào)文,該第二握手報(bào)文是同步(SYN)確認(rèn)(ACK)報(bào)文,攜帶有第二握手報(bào)文的SYN列號(hào),以及ACK序列號(hào)。同時(shí),需要建立一個(gè)專用的哈希表記錄該第一報(bào)文的源IP地址,該SYN序列號(hào)以及該ACK序列號(hào)等半連接信息,以便后續(xù)根據(jù)該半連接信息確定發(fā)送端回復(fù)的第三握手報(bào)文(ACK報(bào)文)中的信息是否正確。

上述現(xiàn)有技術(shù)中所采用的確定源IP地址的合法性的方法,當(dāng)遇到SYN Flood攻擊時(shí),發(fā)送端會(huì)發(fā)送海量的第一握手報(bào)文,需要給每個(gè)第一握手報(bào)文都建立一個(gè)專用的哈希表存儲(chǔ)半連接信息,對(duì)內(nèi)存的消耗非常大。

本發(fā)明中,在確定該第一報(bào)文的源IP地址的合法性時(shí),采用如下方法:接收到發(fā)送端的第一報(bào)文后,根據(jù)該第一報(bào)文的同步序列號(hào)(SYN號(hào))生成一個(gè)錯(cuò)誤的序列號(hào)。將該錯(cuò)誤的序列號(hào)返回至發(fā)送端,而不是將正確的ACK序列號(hào)返回至發(fā)送端,即給發(fā)送端返回的第二報(bào)文中,不攜帶有正確的ACK序列號(hào),而是攜帶有錯(cuò)誤的序列號(hào)。發(fā)送端接收到第二報(bào)文后,根據(jù)該發(fā)送端是否根據(jù)所接收的第二報(bào)文中的錯(cuò)誤的序列號(hào)返回第三報(bào)文,來確定該第一報(bào)文的源IP地址的合法性。

該發(fā)送端接收到第二報(bào)文后,由于第二報(bào)文攜帶有錯(cuò)誤的序列號(hào),該發(fā)送端不會(huì)回復(fù)第三次握手報(bào)文,若該發(fā)送端合法(源IP地址合法),則會(huì)回復(fù)一個(gè)第三報(bào)文,該第三報(bào)文是reset報(bào)文,表示建立TCP連接異常終止。本發(fā)明所提供的確定源IP地址是否合法的方法,即使該發(fā)送端合法(源IP地址合法),也不會(huì)返回一個(gè)第三次握手報(bào)文,不需要根據(jù)半連接信息,確定該發(fā)送端發(fā)送的第三次握手報(bào)文中所攜帶的信息是否正確。因此,本發(fā)明中不需要給所接收的第一報(bào)文建立一個(gè)哈希表存儲(chǔ)半連接信息。

當(dāng)遇到SYN Flood攻擊時(shí),發(fā)送端發(fā)送海量的第一握手報(bào)文,采用本發(fā)明所提供的方法源IP地址的合法性時(shí),不需要給每個(gè)第一握手報(bào)文建立一個(gè)專用的哈希表存儲(chǔ)半連接信息,降低內(nèi)存的消耗。

103:當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文。

發(fā)送端接收到第二報(bào)文后,若該發(fā)送端合法(源IP地址合法),則該根據(jù)第二報(bào)文中的錯(cuò)誤的序列號(hào),認(rèn)為建立該TCP連接異常。發(fā)送端生成一個(gè)第三報(bào)文(reset報(bào)文)返回。當(dāng)接收到發(fā)送端發(fā)送的第三報(bào)文時(shí),可知該發(fā)送端合法,即該發(fā)送端的源IP地址也合法,將該第一報(bào)文的源IP地址從第一集合轉(zhuǎn)移至第二集合。第二集合包括合法的源IP地址,將第一報(bào)文的源IP地址從第一集合轉(zhuǎn)移至第二集合,即表征該第一報(bào)文的源IP地址合法。

當(dāng)然,將第一報(bào)文的源IP地址從第一集合轉(zhuǎn)移至第二集合也有很多種實(shí)現(xiàn)方式。例如,若給該第一報(bào)文的源IP地址添加一個(gè)狀態(tài)標(biāo)識(shí),該狀態(tài)標(biāo)識(shí)的值用于表征第一報(bào)文的源IP地址的合法性,則將該狀態(tài)標(biāo)識(shí)的值從待定修改為合法,來表征該第一報(bào)文的源IP地址的合法。再例如,將該第一報(bào)文的源IP地址從紅表轉(zhuǎn)移至白表,紅表用于存儲(chǔ)該第一集合,即存儲(chǔ)合法性不確定的源IP地址,白表用于存儲(chǔ)該第二集合,即存儲(chǔ)合法的源IP地址。當(dāng)然,還可以采用其他實(shí)現(xiàn)方式將第一報(bào)文的源IP地址從第一集合轉(zhuǎn)移至第二集合,這里不再贅述,只要能夠表征該第一報(bào)文的源IP地址的合法即可。

發(fā)送端接收到第二報(bào)文后,若該發(fā)送端不合法,則不會(huì)回復(fù)一個(gè)第三報(bào)文,即不會(huì)回復(fù)reset報(bào)文。則若沒有接收到該發(fā)送端回復(fù)的第三報(bào)文,即沒有接收到一個(gè)reset報(bào)文與第三報(bào)文的源IP地址相同,則不能確定該第一報(bào)文的源IP地址合法。

在圖1所示的實(shí)施例中,第一報(bào)文的源IP地址只能被識(shí)別為兩種類型,第一種,該第一報(bào)文的源IP地址是待定的源IP地址,即該第一報(bào)文的源IP地址屬于第一集合;第二種,該第一報(bào)文的源IP地址是合法的源IP地址,即該第一報(bào)文的源IP地址屬于第二集合。在一個(gè)例子中,還可以識(shí)別第一報(bào)文的源IP地址的第三種類型,如圖2所示,所述方法還包括:

當(dāng)沒有接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合,所述第三集合包括至少一個(gè)非法的源IP地址,所述非法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文不合法。

當(dāng)發(fā)送端不合法時(shí),收到第二報(bào)文后,不會(huì)根據(jù)第二報(bào)文中的錯(cuò)誤的序列號(hào)生成一個(gè)第三報(bào)文返回,即該發(fā)送端不會(huì)返回一個(gè)reset報(bào)文。具體實(shí)現(xiàn)時(shí),預(yù)設(shè)一個(gè)時(shí)間間隔,向發(fā)送端返回第二報(bào)文后開始計(jì)時(shí),若到達(dá)該預(yù)設(shè)的時(shí)間間隔時(shí),還沒有接收到發(fā)送端返回的第三報(bào)文,則認(rèn)為該第一報(bào)文的源IP地址不合法,將該第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。其中,預(yù)設(shè)的時(shí)間間隔可以根據(jù)實(shí)際需要具體設(shè)置,這里不進(jìn)行具體限定。

這里需要說明的是,將該第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合有很多實(shí)現(xiàn)方式。例如,若給該第一報(bào)文的源IP地址添加一個(gè)狀態(tài)標(biāo)識(shí),該狀態(tài)標(biāo)識(shí)的值用于表征第一報(bào)文的源IP地址的合法性,則將該狀態(tài)標(biāo)識(shí)的值從待定修改為不合法,從而實(shí)現(xiàn)該第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合,表征該源IP地址的不合法。再例如,將該第一報(bào)文的源IP地址從紅表轉(zhuǎn)移至黑表,從而實(shí)現(xiàn)將該第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合,紅表用于存儲(chǔ)該第一集合,即存儲(chǔ)合法性不確定的源IP地址,黑表用于存儲(chǔ)該第三集合,即存儲(chǔ)不合法的源IP地址。當(dāng)然,還可以采用其他實(shí)現(xiàn)方式將第一報(bào)文的源IP地址從第一集合轉(zhuǎn)移至第三集合,這里不再贅述,只要能夠表征該第一報(bào)文的源IP地址的不合法即可。

同一個(gè)發(fā)送端可能與接收端建立多次TCP連接,即同一個(gè)發(fā)送端發(fā)送多次第一握手報(bào)文,每次發(fā)送的第一握手報(bào)文的源IP地址都相同。為了避免對(duì)同一個(gè)合法的發(fā)送端的源IP地址重復(fù)識(shí)別,則如圖3所示,在對(duì)第一報(bào)文的源IP地址進(jìn)行處理前,先查詢?cè)摰谝粓?bào)文的源IP地址是否屬于第二集合。

301:接收發(fā)送端發(fā)送的第一報(bào)文,所述第一報(bào)文是第一次握手報(bào)文。

302:查詢所述第一報(bào)文的源IP地址是否屬于所述第二集合,如果是,執(zhí)行310;如果否,執(zhí)行303。

接收到一個(gè)發(fā)送端的第一報(bào)文,該第一報(bào)文是用于建立TCP連接的第一握手報(bào)文。先查詢?cè)摰谝粓?bào)文的源IP地址是否屬于第二集合,即查詢?cè)摰谝粓?bào)文的源IP地址是否是已識(shí)別出的合法的源IP地址。避免對(duì)合法的發(fā)送端的源IP地址進(jìn)行重復(fù)的識(shí)別。

若第一報(bào)文的源IP地址屬于第二集合,則識(shí)別該第一報(bào)文的源IP地址是合法的源IP地址。無需對(duì)該第一報(bào)文的源IP地址進(jìn)行重復(fù)識(shí)別。若第一報(bào)文的源IP地址不屬于第二集合,則該第一報(bào)文的源IP地址并不是已識(shí)別的合法的源IP地址。

其中,查詢第一報(bào)文的源IP地址屬于第二集合,可以采用查詢?cè)撛碔P地址的狀態(tài)標(biāo)識(shí)的值是否是合法的方式,或者采用查詢?cè)撛碔P地址是否存儲(chǔ)在白表的方式,該白表存儲(chǔ)該第二集合等方式實(shí)現(xiàn),還可以采用其他方式,這里不再贅述。

查詢第一報(bào)文的源IP地址是否屬于所述第二集合,有至少兩種可能的實(shí)現(xiàn)方式:

第一種實(shí)現(xiàn)方式,直接從第二集合中查詢是否存在該第一報(bào)文的源IP地址。

第二種實(shí)現(xiàn)方式,先從預(yù)設(shè)的會(huì)話表中查詢是否存在該第一報(bào)文的五元組對(duì)應(yīng)的會(huì)話表項(xiàng),若該預(yù)設(shè)的會(huì)話表中存在該第一報(bào)文的五元組會(huì)話的表項(xiàng),即表示該第一報(bào)文的源IP地址屬于第二集合;若會(huì)話表中不存在該第一報(bào)文的五元組會(huì)話的表項(xiàng),再直接從第二集合中查詢是否存在該第一報(bào)文的源IP地址。

可以理解的是,識(shí)別了發(fā)送端的源IP地址合法后,才會(huì)在會(huì)話表中建立會(huì)話表項(xiàng),因此,若能夠根據(jù)第一報(bào)文的五元組信息在該會(huì)話表中查找到會(huì)話表項(xiàng),即該第一報(bào)文的源IP地址是合法的源IP地址,肯定屬于第二集合,無需再從第二集合中進(jìn)行查詢。

303:查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合,如果是,執(zhí)行304;如果否,執(zhí)行309。

若該第一報(bào)文的源IP地址不屬于第二集合,則查詢?cè)摰谝粓?bào)文的源IP地址是否屬于第一集合。

若該第一報(bào)文的源IP地址屬于第一集合,則表示曾接收到該發(fā)送端發(fā)送的建立TCP連接的第一握手報(bào)文,并且,該發(fā)送端的源IP地址的合法性不確定。

若該第一報(bào)文的源IP地址不屬于第一集合時(shí),則認(rèn)為第一次收到該發(fā)送端發(fā)送的建立TCP連接的第一握手報(bào)文,則將該第一報(bào)文的源IP地址添加至第一集合,表征該發(fā)送端的源IP地址的合法性不確定,該第一報(bào)文的源IP地址是待定的源IP地址。

304:識(shí)別所述第一報(bào)文的IP地址是待定的源IP地址,獲取所述源IP地址對(duì)應(yīng)的確認(rèn)報(bào)文數(shù),所述確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù)。

305:判斷所述確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值,如果是,執(zhí)行308;如果否,執(zhí)行306。

本發(fā)明所提供的方法中,接收到發(fā)送端發(fā)送的第一次握手報(bào)文,將該發(fā)送端的源IP地址添加至第一集合,作為待定的源IP地址。為了確定該發(fā)送端的源IP地址的合法性,則給該發(fā)送端返回一個(gè)包含錯(cuò)誤的序列號(hào)的報(bào)文。若該發(fā)送端返回一個(gè)reset報(bào)文(上述實(shí)例中所述的第三報(bào)文),則識(shí)別該發(fā)送端的源IP地址合法,將該發(fā)送端的源IP地址添加至第二集合中。若沒有接收到該發(fā)送端返回的一個(gè)reset報(bào)文,則該發(fā)送端的源IP地址則一直處于第一集合中。

等待發(fā)送端返回reset報(bào)文的過程中,該發(fā)送端可能重復(fù)的發(fā)送第一次握手報(bào)文(第一報(bào)文即該發(fā)送端發(fā)送的一個(gè)第一握手報(bào)文),每次接收到發(fā)送端發(fā)送的第一次握手報(bào)文,都要給該發(fā)送端返回一個(gè)包含錯(cuò)誤的序列號(hào)的報(bào)文。若該發(fā)送端是非法的,可能會(huì)不斷的發(fā)送第一次握手報(bào)文,并不返回reset報(bào)文。

為了避免給一個(gè)發(fā)送端不斷的返回包含錯(cuò)誤的序列號(hào)的報(bào)文,則設(shè)置一個(gè)確認(rèn)報(bào)文數(shù),該確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù),再設(shè)置一個(gè)預(yù)設(shè)的第一閾值,該第一閾值用于表征該確認(rèn)報(bào)文數(shù)的最大值。

則接收到發(fā)送端發(fā)送的第一報(bào)文(該第一報(bào)文是第一次握手報(bào)文)時(shí),查詢到該第一報(bào)文的源IP地址屬于第一集合,則獲取源IP地址對(duì)應(yīng)的確認(rèn)報(bào)文數(shù),判斷該確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值。

當(dāng)該確認(rèn)報(bào)文數(shù)大于預(yù)設(shè)的第一閾值時(shí),表示給該發(fā)送端返回的包含錯(cuò)誤的序列號(hào)的報(bào)文的個(gè)數(shù)過多,則表示該發(fā)送端不斷的發(fā)送第一握手報(bào)文建立TCP連接,但是,給該發(fā)送端返回包含錯(cuò)誤的序列號(hào)后,該發(fā)送端并未返回reset報(bào)文,此時(shí),可認(rèn)為該發(fā)送端非法,即該第一報(bào)文的源IP地址非法,將該第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。其中,將第一集合轉(zhuǎn)移至第三集合具體實(shí)現(xiàn)方式與圖2所示的實(shí)施例的實(shí)現(xiàn)方法類似,這里不再贅述。其中,預(yù)設(shè)的第一閾值可以根據(jù)實(shí)際情況具體設(shè)置,一般情況下,該預(yù)設(shè)的第一閾值不大于10,這里不再一一贅述。

當(dāng)該確認(rèn)報(bào)文數(shù)不大于預(yù)設(shè)的第一閾值時(shí),則表示曾接收到發(fā)送端發(fā)送的第一握手報(bào)文,并給該發(fā)送端回復(fù)過包含錯(cuò)誤的序列號(hào)的報(bào)文的個(gè)數(shù),但是回復(fù)的包含錯(cuò)誤的序列號(hào)的報(bào)文的個(gè)數(shù)并不多。可能由于網(wǎng)絡(luò)原因,沒有接收到該發(fā)送端返回的reset報(bào)文。為了提高識(shí)別源IP地址的合法性的精度,再給發(fā)送端返回一個(gè)第二報(bào)文(包含錯(cuò)誤的序列號(hào)的報(bào)文),并且,給該確認(rèn)報(bào)文數(shù)加1。

306:向所述發(fā)送端返回第二報(bào)文,所述確認(rèn)報(bào)文數(shù)加1,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào)。

307:當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文。

給發(fā)送端發(fā)送第二報(bào)文后,若接收到該發(fā)送端返回的第三報(bào)文(reset報(bào)文),則認(rèn)為該第一報(bào)文的源IP地址合法,將第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合。具體實(shí)現(xiàn)方式與圖1所示的方法中103類似,參考103中的描述,這里不再贅述。

308:將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

309:將所述第一報(bào)文的源IP地址添加至第一集合。

這里需要說明的是,將第一報(bào)文的源IP地址添加至第一集合后,可以執(zhí)行向發(fā)送端返回第二報(bào)文,進(jìn)一步識(shí)別該源IP地址的合法性;也可以不執(zhí)行向發(fā)送端返回第二報(bào)文,則該第一報(bào)文的源IP地址即識(shí)別為待定的源IP地址即可。若該發(fā)送端合法,則該發(fā)送端沒有接收到回復(fù),還會(huì)再次發(fā)送第一次握手報(bào)文,再次接收到發(fā)送端發(fā)送的第一次握手報(bào)文時(shí),則按照?qǐng)D3所示的方法進(jìn)步一識(shí)別該源IP地址合法。若該發(fā)送端不合法,則一般不會(huì)再次發(fā)送第一次握手報(bào)文,若多次發(fā)送第一次握手報(bào)文,則按照?qǐng)D3所示的方法進(jìn)步一識(shí)別該源IP地址不合法。

310:識(shí)別所述第一報(bào)文的源IP地址是合法的IP地址。

圖2所示的實(shí)施例是根據(jù)在預(yù)設(shè)的時(shí)間間隔內(nèi),沒有接收到第三報(bào)文(reset報(bào)文),則認(rèn)為該第一報(bào)文的源IP地址不合法。而圖3所示的實(shí)施例中,提供了另外一種確定發(fā)送端的源IP地址不合法的方法,圖3中,并不采用定時(shí)器對(duì)等待發(fā)送端返回第三報(bào)文(reset報(bào)文)進(jìn)行計(jì)時(shí),而是記錄確認(rèn)報(bào)文數(shù),當(dāng)確認(rèn)報(bào)文數(shù)超過預(yù)設(shè)的第一閾值時(shí),則認(rèn)為該第一報(bào)文的源IP地址不合法。

在一個(gè)例子中,為了避免對(duì)不合法的源IP地址進(jìn)行重復(fù)識(shí)別,如圖4所示,還包括:

查詢所述第一報(bào)文的源IP地址是否屬于所述第三集合;

當(dāng)所述第一報(bào)文的源IP地址不屬于所述第三集合時(shí),執(zhí)行查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合。

當(dāng)所述第一報(bào)文的源IP地址不屬于所述第三集合時(shí),執(zhí)行查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合;當(dāng)?shù)谝粓?bào)文的源IP地址屬于第三集合時(shí),該第一報(bào)文的源IP地址不合法,即發(fā)送該第一報(bào)文的發(fā)送端不合法。

這里需要說明的是,在查詢第一報(bào)文的源IP地址是否屬于第一集合,第二集合,以及第三集合時(shí),先后順序不僅限于本發(fā)明實(shí)施例中所述的順序,可以按照任意順序進(jìn)行查詢,也可以同時(shí)查詢,這里不再一一贅述。

由此可知,圖1至圖3中所提供的方法,能夠準(zhǔn)確識(shí)別合法的接收端,即能夠確定合法的源IP地址;對(duì)于非合法的接收端,該接收端的源IP地址可能被識(shí)別為不合法的源IP地址,也可能被識(shí)別為待定的源IP地址。

在一個(gè)例子中,提供第三種確定源IP地址非法的方法,執(zhí)行將所述第一報(bào)文的源IP地址添加至第一集合后,還包括:

判斷是否接收到第四報(bào)文,所述第四報(bào)文與所述第一報(bào)文的源IP地址相同,所述第四報(bào)文是第一次握手報(bào)文;

當(dāng)收到所述第四報(bào)文時(shí),執(zhí)行向所述發(fā)送端返回第二報(bào)文;

當(dāng)沒有收到所述第四報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

上述實(shí)施例中,對(duì)于同一個(gè)發(fā)送端來說,第一次接收到該發(fā)送端發(fā)送的第一次握手報(bào)文(第一報(bào)文)時(shí),將該發(fā)送端的源IP地址添加至第一集合,作為待定的源IP地址,不對(duì)該第一報(bào)文進(jìn)行任何響應(yīng),即不給該發(fā)送端回復(fù)任何報(bào)文,也不會(huì)根據(jù)該第一報(bào)文建立半連接信息。

若該發(fā)送端再次發(fā)送一個(gè)第一次握手報(bào)文(第四報(bào)文),則給該發(fā)送端返回第二報(bào)文,識(shí)別該發(fā)送端的源IP地址的合法性。

若在一個(gè)預(yù)設(shè)的時(shí)間間隔內(nèi)沒有再次接收到該發(fā)送端發(fā)送的第一次握手報(bào)文,則表示該發(fā)送端是非法的,即該第一報(bào)文的源IP地址是非法的源IP地址,將第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

在一個(gè)例子中,還包括:

獲取預(yù)設(shè)的會(huì)話表中半連接表項(xiàng)的個(gè)數(shù);

判斷所述半連接表項(xiàng)的個(gè)數(shù)是否大于預(yù)設(shè)的第二閾值;

當(dāng)所述半連接表項(xiàng)的個(gè)數(shù)大于預(yù)設(shè)的第二閾值時(shí),將所述半連接表項(xiàng)對(duì)應(yīng)的源IP地址從所述第二集合中轉(zhuǎn)移至第三集合中。

在上述例子中,若預(yù)設(shè)的會(huì)話表包括報(bào)文的五元組(源IP地址,目的IP地址,源端口號(hào),目的端口號(hào),傳輸協(xié)議)與表項(xiàng)的對(duì)應(yīng)關(guān)系。其中,表項(xiàng)包括會(huì)話表項(xiàng)和半連接表項(xiàng),會(huì)話表項(xiàng)是TCP連接建立完畢后所生成的表項(xiàng)。半連接表項(xiàng)是TCP連接還未完全建立時(shí)所生成的表項(xiàng)??梢岳斫獾氖牵R(shí)別了發(fā)送端的源IP地址合法后,才會(huì)在會(huì)話表中建立表項(xiàng)(包括會(huì)話表項(xiàng)和半連接表項(xiàng)),因此,該會(huì)話表中半連接表項(xiàng)對(duì)應(yīng)的源IP地址都被識(shí)別為合法的源IP地址,屬于第二集合。

若該預(yù)設(shè)的會(huì)話表中存在大量的半連接表項(xiàng)(即半連接表項(xiàng)的個(gè)數(shù)超過預(yù)設(shè)的第二閾值),則表示當(dāng)前存在網(wǎng)絡(luò)攻擊。則將半連接表項(xiàng)對(duì)應(yīng)的源IP地址從第二集合轉(zhuǎn)移至第三集合。

當(dāng)然,可以理解的是,一個(gè)源IP地址可能對(duì)應(yīng)于多個(gè)半連接表項(xiàng)。在具體實(shí)現(xiàn)時(shí),還可以設(shè)置一個(gè)預(yù)設(shè)的第三閾值,當(dāng)一個(gè)源IP地址所對(duì)應(yīng)的半連接表項(xiàng)的個(gè)數(shù)超過預(yù)設(shè)的第三閾值時(shí),將該源IP地址從第二集合轉(zhuǎn)移至第三集合。

在一個(gè)例子中,還包括:

生成一個(gè)有效全局表,將所述第二集合存儲(chǔ)至有效全局表,所述有效全局表能夠被每個(gè)CPU采用無鎖查詢機(jī)制訪問;

給每個(gè)CPU生成一個(gè)第一局部表,每個(gè)第一局部表存儲(chǔ)有該第一局部表所屬的CPU所獲得的第一集合,每個(gè)第一局部表只能被該第一局部表所屬的CPU訪問。

從內(nèi)存池中申請(qǐng)一個(gè)內(nèi)存空間,生成一個(gè)有效全局表,該有效全局表用于存儲(chǔ)第二集合,該有效全局表是永久的。從而保證該有效全局表所占的資源空間都是在指定的內(nèi)存地址范圍內(nèi)。并且,各個(gè)CPU都能訪問該有效全局表,并且各個(gè)CPU都采用無鎖訪問機(jī)制,能夠提高訪問該有效全局表的速度。

給每個(gè)CPU生成一個(gè)第一局部表,每個(gè)CPU的第一局部表用于存儲(chǔ)屬于該CPU的第一集合,每個(gè)CPU只能訪問屬于該CPU的第一局部表,不能訪問別的CPU的第一局部表。

單獨(dú)建立一個(gè)有效全局表存儲(chǔ)第二集合,即有效的源IP地址單獨(dú)存儲(chǔ),是因?yàn)楫?dāng)出現(xiàn)網(wǎng)絡(luò)攻擊時(shí),第一集合和第三集合中的源IP地址非常多,若將第一集合,第二集合以及第三集合存儲(chǔ)在一起,會(huì)影響第二集合的查找性能,即影響合法報(bào)文的轉(zhuǎn)發(fā)速度。

在一個(gè)例子中,還包括:

給每個(gè)CPU生成一個(gè)第二局部表,每個(gè)第一局部表存儲(chǔ)有該第一局部表所屬的CPU所獲得的第三集合,每個(gè)第二局部表只能被該第二局部表所屬的CPU訪問。

給每個(gè)CPU生成一個(gè)第二局部表,每個(gè)CPU的第二局部表用于存儲(chǔ)屬于該CPU的第三集合,每個(gè)CPU只能訪問屬于該CPU的第二局部表,不能訪問別的CPU的第二局部表。

在具體實(shí)現(xiàn)時(shí),同一個(gè)CPU的第一局部表和第二局部表,可以是同一個(gè)表。即給每個(gè)CPU生成一個(gè)局部表,每個(gè)CPU的局部表存儲(chǔ)屬于該CPU的第一集合和第三集合。

給每個(gè)CPU分別建立第一局部表和第二局部表,是因?yàn)楫?dāng)出現(xiàn)網(wǎng)絡(luò)攻擊時(shí),會(huì)對(duì)該第一局部表和第二局部表進(jìn)行頻繁的增加和刪除的處理,若所有CPU使用同一個(gè)表,則會(huì)影響處理的速度。給每個(gè)CPU分別建立第一局部表和第二局部表,可以加快各個(gè)CPU對(duì)第一局部表和第二局部表中的數(shù)據(jù)處理的速度。

在一個(gè)例子中,

每個(gè)CPU的第一局部表和第二局部表的超時(shí)機(jī)制采用一個(gè)LRU表進(jìn)行維護(hù)。

最少使用算法(Least Recently Used,LRU)維護(hù)一個(gè)CPU的第一局部表和第二局部表中的超時(shí)機(jī)制,每次訪問第一局部表和第二局部表時(shí),將所訪問的表項(xiàng)(即第一局部表或第二局部表的一個(gè)源IP地址)移至LRU的表頭,以更新LRU表。以此類推,多次迭代后即可保證LRU表的表尾為最不常用的表項(xiàng),LRU的表頭是最近常用的表項(xiàng)。當(dāng)一個(gè)CPU的第一局部表和第二局部表中資源緊張時(shí),將LRU表的表尾的最不常用的表項(xiàng)替換,完成超時(shí)替換。

上述內(nèi)容提供了識(shí)別源IP地址合法性方法,接收到第一次握手報(bào)文后,回復(fù)一個(gè)第二報(bào)文,第二報(bào)文中攜帶的是根據(jù)第一次握手報(bào)文的序列號(hào)生成的錯(cuò)誤的序列號(hào),而不是正確的序列號(hào),因此,無需判斷發(fā)送端返回的序列號(hào)是否正確,即無需占用內(nèi)存存儲(chǔ)第一次握手報(bào)文和第二次握手報(bào)文的半連接等信息,降低了內(nèi)存的消耗。

下面利用本發(fā)明所提供的識(shí)別源IP地址合法性方法所識(shí)別的結(jié)果,實(shí)現(xiàn)網(wǎng)絡(luò)攻擊防御,如圖5所示,包括:

501:接收發(fā)送端發(fā)送的第一報(bào)文。

502:查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址,如果是,執(zhí)行503;如果否,執(zhí)行504,所述預(yù)設(shè)的第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法。

503:利用所述第一報(bào)文獲得會(huì)話表項(xiàng),利用所述會(huì)話表項(xiàng)對(duì)所述第一報(bào)文進(jìn)行轉(zhuǎn)發(fā)。

504:丟棄所述第一報(bào)文。

預(yù)設(shè)的第二報(bào)文集合包括合法的源IP地址,該預(yù)設(shè)的第二報(bào)文集合可以采用圖1至圖4所示的識(shí)別源IP地址合法性方法獲得。該預(yù)設(shè)的第二報(bào)文集合也可以由技術(shù)人員人工生成。該預(yù)設(shè)的第二報(bào)文集合還可以采用其他方法獲得,這里不再一一贅述。

預(yù)設(shè)的第二集合中存在第一報(bào)文的源IP地址時(shí),表示該源IP地址合法。根據(jù)第一報(bào)文獲得會(huì)話表項(xiàng),具體實(shí)現(xiàn)時(shí),從預(yù)設(shè)的會(huì)話表中查詢是否存在該第一報(bào)文的五元組對(duì)應(yīng)的會(huì)話表項(xiàng),若存在,則利用該會(huì)話表項(xiàng)對(duì)第一報(bào)文進(jìn)行轉(zhuǎn)發(fā);若不存在,則給該第一報(bào)文生成一個(gè)會(huì)話表項(xiàng),利用該生成的會(huì)話表項(xiàng)對(duì)該第一報(bào)文進(jìn)行轉(zhuǎn)發(fā)。

若預(yù)設(shè)的第二集合中不存在第一報(bào)文的源IP地址時(shí),則丟棄該第一報(bào)文,有三種可能的實(shí)現(xiàn)場(chǎng)景,逐一進(jìn)行詳細(xì)說明。

第一種可能的場(chǎng)景:若預(yù)設(shè)的第二集合中不存在第一報(bào)文的源IP地址時(shí),直接丟棄該第一報(bào)文。

預(yù)設(shè)的第二集合中不存在第一報(bào)文的源IP地址時(shí),表示該第一報(bào)文的源IP地址不是合法的源IP地址,可能是不合法的源IP地址,也可能是待定的源IP地址,將該第一報(bào)文直接丟棄即可。

第二種可能的實(shí)現(xiàn)場(chǎng)景,如圖6所示:

當(dāng)所述預(yù)設(shè)的第二集合中不存在所述第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第三集合中是否存在所述第一報(bào)文的源IP地址,所述預(yù)設(shè)的第三集合包括至少一個(gè)非法的源IP地址,所述非法的源IP地址用于表征該非法的源IP地址所對(duì)應(yīng)的報(bào)文不合法。

當(dāng)所述預(yù)設(shè)的第三集合中存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文。

當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文。

若預(yù)設(shè)的第二集合中不存在第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第三集合中是否存在第一報(bào)文的源IP地址,當(dāng)預(yù)設(shè)的第三集合中存在第一報(bào)文的源IP地址時(shí),表示第一報(bào)文的源IP地址是不合法的源IP地址,丟該第一報(bào)文;當(dāng)預(yù)設(shè)的第三集合中不存在第一報(bào)文的源IP地址時(shí),表示第一報(bào)文的源IP地址是待定的源IP地址,丟棄該第一報(bào)文。

可以由上述內(nèi)容可以看出,若該第一報(bào)文的源IP地址是不合法的源IP地址,丟棄該第一報(bào)文。若該第一報(bào)文的源IP地址是待定的源IP地址,也要丟棄該第報(bào)文。第二種實(shí)現(xiàn)場(chǎng)景中,可以識(shí)別該第一報(bào)文的源IP地址是不合法的源IP地址,還是待定的源IP地址。

第三種可能的場(chǎng)景,如圖7所示:

當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第一集合中是否存在所述第一報(bào)文的源IP地址,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定;

當(dāng)所述預(yù)設(shè)的第一集合中不存在所述第一報(bào)文的源IP地址時(shí),將所述第一報(bào)文的源IP地址添加至所述預(yù)設(shè)的第一集合,丟棄所述第一報(bào)文;

當(dāng)所述預(yù)設(shè)的第一集合中存在所述第一報(bào)文的源IP地址時(shí),確定所述第一報(bào)文的源IP地址是否合法,丟棄所述第一報(bào)文。

當(dāng)預(yù)設(shè)的第三集合中不存在該第一報(bào)文的源IP地址時(shí),則該第一報(bào)文的源IP地址不是不合法的源IP地址,查詢預(yù)設(shè)的第一集合中是否存在該第一報(bào)文的源IP地址。

若預(yù)設(shè)的第一集合中不存在該第一報(bào)文的源IP地址,表示第一次從該接收端接收到第一次握手報(bào)文,將該第一報(bào)文的源IP地址添加至預(yù)設(shè)的第一集合,該第一報(bào)文的源IP地址為待定的源IP地址,丟棄該第一報(bào)文。即從一個(gè)接收端第一次接收到的第一握手報(bào)文都丟棄。

若預(yù)設(shè)的第一集合中存在該第一報(bào)文的源IP地址,則表示該第一報(bào)文的源IP地址是待定的源IP地址,確定所述第一報(bào)文的源IP地址是否合法,并且,也丟棄該第一報(bào)文。

其中,確定該第一報(bào)文的源IP地址是否合法,可以按照?qǐng)D1至圖4所示的方法進(jìn)行確定,參考圖1至圖4中的具體描述,這里不再贅述。

在一個(gè)例子中,所述確定所述第一報(bào)文的源IP地址是否合法包括:

向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào);

當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文;

當(dāng)沒有接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址不合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

在一個(gè)例子中,所述確定所述第一報(bào)文的源IP地址是否合法包括:

獲取確認(rèn)報(bào)文數(shù),所述確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù);

判斷所述確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值;

當(dāng)所述確認(rèn)報(bào)文數(shù)不大于所述預(yù)設(shè)的第一閾值時(shí),向所述發(fā)送端返回第二報(bào)文,當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合;

當(dāng)所述確認(rèn)報(bào)文數(shù)大于預(yù)設(shè)的第一閾值時(shí),確定所述第一報(bào)文的源IP地址不合法將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

在一個(gè)例子中,如圖8所示,所述查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址包括:

根據(jù)所述第一報(bào)文的五元組從預(yù)設(shè)的會(huì)話表中查找會(huì)話表項(xiàng);

當(dāng)從所述預(yù)設(shè)的會(huì)話表中查找到所述會(huì)話表項(xiàng)時(shí),所述預(yù)設(shè)的第二集合中存在所述第一報(bào)文的源IP地址,利用所述會(huì)話表項(xiàng)對(duì)所述第一報(bào)文進(jìn)行轉(zhuǎn)發(fā);

當(dāng)沒有從所述預(yù)設(shè)的會(huì)話表中查找到所述會(huì)話表項(xiàng)時(shí),執(zhí)行直接查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址。

查詢預(yù)設(shè)的第二集合中是否存在第一報(bào)文的源IP地址,有至少兩種可能的實(shí)現(xiàn)方式:

第一種實(shí)現(xiàn)方式,直接從第二集合中查詢是否存在該第一報(bào)文的源IP地址。

第二種實(shí)現(xiàn)方式,先從預(yù)設(shè)的會(huì)話表中查詢是否存在該第一報(bào)文的五元組對(duì)應(yīng)的會(huì)話表項(xiàng),若該預(yù)設(shè)的會(huì)話表中存在該第一報(bào)文的五元組會(huì)話的表項(xiàng),即表示該第一報(bào)文的源IP地址屬于第二集合;若會(huì)話表中不存在該第一報(bào)文的五元組會(huì)話的表項(xiàng),再直接從第二集合中查詢是否存在該第一報(bào)文的源IP地址。

這里可以理解的是,識(shí)別了發(fā)送端的源IP地址合法后,才會(huì)在會(huì)話表中建立會(huì)話表項(xiàng),因此,若能夠根據(jù)第一報(bào)文的五元組信息在該會(huì)話表中查找到會(huì)話表項(xiàng),即該第一報(bào)文的源IP地址是合法的源IP地址,肯定屬于第二集合,無需再從第二集合中進(jìn)行查詢。

由上述內(nèi)容可知,本發(fā)明所提供的網(wǎng)絡(luò)攻擊防御方法中,只要該第一報(bào)文的源IP地址不在預(yù)設(shè)的第二集合中,包括:第一報(bào)文是該發(fā)送端第一次發(fā)送的第一次握手報(bào)文,該第一報(bào)文的源IP地址是待定的源IP地址,該第一報(bào)文的源IP地址是不合法的源IP地址,上述三種情況下,都要將該第一報(bào)文丟棄,從而達(dá)到對(duì)網(wǎng)絡(luò)攻擊防御的目的。

并且,在本發(fā)明所提供的網(wǎng)絡(luò)攻擊防御方法中,該第一報(bào)文的源IP地址只要不是合法的源IP地址,就丟棄該第一報(bào)文,遇到網(wǎng)絡(luò)攻擊時(shí),接收大量的第一次握手報(bào)文時(shí),并不給每個(gè)第一次握手報(bào)文建立一個(gè)哈希表存儲(chǔ)半連接信息,降低內(nèi)存的消耗。

具體的,本發(fā)明所提供的網(wǎng)絡(luò)攻擊防御方法中,可以采用圖1至圖4的方法識(shí)別第一報(bào)文的源IP地址的合法性,從而獲得預(yù)設(shè)的第一集合,預(yù)設(shè)的第二集合,以及預(yù)設(shè)的第三集合。具體實(shí)現(xiàn)方法參考圖1至圖4中的描述,這里不再贅述。

圖9為本發(fā)明實(shí)施例提供的識(shí)別源IP地址合法性的裝置結(jié)構(gòu)示意圖,包括:

第一添加單元901,用于接收發(fā)送端發(fā)送的第一報(bào)文,將所述第一報(bào)文的源IP地址添加至第一集合,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定,所述第一報(bào)文是第一次握手報(bào)文。

第一發(fā)送單元902,用于向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào)。

第一轉(zhuǎn)移單元903,用于當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文。

在一個(gè)例子中,所述裝置還包括:

第二轉(zhuǎn)移單元,用于當(dāng)沒有接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合,所述第三集合包括至少一個(gè)非法的源IP地址,所述非法的源IP地址用于表征該非法的源IP地址所對(duì)應(yīng)的報(bào)文不合法。

在一個(gè)例子中,所述裝置還包括:

第一查詢單元,用于查詢所述第一報(bào)文的源IP地址是否屬于所述第二集合;

第二查詢單元,用于當(dāng)所述第一報(bào)文的源IP地址不屬于所述第二集合時(shí),查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合;

第二添加單元,用于當(dāng)所述第一報(bào)文的源IP地址不屬于所述第一集合時(shí),執(zhí)行將所述第一報(bào)文的源IP地址添加至第一集合;

第一獲取單元,用于當(dāng)所述第一報(bào)文的源IP地址屬于第一集合時(shí),識(shí)別所述第一報(bào)文的IP地址是待定的源IP地址,獲取所述源IP地址對(duì)應(yīng)的確認(rèn)報(bào)文數(shù),所述確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù);

第一判斷單元,用于判斷所述確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值;

第二發(fā)送單元,用于當(dāng)所述確認(rèn)報(bào)文數(shù)不大于所述預(yù)設(shè)的第一閾值時(shí),向所述發(fā)送端返回第二報(bào)文,所述確認(rèn)報(bào)文數(shù)加1;

第三轉(zhuǎn)移單元,用于當(dāng)所述確認(rèn)報(bào)文數(shù)大于預(yù)設(shè)的第一閾值時(shí),執(zhí)行將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

在一個(gè)例子中,所述裝置還包括:

第三查詢單元,用于查詢所述第一報(bào)文的源IP地址是否屬于所述第三集合;

第四查詢單元,用于當(dāng)所述第一報(bào)文的源IP地址不屬于所述第三集合時(shí),執(zhí)行查詢所述第一報(bào)文的源IP地址是否屬于所述第一集合。

在一個(gè)例子中,執(zhí)行將所述第一報(bào)文的源IP地址添加至第一集合后,所述裝置還包括:

第二判斷單元,用于判斷是否接收到第四報(bào)文,所述第四報(bào)文與所述第一報(bào)文的源IP地址相同,所述第四報(bào)文是第一次握手報(bào)文;

第三發(fā)送單元,用于當(dāng)收到所述第四報(bào)文時(shí),執(zhí)行向所述發(fā)送端返回第二報(bào)文;

第四轉(zhuǎn)移單元,用于當(dāng)沒有收到所述第四報(bào)文時(shí),將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

在一個(gè)例子中,所述裝置還包括:

第二獲取單元,用于獲取預(yù)設(shè)的會(huì)話表中半連接表項(xiàng)的個(gè)數(shù);

第三判斷單元,用于判斷所述半連接表項(xiàng)的個(gè)數(shù)是否大于預(yù)設(shè)的第二閾值;

第五轉(zhuǎn)移單元,用于當(dāng)所述半連接表項(xiàng)的個(gè)數(shù)大于預(yù)設(shè)的第二閾值時(shí),將所述半連接表項(xiàng)對(duì)應(yīng)的源IP地址從所述第二集合中轉(zhuǎn)移至第三集合中。

在一個(gè)例子中,所述裝置還包括:

第一生成單元,用于生成一個(gè)有效全局表,將所述第二集合存儲(chǔ)至有效全局表,所述有效全局表能夠被每個(gè)CPU采用無鎖查詢機(jī)制訪問;

第二生成單元,用于給每個(gè)CPU生成一個(gè)第一局部表,每個(gè)第一局部表存儲(chǔ)有該第一局部表所屬的CPU所獲得的第一集合,每個(gè)第一局部表只能被該第一局部表所屬的CPU訪問。

在一個(gè)例子中,所述裝置還包括:

第三生成單元,用于給每個(gè)CPU生成一個(gè)第二局部表,每個(gè)第一局部表存儲(chǔ)有該第一局部表所屬的CPU所獲得的第三集合,每個(gè)第二局部表只能被該第二局部表所屬的CPU訪問。

在一個(gè)例子中,所述裝置還包括:

維護(hù)單元,用于每個(gè)CPU的第一局部表和第二局部表的超時(shí)機(jī)制采用一個(gè)近期最少使用算法LRU表進(jìn)行維護(hù)。

圖9所示的識(shí)別源IP地址合法性的裝置是與圖1至圖4所示的識(shí)別源IP地址合法性的方法所對(duì)應(yīng)的裝置,具體實(shí)現(xiàn)方法與圖1至圖4所示的方法類似,參考圖1至圖4所示的方法的描述,這里不再贅述。

圖10為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)攻擊防御裝置結(jié)構(gòu)示意圖,包括:

接收模塊1001,用于接收發(fā)送端發(fā)送的第一報(bào)文,所述第一報(bào)文是第一次握手報(bào)文。

查詢模塊1002,用于查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址,所述預(yù)設(shè)的第二集合包括至少一個(gè)合法的源IP地址,所述合法的源IP地址用于表征該合法的源IP地址所對(duì)應(yīng)的報(bào)文合法。

轉(zhuǎn)發(fā)模塊1003,用于當(dāng)所述預(yù)設(shè)的第二集合中存在所述第一報(bào)文的源IP地址時(shí),利用所述第一報(bào)文獲得會(huì)話表項(xiàng),利用所述會(huì)話表項(xiàng)對(duì)所述第一報(bào)文進(jìn)行轉(zhuǎn)發(fā)。

丟棄模塊1004,用于當(dāng)所述預(yù)設(shè)的第二集合中不存在所述第一報(bào)文的源IP地址時(shí),丟棄所述第一報(bào)文。

在一個(gè)例子中,所述丟棄模塊包括:

查詢單元,用于當(dāng)所述預(yù)設(shè)的第二集合中不存在所述第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第三集合中是否存在所述第一報(bào)文的源IP地址,所述預(yù)設(shè)的第三集合包括至少一個(gè)非法的源IP地址,所述非法的源IP地址用于表征該非法的源IP地址所對(duì)應(yīng)的報(bào)文不合法;

第一丟棄單元,用于當(dāng)所述預(yù)設(shè)的第三集合中存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文;

第二丟棄單元,用于當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),執(zhí)行丟棄所述第一報(bào)文。

在一個(gè)例子中,所述第二丟棄單元包括:

查詢子單元,用于當(dāng)所述預(yù)設(shè)的第三集合中不存在所述第一報(bào)文的源IP地址時(shí),查詢預(yù)設(shè)的第一集合中是否存在所述第一報(bào)文的源IP地址,所述第一集合包括至少一個(gè)待定的源IP地址,所述待定的源IP地址用于表征該待定的源IP地址所對(duì)應(yīng)的報(bào)文的合法性不確定;

添加子單元,用于當(dāng)所述預(yù)設(shè)的第一集合中不存在所述第一報(bào)文的源IP地址時(shí),將所述第一報(bào)文的源IP地址添加至所述預(yù)設(shè)的第一集合,丟棄所述第一報(bào)文;

確定子單元,用于當(dāng)所述預(yù)設(shè)的第一集合中存在所述第一報(bào)文的源IP地址時(shí),確定所述第一報(bào)文的源IP地址是否合法,丟棄所述第一報(bào)文。

在一個(gè)例子中,所述確定子單元用于:

向所述發(fā)送端返回第二報(bào)文,所述第二報(bào)文包括根據(jù)所述第一報(bào)文的同步序列號(hào)生成的錯(cuò)誤的序列號(hào);

當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合,所述第三報(bào)文是根據(jù)所述錯(cuò)誤的序列號(hào)生成的報(bào)文;

當(dāng)沒有接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址不合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

在一個(gè)例子中,所述確定子單元用于:

獲取確認(rèn)報(bào)文數(shù),所述確認(rèn)報(bào)文數(shù)用于指示給所述發(fā)送端返回包含錯(cuò)誤序列號(hào)的報(bào)文的個(gè)數(shù);

判斷所述確認(rèn)報(bào)文數(shù)是否大于預(yù)設(shè)的第一閾值;

當(dāng)所述確認(rèn)報(bào)文數(shù)不大于所述預(yù)設(shè)的第一閾值時(shí),向所述發(fā)送端返回第二報(bào)文,當(dāng)接收到所述發(fā)送端發(fā)送的第三報(bào)文時(shí),確定所述第一報(bào)文的源IP地址合法,將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第二集合;

當(dāng)所述確認(rèn)報(bào)文數(shù)大于預(yù)設(shè)的第一閾值時(shí),確定所述第一報(bào)文的源IP地址不合法將所述第一報(bào)文的源IP地址從所述第一集合轉(zhuǎn)移至第三集合。

在一個(gè)例子中,所述查詢模塊包括:

查找單元,用于根據(jù)所述第一報(bào)文的五元組從預(yù)設(shè)的會(huì)話表中查找會(huì)話表項(xiàng);

轉(zhuǎn)發(fā)單元,用于當(dāng)從所述預(yù)設(shè)的會(huì)話表中查找到所述會(huì)話表項(xiàng)時(shí),所述預(yù)設(shè)的第二集合中存在所述第一報(bào)文的源IP地址,利用所述會(huì)話表項(xiàng)對(duì)所述第一報(bào)文進(jìn)行轉(zhuǎn)發(fā);

查詢單元,用于當(dāng)沒有從所述預(yù)設(shè)的會(huì)話表中查找到所述會(huì)話表項(xiàng)時(shí),執(zhí)行直接查詢預(yù)設(shè)的第二集合中是否存在所述第一報(bào)文的源IP地址。

圖10所示的網(wǎng)絡(luò)攻擊防御裝置,是與圖5至圖8所示的網(wǎng)絡(luò)攻擊防御方法所對(duì)應(yīng)的裝置,具體實(shí)現(xiàn)方法與圖5至圖8所示的方法類似,參考圖5至圖8所示的方法的描述,這里不再贅述。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1