国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      Dns系統(tǒng)以及dns攻擊的防御方法和防御裝置制造方法

      文檔序號:7800857閱讀:264來源:國知局
      Dns系統(tǒng)以及dns攻擊的防御方法和防御裝置制造方法
      【專利摘要】本發(fā)明提供了一種DNS系統(tǒng)以及DNS攻擊的防御方法和防御裝置。其中該防御方法包括:獲取DNS查詢請求以及DNS查詢請求的請求源的IP地址;按照IP地址在訪問記錄數(shù)據(jù)庫中查詢得出請求源在的請求記錄信息;判斷請求記錄信息中預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值;若是,判定請求源進行DNS攻擊,并進行防御。由于對每個請求源的IP地址進行判斷,不會影響其他請求源的正常訪問,實現(xiàn)了精確的攻擊防御。
      【專利說明】DNS系統(tǒng)以及DNS攻擊的防御方法和防御裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計算機安全【技術(shù)領(lǐng)域】,特別是涉及DNS系統(tǒng)以及DNS攻擊的防御方法和防御裝置。
      【背景技術(shù)】
      [0002]域名系統(tǒng)(Domain Name System,簡稱DNS)是因特網(wǎng)(Internet)的一項核心服務(wù),有著極其重要的地位,其作為可以將域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,能夠使人更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機器直接讀取的IP數(shù)串。
      [0003]域名系統(tǒng)作為一個基礎(chǔ)性的互聯(lián)網(wǎng)協(xié)議,相對于目前防范措施比較完善的各種WEB服務(wù),基于DNS的防范依然很弱,易被黑客利用攻擊。DNS攻擊時一種新型的拒絕服務(wù)攻擊(Denial of Service,簡稱 Dos 攻擊)。
      [0004]DNS自身的特性決定了它可以被利用作為“攻擊放大器”進行分布式拒絕服務(wù)攻擊。一是DNS協(xié)議自身的弱點導(dǎo)致查詢請求報文和查詢應(yīng)答報文均可被偽造,網(wǎng)絡(luò)攻擊者可以通過虛假的源地址偽造成被攻擊主機向DNS服務(wù)器發(fā)送DNS查詢請求,同時還可以隱藏攻擊者的身份;二是DNS服務(wù)器對DNS查詢請求時“有求必應(yīng)”,并且無法判斷一個DNS查詢請求是否為惡意攻擊;三是DNS服務(wù)器解析域名時,應(yīng)答報文比查詢報文要大,可以實現(xiàn)放大攻擊的效果。
      [0005]例如,在早期針對DNS服務(wù)器的攻擊行為中,攻擊者能夠向DNS服務(wù)器發(fā)出60個字節(jié)的查詢信息,收到512個字節(jié)的回應(yīng)信息,使通訊量放大8.5倍。隨著對DNS協(xié)議的深入研究,攻擊者發(fā)現(xiàn)利用具有遞歸查詢功能的DNS服務(wù)器可以把DNS回應(yīng)數(shù)據(jù)放大到66倍。如果數(shù)以萬計的計算機,偽裝成被攻擊主機同時向DNS服務(wù)器連續(xù)發(fā)送大量的DNS請求數(shù)據(jù)包,由DNS服務(wù)器返回的應(yīng)答數(shù)據(jù)量成倍放大,甚至能夠超過每秒鐘100GB,這對被攻擊主機來說是致命的攻擊行為。
      [0006]DNS攻擊的一個明顯特征是偽造成被攻擊者的IP發(fā)送大量的請求數(shù)據(jù)包,迫使其回應(yīng),達到放大效果。
      [0007]現(xiàn)有技術(shù)中針對DNS攻擊采取的方法是利用防火墻限制IP地址的請求量,例如控制某IP段內(nèi)通過的DNS請求包限制在300個以內(nèi)每秒,大于這個的請求認為可能是攻擊,直接丟棄。采取這樣的限制措施,需要對IP地址段設(shè)置對應(yīng)的限制閾值。但是通常DNS服務(wù)器的服務(wù)的是全球的所有IP。特別是授權(quán)DNS服務(wù)器的服務(wù)對象是全球的本地遞歸服務(wù)器。這些本地遞歸服務(wù)器IP不可能預(yù)先知道。因此無法把全球所有的IP逐一進行配置。
      [0008]當然也可以將IP段設(shè)置成較大的地址段進行限制,也就是限制該段的請求總量,這樣會造成大量的誤攔,無法做到精確對DNS攻擊進行防御。
      [0009]現(xiàn)有技術(shù)中的另一種防御方法為:存在發(fā)生攻擊時,查找攻擊源的IP地址,再將該IP地址的限速策略設(shè)置到防火墻配置,這種方式的實時性差,無法實現(xiàn)實時防御。

      【發(fā)明內(nèi)容】
      [0010]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的DNS系統(tǒng)、DNS攻擊的防御裝置和相應(yīng)的DNS攻擊的防御方法。
      [0011]本發(fā)明一個進一步的目的是要使得精確對DNS攻擊進行防御。
      [0012]本發(fā)明另一個進一步的目的是要提高防御DNS攻擊的實時性,不降低服務(wù)的性能和效率。
      [0013]依據(jù)本發(fā)明的一個方面,提供了一種DNS攻擊的防御方法。該防御方法包括:獲取DNS查詢請求以及DNS查詢請求的請求源的IP地址;按照IP地址在訪問記錄數(shù)據(jù)庫中查詢得出請求源的請求記錄信息;判斷請求記錄信息中在預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值;若是,判定請求源進行DNS攻擊,并進行防御。
      [0014]可選地,獲取DNS查詢請求包括:在操作系統(tǒng)的防火墻框架內(nèi)注冊鉤子函數(shù);利用鉤子函數(shù)捕捉DNS查詢請求。
      [0015]可選地,在獲取DNS查詢請求之后還包括:分別判斷DNS查詢請求的數(shù)據(jù)包數(shù)據(jù)格式是否符合預(yù)定協(xié)議,以及DNS查詢請求的目的端口是否為預(yù)定端口 ;若均為是,執(zhí)行查詢請求記錄信息的步驟。
      [0016]可選地,按照IP地址在訪問記錄數(shù)據(jù)庫中查詢得出請求源在預(yù)定周期內(nèi)的請求記錄信息包括:按照IP地址中前三段的數(shù)值,在訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針,其中第一索引表中存儲有多個IP地址段分別對應(yīng)的第二索引表的存儲指針;按照IP地址中前三段的數(shù)值對應(yīng)的存儲指針讀取對應(yīng)的第二索引表,第二索引表中存儲有一個IP地址段中多個IP地址的請求記錄信息;按照IP地址的第四段的數(shù)值,在IP地址中前三段的數(shù)值對應(yīng)的第二索引表中查找IP地址對應(yīng)的請求記錄信息。
      [0017]可選地,在第一索引表中,索引值為IP地址的前三段數(shù)值的哈希值,索引項為IP地址段對應(yīng)的第二索引表的存儲指針,在訪問記錄數(shù)據(jù)庫的第一索弓I表中查找對應(yīng)的存儲指針包括:計算IP地址中的前三段的數(shù)值的哈希值;將哈希值作為索引值在第一索引表中查找對應(yīng)的存儲指針。
      [0018]可選地,按照IP地址中前三段的數(shù)值,在訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針之后還包括:判斷存儲指針是否為空;若是,為IP地址所在的IP地址段分配存儲空間,并在存儲空間內(nèi)建立包含多個結(jié)構(gòu)體的數(shù)組作為第二索引表,并保存存儲空間的存儲指針;若否,執(zhí)行按照存儲指針讀取對應(yīng)的第二索引表的步驟。
      [0019]可選地,按照IP地址的第四段的數(shù)值,在IP地址中前三段的數(shù)值對應(yīng)的第二索引表中查找IP地址對應(yīng)的請求記錄信息之后還包括:判斷第二索引表中是否包含IP地址對應(yīng)的請求記錄信息;若否,在第二索引表中分配IP地址的存儲空間,并將DNS查詢請求的信息保存為請求記錄信息;若是,在IP地址對應(yīng)的請求記錄信息中添加DNS查詢請求的信息,以對請求記錄信息進行更新。
      [0020]可選地,在判斷第二索引表中是否包含IP地址對應(yīng)的請求記錄信息之后還包括:掃描第二索引表中的請求記錄信息,并刪除預(yù)訂時間內(nèi)持續(xù)未更新的請求記錄信息。
      [0021]可選地,在判定請求源進行DNS攻擊之后還包括:向所述請求源的客戶端返回DNS請求異常的信息,以便所述客戶端進行提示或處理。。
      [0022]根據(jù)本發(fā)明的另一個方面,還提供了一種DNS攻擊的防御裝置,包括:請求獲取模塊,用于獲取DNS查詢請求以及DNS查詢請求的請求源的IP地址;請求記錄信息查詢模塊,用于按照IP地址在訪問記錄數(shù)據(jù)庫中查詢得出請求源的請求記錄信息;攻擊判斷模塊,用于判斷請求記錄信息記錄中在預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值;防御模塊,用于在攻擊判斷模塊的判斷結(jié)果為是的情況下,攔截DNS查詢請求。
      [0023]可選地,上述防御裝置還包括:函數(shù)注冊模塊,用于在操作系統(tǒng)的防火墻框架內(nèi)注冊鉤子函數(shù);請求獲取模塊還被配置為:利用鉤子函數(shù)捕捉DNS查詢請求。
      [0024]可選地,上述防御裝置還包括:DNS查詢請求包判斷模塊,用于分別判斷DNS查詢請求的數(shù)據(jù)包數(shù)據(jù)格式是否符合預(yù)定協(xié)議,以及DNS查詢請求的目的端口是否為預(yù)定端口 ;請求記錄信息查詢模塊還被配置為:如果DNS查詢請求包判斷模塊的判斷結(jié)果均為是,執(zhí)行查詢請求記錄信息的步驟。
      [0025]可選地,請求記錄信息查詢模塊包括:第一索引表查詢子模塊,用于按照IP地址中前三段的數(shù)值在訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針,其中第一索引表中存儲有多個IP地址段分別對應(yīng)的第二索引表的存儲指針;第二索引表查詢子模塊,用于按照IP地址中前三段的數(shù)值對應(yīng)的存儲指針讀取對應(yīng)的第二索引表,并按照IP地址的第四段的數(shù)值在IP地址中前三段的數(shù)值對應(yīng)的第二索引表中查找IP地址對應(yīng)的請求記錄信息,第二索引表中存儲有一個IP地址段中多個IP地址的請求記錄信息。
      [0026]可選地,上述防御裝置還包括:第一索引表更新模塊,用于判斷第一索引表查詢子模塊查詢出的存儲指針是否為空;若是,為IP地址所在的IP地址段分配存儲空間,并在存儲空間內(nèi)建立包含多個結(jié)構(gòu)體的數(shù)組作為第二索引表,并保存存儲空間的存儲指針。
      [0027]可選地,上述防御裝置還包括:第二索引表更新模塊,用于判斷第二索引表中是否包含IP地址對應(yīng)的請求記錄信息;若否,在第二索引表中分配IP地址的存儲空間,并將DNS查詢請求的信息保存為請求記錄信息;若是,在IP地址對應(yīng)的請求記錄信息中添加DNS查詢請求的信息,以對請求記錄信息進行更新。
      [0028]可選地,上述防御裝置還包括:資源回收模塊,用于掃描第二索引表中的請求記錄信息,并刪除預(yù)訂時間內(nèi)持續(xù)未更新的請求記錄信息。
      [0029]可選地,上述防御裝置還包括:攻擊提示模塊,用于向請求源的客戶端返回DNS請求異常的信息,以便客戶端進行提示或處理。。
      [0030]根據(jù)本發(fā)明的另一個方面,還提供了一種DNS系統(tǒng)。該DNS系統(tǒng)包括:至少一臺DNS安全服務(wù)器,用于根據(jù)用戶請求進行域名解析,DNS安全服務(wù)器中設(shè)置有根據(jù)上述的任一種DNS攻擊的防御裝置。。
      [0031]可選地,上述DNS系統(tǒng)還包括:用戶客戶端,配置為接收DNS攻擊的防御裝置下發(fā)的DNS請求異常的信息,并在安全建議顯示區(qū)域輸出提示信息和/或?qū)NS服務(wù)器地址修改為預(yù)設(shè)的安全地址。
      [0032]本發(fā)明的DNS攻擊的防御方法在接收到DNS查詢請求后,實時在訪問記錄數(shù)據(jù)庫中查找對應(yīng)的請求記錄信息,對該請求源的預(yù)定周期內(nèi)的訪問次數(shù)進行判斷,對于超出訪問次數(shù)的請求源進行訪問限制。由于對每個請求源的IP地址進行判斷,不會影響其他請求源的正常訪問,實現(xiàn)了精確的攻擊防御。
      [0033]進一步地,本發(fā)明優(yōu)化了 IP地址對應(yīng)請求記錄信息的查詢方法,采用兩級索引表的查詢方式,實時性好,不影響服務(wù)器正常工作的性能和效率。
      [0034]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
      [0035]根據(jù)下文結(jié)合附圖對本發(fā)明具體實施例的詳細描述,本領(lǐng)域技術(shù)人員將會更加明了本發(fā)明的上述以及其他目的、優(yōu)點和特征。
      【專利附圖】

      【附圖說明】
      [0036]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
      [0037]圖1是根據(jù)本發(fā)明一個實施例的DNS攻擊的防御裝置的示意框圖;
      [0038]圖2是根據(jù)本發(fā)明一個實施例的DNS攻擊的防御方法的示意圖;
      [0039]圖3是根據(jù)本發(fā)明一個實施例的DNS攻擊的防御方法中二級索引結(jié)構(gòu)的示意圖;
      [0040]圖4是根據(jù)本發(fā)明一個實施例的DNS攻擊的防御方法的一種流程圖;以及
      [0041]圖5是根據(jù)本發(fā)明一個實施例的DNS系統(tǒng)的系統(tǒng)架構(gòu)圖。
      【具體實施方式】
      [0042]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
      [0043]圖1是根據(jù)本發(fā)明一個實施例的DNS攻擊的防御裝置的示意框圖。該DNS攻擊的防御裝置100 —般性地可包括:請求獲取模塊110、請求記錄信息查詢模塊120、攻擊判斷模塊130、防御模塊140。在本發(fā)明的一些可選實施例中,根據(jù)DNS攻擊的防御裝置100的功能需求和進一步優(yōu)化,可選擇性地配置有:第一索引表更新模塊151、第二索引表更新模塊152、資源回收模塊170、DNS查詢請求包判斷模塊180、函數(shù)注冊模塊190、攻擊提示模塊160,其中請求記錄信息查詢模塊120可以包括:第一索引表查詢子模塊121和第二索引表查詢子模塊122。
      [0044]在以上模塊中,請求獲取模塊110用于獲取DNS查詢請求以及DNS查詢請求的請求源的IP地址;請求記錄信息查詢模塊120,用于按照IP地址在訪問記錄數(shù)據(jù)庫中查詢得出請求源在預(yù)定周期內(nèi)的請求記錄信息;攻擊判斷模塊130,用于判斷請求記錄信息記錄中的請求次數(shù)是否超出了預(yù)設(shè)閾值;防御模塊140,用于在攻擊判斷模塊130的判斷結(jié)果為是的情況下,判定請求源進行DNS攻擊,并進行防御。
      [0045]IP是英文Internet Protocol (網(wǎng)絡(luò)之間互連的協(xié)議)的縮寫,是為計算機網(wǎng)絡(luò)相互連接進行通信而設(shè)計的協(xié)議。IP地址是為了使連入Internet的計算機在通信時能夠相互識別,Internet中的每一臺主機都分配有一個唯一的32位地址,該地址稱為IP地址。本實施例中的IP地址默認為IPV4地址。IP段是指一組連續(xù)的IP地址,為了簡化配置和策略的實現(xiàn),通常會將一組連續(xù)的IP地址組成一個IP段。
      [0046]本實施例中的DNS攻擊的防御裝置100根據(jù)DNS查詢請求源的IP地址利用高速緩存查找算法在訪問記錄數(shù)據(jù)庫中查找對應(yīng)的請求記錄信息,對該請求源的預(yù)定周期內(nèi)的訪問次數(shù)進行判斷,以確定請求源是否進行DNS攻擊。對超出訪問次數(shù)的請求源進行訪問限制,例如攔截超出訪問次數(shù)的請求源發(fā)出的DNS查詢請求,或者結(jié)合黑白名單,將請求源判為惡意請求源,歸入到服務(wù)器端的數(shù)據(jù)庫中,對該請求源進行處理。本實施例的防御裝置可以精確限制每秒鐘為每個IP請求的DNS服務(wù)次數(shù),并且不會根據(jù)請求端IP的數(shù)量增加,性能下降,有效防范DNS攻擊。
      [0047]其中,防御模塊140結(jié)合黑白名單對請求源進行處理時,合法的具有動態(tài)主機配置協(xié)議(Dynamic Host Configuration Protocol,簡稱DHCP)功能的網(wǎng)絡(luò)連接設(shè)備的DNSIP地址發(fā)送給具有DHCP功能的網(wǎng)絡(luò)連接設(shè)備,具有DHCP功能的網(wǎng)絡(luò)連接設(shè)備將自身的DNSIP地址修改為合法的DNS IP地址。該預(yù)先設(shè)置的合法的DNS IP地址白名單列表可以預(yù)先存儲在客戶端數(shù)據(jù)庫中,也可以從網(wǎng)站的服務(wù)器(例如:云安全服務(wù)器)上下載;如果匹配成功,則說明客戶端的DNS IP地址是惡意的,則將惡意DNS IP地址修改為合法的DNS IP地址,例如:通過修改注冊表鍵值,令其指向合法的DNS IP地址,從而達到修改注冊表中鍵值的目的;如果匹配不成功,則放行該DNS IP地址,說明可以訪問與之對應(yīng)的網(wǎng)站。從而結(jié)合預(yù)先存儲在客戶端數(shù)據(jù)庫,對超出訪問次數(shù)的請求源進行訪問限制。
      [0048]本實施例中可以使用函數(shù)注冊模塊190在操作系統(tǒng)的防火墻框架內(nèi)注冊鉤子函數(shù),以便請求獲取模塊110利用鉤子函數(shù)捕捉DNS查詢請求。其中鉤子函數(shù)(HookFunction)是一種處理或過濾時間的回調(diào)函數(shù),當每次發(fā)生預(yù)定事件時,鉤子函數(shù)就可以捕捉系統(tǒng)中所有進程將發(fā)生的事件消息,它的作用是將消息在抵達窗口程序之前先鉤到一個地方以預(yù)先處理。
      [0049]鉤子函數(shù)獲取所有的查詢數(shù)據(jù)包后,需要判斷哪些數(shù)據(jù)包是需要進行處理的數(shù)據(jù)包,只將需要數(shù)據(jù)包交由請求獲取模塊110處理,不需要處理的數(shù)據(jù)包可以直接透明傳輸交由后續(xù)模塊處理。本實施例中的DNS攻擊的防御裝置可以通過DNS查詢請求包判斷模塊180分別判斷DNS查詢請求的數(shù)據(jù)包數(shù)據(jù)格式是否符合預(yù)定協(xié)議,以及DNS查詢請求的目的端口是否為預(yù)定端口 ;如果DNS查詢請求包判斷模塊180的判斷結(jié)果均為是,請求記錄信息查詢模塊120執(zhí)行查詢請求記錄信息的步驟,如果有任一項判斷結(jié)果為否,可直接透傳數(shù)據(jù)包,不影響其他數(shù)據(jù)的傳輸。
      [0050]請求記錄信息查詢模塊120可以利用第一索引表查詢子模塊121和第二索引表查詢子模塊122進行二級索引查詢,具體地,第一索引表查詢子模塊121按照IP地址中前三段的數(shù)值在訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針。第二索引表查詢子模塊122,按照IP地址中前三段的數(shù)值對應(yīng)的存儲指針讀取對應(yīng)的第二索引表,并按照IP地址的第四段的數(shù)值在IP地址中前三段的數(shù)值對應(yīng)的第二索引表中查找IP地址對應(yīng)的請求記錄信息。其中第一索引表中存儲有多個IP地址段分別對應(yīng)的第二索引表的存儲指針,第二索引表中存儲有一個IP地址段中多個IP地址的請求記錄信息。
      [0051]進一步地,在第一索引表中,索引值為IP地址的前三段數(shù)值的哈希值,索引項為IP地址段對應(yīng)的第二索引表的存儲指針,在訪問記錄數(shù)據(jù)庫的第一索弓I表中查找對應(yīng)的存儲指針包括:計算IP地址中的前三段的數(shù)值的哈希值;將哈希值作為索引值在第一索引表中查找對應(yīng)的存儲指針。
      [0052]在進行查詢后,還需要將本次的訪問信息添加至訪問記錄數(shù)據(jù)庫中的對應(yīng)位置,進行訪問記錄信息的更新。另外,查詢中還可能出現(xiàn)查詢結(jié)果為空的情況,因此本發(fā)明的實施例中,第一索引表更新模塊151判斷第一索引表查詢子模塊121查詢出的存儲指針是否為空;若是,為IP地址所在的IP地址段分配存儲空間,并在存儲空間內(nèi)建立包含多個結(jié)構(gòu)體的數(shù)組作為第二索引表,并保存存儲空間的存儲指針。從而在出現(xiàn)有訪問記錄數(shù)據(jù)庫之前未記錄的IP地址段中IP地址進行DNS查詢時,在訪問記錄數(shù)據(jù)庫的第一索引表中建立該IP地址段的索引項。
      [0053]第二索引表更新模塊152用于判斷第二索引表中是否包含IP地址對應(yīng)的請求記錄信息;若否,在第二索引表中分配IP地址的存儲空間,并將DNS查詢請求的信息保存為請求記錄信息;若是,在IP地址對應(yīng)的請求記錄信息中添加DNS查詢請求的信息,以對請求記錄信息進行更新。利用第二索引表更新模塊152可以在第二索引表中更新IP地址的請求記錄,并在第二索引表中不存在請求源的IP地址的情況下,新建該IP地址的索引項。
      [0054]為了節(jié)省存儲資源,本實施例中還可以利用資源回收模塊170,用于掃描第二索引表中的請求記錄信息,并刪除預(yù)訂時間內(nèi)持續(xù)未更新的請求記錄信息,例如一小時內(nèi)沒有查詢請求的IP地址的索引項可以被刪除,已釋放更多空間。
      [0055]在確定出攻擊后,本實施例的DNS攻擊的防御裝置還可以向安裝有相應(yīng)客戶端的請求源返回DNS請求異常的信息,以便客戶端進行提示或處理,例如在安全建議顯示區(qū)域輸出提示信息向用戶提示,或者將DNS服務(wù)器地址修改為預(yù)設(shè)的安全地址。
      [0056]利用攻擊提示模塊160向用戶的客戶端報告DNS攻擊后,客戶端在安全建議顯示區(qū)域輸出請求源的攻擊檢測結(jié)果。顯示的方式可以是在類似于安全衛(wèi)士之類的互聯(lián)網(wǎng)軟件顯示界面中的安全隱患部分輸出,類似地,還可以通過彈出氣泡、對話框等方式顯示。通過與客戶端的安全聯(lián)動,進一步提高安全性。 [0057]本發(fā)明實施例中DNS攻擊的防御裝置可以針對Linux服務(wù)器,借助于Linux自帶防火墻框架Netfilter,注冊鉤子函數(shù)。其中,函數(shù)注冊模塊190可以使用Netfilter HOOK函數(shù)注冊模塊,用于將鉤子函數(shù)注冊到Linux內(nèi)核。這樣所有網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包都會通過注冊的鉤子處理函數(shù)以進行處理。
      [0058]DNS查詢請求包判斷模塊180的判斷段條件可以是數(shù)據(jù)包是UDP包,并且目的端口是53,這是因為DNS協(xié)議運行在UDP (User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議),使用端口號53。在傳輸層TCP提供端到端可靠的服務(wù),在UDP端提供盡力交付的服務(wù)。其控制端口作用于UDP端口 53。
      [0059]請求記錄信息查詢模塊120的查找算法可以為:當獲取到DNS請求包時,將源IP地址的前三段作為哈希表的哈希值。如果該哈希值對應(yīng)的節(jié)點內(nèi)容為空,則分配一個數(shù)組,
      包含256個結(jié)構(gòu)體。數(shù)組中對應(yīng)的每個結(jié)構(gòu)體--對應(yīng)這源IP地址第四段的訪問信息。
      訪問信息可以包含有一秒內(nèi)的訪問次數(shù)和具體的訪問時間。具體的算法在以下實施例中的DNS攻擊的防御方法詳細介紹。
      [0060]攻擊判斷模塊130判斷請求源IP是否超出了系統(tǒng)設(shè)置的限速閾值。判斷條件為,如果一秒內(nèi)訪問的次數(shù)超過了閾值則將該數(shù)據(jù)包丟棄,否則向上層協(xié)議透明傳輸該請求,以進行正常處理。
      [0061]資源回收模塊170,定時掃描第二索引表中的請求記錄信息,并刪除預(yù)訂時間內(nèi)持續(xù)未更新的請求記錄信息。[0062]本發(fā)明實施例還提供了一種DNS攻擊的防御方法,該DNS攻擊的防御法可以由以上實施例介紹的任意一種DNS攻擊的裝置來執(zhí)行,以提高實現(xiàn)精準的攻擊防御。圖2是根據(jù)本發(fā)明一個實施例的DNS攻擊的防御方法的示意圖,如圖所示,該實現(xiàn)了精確的攻擊防御方法包括以下步驟:
      [0063]步驟S202,獲取DNS查詢請求以及DNS查詢請求的請求源的IP地址;
      [0064]步驟S204,按照IP地址在訪問記錄數(shù)據(jù)庫中查詢得出請求源的請求記錄信息;
      [0065]步驟S206,判斷請求記錄信息中在預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值;
      [0066]步驟S208,若是,判定請求源進行DNS攻擊,并進行防御。
      [0067]其中,步驟S202可以包括:在操作系統(tǒng)的防火墻框架內(nèi)注冊鉤子函數(shù);利用鉤子函數(shù)捕捉DNS查詢請求。
      [0068]步驟S202獲取DNS查詢請求之后還可以包括:分別判斷DNS查詢請求的數(shù)據(jù)包數(shù)據(jù)格式是否符合預(yù)定協(xié)議,以及DNS查詢請求的目的端口是否為預(yù)定端口 ;若均為是,執(zhí)行查詢請求記錄信息的步驟。其中判斷依據(jù)可以為數(shù)據(jù)包是UDP包,并且目的端口是53,若不滿足該條,直接透傳數(shù)據(jù)包,不影響其他數(shù)據(jù)包的正常傳輸。
      [0069]判斷依據(jù)可以根據(jù)RFC (Request For Comments,征求修正意見書)規(guī)定的DNS格式進行判斷,例如使用以下的RFC文檔的內(nèi)容進行DNS查詢請求數(shù)據(jù)包的判斷:1034域名,概念和功能;1035域名,實現(xiàn)和規(guī)范;1123Internet主機要求,應(yīng)用和支持;1886,支持IP版本6的DNS擴展名;1995,DNS中的增量區(qū)域傳輸;1996提示通知區(qū)域更改的機制(DNS N0TIFY);2136,域名系統(tǒng)中的動態(tài)更新(DNS UPDATE);2181,對DNS規(guī)范的說明;2308,DNS查詢的負緩存(DNS NCACHE) ;2535,域名系統(tǒng)安全擴展(DNSSEC) ;2671DNS的擴展機制(EDNSO) ;2782,指定服務(wù)位置的 DNS RR (DNS SRV)。
      [0070]步驟S204無法使用全IP地址映射索引表。原因為索引表的內(nèi)存消耗過大:針對所用的所有IP地址,索引表將擁有4G表項,每個索引表項存儲4字節(jié)的指向?qū)?yīng)信息結(jié)構(gòu)體指針,那么整個內(nèi)存資源消耗過大,幾乎無法實現(xiàn)。因此步驟S204采用高速緩存采用二級索引表,二級索引表由兩級索引組成。其中第一索引表中存儲有多個IP地址段分別對應(yīng)的第二索引表的存儲指針。第二索引表中存儲有一個IP地址段中多個IP地址的請求記錄信息。例如,IP地址前三段作為一級索引,第四段作為二級索引。
      [0071]步驟S204的一種流程為:按照IP地址中前三段的數(shù)值,在訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針,按照IP地址中前三段的數(shù)值對應(yīng)的存儲指針讀取對應(yīng)的第二索引表,然后按照IP地址的第四段的數(shù)值,在IP地址中前三段的數(shù)值對應(yīng)的第二索引表中查找IP地址對應(yīng)的請求記錄信息。
      [0072]在第一索引表中索引值可以為IP地址的前三段數(shù)值的哈希值,索引項為IP地址段對應(yīng)的第二索引表的存儲指針,則以上在訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針包括:計算IP地址中的前三段的數(shù)值的哈希值;將哈希值作為索引值在第一索引表中查找對應(yīng)的存儲指針。
      [0073]第一索引表中查詢出的存儲指針如果為空的情況下,需要為請求源對應(yīng)的地址段建立對應(yīng)的第二索引表并存儲其指針,具體流程可以為:IP地址所在的IP地址段分配存儲空間,并在存儲空間內(nèi)建立包含多個結(jié)構(gòu)體的數(shù)組作為第二索引表,并保存存儲空間的存儲指針;如果存儲指針不為空,則對應(yīng)的第二索引表已建立,直接執(zhí)行按照存儲指針讀取對應(yīng)的第二索引表的步驟。
      [0074]另外第二索引表中也存在沒有IP地址對應(yīng)的請求記錄的情況,此時需要判斷第二索引表中是否包含IP地址對應(yīng)的請求記錄信息;若否,在第二索引表中分配IP地址的存儲空間,并將DNS查詢請求的信息保存為請求記錄信息;若是,在IP地址對應(yīng)的請求記錄信息中添加DNS查詢請求的信息,以對請求記錄信息進行更新。
      [0075]為節(jié)省存儲空間,還可以定期掃描第二索引表中的請求記錄信息,并刪除預(yù)訂時間內(nèi)持續(xù)未更新的請求記錄信息。
      [0076]一級索引最大值是0XFFFFFF,即索引范圍是0X00到0XFFFFFF,步長固定,索引項存儲指針。第二段索引最大值是0XFF,即索引范圍是0X00到0XFF,步長固定,索引項存儲本計數(shù)周期開始的時間和本周期訪問次數(shù)。為了節(jié)省內(nèi)存,一級索引存儲指針預(yù)先分配,二級索引動態(tài)分配,即只有該項對應(yīng)的IP地址訪問才分配內(nèi)存。
      [0077]圖3是根據(jù)本發(fā)明一個實施例的DNS攻擊的防御方法中二級索引結(jié)構(gòu)的示意圖,當有IP地址訪問時,直接根據(jù)IP地址前段定位到一級索引項;如果索引項的存儲指針為空,分配二級索引項的存儲空間。根據(jù)IP地址第四段,定位二級索引項,并將計數(shù)周期開始時間,設(shè)置為當前時間,本周期訪問次數(shù)設(shè)為I。
      [0078]如果索引項指針不為空,根據(jù)IP地址第四段數(shù)值定位二級索引項。根據(jù)計數(shù)周期開始時間,判斷本周期的請求次數(shù)是否超出限值,如果計數(shù)周期超出限值,設(shè)置為當前時間,本周起訪問次數(shù)設(shè)為1,該數(shù)據(jù)包放行;如果計數(shù)周期沒有超出,本周期訪問次數(shù)加I。從而根據(jù)本周期訪問次數(shù)判斷,該IP地址訪問次數(shù)是否超速,如果本周期訪問次數(shù)大于最大限制次數(shù)認為超速,該數(shù)據(jù)包直接丟棄,否則放行。一般而言,預(yù)定周期可以設(shè)置為一秒,若一秒內(nèi)的請求次數(shù)超過限值,則自動進行屏蔽,也就是忽略了超過限值的DNS查詢請求。
      [0079]在步驟S208之后,還可以向請求源的客戶端返回DNS請求異常的信息,以便客戶端進行提示或處理??蛻舳丝梢栽诎踩ㄗh顯示區(qū)域輸出請求源的攻擊檢測結(jié)果,顯示的方式是在類似于安全衛(wèi)士之類的互聯(lián)網(wǎng)軟件顯示界面中的安全隱患部分輸出,類似地,還可以通過彈出氣泡、對話框等方式顯示。
      [0080]圖4是根據(jù)本發(fā)明一個實施例的DNS攻擊的防御方法的一種流程圖,服務(wù)器的網(wǎng)卡接收到數(shù)據(jù)流量,首先判斷數(shù)據(jù)包是否為UDP數(shù)據(jù)包以及目的端口是否為53,若均為是,確定數(shù)據(jù)包為DNS數(shù)據(jù)包后,進行請求源IP解析,按照請求源的IP地址進行兩級索引查詢,查找出IP地址的請求記錄信息,并判斷周期內(nèi)的IP地址的請求次數(shù)是否超過閾值,即判斷請求是否超速,如果超速,丟棄該IP地址的DNS查詢請求,若未超速,將DNS查詢請求透傳給上層協(xié)議棧進行處理。
      [0081]本實施例中的防御方法和防御裝置可以集成于類似于安全衛(wèi)士的互聯(lián)網(wǎng)安全軟件中,與安全中心的云端服務(wù)器數(shù)據(jù)連接,及時發(fā)現(xiàn)并上報可疑DNS,減小惡意DNS對網(wǎng)絡(luò)
      的侵害。
      [0082]圖5是根據(jù)本發(fā)明一個實施例的DNS系統(tǒng)的系統(tǒng)架構(gòu)圖,該DNS系統(tǒng)提供了高可靠、高防護、高性能的域名解析服務(wù)。當頂級服務(wù)器、根域服務(wù)器或授權(quán)服務(wù)器遭遇攻擊或故障時,本實施例的DNS系統(tǒng)可啟動災(zāi)備緊急應(yīng)答模式,保障互聯(lián)網(wǎng)在根域服務(wù)器或授權(quán)服務(wù)器修復(fù)之前基本正常運行,為系統(tǒng)搶修和恢復(fù)留下足夠的時間。與客戶端的安全衛(wèi)士聯(lián)動,可以第一時間提示用戶,并幫助用戶使用安全DNS進行域名解析,并能在故障解除之后迅速將用戶的DNS恢復(fù)為故障前設(shè)置。
      [0083]在本實施例中的DNS系統(tǒng)包括有一個或多個DNS安全服務(wù)器(如圖中設(shè)置于北京電信、上海電信、上海聯(lián)通、北京聯(lián)通中的DNS服務(wù)器),分別用于對用戶客戶端的發(fā)出的DNS解析請求進行域名解析,在每臺DNS安全服務(wù)器中設(shè)置有上述任一種實施例中介紹的DNS攻擊的防御裝置。在如圖5所示的DNS系統(tǒng)架構(gòu)中,當上海電信、北京電信、上海聯(lián)通以及北京聯(lián)通的用戶在使用網(wǎng)絡(luò)服務(wù)時,在DNS安全服務(wù)器設(shè)置有DNS攻擊的防御裝置,該防御裝置獲取DNS查詢請求以及DNS查詢請求的請求源的IP地址;按照IP地址在訪問記錄數(shù)據(jù)庫中查詢得出請求源的請求記錄信息;判斷請求記錄信息中在預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值;若是,判定請求源進行DNS攻擊,并進行防御。防御方法可以使用直接過濾超速的DNS請求,或者結(jié)合用戶客戶端中安裝的安全衛(wèi)士等軟件,進行安全防護和提示,例如用戶客戶端在安全建議顯示區(qū)域輸出提示信息或?qū)NS服務(wù)器地址修改為預(yù)設(shè)的安全地址。
      [0084]DNS安全服務(wù)器通過使用一個高速緩存,采用緩存存取優(yōu)化、預(yù)更新等各種手段盡量降低了解析時延,實現(xiàn)了高速安全解析。當某一個IP請求源的流量異常突增時,DNS攻擊的防御裝置自動分析和安全聯(lián)動措施,對該IP的DNS解析請求源限速。通過DNS攻擊的防御裝置驗證的DNS解析請求,可以直接通過RCS集群和災(zāi)備系統(tǒng)進行后續(xù)處理。
      [0085]需要說明的是,本例中提及的上海電信、北京電信、上海聯(lián)通以及北京聯(lián)通僅用作示例,并不對實際操作中的用戶來源形成限定。本發(fā)明的防御方法和防御裝置還可以在檢測出攻擊的攻擊源后,結(jié)合檢測可疑DNS的方法通過對比已知DNS和待檢測的目標DNS對常用域名的解析結(jié)果,在待檢測的目標DNS的解析結(jié)果明顯不同于已知DNS的解析結(jié)果時,將目標DNS標記為可疑DNS??梢院唵窝杆俚卮_定出將域名解析成未知結(jié)果的DNS,為進一步分析和處理提供了基礎(chǔ)。
      [0086]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
      [0087]類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
      [0088]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
      [0089]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
      [0090]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的DNS攻擊的防御裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
      [0091]應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
      [0092]至此,本領(lǐng)域技術(shù)人員應(yīng)認識到,雖然本文已詳盡示出和描述了本發(fā)明的多個示例性實施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開的內(nèi)容直接確定或推導(dǎo)出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應(yīng)被理解和認定為覆蓋了所有這些其他變型或修改。
      [0093]本發(fā)明提供了 Al.—種DNS攻擊的防御方法,包括:
      [0094]獲取DNS查詢請求以及所述DNS查詢請求的請求源的IP地址;
      [0095]按照所述IP地址在訪問記錄數(shù)據(jù)庫中查詢得出所述請求源的請求記錄信息;
      [0096]判斷所述請求記錄信息中預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值;
      [0097]若是,判定所述請求源進行DNS攻擊,并進行防御。
      [0098]A2.根據(jù)Al所述的方法,其中,獲取DNS查詢請求包括:
      [0099]在操作系統(tǒng)的防火墻框架內(nèi)注冊鉤子函數(shù);
      [0100]利用所述鉤子函數(shù)捕捉所述DNS查詢請求。
      [0101]A3.根據(jù)Al所述的方法,其中,在獲取DNS查詢請求之后還包括:
      [0102]分別判斷所述DNS查詢請求的數(shù)據(jù)包數(shù)據(jù)格式是否符合預(yù)定協(xié)議,以及所述DNS查詢請求的目的端口是否為預(yù)定端口 ;
      [0103]若均為是,執(zhí)行查詢所述請求記錄信息的步驟。
      [0104]A4.根據(jù)Al至A3中任一項所述的方法,其中,按照所述IP地址在訪問記錄數(shù)據(jù)庫中查詢得出所述請求源在預(yù)定周期內(nèi)的請求記錄信息包括:[0105]按照所述IP地址中前三段的數(shù)值,在所述訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針,其中所述第一索引表中存儲有多個IP地址段分別對應(yīng)的第二索引表的存儲指針;
      [0106]按照所述IP地址中前三段的數(shù)值對應(yīng)的存儲指針讀取對應(yīng)的第二索引表,所述第二索引表中存儲有一個IP地址段中多個IP地址的請求記錄信息;
      [0107]按照所述IP地址的第四段的數(shù)值,在所述IP地址中前三段的數(shù)值對應(yīng)的所述第二索引表中查找所述IP地址對應(yīng)的請求記錄信息。
      [0108]A5.根據(jù)A4所述的方法,其中,
      [0109]在所述第一索引表中,索引值為IP地址的前三段數(shù)值的哈希值,索引項為所述IP地址段對應(yīng)的第二索引表的存儲指針,
      [0110]在所述訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針包括:
      [0111]計算所述IP地址中的前三段的數(shù)值的哈希值;
      [0112]將所述哈希值作為索引值在所述第一索引表中查找對應(yīng)的存儲指針。
      [0113]A6.根據(jù)A4所述的方法,其中,按照所述IP地址中前三段的數(shù)值,在所述訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針之后還包括:
      [0114]判斷所述存儲指針是否為空;
      [0115]若是,為所述IP地址所在的IP地址段分配存儲空間,并在所述存儲空間內(nèi)建立包含多個結(jié)構(gòu)體的數(shù)組作為第二索引表,并保存所述存儲空間的存儲指針;
      [0116]若否,執(zhí)行按照所述存儲指針讀取對應(yīng)的第二索引表的步驟。
      [0117]A7.根據(jù)A4所述的方法,其中,按照所述IP地址的第四段的數(shù)值,在所述IP地址中前三段的數(shù)值對應(yīng)的所述第二索引表中查找所述IP地址對應(yīng)的請求記錄信息之后還包括:
      [0118]判斷所述第二索引表中是否包含所述IP地址對應(yīng)的請求記錄信息;
      [0119]若否,在所述第二索引表中分配所述IP地址的存儲空間,并將所述DNS查詢請求的信息保存為請求記錄信息;
      [0120]若是,在所述IP地址對應(yīng)的請求記錄信息中添加所述DNS查詢請求的信息,以對所述請求記錄信息進行更新。
      [0121]AS.根據(jù)A7所述的方法,其中在判斷所述第二索引表中是否包含所述IP地址對應(yīng)的請求記錄信息之后還包括:
      [0122]掃描所述第二索引表中的請求記錄信息,并刪除預(yù)訂時間內(nèi)持續(xù)未更新的請求記錄/[目息。
      [0123]A9.根據(jù)Al至AS中任一項所述的方法,其中,在判定所述請求源進行DNS攻擊之后還包括:
      [0124]向所述請求源的客戶端返回DNS請求異常的信息,以便所述客戶端進行提示或處理。
      [0125]本發(fā)明還提供了 B10.—種DNS攻擊的防御裝置,包括:
      [0126]請求獲取模塊,用于獲取DNS查詢請求以及所述DNS查詢請求的請求源的IP地址;
      [0127]請求記錄信息查詢模塊,用于按照所述IP地址在訪問記錄數(shù)據(jù)庫中查詢得出所述請求源的請求記錄信息;
      [0128]攻擊判斷模塊,用于判斷所述請求記錄信息記錄中在預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值;
      [0129]防御模塊,用于在所述攻擊判斷模塊的判斷結(jié)果為是的情況下,判定所述請求源進行DNS攻擊,并進行防御。
      [0130]Bll.根據(jù)BlO所述的裝置,還包括:
      [0131]函數(shù)注冊模塊,用于在操作系統(tǒng)的防火墻框架內(nèi)注冊鉤子函數(shù);
      [0132]所述請求獲取模塊還被配置為:利用所述鉤子函數(shù)捕捉所述DNS查詢請求。
      [0133]B12.根據(jù)BlO所述的裝置,還包括:
      [0134]DNS查詢請求包判斷模塊,用于分別判斷所述DNS查詢請求的數(shù)據(jù)包數(shù)據(jù)格式是否符合預(yù)定協(xié)議,以及所述DNS查詢請求的目的端口是否為預(yù)定端口 ;
      [0135]請求記錄信息查詢模塊還被配置為:如果DNS查詢請求包判斷模塊的判斷結(jié)果均為是,執(zhí)行查詢所述請求記錄信息的步驟。
      [0136]B13.根據(jù)BlO至B12中任一項所述的裝置,其中,所述請求記錄信息查詢模塊包括:
      [0137]第一索引表查詢子模塊,用于按照所述IP地址中前三段的數(shù)值在所述訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針,其中所述第一索引表中存儲有多個IP地址段分別對應(yīng)的第二索引表的存儲指針;
      [0138]第二索引表查詢子模塊,用于按照所述IP地址中前三段的數(shù)值對應(yīng)的存儲指針讀取對應(yīng)的第二索引表,并按照所述IP地址的第四段的數(shù)值在所述IP地址中前三段的數(shù)值對應(yīng)的所述第二索引表中查找所述IP地址對應(yīng)的請求記錄信息,所述第二索引表中存儲有一個IP地址段中多個IP地址的請求記錄信息。
      [0139]B14.根據(jù)B13所述的裝置,還包括:
      [0140]第一索引表更新模塊,用于判斷所述第一索引表查詢子模塊查詢出的存儲指針是否為空;若是,為所述IP地址所在的IP地址段分配存儲空間,并在所述存儲空間內(nèi)建立包含多個結(jié)構(gòu)體的數(shù)組作為第二索引表,并保存所述存儲空間的存儲指針。
      [0141]B15.根據(jù)B13所述的裝置,還包括:
      [0142]第二索引表更新模塊,用于判斷所述第二索引表中是否包含所述IP地址對應(yīng)的請求記錄信息;若否,在所述第二索引表中分配所述IP地址的存儲空間,并將所述DNS查詢請求的信息保存為請求記錄信息;若是,在所述IP地址對應(yīng)的請求記錄信息中添加所述DNS查詢請求的信息,以對所述請求記錄信息進行更新。
      [0143]B16.根據(jù)B15所述的裝置,還包括:
      [0144]資源回收模塊,用于掃描所述第二索引表中的請求記錄信息,并刪除預(yù)訂時間內(nèi)持續(xù)未更新的請求記錄信息。
      [0145]B17.根據(jù)BlO至B16中任一項所述的裝置,還包括:
      [0146]攻擊提示模塊,用于向所述請求源的客戶端返回DNS請求異常的信息,以便所述客戶端進行提示或處理。
      [0147]本發(fā)明還提供了 C18.—種DNS系統(tǒng),包括:
      [0148]至少一臺DNS安全服務(wù)器,用于根據(jù)用戶請求進行域名解析,DNS安全服務(wù)器中設(shè)置有根據(jù)BlO至B17中任一項所述的DNS攻擊的防御裝置。
      [0149]C19.根據(jù)C18所述的DNS系統(tǒng),還包括:
      [0150]用戶客戶端,配置為接收所述DNS攻擊的防御裝置下發(fā)的DNS請求異常的信息,并在安全建議顯示區(qū)域輸出提示信息和/或?qū)NS服務(wù)器地址修改為預(yù)設(shè)的安全地址。
      【權(quán)利要求】
      1.一種DNS攻擊的防御方法,包括: 獲取DNS查詢請求以及所述DNS查詢請求的請求源的IP地址; 按照所述IP地址在訪問記錄數(shù)據(jù)庫中查詢得出所述請求源的請求記錄信息; 判斷所述請求記錄信息中預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值; 若是,判定所述請求源進行DNS攻擊,并進行防御。
      2.根據(jù)權(quán)利要求1所述的方法,其中,獲取DNS查詢請求包括: 在操作系統(tǒng)的防火墻框架內(nèi)注冊鉤子函數(shù); 利用所述鉤子函數(shù)捕捉所述DNS查詢請求。
      3.根據(jù)權(quán)利要求1所述的方法,其中,在獲取DNS查詢請求之后還包括: 分別判斷所述DNS查詢請求的數(shù)據(jù)包數(shù)據(jù)格式是否符合預(yù)定協(xié)議,以及所述DNS查詢請求的目的端口是否為預(yù)定端口; 若均為是,執(zhí)行查詢所述請求記錄信息的步驟。
      4.根據(jù)權(quán)利要求1至3中任一項所述的方法,其中,按照所述IP地址在訪問記錄數(shù)據(jù)庫中查詢得出所述請求源在預(yù)定周期內(nèi)的請求記錄信息包括: 按照所述IP地址中前三段的數(shù)值,在所述訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針,其中所述第一索引表中存儲有多個IP地址段分別對應(yīng)的第二索引表的存儲指針; 按照所述IP地址中前三段的數(shù)值對應(yīng)的存儲指針讀取對應(yīng)的第二索引表,所述第二索引表中存儲有一個IP地址段中多個IP地址的請求記錄信息; 按照所述IP地址的第四段的數(shù)值,在所述IP地址中前三段的數(shù)值對應(yīng)的所述第二索引表中查找所述IP地址對應(yīng)的請求記錄信息。
      5.根據(jù)權(quán)利要求4所述的方法,其中, 在所述第一索引表中,索引值為IP地址的前三段數(shù)值的哈希值,索引項為所述IP地址段對應(yīng)的第二索引表的存儲指針, 在所述訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針包括: 計算所述IP地址中的前三段的數(shù)值的哈希值; 將所述哈希值作為索引值在所述第一索引表中查找對應(yīng)的存儲指針。
      6.根據(jù)權(quán)利要求4所述的方法,其中,按照所述IP地址中前三段的數(shù)值,在所述訪問記錄數(shù)據(jù)庫的第一索引表中查找對應(yīng)的存儲指針之后還包括: 判斷所述存儲指針是否為空; 若是,為所述IP地址所在的IP地址段分配存儲空間,并在所述存儲空間內(nèi)建立包含多個結(jié)構(gòu)體的數(shù)組作為第二索引表,并保存所述存儲空間的存儲指針; 若否,執(zhí)行按照所述存儲指針讀取對應(yīng)的第二索引表的步驟。
      7.根據(jù)權(quán)利要求4所述的方法,其中,按照所述IP地址的第四段的數(shù)值,在所述IP地址中前三段的數(shù)值對應(yīng)的所述第二索引表中查找所述IP地址對應(yīng)的請求記錄信息之后還包括: 判斷所述第二索引表中是否包含所述IP地址對應(yīng)的請求記錄信息; 若否,在所述第二索引表中分配所述IP地址的存儲空間,并將所述DNS查詢請求的信息保存為請求記錄信息;若是,在所述IP地址對應(yīng)的請求記錄信息中添加所述DNS查詢請求的信息,以對所述請求記錄信息進行更新。
      8.根據(jù)權(quán)利要求7所述的方法,其中在判斷所述第二索引表中是否包含所述IP地址對應(yīng)的請求記錄信息之后還包括: 掃描所述第二索引表中的請求記錄信息,并刪除預(yù)訂時間內(nèi)持續(xù)未更新的請求記錄信息。
      9.一種DNS攻擊的防御裝置,包括: 請求獲取模塊,用于獲取DNS查詢請求以及所述DNS查詢請求的請求源的IP地址;請求記錄信息查詢模塊,用于按照所述IP地址在訪問記錄數(shù)據(jù)庫中查詢得出所述請求源的請求記錄信息; 攻擊判斷模塊,用于判斷所述請求記錄信息記錄中在預(yù)定周期內(nèi)的請求次數(shù)是否超出了預(yù)設(shè)閾值; 防御模塊,用于在所述攻擊判斷模塊的判斷結(jié)果為是的情況下,判定所述請求源進行DNS攻擊,并進行防御。
      10.一種DNS系統(tǒng),包括: 至少一臺DNS安全服務(wù)器,用于根據(jù)用戶請求進行域名解析,DNS安全服務(wù)器中設(shè)置有根據(jù)權(quán)利要求9所述的DNS攻擊的防御裝置。
      【文檔編號】H04L29/06GK103957195SQ201410136693
      【公開日】2014年7月30日 申請日期:2014年4月4日 優(yōu)先權(quán)日:2014年4月4日
      【發(fā)明者】濮燦 申請人:上海聚流軟件科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1