一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法及裝置制造方法【專利摘要】本發(fā)明涉及多級網(wǎng)絡(luò)跳板主機(jī)檢測領(lǐng)域,尤其是一種網(wǎng)絡(luò)攻擊跳板檢測方法。本發(fā)明針對現(xiàn)有技術(shù)的問題,本發(fā)明提出了一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法及裝置,通過網(wǎng)絡(luò)追蹤溯源找到攻擊者,必然需要能夠?qū)W(wǎng)絡(luò)攻擊跳板主機(jī)進(jìn)行檢測,從而遏制通過跳板主機(jī)進(jìn)行的網(wǎng)絡(luò)攻擊,并逐級找到隱匿在跳板主機(jī)后的攻擊者。本發(fā)明中數(shù)據(jù)包捕獲模塊捕獲該主機(jī)的數(shù)據(jù)包,數(shù)據(jù)流識別及分析模塊接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,跳板檢測模塊檢測數(shù)據(jù)流組是否滿足檢測要求,若滿足檢測要求則進(jìn)行檢測,跳板檢測模塊對數(shù)據(jù)流組進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT只值與Ack_RTT值,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級?!緦@f明】一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法及裝置【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及多級網(wǎng)絡(luò)跳板主機(jī)檢測領(lǐng)域,尤其是一種網(wǎng)絡(luò)攻擊跳板檢測方法及裝置?!?br>背景技術(shù):
】[0002]目前,網(wǎng)絡(luò)攻擊日益猖獗,攻擊手段日益復(fù)雜,攻擊者在實(shí)施網(wǎng)絡(luò)攻擊時通常會利用多級跳板主機(jī)來實(shí)施攻擊步驟,從而達(dá)到隱匿攻擊者身份的目的。跳板主機(jī)是指攻擊者事先攻擊并掌控的主機(jī),攻擊者通過逐級登錄多個跳板主機(jī),組成一個跳板攻擊鏈,并通過最后一個跳板主機(jī)實(shí)施具體的網(wǎng)絡(luò)攻擊,如圖1所述。由于從受害者只能追查找到最后一跳跳板主機(jī),所以攻擊者能夠利用跳板攻擊鏈達(dá)到逃避追蹤、隱匿身份的目的。攻擊者利用的跳板主機(jī)大都是其事先攻下的主機(jī)或者購買的虛擬主機(jī),主要利用SSH、Telnet、rlogin、rsh等交互式登錄會話協(xié)議組織攻擊跳板鏈。對跳板主機(jī)的檢測主要就是利用這些遠(yuǎn)程登錄協(xié)議的特征及跳板主機(jī)間數(shù)據(jù)流的相關(guān)性進(jìn)行檢測。[0003]攻擊者通常利用SSH、Telnet、rlogin、rsh等遠(yuǎn)程交互式會話協(xié)議登錄并組織跳板攻擊鏈,因此對跳板的檢測方法主要集中在對多級跳板間通信特征的分析。正常情況下,一條主機(jī)間的遠(yuǎn)程登錄會話鏈不會超過兩跳,如果超過兩跳則很有可能是攻擊者蓄意組織的一條網(wǎng)絡(luò)攻擊跳板鏈。StanifordChen等人在文獻(xiàn)《HoldingIntrudersAccountableontheInternet》提出了一種利用數(shù)據(jù)包指紋對比的方法來進(jìn)行跳板鏈的檢測,但是只能對未加密的會話進(jìn)行檢測,無法檢測SSH等加密會話鏈。YinZhang和VernPaxson在文獻(xiàn)《Detectingsteppingstones))中提出了一種基于數(shù)據(jù)包時間信息相關(guān)分析的跳板檢測方法,該方法可以對加密的會話進(jìn)行檢測,但是這種方法的誤報率較高,在真實(shí)的互聯(lián)網(wǎng)環(huán)境下并不適用。JianhuaYang等人在文獻(xiàn)《AReal-TimeAlgorithmtoDetectLongConnectionChainsofInteractiveTerminalSessions))提出了一種基于RTT(RoundTripTime)的跳板檢測方法,該方法通過檢測交互式會話中回送信息的延時判斷跳板是否存在,但是該方法需要從會話初始建立時就對主機(jī)的數(shù)據(jù)流進(jìn)行監(jiān)控,對已建立的會話鏈無法進(jìn)行檢測。國內(nèi)解放軍信息工程大學(xué)的孫奕等人在文獻(xiàn)《基于網(wǎng)絡(luò)回聲的跳板檢測系統(tǒng)的設(shè)計與實(shí)現(xiàn)》提出了一種基于Web服務(wù)器端的跳板檢測方法,能夠檢測訪問Web服務(wù)器的主機(jī)是否為跳板主機(jī)。但是這種方法只能在Web攻擊場景下實(shí)施,并且只能檢測跳板主機(jī)的最后一跳,應(yīng)用場景比較狹窄。[0004]在目前的互聯(lián)網(wǎng)環(huán)境下,為了能夠?qū)W(wǎng)絡(luò)攻擊進(jìn)行追蹤溯源,找到通過跳板隱匿真實(shí)身份的攻擊者,我們需要一種在真實(shí)網(wǎng)絡(luò)環(huán)境下能夠?qū)崟r、準(zhǔn)確、快速檢測網(wǎng)絡(luò)攻擊跳板的方法。但是,當(dāng)前對網(wǎng)絡(luò)攻擊跳板的檢測大多仍集中在理論研究階段,一些設(shè)計的檢測算法只適用于實(shí)驗(yàn)環(huán)境,而另外一些檢測方法則應(yīng)用場景單一,難于在實(shí)際網(wǎng)絡(luò)中應(yīng)用。【
發(fā)明內(nèi)容】[0005]本發(fā)明所要解決的技術(shù)問題是:針對現(xiàn)有技術(shù)網(wǎng)絡(luò)攻擊者在實(shí)施網(wǎng)絡(luò)攻擊時通常會利用多級跳板主機(jī)來實(shí)施攻擊步驟,從而達(dá)到隱匿攻擊者身份的目的問題,解決的思路是通過網(wǎng)絡(luò)追蹤溯源找到攻擊者,必然需要能夠?qū)W(wǎng)絡(luò)攻擊跳板主機(jī)進(jìn)行檢測,從而遏制通過跳板主機(jī)進(jìn)行的網(wǎng)絡(luò)攻擊,并逐級找到隱匿在跳板主機(jī)后的攻擊者。本發(fā)明提出了一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法及裝置,該方法通過監(jiān)控主機(jī)的數(shù)據(jù)流,分析和識別與跳板攻擊相關(guān)的數(shù)據(jù)流,并通過基于RTT的檢測判別方法,能夠快速有效地檢測是否存在網(wǎng)絡(luò)攻擊跳板,有效解決網(wǎng)絡(luò)攻擊追蹤溯源中跳板的檢測與識別問題。相應(yīng)的,通過方法對應(yīng)的裝置,分析和識別與跳板攻擊相關(guān)的數(shù)據(jù)流,快速檢測是否存在網(wǎng)絡(luò)攻擊跳板,有效解決網(wǎng)絡(luò)攻擊追蹤溯源中跳板的檢測與識別問題。[0006]本發(fā)明采用的技術(shù)方案如下:一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法包括:步驟1:數(shù)據(jù)包捕獲模塊捕獲該主機(jī)的數(shù)據(jù)包,對每條數(shù)據(jù)包進(jìn)行唯一標(biāo)識,對數(shù)據(jù)包進(jìn)行分類后輸出,執(zhí)行步驟2;所述數(shù)據(jù)包分為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包和未識別應(yīng)用層協(xié)議數(shù)據(jù)包;步驟2:數(shù)據(jù)流識別及分析模塊接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,判斷是否為TCP數(shù)據(jù)包,若是TCP數(shù)據(jù)包,則將其分類加入等待跳板檢測模塊檢測的數(shù)據(jù)流,建立分類數(shù)據(jù)流隊(duì)列并進(jìn)行分類保存,執(zhí)行步驟3;否則丟棄本次數(shù)據(jù)包;步驟3:跳板檢測模塊檢測分類數(shù)據(jù)流隊(duì)列是否滿足檢測要求,若滿足檢測要求則進(jìn)行檢測,跳板檢測模塊對分類數(shù)據(jù)流隊(duì)列進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT只值與Ack_RTT值,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級;否則,結(jié)束流程;其中Echo_RTT是發(fā)送數(shù)據(jù)包與回顯數(shù)據(jù)包之間時間間隔值;Ack_RTT是發(fā)送數(shù)據(jù)包與相鄰節(jié)點(diǎn)Ack數(shù)據(jù)包之間的時間間隔值。[0007]進(jìn)一步的,所述步驟2具體步驟包括:步驟21:數(shù)據(jù)流識別及分析模塊判斷接收到捕獲模塊捕獲的數(shù)據(jù)包,判斷是否為TCP數(shù)據(jù)包,若是TCP數(shù)據(jù)包,則執(zhí)行步驟2;否則,丟棄本次TCP數(shù)據(jù)包;步驟22:判斷TCP數(shù)據(jù)包是否屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,若不屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,則建立分類數(shù)據(jù)流隊(duì)列,將為本次TCP數(shù)據(jù)包加入建立后分類數(shù)據(jù)流隊(duì)列中;否則,將本次TCP數(shù)據(jù)包加入對應(yīng)分類數(shù)據(jù)流隊(duì)列中,執(zhí)行步驟23;步驟23:判斷本次TCP數(shù)據(jù)包是否屬于遠(yuǎn)程登錄數(shù)據(jù)包,若屬于遠(yuǎn)程登錄數(shù)據(jù)包,則將本次TCP數(shù)據(jù)包直接加入相應(yīng)分類數(shù)據(jù)流隊(duì)列中;否則,執(zhí)行步驟24;步驟24:進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,執(zhí)行步驟25:步驟25:對未識別為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包進(jìn)行判斷,當(dāng)本次TCP數(shù)據(jù)包中個數(shù)超過M個未識別、數(shù)據(jù)包中不足M且數(shù)據(jù)包捕獲時間超過T,則丟棄本次數(shù)據(jù)包;否則,執(zhí)行步驟21,其中M范圍是5-10,T范圍是5-10分鐘。[0008]進(jìn)一步的,所述步驟24中進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別是通過協(xié)議默認(rèn)端口識別及協(xié)議識別負(fù)載特征串相結(jié)合的方法,其具體過程是:步驟241:識別TCP數(shù)據(jù)包的端口字段,根據(jù)遠(yuǎn)程登錄協(xié)議的默認(rèn)端口號進(jìn)行判別,若是能根據(jù)遠(yuǎn)程登錄協(xié)議默認(rèn)端口號識別出TCP數(shù)據(jù)包;則將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則執(zhí)行步驟242;步驟242:根據(jù)遠(yuǎn)程登錄協(xié)議交互中數(shù)據(jù)包存在的特征字符串識別TCP數(shù)據(jù)包,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,結(jié)束操作。[0009]進(jìn)一步的,所述步驟3跳板檢測模塊對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT與Ack_RTT,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級的具體步驟為:步驟311:當(dāng)X1-Xh蘭60、t蘭T且η蘭N,執(zhí)行步驟312,對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行Ack_RTT的匹配與計算;同時執(zhí)行步驟315,對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行Echo_RTT的匹配計算;其中Xi為該分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包數(shù)量,Xi^1為上一周期檢測的數(shù)據(jù)包數(shù)量;T范圍是5-10分鐘A的捕獲時間為t;X,檢測周期數(shù)η;Ν范圍為5_10,η表示檢測的周期個數(shù),t表示周期長度;步驟312:對于主機(jī)的分類數(shù)據(jù)流隊(duì)列的每一個TCP數(shù)據(jù)包,提取TCP數(shù)據(jù)包中其發(fā)送的順序號及TCP數(shù)據(jù)包載荷長度,并計算期待ACK序號=順序號+數(shù)據(jù)包載荷長度;步驟313:提取TCP數(shù)據(jù)包中距離發(fā)送TCP數(shù)據(jù)包時間間隔最近的從機(jī)響應(yīng)數(shù)據(jù)包,并提取從機(jī)響應(yīng)數(shù)據(jù)包中ACK序號,若步驟312中計算的期待ACK序號與從機(jī)響應(yīng)數(shù)據(jù)包的ACK序號相等,則這兩個數(shù)據(jù)包是匹配的,通過計算這兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Ack_RTT;步驟314:重復(fù)步驟312至步驟313得到多組Ack_RTT,并計算得到Ack_RTT平均值;步驟315:當(dāng)使用明文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,那么通過直接匹配發(fā)送數(shù)據(jù)包和回送數(shù)據(jù)包的數(shù)據(jù)包載荷,如果包含相同內(nèi)容,那么這兩個數(shù)據(jù)包是匹配的,通過計算著兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Echo_RTT;當(dāng)使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,執(zhí)行步驟315;步驟316:對于使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,那么使用如下方法:提取主機(jī)TCP數(shù)據(jù)包中其發(fā)送的順序號及TCP數(shù)據(jù)包載荷長度,并計算主機(jī)的期待ACK序號=順序號+數(shù)據(jù)包載荷長度;對收到的從機(jī)發(fā)送的TCP數(shù)據(jù)包Q獲取ACK序號及序列號,當(dāng)滿足P的ACK序號與Q的序列號相等且P的序列號小于Q的ACK序號,且P的序列號小于Q的ACK序號,則稱TCP數(shù)據(jù)包P和TCP數(shù)據(jù)包Q是匹配的發(fā)送和回顯數(shù)據(jù)包,計算所述發(fā)送數(shù)據(jù)包和回顯數(shù)據(jù)包的時間間隔得到Echo_RTT;步驟317:重復(fù)步驟315至步驟316,得到多組Echo_RTT,計算得到Echo_RTT平均值。[0010]進(jìn)一步的,所述步驟3中跳板檢測模塊判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級,具體步驟為:步驟321:若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例大于等于50%,則判定為高等級;若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例小于50%,則判定為中等級;其余為低等級;步驟322:如果數(shù)據(jù)流捕獲時間超過10分鐘且檢測周期大于超過M,那么對仍未檢測出跳板的數(shù)據(jù)流判定為不是跳板數(shù)據(jù),丟棄本數(shù)據(jù),M范圍是5到10。[0011]一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測裝置包括:數(shù)據(jù)包捕獲模塊、數(shù)據(jù)流識別及分析模塊以及跳板檢測模塊,所述數(shù)據(jù)包捕獲模塊:捕獲該主機(jī)的數(shù)據(jù)包,對每條數(shù)據(jù)包進(jìn)行唯一標(biāo)識,對數(shù)據(jù)包進(jìn)行分類后輸出;所述數(shù)據(jù)包分為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包和未識別應(yīng)用層協(xié)議數(shù)據(jù)包;數(shù)據(jù)流識別及分析模塊:接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,識別出TCP數(shù)據(jù)流,并將其分類加入等待跳板檢測模塊檢測的數(shù)據(jù)流,建立分類數(shù)據(jù)流隊(duì)列并進(jìn)行分類保存;將未識別的數(shù)據(jù)包丟棄;跳板檢測模塊檢測分類數(shù)據(jù)流隊(duì)列是否滿足檢測要求,若滿足檢測要求則進(jìn)行檢測,跳板檢測模塊對分類數(shù)據(jù)流隊(duì)列進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT只值與Ack_RTT值,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級。[0012]進(jìn)一步的,所述數(shù)據(jù)流識別及分析模塊接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,識別出TCP數(shù)據(jù)流,并將其分類加入等待跳板檢測模塊檢測的數(shù)據(jù)流,建立分類數(shù)據(jù)流隊(duì)列并進(jìn)行分類保存;將未識別的數(shù)據(jù)包丟棄具體步驟包括:步驟21:數(shù)據(jù)流識別及分析模塊判斷接收到捕獲模塊捕獲的數(shù)據(jù)包,判斷是否為TCP數(shù)據(jù)包,若是TCP數(shù)據(jù)包,則執(zhí)行步驟2;否則,丟棄本次TCP數(shù)據(jù)包;步驟22:判斷TCP數(shù)據(jù)包是否屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,若不屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,則建立分類數(shù)據(jù)流隊(duì)列,將為本次TCP數(shù)據(jù)包加入建立后分類數(shù)據(jù)流隊(duì)列中;否則,將本次TCP數(shù)據(jù)包加入對應(yīng)分類數(shù)據(jù)流隊(duì)列中,執(zhí)行步驟23;步驟23:判斷本次TCP數(shù)據(jù)包是否屬于遠(yuǎn)程登錄數(shù)據(jù)包,若屬于遠(yuǎn)程登錄數(shù)據(jù)包,則將本次TCP數(shù)據(jù)包直接加入相應(yīng)分類數(shù)據(jù)流隊(duì)列中;否則,執(zhí)行步驟24;步驟24:進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,執(zhí)行步驟25:步驟25:對未識別為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包進(jìn)行判斷,當(dāng)本次TCP數(shù)據(jù)包中個數(shù)超過M個未識別、數(shù)據(jù)包中不足M且數(shù)據(jù)包捕獲時間超過T,則丟棄本次數(shù)據(jù)包;否則,執(zhí)行步驟21,其中M范圍是5-10,T范圍是5-10分鐘。[0013]進(jìn)一步的,所述步驟24中進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別是通過協(xié)議默認(rèn)端口識別及協(xié)議識別負(fù)載特征串相結(jié)合的方法,其具體過程是:步驟241:識別TCP數(shù)據(jù)包的端口字段,根據(jù)遠(yuǎn)程登錄協(xié)議的默認(rèn)端口號進(jìn)行判別,若是能根據(jù)遠(yuǎn)程登錄協(xié)議默認(rèn)端口號識別出TCP數(shù)據(jù)包;則將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則執(zhí)行步驟242;步驟242:根據(jù)遠(yuǎn)程登錄協(xié)議交互中數(shù)據(jù)包存在的特征字符串識別TCP數(shù)據(jù)包,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,結(jié)束操作。[0014]進(jìn)一步的,所述跳板檢測模塊分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT與Ack_RTT,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級的具體步驟為:步驟311:當(dāng)X1-Xh蘭60、t蘭T且η蘭N,執(zhí)行步驟312,對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行Ack_RTT的匹配與計算;同時執(zhí)行步驟315,對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行Echo_RTT的匹配計算;其中Xi為該分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包數(shù)量,Xi^1為上一周期檢測的數(shù)據(jù)包數(shù)量;T范圍是5-10分鐘A的捕獲時間為t;X,檢測周期數(shù)η;Ν范圍為5_10,η表示檢測的周期個數(shù),t表示周期長度;步驟312:對于主機(jī)的分類數(shù)據(jù)流隊(duì)列的每一個TCP數(shù)據(jù)包,提取TCP數(shù)據(jù)包中其發(fā)送的順序號及TCP數(shù)據(jù)包載荷長度,并計算期待ACK序號=順序號+數(shù)據(jù)包載荷長度;步驟313:提取TCP數(shù)據(jù)包中距離發(fā)送TCP數(shù)據(jù)包時間間隔最近的從機(jī)響應(yīng)數(shù)據(jù)包,并提取從機(jī)響應(yīng)數(shù)據(jù)包中ACK序號,若步驟312中計算的期待ACK序號與從機(jī)響應(yīng)數(shù)據(jù)包的ACK序號相等,則這兩個數(shù)據(jù)包是匹配的,通過計算這兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Ack_RTT;步驟314:重復(fù)步驟312至步驟313得到多組Ack_RTT,并計算得到Ack_RTT平均值;步驟315:當(dāng)使用明文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,那么通過直接匹配發(fā)送數(shù)據(jù)包和回送數(shù)據(jù)包的數(shù)據(jù)包載荷,如果包含相同內(nèi)容,那么這兩個數(shù)據(jù)包是匹配的,通過計算著兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Echo_RTT;當(dāng)使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,執(zhí)行步驟315;步驟316:對于使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,那么使用如下方法:提取主機(jī)TCP數(shù)據(jù)包中其發(fā)送的順序號及TCP數(shù)據(jù)包載荷長度,并計算主機(jī)的期待ACK序號=順序號+數(shù)據(jù)包載荷長度;對收到的從機(jī)發(fā)送的TCP數(shù)據(jù)包Q獲取ACK序號及序列號,當(dāng)滿足P的ACK序號與Q的序列號相等且P的序列號小于Q的ACK序號,且P的序列號小于Q的ACK序號,則稱TCP數(shù)據(jù)包P和TCP數(shù)據(jù)包Q是匹配的發(fā)送和回顯數(shù)據(jù)包,計算所述發(fā)送數(shù)據(jù)包和回顯數(shù)據(jù)包的時間間隔得到Echo_RTT;步驟317:重復(fù)步驟315至步驟316,得到多組Echo_RTT,計算得到Echo_RTT平均值。[0015]進(jìn)一步的,所述步驟3中跳板檢測模塊判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級,具體步驟為:步驟321:若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例大于等于50%,則判定為高等級;若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例小于50%,則判定為中等級;其余為低等級;步驟322:如果數(shù)據(jù)流捕獲時間超過10分鐘且檢測周期大于超過M,那么對仍未檢測出跳板的數(shù)據(jù)流判定為不是跳板數(shù)據(jù),丟棄本數(shù)據(jù),M范圍是5到10。[0016]綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:1、本發(fā)明提出了一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法和裝置,通過監(jiān)控和分析主機(jī)的數(shù)據(jù)流,對比數(shù)據(jù)流中RTT的變化,判斷主機(jī)是否為網(wǎng)絡(luò)攻擊跳板,為遏止利用跳板進(jìn)行的網(wǎng)路攻擊和對攻擊者的追蹤溯源提供關(guān)鍵?目息。[0017]2、本發(fā)明設(shè)計的網(wǎng)絡(luò)攻擊跳板檢測方法及系統(tǒng)利用遠(yuǎn)程登錄協(xié)議的特點(diǎn),通過對數(shù)據(jù)流進(jìn)行相關(guān)分析,計算并比較RTT值來判斷主機(jī)是否為跳板,能夠快速有效地實(shí)現(xiàn)對跳板主機(jī)的檢測。網(wǎng)絡(luò)攻擊跳板主機(jī)的判定可以幫助對進(jìn)行中的網(wǎng)絡(luò)攻擊鏈進(jìn)行阻斷,并且能夠?yàn)榫W(wǎng)絡(luò)攻擊溯源中對上一跳的追蹤提供關(guān)鍵信息。[0018]3、本發(fā)明設(shè)計了一種快速有效的跳板檢測方法,能夠在實(shí)際的網(wǎng)絡(luò)環(huán)境中實(shí)時對網(wǎng)絡(luò)攻擊跳板進(jìn)行檢測,誤報率及漏報率較低。同時,本發(fā)明能夠利用數(shù)據(jù)流的部分?jǐn)?shù)據(jù)包進(jìn)行檢測,減小了檢測算法的時間及空間復(fù)雜度,并根據(jù)收集的信息對疑似跳板給予不同的可信等級,提高了判定的準(zhǔn)確度及可行度?!緦@綀D】【附圖說明】[0019]本發(fā)明將通過例子并參照附圖的方式說明,其中:圖1網(wǎng)絡(luò)攻擊跳板示意圖。[0020]圖2主機(jī)發(fā)送“ps”命令到遠(yuǎn)程主機(jī)并返回結(jié)果的示意圖。[0021]圖3主機(jī)與鄰近主機(jī)間的Ack_RTT值示意圖。[0022]圖4是本發(fā)明結(jié)構(gòu)框圖。[0023]圖5是本發(fā)明數(shù)據(jù)流識別及分析模塊工作流程圖。[0024]圖6跳板檢測模塊流程圖?!揪唧w實(shí)施方式】[0025]本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。[0026]本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。[0027]本專利原理:1、在大部分交互式登錄會話中,用戶在客戶端輸入的每個字符都將產(chǎn)生一個數(shù)據(jù)包發(fā)送到登錄的遠(yuǎn)程主機(jī),而遠(yuǎn)程主機(jī)收到該字符后會將其回送給客戶端并顯示出來。圖2展示了客戶端發(fā)送“ps”命令到遠(yuǎn)程主機(jī)并返回結(jié)果的大致流程。[0028]2、網(wǎng)絡(luò)回環(huán)時間(RTT)是從主機(jī)發(fā)送數(shù)據(jù)包到收到響應(yīng)數(shù)據(jù)包的時間間隔。由于跳板攻擊鏈各個主機(jī)要中繼傳輸數(shù)據(jù)包,因此發(fā)送數(shù)據(jù)包與回顯數(shù)據(jù)包之間的時間間隔Echo_RTT通常遠(yuǎn)遠(yuǎn)大于主機(jī)與鄰近主機(jī)間的RTT值,如圖3所示。本發(fā)明通過檢測和匹配發(fā)送數(shù)據(jù)包和回顯數(shù)據(jù)包,計算和對比Echo_RTT與鄰近主機(jī)間的RTT值,從而判定該主機(jī)是否為跳板主機(jī)。[0029]3、本發(fā)明由包括數(shù)據(jù)包捕獲模塊、數(shù)據(jù)流識別及分析模塊、跳板檢測模塊和結(jié)果輸出四個部分組成,如圖4所示。數(shù)據(jù)包捕獲模塊負(fù)責(zé)對主機(jī)的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行監(jiān)控,得到主機(jī)的網(wǎng)絡(luò)數(shù)據(jù)包;數(shù)據(jù)流識別及分析模塊負(fù)責(zé)對捕獲的數(shù)據(jù)包進(jìn)行應(yīng)用層協(xié)議識別及管理,過濾掉非SSH、Telnet、rlogin、rsh協(xié)議的數(shù)據(jù)流;跳板檢測模塊負(fù)責(zé)對數(shù)據(jù)流進(jìn)行RTT計算及跳板的判定;結(jié)果輸出模塊展示并存儲跳板檢測的結(jié)果信息。[0030]4、判斷是否為TCP數(shù)據(jù)包具體過程是:查看IP數(shù)據(jù)包頭上層協(xié)議標(biāo)識字段,若該字段為TCP數(shù)據(jù)包字段,則該數(shù)據(jù)包屬于TCP數(shù)據(jù)包。[0031]5、每條TCP數(shù)據(jù)包進(jìn)行唯一標(biāo)識是通過TCP數(shù)據(jù)包四元組信息進(jìn)行唯一標(biāo)識具體步驟為:提取TCP數(shù)據(jù)包的源IP地址、目的IP地址、源端口和目的端口四元組信息,將該四元組信息作為該TCP數(shù)據(jù)包的唯一標(biāo)識。[0032]6、從機(jī)指的是與主機(jī)通訊的客戶端。[0033]實(shí)施例一:一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法包括:步驟1:數(shù)據(jù)包捕獲模塊捕獲該主機(jī)的數(shù)據(jù)包,對每條數(shù)據(jù)包進(jìn)行唯一標(biāo)識,對數(shù)據(jù)包進(jìn)行分類后輸出,執(zhí)行步驟2;所述數(shù)據(jù)包分為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包和未識別應(yīng)用層協(xié)議數(shù)據(jù)包;步驟2:數(shù)據(jù)流識別及分析模塊接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,識別出符合條件的遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包,并將其分類加入等待跳板檢測模塊檢測的數(shù)據(jù)流,建立分類數(shù)據(jù)流隊(duì)列,進(jìn)行分類保存,執(zhí)行步驟3;將不合符條件的TCP數(shù)據(jù)包丟棄;步驟3:跳板檢測模塊檢測數(shù)據(jù)流組是否滿足檢測要求,若滿足檢測要求則進(jìn)行檢測,跳板檢測模塊對數(shù)據(jù)流組進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT只值與Ack_RTT值,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級;否則,結(jié)束流程。[0034]其中,步驟I中對每條TCP數(shù)據(jù)包進(jìn)行唯一標(biāo)識是通過TCP數(shù)據(jù)包四元組信息進(jìn)行唯一標(biāo)識,具體步驟為:提取TCP數(shù)據(jù)包的源IP地址、目的IP地址、源端口和目的端口四元組信息,將該四元組信息作為該TCP數(shù)據(jù)包的唯一標(biāo)識。[0035]實(shí)施例二:在實(shí)施例一基礎(chǔ)上,步驟I中每條TCP數(shù)據(jù)包進(jìn)行唯一標(biāo)識是通過TCP數(shù)據(jù)包四元組信息進(jìn)行唯一標(biāo)識,具體步驟為:提取TCP數(shù)據(jù)包的源IP地址、目的IP地址、源端口和目的端口四元組信息,將該四元組信息作為該TCP數(shù)據(jù)包的唯一標(biāo)識。[0036]實(shí)施例三:在實(shí)施例一或二基礎(chǔ)上,所述步驟2具體步驟為:步驟21:數(shù)據(jù)流識別及分析模塊判斷接收到捕獲模塊捕獲的數(shù)據(jù)包,判斷是否為TCP數(shù)據(jù)包,若是TCP數(shù)據(jù)包,則執(zhí)行步驟2;否則,丟棄本次TCP數(shù)據(jù)包;步驟22:判斷TCP數(shù)據(jù)包是否屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,若沒有建立保存隊(duì)列,則將為本次TCP數(shù)據(jù)包建立保存隊(duì)列,并將此次TCP數(shù)據(jù)包加入保存隊(duì)列中;否則,將本次TCP數(shù)據(jù)包加入對應(yīng)數(shù)據(jù)流保存隊(duì)列中,執(zhí)行步驟23;步驟23:判斷本次TCP數(shù)據(jù)包是否屬于遠(yuǎn)程登錄數(shù)據(jù)包,若屬于遠(yuǎn)程登錄數(shù)據(jù)包,則將本次TCP數(shù)據(jù)包直接加入相應(yīng)分類數(shù)據(jù)流隊(duì)列中;否則,執(zhí)行步驟24;步驟24:進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,執(zhí)行步驟25:步驟25:對未識別為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包進(jìn)行判斷,當(dāng)本次TCP數(shù)據(jù)包中個數(shù)超過M個未識別、數(shù)據(jù)包中不足M且數(shù)據(jù)包捕獲時間超過T,則丟棄本次數(shù)據(jù)包;否則,執(zhí)行步驟21。[0037]其中步驟21中判斷是否為TCP數(shù)據(jù)包具體過程是:查看IP數(shù)據(jù)包頭上層協(xié)議標(biāo)識字段,若該字段為TCP數(shù)據(jù)包字段,則該數(shù)據(jù)包屬于TCP數(shù)據(jù)包。[0038]實(shí)施例四:在實(shí)施例一至三之一基礎(chǔ)上,所述步驟24中進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別是通過協(xié)議默認(rèn)端口識別及協(xié)議識別負(fù)載特征串相結(jié)合的方法,其具體過程是:步驟241:識別IP數(shù)據(jù)包的端口字段,根據(jù)遠(yuǎn)程登錄協(xié)議的默認(rèn)端口號(比如Telnet協(xié)議默認(rèn)端口為23號,SSH協(xié)議默認(rèn)端口為22號)進(jìn)行判別,若是能根據(jù)遠(yuǎn)程登錄協(xié)議默認(rèn)端口號識別出TCP數(shù)據(jù)包;則執(zhí)行步驟25;否則執(zhí)行步驟242;步驟242:根據(jù)遠(yuǎn)程登錄協(xié)議交互中數(shù)據(jù)包存在的特征字符串識別TCP數(shù)據(jù)包(例如SSH協(xié)議存在“SSH-**-0penSSH_**”特征字符串)。[0039]實(shí)施例五:所述步驟3跳板檢測模塊對數(shù)據(jù)流進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT與Ack_RTT,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級的具體步驟為:步驟311:當(dāng)X1-Xh蘭60、t蘭T且η蘭N,執(zhí)行步驟312,對數(shù)據(jù)流進(jìn)行Ack_RTT的匹配與計算;同時執(zhí)行步驟315,對數(shù)據(jù)流進(jìn)行Echo_RTT的匹配計算;其中XiS該數(shù)據(jù)流組中數(shù)據(jù)包數(shù)量,Xh為上一周期檢測的數(shù)據(jù)包數(shù)量;T范圍是5-10分鐘A的捕獲時間為t;X,檢測周期數(shù)η;N范圍為5-10;步驟312:對于主機(jī)的發(fā)送的每一個TCP數(shù)據(jù)包,提取TCP數(shù)據(jù)包中其發(fā)送的順序號(SequenceNumber)及數(shù)據(jù)包載荷長度,并計算期待ACK序號=順序號+數(shù)據(jù)包載荷長度;步驟313:提取數(shù)據(jù)流中距離發(fā)送數(shù)據(jù)包時間間隔最近的從機(jī)響應(yīng)數(shù)據(jù)包,并提取數(shù)據(jù)包中ACK序號,若步驟312中計算的期待ACK序號與該數(shù)據(jù)包的ACK序號相等,則這兩個數(shù)據(jù)包是匹配的,通過計算這兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Ack_RTT;步驟314:重復(fù)步驟312至步驟313得到多組Ack_RTT,并計算得到Ack_RTT平均值;步驟315:當(dāng)使用明文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,如Telnet,那么可以通過直接匹配發(fā)送數(shù)據(jù)包和回送數(shù)據(jù)包的數(shù)據(jù)包載荷,如果包含相同內(nèi)容,那么這兩個數(shù)據(jù)包是匹配的,通過計算著兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Echo_RTT;當(dāng)使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,執(zhí)行步驟315;步驟316:對于使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,如SSH,那么使用如下方法:針對發(fā)送數(shù)據(jù)包P,對收到的從機(jī)發(fā)送的數(shù)據(jù)包Q與P進(jìn)行比較,若滿足下列條件之一:I)P的ACK序號與Q的序列號相等且P的序列號小于Q的Ack序號;2)P的序列號小于Q的Ack序號。則稱P和Q是匹配的發(fā)送和回顯數(shù)據(jù)包,計算連個數(shù)據(jù)包的時間間隔得到Echo_RTT;步驟317:重復(fù)步驟315至步驟316,得到多組Echo_RTT,計算得到Echo_RTT平均值。[0040]實(shí)施例六:步驟3中跳板檢測模塊判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級,具體步驟為:步驟321:若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例大于等于50%,則判定為高等級;若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例小于50%,則判定為中等級;其余為低等級;步驟322:如果數(shù)據(jù)流捕獲時間超過10分鐘且檢測周期大于超過5,那么對仍未檢測出跳板的數(shù)據(jù)流判定為不是跳板數(shù)據(jù),丟棄本數(shù)據(jù)。[0041]實(shí)施例七:一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測裝置,其特征在于包括:數(shù)據(jù)包捕獲模塊、數(shù)據(jù)流識別及分析模塊以及跳板檢測模塊,所述數(shù)據(jù)包捕獲模塊:捕獲該主機(jī)的數(shù)據(jù)包,對每條數(shù)據(jù)包進(jìn)行唯一標(biāo)識,對數(shù)據(jù)包進(jìn)行分類后輸出;所述數(shù)據(jù)包分為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包和未識別應(yīng)用層協(xié)議數(shù)據(jù)包;數(shù)據(jù)流識別及分析模塊:接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,識別出符合條件的遠(yuǎn)程登錄協(xié)議數(shù)據(jù)流,并將其分類加入等待跳板檢測的數(shù)據(jù)流組分類保存;將不合符條件的TCP數(shù)據(jù)包丟棄;跳板檢測模塊檢測數(shù)據(jù)流組是否滿足檢測要求,若滿足檢測要求則進(jìn)行檢測,跳板檢測模塊對數(shù)據(jù)流組進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT只值與Ack_RTT值,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級。[0042]實(shí)施例八:在實(shí)施例七基礎(chǔ)上,所述數(shù)據(jù)流識別及分析模塊接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,識別出符合條件的遠(yuǎn)程登錄協(xié)議數(shù)據(jù)流,并將其分類加入等待跳板檢測的數(shù)據(jù)流組分類保存后;將不合符條件的TCP數(shù)據(jù)包丟棄具體步驟包括:步驟21:數(shù)據(jù)流識別及分析模塊判斷接收到捕獲模塊捕獲的數(shù)據(jù)包,判斷是否為TCP數(shù)據(jù)包,若是TCP數(shù)據(jù)包,則執(zhí)行步驟2;否則,丟棄本次TCP數(shù)據(jù)包;步驟22:判斷TCP數(shù)據(jù)包是否屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,若沒有建立保存隊(duì)列,則將為本次TCP數(shù)據(jù)包建立保存隊(duì)列,并將此次TCP數(shù)據(jù)包加入保存隊(duì)列中;否則,將本次TCP數(shù)據(jù)包加入對應(yīng)數(shù)據(jù)流保存隊(duì)列中,執(zhí)行步驟23;步驟23:判斷本次TCP數(shù)據(jù)包是否屬于遠(yuǎn)程登錄數(shù)據(jù)包,若屬于遠(yuǎn)程登錄數(shù)據(jù)包,則將本次TCP數(shù)據(jù)包直接加入相應(yīng)分類數(shù)據(jù)流隊(duì)列中;否則,執(zhí)行步驟24;步驟24:進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,執(zhí)行步驟25:步驟25:對未識別為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包進(jìn)行判斷,當(dāng)本次TCP數(shù)據(jù)包中個數(shù)超過M個未識別、數(shù)據(jù)包中不足M且數(shù)據(jù)包捕獲時間超過T,則丟棄本次數(shù)據(jù)包;否則,執(zhí)行步驟21。[0043]實(shí)施例九:所述步驟24中進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別是通過協(xié)議默認(rèn)端口識別及協(xié)議識別負(fù)載特征串相結(jié)合的方法,其具體過程是:步驟241:識別IP數(shù)據(jù)包的端口字段,根據(jù)遠(yuǎn)程登錄協(xié)議的默認(rèn)端口號(比如Telnet協(xié)議默認(rèn)端口為23號,SSH協(xié)議默認(rèn)端口為22號)進(jìn)行判別,若是能根據(jù)遠(yuǎn)程登錄協(xié)議默認(rèn)端口號識別出TCP數(shù)據(jù)包;則執(zhí)行步驟25;否則執(zhí)行步驟242;步驟242:根據(jù)遠(yuǎn)程登錄協(xié)議交互中數(shù)據(jù)包存在的特征字符串識別TCP數(shù)據(jù)包(例如SSH協(xié)議存在“SSH-**-0penSSH_**”特征字符串)。[0044]實(shí)施例十:步驟3中跳板檢測模塊判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級;步驟321:若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例大于等于50%,則判定為高等級;若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例小于50%,則判定為中等級;其余為低等級;步驟322:如果數(shù)據(jù)流捕獲時間超過10分鐘且檢測周期大于超過5,那么對仍未檢測出跳板的數(shù)據(jù)流判定為不是跳板數(shù)據(jù),丟棄本數(shù)據(jù)。[0045]本發(fā)明并不局限于前述的【具體實(shí)施方式】。本發(fā)明擴(kuò)展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合?!緳?quán)利要求】1.一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法,其特征在于包括:步驟1:數(shù)據(jù)包捕獲模塊捕獲該主機(jī)的數(shù)據(jù)包,對每條數(shù)據(jù)包進(jìn)行唯一標(biāo)識,對數(shù)據(jù)包進(jìn)行分類后輸出,執(zhí)行步驟2;所述數(shù)據(jù)包分為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包和未識別應(yīng)用層協(xié)議數(shù)據(jù)包;步驟2:數(shù)據(jù)流識別及分析模塊接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,判斷是否為TCP數(shù)據(jù)包,若是TCP數(shù)據(jù)包,則將其分類加入等待跳板檢測模塊檢測的數(shù)據(jù)流,建立分類數(shù)據(jù)流隊(duì)列并進(jìn)行分類保存,執(zhí)行步驟3;否則丟棄本次數(shù)據(jù)包;步驟3:跳板檢測模塊檢測分類數(shù)據(jù)流隊(duì)列是否滿足檢測要求,若滿足檢測要求則進(jìn)行檢測,跳板檢測模塊對分類數(shù)據(jù)流隊(duì)列進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT只值與Ack_RTT值,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級;否則,結(jié)束流程;其中Echo_RTT是發(fā)送數(shù)據(jù)包與回顯數(shù)據(jù)包之間時間間隔值;Ack_RTT是發(fā)送數(shù)據(jù)包與相鄰節(jié)點(diǎn)Ack數(shù)據(jù)包之間的時間間隔值。2.根據(jù)權(quán)利要求1所述的一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法,其特征在于所述步驟2具體步驟包括:步驟21:數(shù)據(jù)流識別及分析模塊判斷接收到捕獲模塊捕獲的數(shù)據(jù)包,判斷是否為TCP數(shù)據(jù)包,若是TCP數(shù)據(jù)包,則執(zhí)行步驟2;否則,丟棄本次TCP數(shù)據(jù)包;步驟22:判斷TCP數(shù)據(jù)包是否屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,若不屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,則建立分類數(shù)據(jù)流隊(duì)列,將為本次TCP數(shù)據(jù)包加入建立后分類數(shù)據(jù)流隊(duì)列中;否則,將本次TCP數(shù)據(jù)包加入對應(yīng)分類數(shù)據(jù)流隊(duì)列中,執(zhí)行步驟23;步驟23:判斷本次TCP數(shù)據(jù)包是否屬于遠(yuǎn)程登錄數(shù)據(jù)包,若屬于遠(yuǎn)程登錄數(shù)據(jù)包,則將本次TCP數(shù)據(jù)包直接加入相應(yīng)分類數(shù)據(jù)流隊(duì)列中;否則,執(zhí)行步驟24;步驟24:進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,執(zhí)行步驟25:步驟25:對未識別為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包進(jìn)行判斷,當(dāng)本次TCP數(shù)據(jù)包中個數(shù)超過M個未識別、數(shù)據(jù)包中不足M且數(shù)據(jù)包捕獲時間超過T,則丟棄本次數(shù)據(jù)包;否則,執(zhí)行步驟21,其中M范圍是5-10,T范圍是5-10分鐘。3.根據(jù)權(quán)利要求2所述的一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法,其特征在于所述步驟24中進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別是通過協(xié)議默認(rèn)端口識別及協(xié)議識別負(fù)載特征串相結(jié)合的方法,其具體過程是:步驟241:識別TCP數(shù)據(jù)包的端口字段,根據(jù)遠(yuǎn)程登錄協(xié)議的默認(rèn)端口號進(jìn)行判別,若是能根據(jù)遠(yuǎn)程登錄協(xié)議默認(rèn)端口號識別出TCP數(shù)據(jù)包;則將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則執(zhí)行步驟242;步驟242:根據(jù)遠(yuǎn)程登錄協(xié)議交互中數(shù)據(jù)包存在的特征字符串識別TCP數(shù)據(jù)包,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,結(jié)束操作。4.根據(jù)權(quán)利要求3所述的一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法,其特征在于所述步驟3跳板檢測模塊對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT與Ack_RTT,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級的具體步驟為:步驟311:當(dāng)X1-Xh蘭60、t蘭T且η蘭N,執(zhí)行步驟312,對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行Ack_RTT的匹配與計算;同時執(zhí)行步驟315,對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行Echo_RTT的匹配計算;其中Xi為該分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包數(shù)量,Xi^1為上一周期檢測的數(shù)據(jù)包數(shù)量;T范圍是5-10分鐘A的捕獲時間為t;X,檢測周期數(shù)η;Ν范圍為5_10,η表示檢測的周期個數(shù),t表示周期長度;步驟312:對于主機(jī)的分類數(shù)據(jù)流隊(duì)列的每一個TCP數(shù)據(jù)包,提取TCP數(shù)據(jù)包中其發(fā)送的順序號及TCP數(shù)據(jù)包載荷長度,并計算期待ACK序號=順序號+數(shù)據(jù)包載荷長度;步驟313:提取TCP數(shù)據(jù)包中距離發(fā)送TCP數(shù)據(jù)包時間間隔最近的從機(jī)響應(yīng)數(shù)據(jù)包,并提取從機(jī)響應(yīng)數(shù)據(jù)包中ACK序號,若步驟312中計算的期待ACK序號與從機(jī)響應(yīng)數(shù)據(jù)包的ACK序號相等,則這兩個數(shù)據(jù)包是匹配的,通過計算這兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Ack_RTT;步驟314:重復(fù)步驟312至步驟313得到多組Ack_RTT,并計算得到Ack_RTT平均值;步驟315:當(dāng)使用明文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,那么通過直接匹配發(fā)送數(shù)據(jù)包和回送數(shù)據(jù)包的數(shù)據(jù)包載荷,如果包含相同內(nèi)容,那么這兩個數(shù)據(jù)包是匹配的,通過計算著兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Echo_RTT;當(dāng)使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,執(zhí)行步驟315;步驟316:對于使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,那么使用如下方法:提取主機(jī)TCP數(shù)據(jù)包中其發(fā)送的順序號及TCP數(shù)據(jù)包載荷長度,并計算主機(jī)的期待ACK序號=順序號+數(shù)據(jù)包載荷長度;對收到的從機(jī)發(fā)送的TCP數(shù)據(jù)包Q獲取ACK序號及序列號,當(dāng)滿足P的ACK序號與Q的序列號相等且P的序列號小于Q的ACK序號,且P的序列號小于Q的ACK序號,則稱TCP數(shù)據(jù)包P和TCP數(shù)據(jù)包Q是匹配的發(fā)送和回顯數(shù)據(jù)包,計算所述發(fā)送數(shù)據(jù)包和回顯數(shù)據(jù)包的時間間隔得到Echo_RTT;步驟317:重復(fù)步驟315至步驟316,得到多組Echo_RTT,計算得到Echo_RTT平均值。5.根據(jù)權(quán)利要求4所述的一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測裝置,其特征在于步驟3中跳板檢測模塊判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級,具體步驟為:步驟321:若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例大于等于50%,則判定為高等級;gEcho_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例小于50%,則判定為中等級;其余為低等級;步驟322:如果數(shù)據(jù)流捕獲時間超過10分鐘且檢測周期大于超過M,那么對仍未檢測出跳板的數(shù)據(jù)流判定為不是跳板數(shù)據(jù),丟棄本數(shù)據(jù),M范圍是5到10。6.一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測裝置,其特征在于包括:數(shù)據(jù)包捕獲模塊、數(shù)據(jù)流識別及分析模塊以及跳板檢測模塊,所述數(shù)據(jù)包捕獲模塊:捕獲該主機(jī)的數(shù)據(jù)包,對每條數(shù)據(jù)包進(jìn)行唯一標(biāo)識,對數(shù)據(jù)包進(jìn)行分類后輸出;所述數(shù)據(jù)包分為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包和未識別應(yīng)用層協(xié)議數(shù)據(jù)包;數(shù)據(jù)流識別及分析模塊:接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,識別出TCP數(shù)據(jù)流,并將其分類加入等待跳板檢測模塊檢測的數(shù)據(jù)流,建立分類數(shù)據(jù)流隊(duì)列并進(jìn)行分類保存;將未識別的數(shù)據(jù)包丟棄;跳板檢測模塊檢測分類數(shù)據(jù)流隊(duì)列是否滿足檢測要求,若滿足檢測要求則進(jìn)行檢測,跳板檢測模塊對分類數(shù)據(jù)流隊(duì)列進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT只值與Ack_RTT值,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級。7.根據(jù)權(quán)利要求6所述的一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測裝置,其特征在于所述數(shù)據(jù)流識別及分析模塊接收數(shù)據(jù)包捕獲模塊捕獲的數(shù)據(jù)包,識別出TCP數(shù)據(jù)流,并將其分類加入等待跳板檢測模塊檢測的數(shù)據(jù)流,建立分類數(shù)據(jù)流隊(duì)列并進(jìn)行分類保存;將未識別的數(shù)據(jù)包丟棄具體步驟包括:步驟21:數(shù)據(jù)流識別及分析模塊判斷接收到捕獲模塊捕獲的數(shù)據(jù)包,判斷是否為TCP數(shù)據(jù)包,若是TCP數(shù)據(jù)包,則執(zhí)行步驟2;否則,丟棄本次TCP數(shù)據(jù)包;步驟22:判斷TCP數(shù)據(jù)包是否屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,若不屬于分類數(shù)據(jù)流隊(duì)列的數(shù)據(jù)流,則建立分類數(shù)據(jù)流隊(duì)列,將為本次TCP數(shù)據(jù)包加入建立后分類數(shù)據(jù)流隊(duì)列中;否則,將本次TCP數(shù)據(jù)包加入對應(yīng)分類數(shù)據(jù)流隊(duì)列中,執(zhí)行步驟23;步驟23:判斷本次TCP數(shù)據(jù)包是否屬于遠(yuǎn)程登錄數(shù)據(jù)包,若屬于遠(yuǎn)程登錄數(shù)據(jù)包,則將本次TCP數(shù)據(jù)包直接加入相應(yīng)分類數(shù)據(jù)流隊(duì)列中;否則,執(zhí)行步驟24;步驟24:進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,執(zhí)行步驟25:步驟25:對未識別為遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包進(jìn)行判斷,當(dāng)本次TCP數(shù)據(jù)包中個數(shù)超過M個未識別、數(shù)據(jù)包中不足M且數(shù)據(jù)包捕獲時間超過T,則丟棄本次數(shù)據(jù)包;否則,執(zhí)行步驟。21,其中M范圍是5-10,T范圍是5-10分鐘。8.根據(jù)權(quán)利要求7所述的一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法,其特征在于所述步驟24中進(jìn)行TCP數(shù)據(jù)包應(yīng)用層協(xié)議識別是通過協(xié)議默認(rèn)端口識別及協(xié)議識別負(fù)載特征串相結(jié)合的方法,其具體過程是:步驟241:識別TCP數(shù)據(jù)包的端口字段,根據(jù)遠(yuǎn)程登錄協(xié)議的默認(rèn)端口號進(jìn)行判別,若是能根據(jù)遠(yuǎn)程登錄協(xié)議默認(rèn)端口號識別出TCP數(shù)據(jù)包;則將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則執(zhí)行步驟242;步驟242:根據(jù)遠(yuǎn)程登錄協(xié)議交互中數(shù)據(jù)包存在的特征字符串識別TCP數(shù)據(jù)包,將識別出遠(yuǎn)程登錄協(xié)議數(shù)據(jù)包加入等待進(jìn)行跳板檢測的分類數(shù)據(jù)流隊(duì)列;否則,結(jié)束操作。9.根據(jù)權(quán)利要求8所述的一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測方法,其特征在于所述跳板檢測模塊分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行數(shù)據(jù)匹配并計算Echo_RTT與Ack_RTT,判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級的具體步驟為:步驟311:當(dāng)X1-Xh蘭60、t蘭T且η蘭N,執(zhí)行步驟312,對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行Ack_RTT的匹配與計算;同時執(zhí)行步驟315,對分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包進(jìn)行Echo_RTT的匹配計算;其中Xi為該分類數(shù)據(jù)流隊(duì)列中TCP數(shù)據(jù)包數(shù)量,Xi^1為上一周期檢測的數(shù)據(jù)包數(shù)量;T范圍是5-10分鐘A的捕獲時間為t;X,檢測周期數(shù)η;Ν范圍為5_10,η表示檢測的周期個數(shù),t表示周期長度;步驟312:對于主機(jī)的分類數(shù)據(jù)流隊(duì)列的每一個TCP數(shù)據(jù)包,提取TCP數(shù)據(jù)包中其發(fā)送的順序號及TCP數(shù)據(jù)包載荷長度,并計算期待ACK序號=順序號+數(shù)據(jù)包載荷長度;步驟313:提取TCP數(shù)據(jù)包中距離發(fā)送TCP數(shù)據(jù)包時間間隔最近的從機(jī)響應(yīng)數(shù)據(jù)包,并提取從機(jī)響應(yīng)數(shù)據(jù)包中ACK序號,若步驟312中計算的期待ACK序號與從機(jī)響應(yīng)數(shù)據(jù)包的ACK序號相等,則這兩個數(shù)據(jù)包是匹配的,通過計算這兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Ack_RTT;步驟314:重復(fù)步驟312至步驟313得到多組Ack_RTT,并計算得到Ack_RTT平均值;步驟315:當(dāng)使用明文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,那么通過直接匹配發(fā)送數(shù)據(jù)包和回送數(shù)據(jù)包的數(shù)據(jù)包載荷,如果包含相同內(nèi)容,那么這兩個數(shù)據(jù)包是匹配的,通過計算著兩個數(shù)據(jù)包的時間間隔,得到這兩個數(shù)據(jù)包的Echo_RTT;當(dāng)使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,執(zhí)行步驟315;步驟316:對于使用密文傳輸?shù)倪h(yuǎn)程登錄協(xié)議,那么使用如下方法:提取主機(jī)TCP數(shù)據(jù)包中其發(fā)送的順序號及TCP數(shù)據(jù)包載荷長度,并計算主機(jī)的期待ACK序號=順序號+數(shù)據(jù)包載荷長度;對收到的從機(jī)發(fā)送的TCP數(shù)據(jù)包Q獲取ACK序號及序列號,當(dāng)滿足P的ACK序號與Q的序列號相等且P的序列號小于Q的ACK序號,且P的序列號小于Q的ACK序號,則稱TCP數(shù)據(jù)包P和TCP數(shù)據(jù)包Q是匹配的發(fā)送和回顯數(shù)據(jù)包,計算所述發(fā)送數(shù)據(jù)包和回顯數(shù)據(jù)包的時間間隔得到Echo_RTT;步驟317:重復(fù)步驟315至步驟316,得到多組Echo_RTT,計算得到Echo_RTT平均值。10.根據(jù)權(quán)利要求9所述的一種基于主機(jī)的網(wǎng)絡(luò)攻擊跳板檢測裝置,其特征在于步驟3中跳板檢測模塊判斷Echo_RTT與Ack_RTT的關(guān)系值,確定跳板可信度等級,具體步驟為:步驟321:若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例大于等于50%,則判定為高等級;若Echo_RTT與Ack_RTT的比值大于等于3,RTT值的匹配組數(shù)比例小于50%,則判定為中等級;其余為低等級;步驟322:如果數(shù)據(jù)流捕獲時間超過10分鐘且檢測周期大于超過M,那么對仍未檢測出跳板的數(shù)據(jù)流判定為不是跳板數(shù)據(jù),丟棄本數(shù)據(jù),M范圍是5到10。【文檔編號】H04L29/06GK104009986SQ201410216666【公開日】2014年8月27日申請日期:2014年5月22日優(yōu)先權(quán)日:2014年5月22日【發(fā)明者】劉波,陳周國,蒲石,郝堯,黃宸申請人:中國電子科技集團(tuán)公司第三十研究所