本發(fā)明涉及計算機(jī)領(lǐng)域,具體而言,涉及一種監(jiān)測攻擊報文的方法、系統(tǒng)及裝置。
背景技術(shù):
UDP Flood:(UDP報文洪水攻擊),是一種流量型Dos攻擊,該種攻擊常常利用大量UDP小包沖擊DNS服務(wù)器、視頻服務(wù)器等,以消耗服務(wù)器的帶寬資源以及處理器資源,UDP Flood有時會使得防火墻癱瘓。
因為UDP不建立連接,無法進(jìn)行源探測,目前針對UDP Flood的防御方案通常為如下兩類:第一類,限流,限流的方案可以為基于目的IP地址的限流,基于某個安全區(qū)域的限流,基于會話的限流。第二類,指紋學(xué)習(xí),因為UDP Flood攻擊報文通常都擁有相同的特征字段,比如包含某一個字符串,甚至報文內(nèi)容完全一致,可以通過指紋學(xué)習(xí)的方式對報文做分類統(tǒng)計,過濾大量出現(xiàn)的具備一致指紋的報文。
需要說明的是,上述現(xiàn)有的UDP Flood的防御方案存在以下缺陷:
(1)限流的這種方法可以有效緩解鏈路帶寬的壓力,但是簡單粗暴,不區(qū)分正常的業(yè)務(wù)報文和攻擊報文,存在誤殺,導(dǎo)致對攻擊報文的監(jiān)測不準(zhǔn)確。
(2)指紋學(xué)習(xí)的方案需要攻擊報文具備某一相同特征,而且在學(xué)習(xí)的過程中,攻擊報文也會被當(dāng)作正常報文透過,導(dǎo)致對攻擊報文的監(jiān)測不準(zhǔn)確。
針對上述采用限流防御或?qū)W習(xí)防御的方案來監(jiān)測攻擊報文,導(dǎo)致監(jiān)測結(jié)果不準(zhǔn)確的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種監(jiān)測攻擊報文的方法、系統(tǒng)及裝置,以至少解決采用限流防御或?qū)W習(xí)防御的方案來監(jiān)測攻擊報文,導(dǎo)致監(jiān)測結(jié)果不準(zhǔn)確的問題的技術(shù)問題。
根據(jù)本發(fā)明實施例的一個方面,提供了一種監(jiān)測攻擊報文的方法,該方法包括:清洗終端接收待驗證的報文;清洗終端檢測待驗證的報文中是否攜帶有驗證碼;在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在確定待驗 證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種監(jiān)測攻擊報文的方法,該方法包括:源數(shù)據(jù)終端發(fā)送報文至清洗終端;源數(shù)據(jù)終端接收到清洗終端返回的檢測結(jié)果,檢測結(jié)果包括:確定報文為安全報文或攻擊報文;其中,清洗終端在檢測到報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定報文為攻擊報文。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種監(jiān)測攻擊報文的系統(tǒng),該系統(tǒng)包括:源數(shù)據(jù)終端,用于發(fā)送報文;清洗終端,與源數(shù)據(jù)終端通信,用于接收源數(shù)據(jù)終端發(fā)送的報文,并檢測報文中是否攜帶有驗證碼,其中,在檢測到報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定報文為攻擊報文。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種監(jiān)測攻擊報文的裝置,該裝置包括:接收單元,用于接收待驗證的報文;檢測單元,用于檢測待驗證的報文中是否攜帶有驗證碼;校驗單元,用于在待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;確定單元,用于在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。
在本發(fā)明實施例中,采用清洗終端接收待驗證的報文;清洗終端檢測待驗證的報文中是否攜帶有驗證碼;在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文的方式,解決了采用限流防御或?qū)W習(xí)防御的方案來監(jiān)測攻擊報文,導(dǎo)致監(jiān)測結(jié)果不準(zhǔn)確的問題的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)發(fā)明實施例的一種監(jiān)測攻擊報文的方法的運行終端的結(jié)構(gòu)圖;
圖2是根據(jù)本發(fā)明實施例的一種監(jiān)測攻擊報文的方法的流程圖;
圖3是根據(jù)本發(fā)明實施例的一種可選地監(jiān)測攻擊報文的方法的示意圖;
圖4是根據(jù)本發(fā)明實施例的一種可選地監(jiān)測攻擊報文的方法的流程圖;
圖5是根據(jù)本發(fā)明實施例的一種可選地監(jiān)測攻擊報文的系統(tǒng)的示意圖;
圖6是根據(jù)本發(fā)明實施例的一種監(jiān)測攻擊報文的裝置的示意圖;
圖7是根據(jù)本發(fā)明實施例的一種可選地監(jiān)測攻擊報文的裝置的示意圖;
圖8是根據(jù)本發(fā)明實施例的一種可選地監(jiān)測攻擊報文的裝置的示意圖;
圖9是根據(jù)本發(fā)明實施例的一種可選地監(jiān)測攻擊報文的裝置的示意圖;以及
圖10是根據(jù)發(fā)明實施例的一種監(jiān)測攻擊報文的方法的運行終端的結(jié)構(gòu)圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
下面對本申請涉及到的名稱解釋如下:
UDP Flood:UDP報文洪水攻擊,一種消耗服務(wù)器帶寬資源和處理器資源的拒絕服務(wù)攻擊方式。
實施例1
根據(jù)本發(fā)明實施例,還提供了一種監(jiān)測攻擊報文的方法的實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本申請實施例一所提供的方法實施例可以在移動終端、計算機(jī)終端或者類似的運算裝置中執(zhí)行。以運行在計算機(jī)終端上為例,圖1是本發(fā)明實施例的一種監(jiān)測攻擊報文的方法的計算機(jī)終端的硬件結(jié)構(gòu)框圖。如圖1所示,計算機(jī)終端10可以包括一個或 多個(圖中僅示出一個)處理器102(處理器102可以包括但不限于微處理器MCU或可編程邏輯器件FPGA等的處理裝置)、用于存儲數(shù)據(jù)的存儲器104、以及用于通信功能的傳輸裝置106。本領(lǐng)域普通技術(shù)人員可以理解,圖1所示的結(jié)構(gòu)僅為示意,其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,計算機(jī)終端10還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。
存儲器104可用于存儲應(yīng)用軟件的軟件程序以及模塊,如本發(fā)明實施例中的監(jiān)測攻擊報文的方法對應(yīng)的程序指令/模塊,處理器102通過運行存儲在存儲器104內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述的應(yīng)用程序的漏洞檢測方法。存儲器104可包括高速隨機(jī)存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器104可進(jìn)一步包括相對于處理器102遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至計算機(jī)終端10。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
傳輸裝置106用于經(jīng)由一個網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實例可包括計算機(jī)終端10的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個實例中,傳輸裝置106包括一個網(wǎng)絡(luò)適配器(Network Interface Controller,NIC),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進(jìn)行通訊。在一個實例中,傳輸裝置106可以為射頻(Radio Frequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
在上述運行環(huán)境下,本申請?zhí)峁┝巳鐖D2所示的監(jiān)測攻擊報文的方法。圖2是根據(jù)本發(fā)明實施例一的監(jiān)測攻擊報文的方法的流程圖,如圖2所示,該方法可以包括:
步驟S20,清洗終端接收待驗證的報文。
在上述步驟S20中,上述清洗終端可以為服務(wù)運營商設(shè)置的清洗設(shè)備,上述待驗證的報文可以為訪問終端發(fā)送的報文。需要說明的是,大量的訪問終端在對服務(wù)運營商的業(yè)務(wù)服務(wù)器進(jìn)行訪問時,業(yè)務(wù)服務(wù)器可以收到大量的報文,在上述大量的報文中,可能存在非法的攻擊報文。因此,服務(wù)運營商可以設(shè)置上述清洗終端,在上述大量的報文到達(dá)業(yè)務(wù)服務(wù)器之前,由清洗終端先接收上述大量的報文,并對上述大量的報文進(jìn)行驗證,以監(jiān)測出攻擊報文。上述報文可以為IP報文、TCP報文,UDP報文,在本方案中,清洗終端接收的報文優(yōu)選為UDP報文。
需要說明的是,在本方案中,上述清洗終端可以為能實現(xiàn)清洗功能的任意終端,例如,PC,路由器、服務(wù)器等實現(xiàn)清洗功能的設(shè)備。
下面以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,網(wǎng)站服務(wù)器WS每天會接收到大 量的終端用戶發(fā)送的大量UDP報文,在上述大量報文中存在著UDP攻擊報文,該攻擊報文可能導(dǎo)致上述網(wǎng)站服務(wù)器WS癱瘓,網(wǎng)站服務(wù)器WS的運營商可以設(shè)置清洗設(shè)備,在訪問終端發(fā)送的大量UDP報文到達(dá)網(wǎng)站服務(wù)器WS之前,由清洗設(shè)備先接收上述大量的UDP報文,然后清洗設(shè)備可以根據(jù)預(yù)定策略對上述大量的UDP報文逐條進(jìn)行驗證,以監(jiān)測出UDP攻擊報文。
步驟S22,清洗終端檢測待驗證的報文中是否攜帶有驗證碼。
在上述步驟S22中,上述清洗終端在接收到報文之后,可以對上述報文頭部進(jìn)行檢測,判斷待驗證的報文的頭部是否攜帶有驗證碼,上述驗證碼可以為一個標(biāo)簽TAG。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,清洗設(shè)備在接收到訪問終端U1發(fā)送的UDP報文之后,可以首先獲取UDP報文的頭部,清洗設(shè)備進(jìn)一步可以檢測在UDP報文的頭部是否攜帶便簽TAG。
步驟S24,在確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗。
在上述步驟S24中,如果檢測到上述待驗證的報文中攜帶有驗證碼的情況下,清洗終端可以對上述報文進(jìn)行校驗,需要說明的是,在清洗終端可以保存至少一個驗證碼,清洗終端可以根據(jù)保存的驗證碼對上述報文中攜帶的驗證碼進(jìn)行校驗。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,在為網(wǎng)站運營商設(shè)置的清洗設(shè)備中可以保存有一個或多個TAG,在清洗設(shè)備接收到UDP報文之后,清洗設(shè)備可以利用保存的一個或多個TAG對訪問終端U1發(fā)送的UDP報文中的TAG進(jìn)行校驗。
步驟S26,在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。
在上述步驟S26提供的一種可選方案中,如果在接收到的報文中沒有攜帶驗證碼,清洗終端直接將上述報文確定為攻擊報文,另外一種可選實施例中,雖然待驗證的報文中攜帶有驗證碼,但如果清洗終端中包含的驗證碼不包含報文報頭中的驗證碼,或者與報文報頭中的校驗碼不相同的情況下,清洗終端確定上述報文為攻擊報文,并確定發(fā)送報文的源數(shù)據(jù)終端(例如訪問終端U1)為非法用戶的訪問終端。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,如果清洗設(shè)備在訪問終端U1發(fā)送的UDP報文中沒有檢測到TAG,那么清洗設(shè)備直接確定訪問終端U1為非法用戶的訪問終端,并確定訪問終端U1發(fā)送的UDP報文為攻擊報文,如果清洗設(shè)備中保存的至少一個TAG不包括訪問終端U1發(fā)送的報文中的TAG的時候,那么,清洗設(shè)備也確定訪問終端U1為非法用戶的訪問終端,并且訪問終端U1發(fā)送的UDP報文為攻擊報文。
在一種可選地實施例中,本方案還可以包括如下步驟:在校驗驗證碼成功的情況下,確定待驗證的報文為源數(shù)據(jù)終端發(fā)送的安全報文。
在上述確定安全報文的步驟中,如果清洗終端中保存的一個或多個驗證碼包含上述報文的報頭的驗證碼的情況下,則校驗成功,清洗終端則確定待驗證的報文為源數(shù)據(jù)終端(即訪問終端)發(fā)送的安全報文,上述源數(shù)據(jù)終端可以為合法用戶的訪問終端。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,清洗設(shè)備可以用其內(nèi)部保存的TAG對UDP報文的報頭中記錄的TAG進(jìn)行校驗,如果清洗設(shè)備內(nèi)部的保存的TAG包含上述UDP報文報頭的TAG,或者與UDP報文中的TAG相同的情況下,則說明校驗成功,清洗設(shè)備則確定發(fā)送UDP報文的訪問終端U1為合法用戶的訪問終端。
本申請上述實施例一公開的方案中,如果要保證發(fā)送給服務(wù)運營商要的報文中不存在攻擊報文,可以首先通過清洗終端接收源數(shù)據(jù)終端發(fā)送的所有報文,將報文作為待驗證的報文進(jìn)行驗證,然后清洗終端檢測待驗證的報文中是否攜帶有驗證碼;接著,在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在校驗驗證碼成功的情況下,確定待驗證的報文為源數(shù)據(jù)終端發(fā)送的安全報文;最后,在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。容易注意到,由于清洗終端對接收到報文進(jìn)行校驗中,可以采用清洗終端內(nèi)部的驗證碼對報文頭部的驗證碼進(jìn)行校驗,如果清洗終端內(nèi)部的驗證碼包括報文頭部的驗證碼的情況下,則校驗成功,清洗終端將報文確定為合法報文,如果校驗失敗,則將報文確定為攻擊報文。與現(xiàn)有的限流方案比較,這樣不僅實現(xiàn)了可以避免對正常業(yè)務(wù)報文(合法報文)的誤殺,提高了攻擊報文的監(jiān)測的準(zhǔn)確率,而且,與現(xiàn)有的指紋學(xué)習(xí)方案比較,本實施例的方案在清洗終端對報文校驗的過程中,不對報文進(jìn)行假設(shè),無需設(shè)置學(xué)習(xí)過程,使得監(jiān)測攻擊報文更加快捷。由此,本申請?zhí)峁┑纳鲜鰧嵤├坏姆桨附鉀Q了采用限流防御或?qū)W習(xí)防御的方案來監(jiān)測攻擊報文,導(dǎo)致監(jiān)測結(jié)果不準(zhǔn)確的問題的技術(shù)問題。
在本申請?zhí)峁┑囊环N可選實施例中,步驟S20,清洗終端接收待驗證的報文之前,本方案還可以包括:
步驟S17,驗證碼生成終端定時生成驗證碼,其中,驗證碼生成終端在不同的周期內(nèi)生成不同的驗證碼。
在上述步驟S17中,上述驗證碼生成終端可以為服務(wù)運營商設(shè)置的,在本方案中,可以采用上述控制中心設(shè)備來生成上述驗證碼,上述驗證碼的長度可以根據(jù)不同報文的類型進(jìn)行設(shè)置,比如,如果上述報文的為UDP報文,那么驗證碼生成終端生成的驗 證碼為16bit。需要說明的是,驗證碼生成終端可以在第一個周期生成第一驗證碼,在第二個周期生成第二驗證,第一驗證碼與第二驗證碼優(yōu)選為不同的,需要說明的是,上述驗證碼生成終端在各個周期生成的驗證碼可以為隨機(jī)生成的數(shù)據(jù)。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,網(wǎng)站服務(wù)商可以設(shè)置有控制中心設(shè)備,控制中心設(shè)備可以在第一周期隨機(jī)生成一個16bit的TAG1,在第二周期隨機(jī)生成一個16bit的TAG2,在本實施例中,TAG1與TAG2可以不同。
步驟S18,清洗終端和源數(shù)據(jù)終端分別從驗證碼生成終端獲取驗證碼。
在上述步驟S18中,上述驗證碼生成終端可以分別與上述源數(shù)據(jù)終端以及上述清洗終端建立通信關(guān)系,即,在上述驗證碼生成終端生成驗證碼之后,上述源數(shù)據(jù)終端與上述清洗終端分別從上述驗證碼生成終端獲取驗證碼。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,網(wǎng)站服務(wù)商可以設(shè)置控制中心設(shè)備與上述源數(shù)據(jù)終端以及上述清洗設(shè)備分別建立通信關(guān)系,在上述控制中心設(shè)備隨機(jī)生成TAG1之后,訪問終端即上述源數(shù)據(jù)終端與清洗設(shè)備可以分別從上述控制中心設(shè)備獲取上述TAG2。
需要說明的是,本方案中采用源數(shù)據(jù)終端和清洗終端從驗證碼生成終端實時獲取TAG,對帶寬的損耗較小。
步驟S19,源數(shù)據(jù)終端將驗證碼寫入待發(fā)送的報文,并將寫入驗證碼的報文發(fā)送至清洗終端。
在上述步驟S19中,源數(shù)據(jù)終端從上述驗證碼生成終端獲取到驗證碼之后,可以將上述驗證碼寫入待發(fā)送的報文終端,需要說明的是,源數(shù)據(jù)終端可以將驗證碼寫入報文的頭部,然后源數(shù)據(jù)終端可以將頭部包含驗證碼的報文發(fā)送至與源數(shù)據(jù)終端機(jī)建立通信關(guān)系的清洗終端,由上述清洗終端對報文進(jìn)行校驗。還需要說明的是,在源數(shù)據(jù)終端中可以設(shè)置一個發(fā)送接口,在源數(shù)據(jù)終端需要發(fā)送報文時,可以調(diào)用上述發(fā)送接口,源數(shù)據(jù)終端自動從驗證碼生成終端獲取驗證碼,然后將上述驗證碼寫入到報文中,最后將上述報文自動發(fā)送至清洗終端。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,訪問終端內(nèi)部設(shè)置有一個發(fā)送接口“UDP interface”,在訪問終端需要發(fā)送UDP報文時,可以調(diào)用上述發(fā)送接口“UDP interface”,然后上述訪問終端自動從控制中心設(shè)備獲取TAG,然后將TAG寫入到上述UDP報文的頭部,然后自動將UDP報文發(fā)送至上述清洗終端。
在本申請?zhí)峁┑囊环N可選實施例中,可以將驗證碼寫入到待發(fā)送報文的頭部的校 驗和字段中,其中,步驟S24,清洗終端對驗證碼進(jìn)行校驗的步驟可以包括:
步驟S241,清洗終端解析由源數(shù)據(jù)終端發(fā)送的報文,從報文的校驗和字段中提取驗證碼。
在上述步驟S241中,清洗終端在接收到源數(shù)據(jù)終端發(fā)送的報文之后,可以解析上述報文,獲取上述報文的頭部,然后從上述報文的頭部提取驗證碼。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,清洗設(shè)備可以在接收到訪問終端U1的UDP報文之后,可以解析上述UDP報文,獲取上述UDP報文的頭部并從UDP報文的頭部提取16bit的TAG。
步驟S242,清洗終端將本地已經(jīng)獲取到的驗證碼與解析得到的驗證碼進(jìn)行匹配;其中,在匹配成功的情況下,確定源數(shù)據(jù)終端發(fā)送的報文為安全報文,并將校驗和字段置為空;在匹配失敗的情況下,確定源數(shù)據(jù)終端發(fā)送的報文為攻擊報文。
在上述步驟S242中,清洗終端本地中存儲的驗證碼可以為從驗證碼生成終端中獲取的,清洗終端可以將其本地預(yù)存的驗證碼同上述報文中的驗證碼進(jìn)行匹配,在匹配成功的情況下,清洗終端則確定源數(shù)據(jù)終端發(fā)送的報文為安全報文,并且將報文中的校驗和字段設(shè)置為空,在匹配失敗的情況下,清洗終端則確定源數(shù)據(jù)終端發(fā)送的報文為攻擊報文。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,清洗設(shè)備可以使用本地中存儲的TAG對UDP報文終端TAG進(jìn)行匹配,在匹配成功的情況下,清洗設(shè)備則確定該UDP報文為安全報文(合法報文),如果匹配失敗,清洗設(shè)備則確定該UDP報文為攻擊報文。
在本申請?zhí)峁┑囊环N可選實施例中,在步驟S17,驗證碼生成終端定時生成驗證碼之后,本方案還可以包括:
步驟S171,驗證碼生成終端將定時生成的驗證碼進(jìn)行加密處理,并將加密后的驗證碼發(fā)送給清洗終端和源數(shù)據(jù)終端。
在上述步驟S171中,驗證碼生成終端內(nèi)部可以設(shè)置有加密算法,驗證碼生成終端可以按照上述加密算法對定時生成的驗證碼進(jìn)行加密,然后將加密后的驗證碼分別發(fā)送給清洗終端和源數(shù)據(jù)終端,需要說明的是,在清洗終端與源數(shù)據(jù)終端中可以設(shè)置有與加密算法對應(yīng)的解密算法,即,清洗終端與源數(shù)據(jù)終端在從上述驗證碼生成終端獲取到驗證碼之后,可以根據(jù)上述解密算法對加密處理的驗證碼進(jìn)行解密,以得到驗證碼。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,控制中心設(shè)備是定時生成TAG之 后,可以采用MD5加密算法對TAG進(jìn)行加密,生成TAG_MD5,然后控制中心設(shè)備將TAG_MD5分別發(fā)送至訪問終端以及清洗設(shè)備,上述訪問終端然后可以根據(jù)解密算法對TAG_MD5進(jìn)行解密,得到TAG本身。
在本申請?zhí)峁┑囊环N可選實施例中,本方案還包括如下:
步驟S1700,驗證碼生成終端可以按照第一預(yù)定周期生成驗證碼,清洗終端可以按照第二預(yù)定周期從驗證碼生成終端獲取驗證碼,源數(shù)據(jù)終端按照第三預(yù)定周期從驗證碼生成終端獲取驗證碼,其中,驗證碼生成終端將生成的驗證碼的狀態(tài)設(shè)置為第一狀態(tài),第一狀態(tài)用于表示驗證碼為未被讀取過的驗證碼。
在上述步驟S1700中,上述第一預(yù)定周期、第二預(yù)定周期、第三預(yù)定周期可以為三個定時時間,即驗證碼生成終端可以每隔第一預(yù)定周期的時間生成一次驗證碼,清洗終端每隔第二預(yù)定周期的時間從驗證碼生成終端去獲取一次驗證碼,清洗終端每隔第三預(yù)定周期的時間從驗證碼生成終端去獲取一次驗證碼,需要說明的是,上述三個定時時間可以相同。還需要說明的是,驗證碼驗證終端在按照上述第一預(yù)定周期的定時時間生成一個驗證碼之后,可以將該驗證碼的狀態(tài)設(shè)置為第一狀態(tài),上述第一狀態(tài)可以用于表征該驗證碼準(zhǔn)備被使用即未被讀取過。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,驗證碼生成終端作為控制中心設(shè)備可以每隔Timer_tag1的時間生成一次TAG,清洗設(shè)備每隔Timer_tag2的時間從驗證碼生成終端去獲取一次TAG,用戶的訪問終端可以每隔Timer_tag3的時間從驗證碼生成終端獲取一次TAG,需要說明的是,上述Timer_tag1、Timer_tag2以及Timer_tag3可以相同。還需要說明的是,驗證碼生成終端在按照上述Timer_tag1的定時時間生成一個TAG之后,可以將該TAG的狀態(tài)設(shè)置為ready_to_use,并在該TAG被清洗設(shè)備讀取之后,將狀態(tài)切換為in_use。
在本申請?zhí)峁┑囊环N可選實施例中,在上述步驟S1700,驗證碼生成終端將新生成的驗證碼的狀態(tài)設(shè)置為第一狀態(tài)之后,本方案還可以包括:
步驟S1710,在清洗終端獲取狀態(tài)為第一狀態(tài)的驗證碼之后,驗證碼生成終端將驗證碼的第一狀態(tài)修改為第二狀態(tài),并刪除本地已經(jīng)存儲的其他驗證碼,其中,其他驗證碼的狀態(tài)為第二狀態(tài),第二狀態(tài)用于表示驗證碼已經(jīng)被讀取。
在上述步驟S1710中,在清洗終端按照上述第二周期到驗證碼生成終端讀取到驗證碼之后,驗證碼生成終端則將驗證碼的第一狀態(tài)修改為第二狀態(tài),上述第一狀態(tài)表示該驗證碼未被清洗設(shè)備讀取,上述第二狀態(tài)表示該驗證碼已被清洗設(shè)備讀取,需要說明的是,在驗證碼生成終端內(nèi)部可以存儲有多個驗證碼的情況下,在最新生成的驗 證碼的狀態(tài)變?yōu)榈诙顟B(tài)之后,驗證碼生成終端則刪除其他狀態(tài)為第二狀態(tài)的驗證碼,此時,在驗證碼生成終端中只存在一個狀態(tài)為第二狀態(tài)的驗證碼。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,控制中心設(shè)備每隔Timer_tag1的時間生成一次TAG(例如TAG1)之后,上述TAG1的狀態(tài)被設(shè)置為ready_to_use,當(dāng)清洗設(shè)備從控制中心設(shè)備獲取上述TAG1之后,控制中心設(shè)備則將上述TAG1的狀態(tài)修改為,in_use,表示上述TAG1已被讀取,然后控制中心設(shè)備刪除其內(nèi)部存儲的多個狀態(tài)為in_use的TAG,此時,在控制中心設(shè)備只存在一個狀態(tài)為in_use的TAG,及上述TAG1。
在本申請?zhí)峁┑囊环N可選實施例中,清洗終端可以將獲取到的驗證碼依次寫入驗證碼隊列,其中,驗證碼隊列保存至少兩個驗證碼。
在上述步驟中,清洗終端可以設(shè)置有驗證碼隊列,上述驗證碼隊列可以用于存儲清洗終端從驗證碼生成終端按照上述第二周期依次獲取的多個驗證碼,在清洗終端接收到源數(shù)據(jù)終端發(fā)送的報文后,可以從驗證碼隊列的頭部至尾部依次取驗證碼對上述報文中的驗證碼進(jìn)行校驗,在隊列中的任意一個驗證碼校驗報文中的驗證碼成功之后,確定該報文為安全報文。
在本申請?zhí)峁┑囊环N可選實施例中,在步驟S1710驗證碼生成終端將驗證碼的第一狀態(tài)修改為第二狀態(tài)之后,本方案還可以包括:
步驟S1720,源數(shù)據(jù)終端從驗證碼生成終端獲取狀態(tài)為第二狀態(tài)的驗證碼,并將狀態(tài)為第二狀態(tài)的驗證碼寫入待發(fā)送的報文。
在上述步驟S1720中,源數(shù)據(jù)終端可以按照上述第三預(yù)定周期從驗證碼生成終端獲取狀態(tài)為已讀取的驗證碼,然后將上述已讀取的驗證碼寫入待發(fā)送的報文,需要說明的是,源數(shù)據(jù)終端可以調(diào)用發(fā)送接口,由發(fā)送接口實現(xiàn)將上述第二狀態(tài)的驗證碼寫入待發(fā)送的報文。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,訪問訪問終端需要發(fā)送UDP報文時,可以調(diào)用發(fā)送接口“UDP interface”,上述發(fā)送接口“UDP interface”自動從控制中心設(shè)備獲取狀態(tài)為in_use的TAG1,然后上述發(fā)送接口將TAG1寫入UDP報文的頭部,再將攜帶有TAG1的UDP報文發(fā)送至上述清洗設(shè)備。
在本申請?zhí)峁┑囊环N可選實施例中,第一預(yù)定周期、第二預(yù)定周期和第三預(yù)定周期為相同的定時時間,其中,驗證碼生成終端生成驗證碼的時刻、清洗終端從驗證碼生成終端獲取驗證碼的時刻和源數(shù)據(jù)終端從驗證碼生成終端獲取驗證碼的時刻是異步的。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,定時時間imer_tag1(第一預(yù)定周期)、定時時間Timer_tag2(第二預(yù)定周期)以及定時時間Timer_tag3(第三預(yù)定周期)可以相同,即,控制中心設(shè)備生成TAG、清洗設(shè)備獲取TAG以及訪問終端獲取TAG三者的定時時間可以相同,但是,控制中心設(shè)備生成TAG、清洗設(shè)備獲取TAG以及訪問終端獲取TAG三者的動作是異步的。控制中心設(shè)備最先產(chǎn)生TAG1,接下來清洗設(shè)備獲取到TAG21,過了一段時間,訪問終端也獲取到TAG1,清洗設(shè)備和訪問終端之間以TAG1交互了一段時間后,清洗設(shè)備的Timer_tag2到時,于是到控制中心設(shè)備重新獲取TAG,這時候獲取到TAG2,于是會存在這種狀態(tài):訪問終端中存儲的為TAG1,清洗設(shè)備上存儲的是TAG2,本方案為了兼容這種跨定時區(qū)間的情況,在清洗設(shè)備上,可以保存兩個TAG,即上一步獲取的TAG1和當(dāng)前的TAG2,這兩個TAG,任何一個如果能匹配UDP報文中的TAG,即認(rèn)為該UDP報文合法。
在本申請?zhí)峁┑囊环N可選實施例中,在校驗驗證碼成功的情況下,確定待驗證的報文為源數(shù)據(jù)終端發(fā)送的安全報文,基于驗證結(jié)果為安全報文的情況下,本方案還可以包括如下實施步驟:
步驟S280,在清洗終端確定待驗證的報文為安全報文的情況下,清洗終端透傳安全報文至目標(biāo)終端,且目標(biāo)終端不校驗安全報文;在清洗終端確定待驗證的報文為攻擊報文的情況下,清洗終端丟棄攻擊報文。
在上述步驟中,上述目標(biāo)終端可以為服務(wù)運營商的業(yè)務(wù)服務(wù)器,上述業(yè)務(wù)服務(wù)器可以與上述清洗終端建立通信關(guān)系,在清洗終端將訪問終端發(fā)送的報文確定為安全報文的情況下,可以將上述安全報文透傳至上述業(yè)務(wù)服務(wù)器,如果清洗終端將訪問終端發(fā)送的報文確定為攻擊報文,那么清洗終端直接將攻擊報文進(jìn)行丟棄,從而業(yè)務(wù)服務(wù)器不會接收到攻擊報文。
仍以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,網(wǎng)站運營商可以設(shè)置清洗設(shè)備與網(wǎng)站服務(wù)器WS建立通信關(guān)系,清洗設(shè)備可以接收訪問終端發(fā)送的UDP報文,在清洗設(shè)備確定該UDP報文為安全報文的情況,清洗設(shè)備才將UDP報文透傳至上述網(wǎng)站服務(wù)器WS,如果清洗設(shè)備確定該UDP報文我攻擊報文,那么,清洗設(shè)備則直接將該攻擊報文丟棄,這樣網(wǎng)站服務(wù)器WS則不會受到UDP Flood的攻擊。
此處還需要說明的是,本申請上述實施例中的清洗設(shè)備可以與驗證碼生成設(shè)備在邏輯上為同一個設(shè)備,即清洗設(shè)備定時生成驗證碼發(fā)送給源數(shù)據(jù)終端,在源數(shù)據(jù)終端利用清洗設(shè)備過濾報文的過程中,可以將獲取到的報文寫入待發(fā)送的報文中,發(fā)送的報文作為待驗證的報文在清洗設(shè)備中進(jìn)行檢測,如果檢測到接收到的報文中攜帶有驗證碼,和/或驗證碼被驗證成功,則確認(rèn)當(dāng)前源數(shù)據(jù)終端發(fā)送的報文為安全報文,清洗 設(shè)備將該報文透傳給網(wǎng)絡(luò)服務(wù)器,否則,清洗設(shè)備丟棄該當(dāng)前被驗證為攻擊報文。
下面結(jié)合交互圖3,描述本申請的一種優(yōu)選的實施例。
如圖3所示,本申請的方案可以包括如下步驟:
步驟A,驗證碼生成終端生成驗證碼。
在上述步驟A中,驗證碼生成終端可以根據(jù)隨機(jī)數(shù)據(jù)生成算法按照定時時間(預(yù)定周期)生成驗證碼,該驗證碼可以為標(biāo)簽TAG,需要說明的是,每次隨機(jī)生成的TAG可以為16bit,驗證碼生成終端按照上述預(yù)定周期生成的多個TAG都是不同的,還需要說明的是,驗證碼生成終端在生成TAG之后,可以將TAG的狀態(tài)設(shè)置為未被讀取。
步驟B,清洗終端從驗證碼生成終端獲取驗證碼。
在上述步驟B中,清洗終端可以按照定時時間從驗證碼生成終端獲取新生成的TAG,需要說明的是,清洗終端獲取TAG的定時時間可以與上述驗證碼的生成終端生成TAG的定時時間相同。需要說明的是,在清洗終端從驗證碼生成終端獲取到TAG之后,驗證碼生成終端則將驗證碼終端中的TAG的狀態(tài)修改為已被讀取狀態(tài),并且刪除其他狀態(tài)為被讀取狀態(tài)的TAG。
步驟C,源數(shù)據(jù)終端從驗證碼生成終端獲取驗證碼。
在上述步驟C中,源數(shù)據(jù)終端可以訪問終端,訪問終端可以按照定時時間從驗證碼生成終端獲取新生成的TAG,需要說明的是,訪問終端獲取TAG的定時時間、清洗終端獲取TAG的定時時間以及驗證碼生成TAG的定時時間可以相同,但是,訪問終端獲取TAG、清洗終端獲取TAG以及驗證碼生成TAG這三者的動作可以為異步的。
步驟D,源數(shù)據(jù)終端將驗證碼寫入報文。
在上述步驟D中,源數(shù)據(jù)終端可以發(fā)送報文(例如UDP報文),源數(shù)據(jù)終端可以將獲取到的TAG寫入UDP報文的頭部的校驗和字段。
步驟E,源數(shù)據(jù)終端將報文發(fā)送至清洗終端。
在上述步驟E中,源數(shù)據(jù)終端可以將攜帶有的TAG的UDP報文發(fā)送至清洗終端。
步驟F,清洗終端對報文進(jìn)行驗證。
在上述步驟F中,清洗終端可以使用其內(nèi)部預(yù)存的TAG與UDP報文中的TAG進(jìn)行匹配,即清洗終端檢測UDP報文中的校驗和字段是否為清洗終端內(nèi)部存儲的TAG。
需要說明的是,在清洗終端內(nèi)部可以存儲有多個TAG。
步驟G,驗證成功,清洗終端將報文確定為安全報文。
在上述步驟G中,如果清洗終端內(nèi)部的TAG與UDP報文中的TAG匹配的情況下,清洗終端則將UDP報文確定為安全報文,需要說明的是,在清洗終端內(nèi)部存儲的多個TAG有任意一個TAG與UDP報文匹配成功的情況下,清洗終端則確定UDP報文為安全報文,在確定安全報文之后,清洗終端可以將安全報文的校驗和字段設(shè)置為0。
步驟H,清洗終端將安全報文透傳至目標(biāo)終端。
在上述步驟H中,上述目標(biāo)終端可以為訪問終端想訪問的業(yè)務(wù)服務(wù)器,清洗終端在接收到UDP報文之后,如果發(fā)現(xiàn)UDP報文的頭部的校驗和字段為0的情況下,目標(biāo)終端則忽略對UDP報文的校驗。
在一種優(yōu)選的實施例當(dāng)中,驗證碼生成終端與清洗終端可以為一個終端設(shè)備server實現(xiàn)的不同的功能模塊,即終端設(shè)備server可以通過其內(nèi)部的驗證碼生成模塊來生成TAG,通過其內(nèi)部的清洗模塊來叫TAG進(jìn)行校驗。
在另一種優(yōu)選的實施例當(dāng)中,本方案中的可以僅由源數(shù)據(jù)終端、清洗終端以及目標(biāo)終端實現(xiàn),即,在源數(shù)據(jù)終端內(nèi)部與清洗終端內(nèi)部預(yù)先設(shè)置有密鑰本(驗證碼本),源數(shù)據(jù)終端可以與清洗終端根據(jù)動態(tài)密鑰機(jī)制通過協(xié)商來達(dá)成一致的秘鑰的更新頻率,更新序號,然后源數(shù)據(jù)終端、清洗終端可以根據(jù)協(xié)商后的更新頻率,更新序號從各自的密鑰本中讀取驗證碼(TAG),源數(shù)據(jù)終端再將寫到有驗證碼的UDP報文發(fā)送至清洗終端,清洗終端再對該UDP報文進(jìn)行校驗。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例的方法。
實施例2
根據(jù)本發(fā)明實施例,還提供了一種用于監(jiān)測攻擊報文的方法,如圖4所示,該方法可以包括:
步驟S41,源數(shù)據(jù)終端發(fā)送報文至清洗終端。
在上述步驟S41中,上述源數(shù)據(jù)終端可以為訪問終端,上述清洗終端可以為服務(wù)運營商設(shè)置的清洗設(shè)備,訪問終端需要訪問運營商的業(yè)務(wù)服務(wù)器的情況下,需要發(fā)送大量的報文,,在上述大量的報文中,可能存在非法的攻擊報文。因此,服務(wù)運營商可以設(shè)置上述清洗終端,在上述大量的報文到達(dá)業(yè)務(wù)服務(wù)器之前,由清洗終端先接收上述大量的報文。上述報文可以為IP報文、TCP報文,UDP報文,在本方案中,清洗終端接收的報文優(yōu)選為UDP報文。
下面以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,網(wǎng)站服務(wù)器WS每天會接收到大量的終端用戶發(fā)送的大量UDP報文,在上述大量報文中存在著UDP攻擊報文,該攻擊報文可能導(dǎo)致上述網(wǎng)站服務(wù)器WS癱瘓,網(wǎng)站服務(wù)器WS的運營商可以設(shè)置清洗設(shè)備,在訪問終端發(fā)送的大量UDP報文到達(dá)網(wǎng)站服務(wù)器WS之前,由清洗設(shè)備先接收上述大量的UDP報文。
步驟S43,源數(shù)據(jù)終端接收到清洗終端返回的檢測結(jié)果,檢測結(jié)果包括:確定報文為安全報文或攻擊報文;其中,在確定報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定報文為攻擊報文。
在上述步驟S43中,清洗終端內(nèi)部可以存有多個驗證碼(TAG),清洗終端可以先判斷接收到的報文是否攜帶TAG,在報文攜帶TAG的情況下,清洗終端直接確定報文為攻擊報文,并返回檢測結(jié)果。如果報文攜帶有TAG,清洗終端可以按照其內(nèi)部存儲的多個TAG則對報文攜帶的TAG進(jìn)行校驗,在校驗失敗的情況下,清洗終端則確認(rèn)該報文為攻擊報文,并返回檢測結(jié)果。
以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,清洗終端在接收到源數(shù)據(jù)終端發(fā)送的UDP報文之后,可以先檢查該UDP報文是否包含TAG,如果該UDP報文不攜帶TAG的情況下,清洗終端直接確定該UDP報文為攻擊報文,并返回檢測結(jié)果至源數(shù)據(jù)終端,如果報文攜帶有TAG,清洗終端可以按照其內(nèi)部存儲的多個TAG則對報文攜帶的TAG進(jìn)行校驗,如果校驗失敗,清洗終端則確定該UDP報文為攻擊報文,并返回檢測結(jié)果至源數(shù)據(jù)終端。
在一種可選的實施例中,本方案還可以包括:清洗終端在檢測到報文中攜帶有驗證碼,且校驗驗證碼成功的情況下,確定報文為安全報文。
在上述確定安全報文的步驟中:如果報文攜帶有TAG,清洗終端可以按照其內(nèi)部 存儲的多個TAG則對報文攜帶的TAG進(jìn)行校驗,在校驗成功的情況下,清洗終端則確定報文為安全報文。
以監(jiān)測針對網(wǎng)站服務(wù)器的UDP攻擊報文為例,如果該UDP報文攜帶有TAG的情況下,清洗終端則使用其內(nèi)部存儲的TAG同UDP攜帶的TAG進(jìn)行匹配,在匹配成功的情況下,清洗終端則確定該UDP報文為安全報文.
本申請上述實施例二公開的方案中,如果要保證發(fā)送給服務(wù)運營商要的報文中不存在攻擊報文,可以首先通過清洗終端接收源數(shù)據(jù)終端發(fā)送的所有報文,將報文作為待驗證的報文進(jìn)行驗證,;然后清洗終端檢測待驗證的報文中是否攜帶有驗證碼;接著,在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在校驗驗證碼成功的情況下,確定待驗證的報文為源數(shù)據(jù)終端發(fā)送的安全報文;最后,在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。容易注意到,由于清洗終端對接收到報文進(jìn)行校驗中,可以采用清洗終端內(nèi)部的驗證碼對報文頭部的驗證碼進(jìn)行校驗,如果清洗終端內(nèi)部的驗證碼包括報文頭部的驗證碼的情況下,則校驗成功,清洗終端將報文確定為合法報文,如果校驗失敗,則將報文確定為攻擊報文。與現(xiàn)有的限流方案比較,這樣不僅實現(xiàn)了可以避免對正常業(yè)務(wù)報文(合法報文)的誤殺,提高了攻擊報文的監(jiān)測的準(zhǔn)確率,而且,與現(xiàn)有的指紋學(xué)習(xí)方案比較,本實施例的方案在清洗終端對報文校驗的過程中,不對報文進(jìn)行假設(shè),無需設(shè)置學(xué)習(xí)過程,使得監(jiān)測攻擊報文更加快捷。由此,本申請?zhí)峁┑纳鲜鰧嵤├姆桨附鉀Q了采用限流防御或?qū)W習(xí)防御的方案來監(jiān)測攻擊報文,導(dǎo)致監(jiān)測結(jié)果不準(zhǔn)確的問題的技術(shù)問題。
在一種可選的實施例中,在步驟S41源數(shù)據(jù)終端發(fā)送報文至清洗終端之前,本方案還可以包括:
步驟S391,驗證碼生成終端定時生成驗證碼,其中,驗證碼生成終端在不同的周期內(nèi)生成不同的驗證碼。
在上述步驟S391中,驗證碼生成終端可以為控制中心設(shè)備,控制中心設(shè)備可以按照不同的周期(Time_tag)生成不同的驗證碼,及每隔Time_tag的時間,驗證碼則生成一次TAG。
步驟S392,清洗終端和源數(shù)據(jù)終端分別從驗證碼生成終端獲取驗證碼。
在上述步驟S392中,在驗證碼生成終端按照Time_tag的定時時間生成TAG之后,清洗終端以及源數(shù)據(jù)終端也可以按照同樣的定時時間從驗證碼生成終端獲取TAG。
步驟S393,源數(shù)據(jù)終端將驗證碼寫入待發(fā)送的報文。
在上述步驟S393中,源數(shù)據(jù)終端在獲取到TAG之后,可以將上述TAG寫入到報文(UDP報文)的頭部,然后源數(shù)據(jù)終端可以將包含TAG的報文發(fā)送至清洗終端,由清洗終端對上述報文進(jìn)行校驗。
實施例3
根據(jù)本發(fā)明實施例,還提供了一種用于實施監(jiān)測攻擊報文的方法的監(jiān)測攻擊報文的系統(tǒng),如圖5所示,該系統(tǒng)可以包括:源數(shù)據(jù)終端50,清洗終端52。
源數(shù)據(jù)終端50,用于發(fā)送報文。
清洗終端52,與源數(shù)據(jù)終端通信,用于接收源數(shù)據(jù)終端發(fā)送的報文,并檢測報文中是否攜帶有驗證碼,在確定報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定報文為攻擊報文。
在一種可選地實施例中,清洗終端52還用于在檢測到報文中攜帶有驗證碼,且校驗驗證碼成功的情況下,確定報文為安全報文,
在上述系統(tǒng)中,上述源數(shù)據(jù)終端50可以為訪問終端,上述清洗終端52可以為服務(wù)運營商設(shè)置的清洗設(shè)備,訪問終端需要訪問運營商的業(yè)務(wù)服務(wù)器的情況下,需要發(fā)送大量的報文,在上述大量的報文中,可能存在非法的攻擊報文。因此,服務(wù)運營商可以設(shè)置上述清洗終端52,在上述大量的報文到達(dá)業(yè)務(wù)服務(wù)器之前,由清洗終端52先接收上述大量的報文。上述報文可以為IP報文、TCP報文,UDP報文,在本方案中,清洗終端接收的報文優(yōu)選為UDP報文。清洗終端52內(nèi)部可以存有多個驗證碼(TAG),清洗終端可以先判斷接收到的報文是否攜帶TAG,在報文攜帶TAG的情況下,清洗終端52直接確定報文為攻擊報文,并返回檢測結(jié)果。如果報文攜帶有TAG,清洗終端52可以按照其內(nèi)部存儲的多個TAG則對報文攜帶的TAG進(jìn)行校驗,在校驗成功的情況下,清洗終端52則確定報文為安全報文,在校驗失敗的情況下,清洗終端52則確認(rèn)該報文為攻擊報文,并返回檢測結(jié)果。
本申請上述實施例三公開的方案中,如果服務(wù)運營商要從接收到的報文中監(jiān)測出攻擊報文,可以首先通過清洗終端接收待驗證的報文;然后清洗終端檢測待驗證的報文中是否攜帶有驗證碼;接著,在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在校驗驗證碼成功的情況下,確定待驗證的報文為源數(shù)據(jù)終端發(fā)送的安全報文;最后,在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。容易注意到,由于清洗終端對接收到報文進(jìn)行校驗中,可以采用清洗終端內(nèi)部的驗證碼對報文頭部的驗證碼進(jìn)行校驗,如果清洗終端內(nèi)部的驗證碼包括報文頭部的驗證碼的情況下,則校驗成功,清洗終端將 報文確定為合法報文,如果校驗失敗,則將報文確定為攻擊報文。與現(xiàn)有的限流方案比較,這樣不僅實現(xiàn)了可以避免對正常業(yè)務(wù)報文(合法報文)的誤殺,提高了攻擊報文的監(jiān)測的準(zhǔn)確率,而且,與現(xiàn)有的指紋學(xué)習(xí)方案比較,本實施例的方案在清洗終端對報文校驗的過程中,不對報文進(jìn)行假設(shè),無需設(shè)置學(xué)習(xí)過程,使得監(jiān)測攻擊報文更加快捷。由此,本申請?zhí)峁┑纳鲜鰧嵤├姆桨附鉀Q了采用限流防御或?qū)W習(xí)防御的方案來監(jiān)測攻擊報文,導(dǎo)致監(jiān)測結(jié)果不準(zhǔn)確的問題的技術(shù)問題。
在一種可選的實施例中,上述系統(tǒng)還可以包括:
驗證碼生成終端54,分別與源數(shù)據(jù)終端和清洗終端通信,用于定時生成驗證碼,其中,驗證碼生成終端在不同的周期內(nèi)生成不同的驗證碼。清洗終端52還用于從驗證碼生成終端獲取驗證碼,源數(shù)據(jù)終端50還用于從驗證碼生成終端54獲取驗證碼,并將驗證碼寫入待發(fā)送的報文。
在上述系統(tǒng)中,驗證碼生成終端54可以為控制中心設(shè)備,控制中心設(shè)備可以按照不同的周期(Time_tag)生成不同的驗證碼,即每隔Time_tag的時間,驗證碼生成終端54則生成一次TAG。在驗證碼生成終端54按照Time_tag的定時時間生成TAG之后,清洗終端52以及源數(shù)據(jù)終端50也可以按照同樣的定時時間從驗證碼生成終端54獲取TAG。在上述步驟S393中,源數(shù)據(jù)終端50在獲取到TAG之后,可以將上述TAG寫入到報文(UDP報文)的頭部,然后源數(shù)據(jù)終端50可以將包含TAG的報文發(fā)送至清洗終端52,由清洗終端52對上述報文進(jìn)行校驗。
實施例4
根據(jù)本發(fā)明實施例,還提供了一種用于實施上述監(jiān)測攻擊報文的方法的監(jiān)測攻擊報文的裝置,如圖6所示,該裝置包括:接收單元60,檢測單元62,校驗單元64,確定單元68。
其中,接收單元60,用于接收待驗證的報文;檢測單元62,用于檢測待驗證的報文中是否攜帶有驗證碼;校驗單元64,用于在待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;確定單元68,用于在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。
本申請上述實施例四公開的方案中,如果要保證發(fā)送給服務(wù)運營商要的報文中不存在攻擊報文,可以首先通過清洗終端接收源數(shù)據(jù)終端發(fā)送的所有報文,將報文作為待驗證的報文進(jìn)行驗證,;然后清洗終端檢測待驗證的報文中是否攜帶有驗證碼;接著,在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在校驗驗證碼成功的情況下,確定待驗證的報文為源數(shù)據(jù)終端發(fā)送的安全報文;最后,在確 定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。容易注意到,由于清洗終端對接收到報文進(jìn)行校驗中,可以采用清洗終端內(nèi)部的驗證碼對報文頭部的驗證碼進(jìn)行校驗,如果清洗終端內(nèi)部的驗證碼包括報文頭部的驗證碼的情況下,則校驗成功,清洗終端將報文確定為合法報文,如果校驗失敗,則將報文確定為攻擊報文。與現(xiàn)有的限流方案比較,這樣不僅實現(xiàn)了可以避免對正常業(yè)務(wù)報文(合法報文)的誤殺,提高了攻擊報文的監(jiān)測的準(zhǔn)確率,而且,與現(xiàn)有的指紋學(xué)習(xí)方案比較,本實施例的方案在清洗終端對報文校驗的過程中,不對報文進(jìn)行假設(shè),無需設(shè)置學(xué)習(xí)過程,使得監(jiān)測攻擊報文更加快捷。由此,本申請?zhí)峁┑纳鲜鰧嵤├牡姆桨附鉀Q了采用限流防御或?qū)W習(xí)防御的方案來監(jiān)測攻擊報文,導(dǎo)致監(jiān)測結(jié)果不準(zhǔn)確的問題的技術(shù)問題。
在一種可選的實施例中,如圖7所示,上述裝置還可以包括:生成單元72,獲取單元74,寫入單元76。
其中,生成單元72,用于定時生成驗證碼,其中,生成單元在不同的周期內(nèi)生成不同的驗證碼;獲取單元74,用于從驗證碼生成終端獲取驗證碼;寫入單元76,用于源數(shù)據(jù)終端將驗證碼寫入待發(fā)送的報文,并將寫入驗證碼的報文發(fā)送至清洗終端。
在一種可選地實施例中,上述校驗單元64可以包括:解析模塊641,匹配模塊643。
其中,解析模塊641,用于解析源數(shù)據(jù)終端發(fā)送的報文,從報文的校驗和字段中提取驗證碼;匹配模塊643,用于將本地已經(jīng)獲取到的驗證碼與解析得到的驗證碼進(jìn)行匹配;其中,在匹配成功的情況下,確定源數(shù)據(jù)終端發(fā)送的報文為安全報文,并將校驗和字段置為空;在匹配失敗的情況下,確定源數(shù)據(jù)終端發(fā)送的報文為攻擊報文。
在一種可選地實施例中,如圖8所示,上述裝置還可以包括:加密單元80。
其中,加密單元80,用于將定時生成的驗證碼進(jìn)行加密處理,并將加密后的驗證碼發(fā)送給清洗終端和源數(shù)據(jù)終端。
在一種可選地實施例中,驗證碼生成終端按照第一預(yù)定周期生成驗證碼,清洗終端按照第二預(yù)定周期從驗證碼生成終端獲取驗證碼,源數(shù)據(jù)終端按照第三預(yù)定周期從驗證碼生成終端獲取驗證碼,其中,驗證碼生成終端將生成的驗證碼的狀態(tài)設(shè)置為第一狀態(tài),第一狀態(tài)用于表示驗證碼為未被讀取過的驗證碼。
在一種可選地實施例中,如圖9所示,上述裝置還可以包括:修改單元90。
其中,修改單元90,用于在清洗終端獲取狀態(tài)為第一狀態(tài)的驗證碼之后,驗證碼生成終端將驗證碼的第一狀態(tài)修改為第二狀態(tài),并刪除本地已經(jīng)存儲的其他驗證碼, 其中,其他驗證碼的狀態(tài)為第二狀態(tài),第二狀態(tài)用于表示驗證碼已經(jīng)被讀取。
實施例5
本發(fā)明的實施例可以提供一種計算機(jī)終端,該計算機(jī)終端可以是計算機(jī)終端群中的任意一個計算機(jī)終端設(shè)備。可選地,在本實施例中,上述計算機(jī)終端也可以替換為移動終端等終端設(shè)備。
可選地,在本實施例中,上述計算機(jī)終端可以位于計算機(jī)網(wǎng)絡(luò)的多個網(wǎng)絡(luò)設(shè)備中的至少一個網(wǎng)絡(luò)設(shè)備。
在本實施例中,上述計算機(jī)終端可以執(zhí)行監(jiān)測攻擊報文的方法中以下步驟的程序代碼:清洗終端接收待驗證的報文;清洗終端檢測待驗證的報文中是否攜帶有驗證碼;在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。
可選地,圖10是根據(jù)本發(fā)明實施例的一種計算機(jī)終端的結(jié)構(gòu)框圖。如圖10所示,該計算機(jī)終端A可以包括:一個或多個(圖中僅示出一個)處理器、存儲器。
其中,存儲器可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的監(jiān)測攻擊報文的方法和裝置對應(yīng)的程序指令/模塊,處理器通過運行存儲在存儲器內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述的系統(tǒng)漏洞攻擊的檢測方法。存儲器可包括高速隨機(jī)存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器可進(jìn)一步包括相對于處理器遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至終端A。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
處理器可以通過傳輸裝置調(diào)用存儲器存儲的信息及應(yīng)用程序,以執(zhí)行下述步驟:驗證碼生成終端定時生成驗證碼,其中,驗證碼生成終端在不同的周期內(nèi)生成不同的驗證碼;清洗終端和源數(shù)據(jù)終端分別從驗證碼生成終端獲取驗證碼;源數(shù)據(jù)終端將驗證碼寫入待發(fā)送的報文,并將寫入驗證碼的報文發(fā)送至清洗終端。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:清洗終端解析由源數(shù)據(jù)終端發(fā)送的報文,從報文的校驗和字段中提取驗證碼;清洗終端將本地已經(jīng)獲取到的驗證碼與解析得到的驗證碼進(jìn)行匹配;其中,在匹配成功的情況下,確定源數(shù)據(jù)終端發(fā)送的報文為安全報文,并將校驗和字段置為空;在匹配失敗的情況下,確定源數(shù)據(jù)終端發(fā)送的報文為攻擊報文。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:在驗證碼生成終端定時生成驗證碼之后,方法還包括:驗證碼生成終端將定時生成的驗證碼進(jìn)行加密處理,并將加密后的驗證碼發(fā)送給清洗終端和源數(shù)據(jù)終端。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:驗證碼生成終端按照第一預(yù)定周期生成驗證碼,清洗終端按照第二預(yù)定周期從驗證碼生成終端獲取驗證碼,源數(shù)據(jù)終端按照第三預(yù)定周期從驗證碼生成終端獲取驗證碼,其中,驗證碼生成終端將生成的驗證碼的狀態(tài)設(shè)置為第一狀態(tài),第一狀態(tài)用于表示驗證碼為未被讀取過的驗證碼。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:在清洗終端獲取狀態(tài)為第一狀態(tài)的驗證碼之后,驗證碼生成終端將驗證碼的第一狀態(tài)修改為第二狀態(tài),并刪除本地已經(jīng)存儲的其他驗證碼,其中,其他驗證碼的狀態(tài)為第二狀態(tài),第二狀態(tài)用于表示驗證碼已經(jīng)被讀取。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:清洗終端將獲取到的驗證碼依次寫入驗證碼隊列,其中,驗證碼隊列保存至少兩個驗證碼。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:源數(shù)據(jù)終端從驗證碼生成終端獲取狀態(tài)為第二狀態(tài)的驗證碼,并將狀態(tài)為第二狀態(tài)的驗證碼寫入待發(fā)送的報文。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:第一預(yù)定周期、第二預(yù)定周期和第三預(yù)定周期為相同的定時時間,其中,驗證碼生成終端生成驗證碼的時刻、清洗終端從驗證碼生成終端獲取驗證碼的時刻和源數(shù)據(jù)終端從驗證碼生成終端獲取驗證碼的時刻是異步的。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:在清洗終端確定待驗證的報文為安全報文的情況下,清洗終端透傳安全報文至目標(biāo)終端,且目標(biāo)終端不校驗安全報文;在清洗終端確定待驗證的報文為攻擊報文的情況下,清洗終端丟棄攻擊報文。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:源數(shù)據(jù)終端發(fā)送報文至清洗終端;源數(shù)據(jù)終端接收到清洗終端返回的檢測結(jié)果,檢測結(jié)果包括:確定報文為安全報文或攻擊報文;其中,清洗終端在確定報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定報文為攻擊報文。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:驗證碼生成終端定時生成驗證碼,其中,驗證碼生成終端在不同的周期內(nèi)生成不同的驗證碼;清洗終端和源數(shù)據(jù)終端分別從驗證碼生成終端獲取驗證碼;源數(shù)據(jù)終端將驗證碼寫入待發(fā)送的報文。
采用本發(fā)明實施例,提供了一種監(jiān)測攻擊報文的方法。通過清洗終端接收待驗證的報文;清洗終端檢測待驗證的報文中是否攜帶有驗證碼;在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在校驗驗證碼成功的情況下,確定待驗證的報文為源數(shù)據(jù)終端發(fā)送的安全報文;在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。解決了采用限流防御或?qū)W習(xí)防御的方案來監(jiān)測攻擊報文,導(dǎo)致監(jiān)測結(jié)果不準(zhǔn)確的問題的技術(shù)問題。
本領(lǐng)域普通技術(shù)人員可以理解,圖10所示的結(jié)構(gòu)僅為示意,計算機(jī)終端也可以是智能手機(jī)(如Android手機(jī)、iOS手機(jī)等)、平板電腦、掌聲電腦以及移動互聯(lián)網(wǎng)設(shè)備(Mobile Internet Devices,MID)、PAD等終端設(shè)備。圖10其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,計算機(jī)終端10還可包括比圖10中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖10所示不同的配置。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:閃存盤、只讀存儲器(Read-Only Memory,ROM)、隨機(jī)存取器(Random Access Memory,RAM)、磁盤或光盤等。
實施例4
本發(fā)明的實施例還提供了一種存儲介質(zhì)。可選地,在本實施例中,上述存儲介質(zhì)可以用于保存上述實施例一所提供的監(jiān)測攻擊報文的方法所執(zhí)行的程序代碼。
可選地,在本實施例中,上述存儲介質(zhì)可以位于計算機(jī)網(wǎng)絡(luò)中計算機(jī)終端群中的任意一個計算機(jī)終端中,或者位于移動終端群中的任意一個移動終端中。
可選地,在本實施例中,存儲介質(zhì)被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:清洗終端接收待驗證的報文;清洗終端檢測待驗證的報文中是否攜帶有驗證碼;在清洗終端確定待驗證的報文中攜帶有驗證碼的情況下,對驗證碼進(jìn)行校驗;在確定待驗證的報文中未攜帶有驗證碼,和/或校驗驗證碼失敗的情況下,確定待驗證的報文為攻擊報文。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分, 僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可為個人計算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。