亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于檢測網(wǎng)絡(luò)上未經(jīng)授權(quán)的掃描的方法、系統(tǒng)和計算機程序的制作方法

文檔序號:7947884閱讀:396來源:國知局
專利名稱:用于檢測網(wǎng)絡(luò)上未經(jīng)授權(quán)的掃描的方法、系統(tǒng)和計算機程序的制作方法
技術(shù)領(lǐng)域
一般而言,本發(fā)明涉及計算機網(wǎng)絡(luò),具體來說,涉及檢測和管理所述計算機網(wǎng)絡(luò)中的惡意通信,并保護所述網(wǎng)絡(luò)免受惡意通信的侵害。
背景技術(shù)
萬維網(wǎng)(WWW)作為因特網(wǎng)是人所共知的,正在快速地變?yōu)橛糜趥鬟f私有和公共信息的首要計算機網(wǎng)絡(luò)。因特網(wǎng)是可以由任何人主要通過使用叫做“TCP/IP(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)”的協(xié)議或其他協(xié)議進行訪問的開放式網(wǎng)絡(luò)。由于其開放性,私用網(wǎng)絡(luò)(內(nèi)部網(wǎng))上的計算機容易受到黑客的惡意攻擊。計算機已經(jīng)變成商業(yè)和政府機構(gòu)進行通信的主要手段。例如,許多商業(yè)和政府機構(gòu)使用計算機和計算機網(wǎng)絡(luò)來將遠程辦事處鏈接起來,在一個辦事處或場所內(nèi)的雇員之間共享數(shù)據(jù)及其他資源,通過電子郵件與客戶進行通信,通過電子郵件聯(lián)絡(luò)新的客戶,通過網(wǎng)站提供信息等等。
對諸如因特網(wǎng)之類的公共網(wǎng)絡(luò)的開放式訪問使得黑客們更加容易啟動或傳播被稱為蠕蟲、病毒等等的有害代碼。由于大多數(shù)私用網(wǎng)絡(luò)都耦接到因特網(wǎng),因此,從公共網(wǎng)絡(luò)投放的病毒不僅可以影響連接到公用網(wǎng)絡(luò)的設(shè)備,而且還影響連接到私用網(wǎng)絡(luò)的設(shè)備。隨著電子商務(wù)的出現(xiàn)和股票市場活動,已知有大量的商業(yè)交易是通過計算機網(wǎng)絡(luò)完成的。結(jié)果,希望造成經(jīng)濟混亂的懷惡意的人可以從公共站點投放病毒,以干擾這些交易。
由于企業(yè)、政府和個人過分地依賴計算機和因特網(wǎng),因此,惡意攻擊可能會導(dǎo)致災(zāi)難性的經(jīng)濟損失或困窘。結(jié)果,計算機安全性已經(jīng)變成使用計算機作為主要通信工具的企業(yè)、政府和個人的主要顧慮。
黑客可以選擇多種方式來對計算機發(fā)動惡意攻擊。一種方式是通過傳播能夠?qū)τ嬎銠C的操作系統(tǒng)進行未經(jīng)授權(quán)的控制的程序,來破壞計算機的操作。另一種方式是發(fā)現(xiàn)有關(guān)網(wǎng)絡(luò)中的計算機或子網(wǎng)中的資產(chǎn)的保密信息,以便刪除數(shù)據(jù)、修改日期和/或復(fù)制數(shù)據(jù)。這些行動中的任何一種都可能對家庭、企業(yè)或政府機構(gòu)的網(wǎng)絡(luò)產(chǎn)生不利的影響。
有多種技術(shù)可被黑客或攻擊者用來收集有關(guān)網(wǎng)絡(luò)設(shè)備的信息。端口掃描是由黑客或攻擊者用來收集有關(guān)一臺主機或多臺主機的信息的技術(shù)之一。當(dāng)涉及多臺主機時,該技術(shù)被稱為“分布式端口掃描”。利用端口掃描,黑客使用合法的TCP/IP(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)命令來收集信息。在這方面,黑客發(fā)出SYN(同步)分組,冒充成希望啟動TCP會話的站點。或者,黑客也可以發(fā)出RST分組。不論是哪一種情況,黑客都希望一個不產(chǎn)生懷疑的主機以分組作出響應(yīng),從這些分組中可以收集有關(guān)主機的信息。有許多其他可以被用來進行端口掃描的組合。這樣的組合包括SYN/ACK、FIN、空值圣誕樹分組等等。事實上,需要作出響應(yīng)的任何協(xié)議都可以用于進行端口掃描。
現(xiàn)有技術(shù)已經(jīng)認識到計算機網(wǎng)絡(luò)的重要性,并已經(jīng)提供了入侵檢測系統(tǒng)來保護它們免受黑客的侵害。采用現(xiàn)有技術(shù)的檢測系統(tǒng)的示例可以在美國專利6,405,318;6,363,489;6,477,651;6,279,113;6,282,546;5,991,881;6,338,141;5,414,833以及5,983,348中找到。盡管這些專利中的每一個專利中所描述的入侵檢測系統(tǒng)(IDS)對于其預(yù)定的用途能發(fā)揮作用,但是,在檢測掃描活動中卻未必如此。
人們認為,現(xiàn)有技術(shù)IDS不能檢測網(wǎng)絡(luò)掃描是基于這樣的事實它們使用標頭值或有效負載字節(jié)的已知模式的庫。將接收到的分組中的分組標頭或有效負載與已知模式(可能是正則表達式或固定值)進行比較。這種方法所存在的缺點是,這樣的庫不能完全包括以前沒有見到的偵察或掃描模式。結(jié)果,一些現(xiàn)有技術(shù)IDS不能防止新穎的偵察通信。
甚至吹牛能夠檢測掃描的IDS技術(shù)也只意味著,它們能夠發(fā)現(xiàn)是否有許多分組(一些閾值)發(fā)送給了單一目的地址。它們不能將使用較少的分組(小于閾值)的掃描關(guān)聯(lián),并且在使用了多個目的地和格式時被進一步阻礙。
現(xiàn)有技術(shù)已經(jīng)認識到在所述計算機網(wǎng)絡(luò)上使用一些工具來檢測惡意病毒的必要性,并已經(jīng)提供了這樣的工具。在很大程度上,這些工具對于它們的預(yù)定用途能發(fā)揮作用。換句話說,這些工具對于它們創(chuàng)建時所要檢測的病毒能發(fā)揮作用。如果病毒的特征發(fā)生改變,則該工具可能會變得毫無價值,并且不能夠檢測到新的病毒。已知黑客是非常聰明的人,他們最有可能改變病毒特征來妨礙檢測。
鑒于上述情況,現(xiàn)有技術(shù)和設(shè)備沒有給網(wǎng)絡(luò)管理員提供足夠的保衛(wèi)計算機網(wǎng)絡(luò)免受偵察或掃描通信的能力。結(jié)果,需要諸如這里所描述的系統(tǒng)和方法來提供額外的保護。
鑒于上述情況,主要基于工具中的模式庫和分組中的病毒之間的比較的現(xiàn)有技術(shù)并沒有給網(wǎng)絡(luò)管理員提供足夠的能力和控制來保護計算機網(wǎng)絡(luò)免受惡意病毒的侵害。結(jié)果,需要一種不基于病毒模式而基于其他特征或惡意地發(fā)送的分組的統(tǒng)計量來保護計算機網(wǎng)絡(luò)的工具。這樣一來,黑客可以隨意改變病毒模式,但這樣的惡意分組仍可以被檢測到。

發(fā)明內(nèi)容
根據(jù)第一個方面,本發(fā)明提供了用于檢測網(wǎng)絡(luò)上的未經(jīng)授權(quán)的掃描的方法,包括(a)監(jiān)視在網(wǎng)絡(luò)設(shè)備中接收到的通信;(b)檢測所述通信內(nèi)的預(yù)先定義的分組子集;以及(c)對預(yù)先定義的分組子集進行分析,以檢測具有預(yù)先定義的統(tǒng)計特征的可疑的分組。
優(yōu)選情況下,該方法進一步包括發(fā)出告警,表示檢測到具有預(yù)先定義的統(tǒng)計特征的分組。在一個實施例中,預(yù)先定義的分組子集涉及TCP(傳輸控制協(xié)議)/IP(因特網(wǎng)協(xié)議)集。在另一個實施例中,預(yù)先定義的分組子集涉及UDP(用戶數(shù)據(jù)報協(xié)議)集。在再一個實施例中,預(yù)先定義的分組子集包括TCP/IP集中的SYN分組。在再一個實施例中,預(yù)先定義的分組子集包括TCP/IP“圣誕樹”分組。在再一個實施例中,分組子集包括TCP/IP集中的RST分組。在再一個實施例中,分組子集包括TCP/IP集中的空值TCP分組。
優(yōu)選情況下,分組子集包括在來自TCP/IP集的TCP分組中TCP標頭的三個比特中的至少兩個比特(SYN、RST、FIN)被設(shè)置的分組。更好的是,預(yù)先定義的統(tǒng)計特征包括一個源地址(SA),m個目的地址(DA)和n個目的端口(DP),其中,m≥1,n≥5。
在優(yōu)選實施例中,發(fā)出告警的步驟進一步包括將所述可疑的分組報告到中心管理機構(gòu)。優(yōu)選情況下,所述管理機構(gòu)丟棄具有如可疑的分組的那些特征的所有隨后的分組。更好的是,所述管理機構(gòu)將與可疑的分組具有相同SA的所有隨后的分組的速率限制到不大可能對網(wǎng)絡(luò)產(chǎn)生傷害的程度。
優(yōu)選情況下,該方法進一步包括下列步驟在耦接到所述網(wǎng)絡(luò)的設(shè)備中提供查詢結(jié)構(gòu),所述查詢結(jié)構(gòu)在邏輯上等效于搜索樹,該搜索樹具有第一部分,該部分被分區(qū)為多個槽,至少一個槽可操作地耦接到樹形結(jié)構(gòu);在設(shè)備中接收網(wǎng)絡(luò)通信;利用編程的CPU對網(wǎng)絡(luò)通信進行分析,以檢測具有預(yù)先定義的統(tǒng)計特征的TCP/IP分組;對于如此檢測到的每一個TCP/IP分組,使用所述編程CPU來從源地址(SA)和目的地址(DA)生成散列值;使用散列值索引到槽中;檢查槽以查找指針;如果沒有發(fā)現(xiàn)指針,則插入新葉,SA和DA作為所述葉的標識符;將所述每一個TCP/IP分組中包含的目的端口(DP)的地址存儲在所述葉中;以及在所述槽中創(chuàng)建指向所述葉的指針。
更好的是,該方法進一步包括下列步驟如果指針位于槽中,則使用所述指針來訪問葉;檢查所述葉的內(nèi)容,以檢測記錄在其中的目的端口(DP)的地址;將如此檢測到的地址的數(shù)量與閾值進行比較;以及如果地址的數(shù)量等于或超過閾值,則執(zhí)行第二層查詢。
更好的是,該方法進一步包括下列步驟包括,如果所述葉中的地址數(shù)量小于閾值,則將DA添加到所述葉中。
根據(jù)第二個方面,本發(fā)明提供了用于檢測網(wǎng)絡(luò)上的掃描的系統(tǒng),包括存儲器;可操作地在所述存儲器內(nèi)配置的查詢數(shù)據(jù)結(jié)構(gòu);以及執(zhí)行一組算法的處理器,該組算法將預(yù)先定義的分組與查詢數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián),以檢測具有預(yù)先定義的統(tǒng)計特征的預(yù)先定義的分組,當(dāng)檢測到具有預(yù)先定義的統(tǒng)計特征的預(yù)先定義的分組時,給管理員發(fā)出告警消息。
優(yōu)選情況下,查詢數(shù)據(jù)結(jié)構(gòu)包括搜索樹的邏輯上的等效物。更好的是,搜索樹的第一部分對預(yù)先定義的分組的許多比特進行測試。更好的是,搜索樹的第一部分包括直接表。
在優(yōu)選實施例中,預(yù)先定義的統(tǒng)計特征包括一個源地址(SA),一個目的地址(DA)和n個目的端口(DP),n>1。在另一個優(yōu)選實施例中,預(yù)先定義的統(tǒng)計特征包括一個源地址(SA),m個目的地址(DA),m>1,和n個目的端口,n>1。
優(yōu)選情況下,算法集包括至少一個檢測算法。更好的是,算法集包括在直接表(DT)進行插入的算法。更好的是,算法集包括插入新的樹算法。更好的是,算法集包括插入較大的樹算法。更好的是,算法集包括閾值算法。更好的是,算法集包括刪除算法。
根據(jù)第三個方面,本發(fā)明提供了包括程序代碼裝置的計算機程序,當(dāng)所述程序在計算機上運行時,用于執(zhí)行上文所描述的方法的所有步驟。
對諸如主機(計算機)之類的網(wǎng)絡(luò)設(shè)備的未經(jīng)授權(quán)的訪問是分兩個階段進行的即,偵察和攻擊。在偵察階段,收集有關(guān)計算機的信息。收集到的信息在攻擊階段被用來干擾計算活動。
本發(fā)明檢測偵察階段的未經(jīng)授權(quán)的掃描(也叫做“偵察”),并采取這里闡述的校正操作。
系統(tǒng)包括編程的通用處理器,如PowerPC,或?qū)I(yè)化處理器,如PowerNP,它們與查詢和記錄結(jié)構(gòu)共同合作,以檢測高帶寬通信內(nèi)的TCP/IP SYN(同步)或RST(重置)分組,這些分組的特征是,具有一個源地址(SA)、一個或幾個目的地址(DA)和幾個(小于4個)或許多(大于4個)目的端口(DP)。對滿足這些特征的TCP/IP分組作出標記,并報告給管理機構(gòu),以便采取進一步的行動。
在一個實施例中,查詢和記錄結(jié)構(gòu)包括直接表(DT)和關(guān)聯(lián)的Patricia樹。有雙層完全匹配(FM)查詢。第一層在接收到的分組的被稱為密鑰或標頭的部分中使用SA和DA的散列,索引到第一直接表的槽中。從DA和SA中所選擇的比特被用來在與槽關(guān)聯(lián)的樹中漫游,直到到達一個葉。將葉中的SA和DA與密鑰中的SA和DA進行比較,如果匹配,則將密鑰中的DP與DP的鏈接列表進行比較,以便查找相同的SA和DA。如果DP是新的(即,沒有找到匹配),則將它添加到列表中。當(dāng)列表中的DP的數(shù)量≥n時,則使用SA的散列來在第二個直接表和關(guān)聯(lián)Patricia樹中執(zhí)行第二層查詢。第二個表中的查詢類似于第一個表中的查詢。如果第二個表的葉中的SA匹配未散列的SA,則檢查葉中的DA和DP,如果DA≥n,并且DP≥(等于或大于)n,則發(fā)出告警,宣布具有SA和DA的分組為未經(jīng)授權(quán)的掃描或偵察分組。響應(yīng)告警,網(wǎng)絡(luò)管理員采取措施,限制從中啟動了分組的SA的行動。在本發(fā)明的一個實施例中,n被設(shè)置為4。
在另一個實施例中,可以使用目的地址與搜索的端口的比率來判斷此通信是否惡意。此通信比率實際上是唯一的DA的數(shù)量乘以唯一的DP的數(shù)量的乘數(shù)(multiplier),確保乘積大于10(或另一個數(shù)字)。這將可以發(fā)現(xiàn)最初企圖逃避甚至低閾值檢測器的較小的掃描。這是攻擊者常常使用的技術(shù),非常慢地發(fā)送偵察分組,企圖逃避檢測。
在前面所描述的另一個實施例中,不會使用靜態(tài)數(shù)字(如4),而是使用與靜態(tài)數(shù)字相比的乘數(shù)(如10)。散列的輸入只包括SA。在每一個葉中,將保留與SA關(guān)聯(lián)的DA的列表。列表中的每一個DA都將與DP的列表關(guān)聯(lián)。此較大的葉將允許檢測對來自一個或幾個SA的許多DA和DP組合的慢掃描。對這些掃描的檢測大致一樣,只是不是比較靜態(tài)數(shù)字(如4),而是將獲取每個DA的唯一DP的計數(shù),然后乘以其他DA(與一個SA關(guān)聯(lián)的)。將繼續(xù)以上文所描述的方式對這樣的對于特定SA的多個DA和DP的掃描作出響應(yīng)。
根據(jù)第四個方面,本發(fā)明提供了用于檢測計算機網(wǎng)絡(luò)上的有害分組的方法,包括a)提供對接收到的分組進行掃描的至少一個算法;以及b)識別具有預(yù)先定義的格式的包括單一源地址(SA)、N個目的地址(DA)和M個目的端口(DP)的分組。
根據(jù)第五個方面,本發(fā)明提供了用于檢測計算機網(wǎng)絡(luò)中的包含有害代碼的分組的系統(tǒng),包括包括存儲器和至少一個處理元件的網(wǎng)絡(luò)處理器;一個數(shù)據(jù)結(jié)構(gòu),包括至少一個Patricia樹布局,存儲了至少一個規(guī)則,比特模式類似于位于所述存儲器內(nèi)的攜帶有害代碼的分組的比特模式;在所述至少一個處理元件上部署的計算機程序,如果執(zhí)行,使所述處理元件從預(yù)先定義的分組中的預(yù)先定義的字段生成密鑰會將密鑰與規(guī)則關(guān)聯(lián),以識別具有單一SA(源地址)、單一DP(目的端口)和許多DA(目的地址)的分組。
根據(jù)第六個方面,本發(fā)明提供了包括程序代碼裝置的計算機程序,當(dāng)所述程序在計算機上運行時,用于執(zhí)行上文所描述的方法的所有步驟。
提供了一種檢測和響應(yīng)系統(tǒng),包括一組算法,用于檢測普通計算機通信流內(nèi)的TCP分組子集,它們具有一個IP源地址(SA)值、一個目的地址(DA)值,以及超過了不同的目的地址(DA)閾值的數(shù)量。有效地利用了諸如直接表和Patricia搜索樹之類的查詢機制來記錄具有一個SA和一個DP以及對于給定SA、DP組合觀察到的DA值集合的分組集。將存在這樣的分組子集的情況以及包括所述子集的SA、DP和多個DA的標頭值報告給網(wǎng)絡(luò)管理員。此外,還提供了對報告的各種管理響應(yīng)。
本發(fā)明的檢測系統(tǒng)包括諸如網(wǎng)絡(luò)處理器之類的計算機,其中,在存儲器中提供了包括直接表和Patricia樹的結(jié)構(gòu)。提供了算法,以監(jiān)視所選擇的網(wǎng)絡(luò)流量,維護結(jié)構(gòu),將來自所選擇的網(wǎng)絡(luò)流量的密鑰與該結(jié)構(gòu)關(guān)聯(lián),以便將具有一個源地址(SA)、一個目的端口(DP)和許多目的地址(DA)的傳輸控制協(xié)議(TCP)同步(SYN)分組標識為惡意分組,并報告出去。
在一個實施例中,本發(fā)明首先將原始DP(16比特)與由管理員指定的已知的DP值的比較短的列表進行比較。該列表可以包括,例如,端口80,這是超文本傳輸協(xié)議(HTTP)端口,因為它在Web沖浪過程中創(chuàng)建從一個SA到許多DA的通信是標準的,所有的都是DP=80。如果分組位于列表中,它不被本發(fā)明進一步視為潛在惡意分組。在優(yōu)選實施例中,可以在數(shù)據(jù)路徑軟件中進行對這樣的許可DP值的測試。即,程序可能包含小的查詢表,該程序在諸如網(wǎng)絡(luò)處理器之類的可編程處理器中對分組進行處理。小查詢表將適用于對許可的DP的小列表(如10個許可的DP)中的分組DP成員身份進行測試。在某些情況下,許可的DP的另一個示例是25,該數(shù)字表示簡單郵件傳輸協(xié)議(SMTP)。
在另一個實施例中,本發(fā)明將自動地丟棄具有標頭比特的非法設(shè)置或合法設(shè)置的非法序列的分組,例如,具有SYN和Finish(FIN)比特且兩者都等于1的TCP分組,或具有設(shè)置了SYN和確認(ACK)比特但未曾記錄對應(yīng)的SYN分組的TCP分組。還是在優(yōu)選實施例中,當(dāng)在會話中看到FIN或FIN/ACK分組時,本發(fā)明將刪除對應(yīng)于一個SA和一個或多個DA的查詢項。
從更一般的角度來看,本發(fā)明嗅探在TCP會話中使用的以TCP分組的外觀投放的惡意分組。有許多方式可以供惡意的人選擇用來破壞計算機網(wǎng)絡(luò)通信。一種方式是惡意的人在傳輸控制協(xié)議(TCP)會話的有效負載中傳播蠕蟲或病毒。這可能會發(fā)現(xiàn)脆弱的機器,容易立即感染或稍后被感染。
傳播可以是從一個IP源地址(SA)(攻擊者)發(fā)送到脆弱的目的端口(DP)號和多個IP目的地址(DA)(可能是隨機的、連續(xù)的或在一組被認為是潛在的受害者地址的DA)的TCP會話。本發(fā)明能夠?qū)υS多這樣的SYN分組的集合(將包括這樣的惡意通信)進行檢測,所有的都在更大的正常通信集內(nèi)。此外,本發(fā)明還包括對這樣的檢測的多個可能的響應(yīng)。
即,本發(fā)明包括有效的搜索策略和在高帶寬通信內(nèi)檢測具有一個SA、一個DP和許多DA值的同步(SYN)分組的子集的算法。一些攻擊可能是故意搞得慢一點,大約一個到十個分組每秒鐘,以避免引起異常檢測器的注意。慢的傳播速率是本發(fā)明所描述的和解決的問題。惡意通信可能是發(fā)現(xiàn)支持某些應(yīng)用程序的目標機器的標識的偵察行為?;蛘?,惡意通信也可以包括有效負載,該有效負載本身是能夠偵察或獲得對處理器的未經(jīng)授權(quán)的控制的病毒或蠕蟲,導(dǎo)致對文件進行未經(jīng)授權(quán)的訪問、刪除文件、修改文件或復(fù)制文件。任何這樣的SYN通信在本發(fā)明中叫做“利用”。
諸如網(wǎng)絡(luò)處理器之類的網(wǎng)絡(luò)中的可編程處理器可以包括完全匹配(FM)查詢。可以從諸如包括SA、DA、源端口(SP)、DP和協(xié)議編號(對于TCP,=6)中的104比特IP五元組之類的TCP分組中讀取長密鑰?;蛘撸部梢允褂镁哂蠭P五元組及其他標頭值的比較長的密鑰,最多大致192比特。將密鑰散列到方便的大小,比如,16比特。對于16比特索引,將會有具有64K槽的直接表(DT)。存儲了存儲器的每一個槽都可以正好指向一個葉,也可以指向具有一個或多個樹枝和一些葉的樹。在樹中,檢查原始密鑰中的一些另外的比特,直到至多可能有一個匹配剩下(葉)。當(dāng)通過任何手段到達一個葉時,將完全密鑰與完全葉密鑰模式[具有0,1,或*(自由)項,或高和低范圍項]進行比較,要么有命中(導(dǎo)致關(guān)聯(lián)的操作也被記錄在葉中)要么錯過(導(dǎo)致默認操作)。
本發(fā)明以新的方式利用FM查詢。目標不是使用已知參數(shù)識別特定分組,然后采取行動。而是沒有已知參數(shù)。目標是利用迄今無人知道的標頭比特組合來識別一組分組的統(tǒng)計特征。與常規(guī)的分組識別相反,這可以叫做“行為識別”。本發(fā)明所解決的行為識別問題包括識別這樣的事實在大得多的分組集內(nèi)存在具有一個SA、一個DP和許多DA的一組SYN分組。本發(fā)明包括常見的SA和DP的識別以及報告。在備選的實施例中,還可以識別和報告一個以上的SA或一個以上的DP,直到比較小的極限(例如兩個或十個)。
為解決行為識別問題,本發(fā)明的輸入密鑰被定義為每個TCP分組的SA和DP的串聯(lián)。
在另一個實施例中,本發(fā)明可以允許沒有DP值。
為解決行為識別問題,本發(fā)明所使用的輸入密鑰被定義為TCP源地址(SA)和目的端口(DP)的串聯(lián)。此值SA、DP被作為密鑰饋送到集成了Patricia樹的搜索引擎。
如果分組沒有如上所述的許可的DP,那么,本發(fā)明將SA和DP的串聯(lián)(48比特)散列到直接表(DT)中的方便的映像(如16比特)。必須在樹的比特測試樹枝中對SA、DP比特進行進一步測試,直到我們到達與至多一個前面看到的SA、DP組合關(guān)聯(lián)的葉。每一個葉都由一個SA、DP組合定義。每一個葉還包含至少一個DA值,還可能包含更多的DA值。
可能會發(fā)生兩種沖突(具有不同標頭值的分組,在DT具有相同散列值)。首先,惡意通信的傳播可能會導(dǎo)致具有相同SA和DP,但有多個不同的DA的分組。由于只有SA、DP被輸入到散列中,因此,這樣的散列將發(fā)生沖突。其次,兩個不相關(guān)的SA、DP組合的散列偶然也可能相同。在第二種情況下,必須在樹的比特測試樹枝中對SA、DP比特進行進一步測試,直到我們到達與至多一個前面看到的SA、DP組合關(guān)聯(lián)的葉。如此,每一個葉都由一個SA、DP組合定義。每一個葉還包含至少一個DA值,還可能包含更多的DA值。
優(yōu)選情況下,N>8,M=1。更好的是,分組被報告到中心管理機構(gòu)。
優(yōu)選情況下,中心管理機構(gòu)采取決定性行動,以限制所述分組的不良影響。更好的是,決定性行動包括丟棄與標識的分組具有相同SA、DA和DP的所有隨后的分組。更好的是,決定性行動包括將所述分組的目的端口(DP)添加到許可的DP的列表中。更好的是,決定性行動包括對具有相同SA的所有隨后的分組集的速率進行限制。
在優(yōu)選實施例中,SA、DP和許多DA存儲在Patricia樹布局的葉中。優(yōu)選情況下,Patricia樹布局包括直接表。更好的是,在可操作地耦接到所述計算機網(wǎng)絡(luò)的系統(tǒng)上執(zhí)行至少一個算法。


現(xiàn)在將參考優(yōu)選實施例,只作為示例,對本發(fā)明進行描述,如下面的圖形所顯示的,其中圖1顯示了網(wǎng)絡(luò)的高級別組件,具體來說,顯示了作為檢測機構(gòu)的本發(fā)明的一些潛在的邏輯位置。
圖2顯示了硬件的高級別組件,具體來說,顯示了實現(xiàn)本發(fā)明所需要的組件的一些潛在的邏輯位置。
圖3顯示了本發(fā)明的檢測部分的流程圖。
圖4顯示了本發(fā)明的涉及在直接表(DT)中插入新指針和新葉的部分的流程圖。
圖5顯示了本發(fā)明的涉及在直接表(DT)中插入新的Patricia樹的插入的部分的流程圖。
圖6顯示了本發(fā)明的涉及在直接表(DT)中的較大的Patricia樹內(nèi)插入新葉和新樹枝的部分的流程圖。
圖7顯示了將一個葉中的不同的目的地址(DA)的數(shù)量與閾值進行比較的流程圖(本發(fā)明的一部分)。
圖8顯示了周期性地刪除所有葉、樹和指針以重置檢測設(shè)備的流程圖(本發(fā)明的一部分)。
圖9顯示了可以在其中實現(xiàn)本發(fā)明的網(wǎng)絡(luò)處理器的方框圖。
圖10代表IP數(shù)據(jù)報標頭格式。
圖11代表TCP標頭格式。
圖12代表根據(jù)本發(fā)明的原理的查詢搜索結(jié)構(gòu)。
圖13顯示了本發(fā)明的檢測部分的流程圖。
圖14顯示了本發(fā)明的涉及在直接表(DT)中插入新指針和新葉的部分的流程圖。
圖15顯示了本發(fā)明的涉及在直接表(DT)中插入新的Patricia樹的插入的部分的流程圖。
圖16顯示了本發(fā)明的涉及在直接表(DT)中的較大的Patricia樹內(nèi)插入新葉和新樹枝的部分的流程圖。
圖17顯示了將一個葉中的不同的目的地址(DA)的數(shù)量與閾值進行比較的流程圖(本發(fā)明的一部分)。
圖18顯示了根據(jù)本發(fā)明的原理的查詢數(shù)據(jù)結(jié)構(gòu)的圖形表示。
具體實施例方式
計算機網(wǎng)絡(luò)管理包括保衛(wèi)網(wǎng)絡(luò)資產(chǎn)免受惡意偵察通信的情況。在某些情況下,偵察通信需要一組分組,其中,具有對應(yīng)于攻擊者的一個源地址(SA)、對應(yīng)于由攻擊者研究的一個或多個受害機器的一個或幾個目的地址(DA),以及對應(yīng)于被認為是易受攻擊者攻擊的應(yīng)用程序的幾個或許多目的端口(DP)。
管理員可以依賴諸如本發(fā)明中說明的工具來幫助保衛(wèi)網(wǎng)絡(luò)。作為網(wǎng)絡(luò)防護的一部分,當(dāng)這樣的分組集穿過交換機、路由器、網(wǎng)絡(luò)接口卡(NIC)、儀器,或更一般而言,能夠分類、切換、路由、治安功能或基于分類結(jié)果的其他安全性功能的機器時,管理員可能希望檢測這樣的分組集。
圖1顯示了其中可以采用本發(fā)明的高度簡化的網(wǎng)絡(luò)100。因特網(wǎng)或其他網(wǎng)絡(luò)102連接到邊緣設(shè)備104??梢越o每一個邊緣設(shè)備提供,也可以不提供包含本發(fā)明的實例的檢測部件108。邊緣設(shè)備也連接子網(wǎng)106。接著,可以通過橋設(shè)備110將兩個子網(wǎng)連接起來。橋設(shè)備可以包含,也可以不包含本發(fā)明的實例112。邊緣設(shè)備可以包括路由器、交換機、服務(wù)器等等。由于邊緣設(shè)備和橋設(shè)備在現(xiàn)有技術(shù)中已為大家所熟知,因此,這里只討論包括本發(fā)明的原理的或理解本發(fā)明所必需的那些部分。
圖2顯示了邊緣設(shè)備或橋設(shè)備的檢測部件108內(nèi)的組件的方框圖200。隨機存取存儲器(RAM)202存儲了本發(fā)明中包含的信息的更新。中央處理單元(CPU)204可以訪問存儲在只讀存儲器(ROM)206中的配置中的數(shù)據(jù)來實現(xiàn)本發(fā)明的算法,從而更新RAM。提供了總線208,用于在多個組件之間傳遞信號。輸入/輸出(I/O)適配器210管理往來于外部設(shè)備212之間的信號發(fā)送,該外部設(shè)備212可以包括通用計算機,通用計算機配備有監(jiān)視器(未顯示),由管理員定期觀察。
在另一個實施例中,諸如由IBM開發(fā)和銷售的PowerNP之類的網(wǎng)絡(luò)處理器(NET PRO)耦接到I/O適配器210。網(wǎng)絡(luò)處理器被置于數(shù)據(jù)平面內(nèi),包含用于在網(wǎng)絡(luò)內(nèi)路由分組的所有需要的組件和算法。在網(wǎng)絡(luò)處理器上執(zhí)行根據(jù)本發(fā)明的原理的偵察算法。請參看圖9,顯示了網(wǎng)絡(luò)處理器的方框圖。圖9與美國專利6,404,752的圖18相同,描述了網(wǎng)絡(luò)處理器,這里進行了引用,作為參考。由于此引用,可以輕松地獲取網(wǎng)絡(luò)處理器的詳細描述。因此,將只討論網(wǎng)絡(luò)處理器的那些與本發(fā)明直接相關(guān)并由本發(fā)明使用的特征。嵌入式處理器綜合體(EPC)包含多個處理器,它們執(zhí)行路由數(shù)據(jù)的算法和根據(jù)本發(fā)明的原理的檢測算法。如這里所陳述的,檢測算法檢測和標識網(wǎng)絡(luò)上的偵察分組。另一個相關(guān)的特點是引用的專利中所顯示的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)包括直接表和與其連接的Patricia樹。數(shù)據(jù)結(jié)構(gòu)和關(guān)聯(lián)的樹搜索引擎被用作本發(fā)明的查詢和跟蹤機制。
請參看圖3,顯示了流程圖300,這是本發(fā)明中包含的DETECTION算法。算法在302處開始檢測,然后,下一個分組到達(304)。對因特網(wǎng)協(xié)議(IP)分組進行測試306,看是否為TCP。測試是在分組的標頭中的比特上進行的。如果不是,該算法返回到304,等待下一個分組。如果分組是TCP,那么,對該分組進行測試308,以查看是否為SYN。測試是通過檢查分組的標頭中的控制比特進行的。如果不是,那么,該算法返回到304。如果是SYN,那么,將SA和DA的串聯(lián)饋送312到散列函數(shù)。散列的值變成314直接表(DT)的索引。對DT槽進行測試316,以查看是否具有指向葉或指向至少具有兩個葉的樹的指針。如果沒有指針,那么,該算法轉(zhuǎn)到318 INSERTION ON DT算法(圖4)。如果有指針,那么,算法進行測試320,以查看是否正好指向一個葉。如果指針是指向具有至少兩個葉的樹,那么,由Patricia樹算法對SA、DA串聯(lián)進行測試324。然后,由Patricia樹算法對SA、DA進行測試330,以試圖匹配現(xiàn)有的葉的標記。如果SA、DA不匹配,那么,算法轉(zhuǎn)到334INSERTION LARGER TREE算法(圖6)。如果SA,DA確實匹配樹中的葉,那么,將密鑰的DP與葉中的一個或多個DP值進行比較332。再次轉(zhuǎn)到320,如果DT槽正好指向一個葉,那么,該算法將密鑰SA、DA與該葉的標記進行比較322。如果SA、DA不匹配326,那么,該算法轉(zhuǎn)到INSERTION NEW TREE 328(圖500)。如果SA、DA匹配326,那么,該算法轉(zhuǎn)到密鑰的DA與葉中的一個或多個DP值的比較332。如果密鑰DP匹配一些葉DP,那么,該算法返回到304,等待下一個分組。如果密鑰DP不匹配任何葉DP,那么,新的DP存儲338在葉中。然后,算法進入340THRESHOLD算法中(圖700)。
除了流程圖之外,還可以按如下方式描述檢測算法SA、DA的散列的16比特(大約)被用作直接表(DT)中的索引。DT槽是普通的FM槽,并可以不指向任何葉,正好指向一個葉,或指向具有樹枝和兩個或更多葉的樹。每一個葉都將完整的分組SA、DA與SA、DA的準確的模式進行比較。再者,葉包含SA,DA作為其標記,和至少一個DP(可能有多個)。
如果在計算SA、DA組合的散列值時DT中的槽正好是空的(沒有指向任何東西),那么,修改DT槽,以指向具有標記SA、DA和內(nèi)容DP的新葉。否則,如果DT中的SA、DA槽具有指針,那么,后面跟著葉或樹。如果槽指向一個樹,那么,需要對SA、DA中的某些比特進行測試,直到至多一個前面的看到的葉可能適合SA、DA。不論是哪一種情況,都將密鑰中的完整的SA、DA與葉中的完整的SA、DA進行比較。如果它們不相等,那么,必須重建樹,以測試SA、DA中的比特,以區(qū)別新密鑰與前面看到的密鑰。如果它們相等,那么,葉真正對應(yīng)于密鑰,將密鑰的DP值與存儲在葉中的一個或多個DP值進行比較。如果密鑰的DP值與前面存儲的DP相同,那么,不執(zhí)行任何操作。否則,將密鑰的DP值添加到存儲在葉中的一個或多個DP值。還將DP值的新的總數(shù)與閾值進行比較。
表I闡述了檢測算法(Detection Algorithm)的另一個表示形式。步驟0到16是一目了然的。因此,將不進行進一步的描述。
表I。
DETECTION0.下一個分組到達。
1.如果該分組不是TCP,那么,轉(zhuǎn)到0。
2.如果該分組不是SYN,那么,轉(zhuǎn)到刪除步驟1(表VI)。
3.將來自分組的標頭的SA、DA組合(密鑰)饋送到散列函數(shù)。
4.散列值被用作到直接表槽的索引。
5.如果槽沒有指針(沒有與散列到槽的SA、DA的當(dāng)前會話),那么,轉(zhuǎn)到INSERTION ON DT(在DT上插入)步驟0(表II)。
6.如果槽指向樹(具有兩個或更多葉),那么,轉(zhuǎn)到12。
7.如果槽(正好)指向一個葉,則將SA、DA與該葉的對等物進行比較。
8.如果密鑰和葉的SA、DA不匹配,則轉(zhuǎn)到INSERTION NEWTREE(插入新樹)步驟0(表III)。
9.否則,連續(xù)地將分組的DP與葉中的一個或多個DP值進行比較。
11.10.如果分組的DP和葉的某些DP相等,那么,轉(zhuǎn)到0。否則,將新的DP存儲在葉中。轉(zhuǎn)到THRESHOLD(閾值)(表V)。
12.執(zhí)行密鑰的SA、DA上的樹中的比特測試樹枝,直到到達葉。
13.如果密鑰和葉的SA、DA不匹配,則轉(zhuǎn)到INSERTIONLARGER TREE(插入較大樹)步驟0(表IV)。
14.否則,連續(xù)地將分組的DP與葉中的一個或多個DP值進行比較。
15.如果分組的DP和葉的某些DP相等,那么,轉(zhuǎn)到0。
16.否則,將新的DP存儲在葉中。轉(zhuǎn)到THRESHOLD(閾值)步驟0。
請參看圖4,顯示了流程圖400,這是本發(fā)明中包含的INSERTION算法。算法在402處開始,然后,創(chuàng)建404從直接表(DT)槽到新葉的新指針。用SA和DA的串聯(lián)來標記該葉(406)。葉被用來存儲分組IP標頭中的DP的值(408)。然后,算法轉(zhuǎn)到410前面描述的DETECTION。
表II是插入(Insertion)技術(shù)的另一個一目了然的表示形式。
表IIINSERTION ON DT0.創(chuàng)建從DT槽到具有SA、DA作為標記的新葉的指針,并存儲DP。
1.轉(zhuǎn)到DETECTION(檢測)步驟0。
請參看圖5,顯示了流程圖500,這是本發(fā)明中包含的INSERTION NEW TREE算法。此算法涵蓋了一個原始葉已經(jīng)附加到DT槽中,將添加具有不同的SA、DA值但具有相同散列值的第二個葉的情況。算法在502處開始,后面是創(chuàng)建新樹504,其根等于DT槽。一個樹枝被附力506到根中。兩個SA、DA值散列到此相同的槽中。按已知的Patricia樹算法的方式,找到508第一比特,其中,兩個SA,DA標記不同。樹枝中的測試比特的一個值指向原始葉(方框508)。同一個比特的其他可能的值指向新添加的葉(方框1510)。新添加的葉以其SA、DA作為標記,并存儲了新密鑰的DP(方框510)。然后,算法轉(zhuǎn)到前面描述的DETECTION(方框512)。
表III闡明了Insertion New Tree(插入新樹)技術(shù)的另一個一目了然的表示形式。
表IIIINSERTION NEW TREE0.創(chuàng)建其根等于DT槽和一個樹枝的一個新樹。
1.查找其中它們不同的兩個SA、DA組合的兩個串聯(lián)中第一個比特。
2.在到兩個葉的比特測試樹枝中使用該比特,一個葉是原始的,并添加具有新的SA、DA作為標記的另一個葉,并存儲新密鑰的DP。
3.轉(zhuǎn)到DETECTION步驟0。
請參看圖6,顯示了流程圖600,這是本發(fā)明中包含的INSERTION LARGER TREE算法。算法在602處開始,后面是新樹枝和新葉的已知的Patricia樹插入604。新葉的標記指定為密鑰的SA、DA的串聯(lián)(方框606)。分組的DP存儲在新葉中(方框608)。然后,算法轉(zhuǎn)到前面描述的DETECTION(方框610)。
表IV闡明了Insertion Larger Tree(插入較大樹)算法的另一個一目了然的表示形式。
表IVINSERTION LARGER TREE0.使用常規(guī)的Patricia樹算法來插入新的比特測試樹枝,添加一個葉。
1.新葉具有新密鑰的SA、DA作為標記,并存儲DP。
3.轉(zhuǎn)到DETECTION步驟0。
請參看圖7,顯示了流程圖700,這是本發(fā)明中包含的THRESHOLD算法。算法在702處開始,后面是,將存儲在葉中的DP值的數(shù)量與配置時指定的閾值(通常是8)進行比較(方框704)。如果(不同的)DP值的數(shù)量小于或等于閾值,那么,算法轉(zhuǎn)到DETECTION(方框708)。如果DP值的數(shù)量大于閾值,那么,向管理員或管理系統(tǒng)發(fā)送一個報告(方框706)。然后,算法轉(zhuǎn)到DETECTION(方框708)。
表V闡明了閾值算法的另一個一目了然的表示形式。
表VTHRESHOLD0.如果葉中的DP的新數(shù)量大于閾值T,那么,報告來自SA的惡意通信的可能性。
1.轉(zhuǎn)到DETECTION步驟0。
請參看圖8,顯示了流程圖800,這是本發(fā)明中包含的DELETION算法。此算法從直接表/Patricia樹數(shù)據(jù)結(jié)構(gòu)中刪除陳舊的項。算法在802處開始,后面是,將幀計數(shù)值增大1(804)。然后,將幀計數(shù)與幀閾值數(shù)量(如1024)進行比較(806)。如果幀計數(shù)不大于閾值,那么,該算法轉(zhuǎn)到DETECTION(812)。如果幀計數(shù)大于或等于閾值,那么,該算法使所有葉、樹(樹枝)和DT指針完全刪除(808)。接下來,該算法將幀計數(shù)的值重置為零(810)。然后,算法轉(zhuǎn)到DETECTION(方框812)。表VI闡明了刪除算法的另一個一目了然的表示形式。
表VIDELETION1.將時間計數(shù)器增大1。
2.將時間計數(shù)器值與閾值進行比較。
4.如果時間計數(shù)小于或等于閾值,那么,轉(zhuǎn)到DETECTION步驟0。
5.如果時間計數(shù)器值超過閾值,那么,從DT中刪除所有葉與樹。
6.將時間計數(shù)重置為零。
7.轉(zhuǎn)到DETECTION步驟0。
在另一個實施例中,所使用的計數(shù)可以是時間增量,而不是幀數(shù)。那些本領(lǐng)域普通技術(shù)人員將理解,此方案是DELETION(刪除)算法的簡單變化;表VII顯示了基于時間增量的檢測算法的一目了然的表示形式。
表VIIDELETION1.將時間計數(shù)器增大1。
2.將時間計數(shù)器值與閾值進行比較。
4.如果時間計數(shù)小于或等于閾值,那么,轉(zhuǎn)到DETECTION步驟0。
5.如果時間計數(shù)器值超過閾值,那么,從DT中刪除所有葉與樹。
6.將時間計數(shù)重置為零。
7.轉(zhuǎn)到DETECTION步驟0。
如這里所陳述的,一旦在網(wǎng)絡(luò)中檢測到偵察分組,它們將被報告給管理員或其他管理功能,以便采取進一步的行動。
本發(fā)明包括向報告機制作出RESPONSE的多個可能的選項。在一個實施例中,本發(fā)明可以包括向管理員發(fā)送警告,然后,管理員可以調(diào)查導(dǎo)致進入REPORT狀態(tài)的具有分組的SA、DA、DP的通信,以了解是否可能有惡意。在第二個實施例中,本發(fā)明可以包括丟棄具有相同的SA、DA、DP的所有隨后的分組。在第三個實施例中,本發(fā)明可以包括丟棄具有相同的SA的所有隨后的分組,或限制它們的速率。在第四個實施例中,本發(fā)明可以包括開頭三個可能的RESPONSE的一些組合。RESPONSE的組合可能隨著時間而變化。
圖10顯示了IP數(shù)據(jù)報標頭格式的圖形表示。由于此IP數(shù)據(jù)報標頭格式在現(xiàn)有技術(shù)已為大家所熟知,下面將只討論標頭的與本發(fā)明相關(guān)的字段。相關(guān)的字段是源IP地址(SA)和目標IP地址(DA)。SA標識了數(shù)據(jù)報(分組)的來源,而DA標識了所述分組的結(jié)尾(目標)。
圖11顯示了嵌入在IP數(shù)據(jù)報的有效負載字段中的TCP標頭格式的圖形表示。TCP標頭格式在現(xiàn)有技術(shù)中也是人所共知的。因此,將只進一步地討論與本發(fā)明相關(guān)的字段和比特。相關(guān)的字段包括源端口(SP)和目的端口(DP)。那些本領(lǐng)域普通技術(shù)人員也知道,SP標識了分組的起始端口,而DP標識了將向其中發(fā)送分組的結(jié)束端口。相關(guān)的比特包括Reset(RST)和Synchronize(SYN)。當(dāng)設(shè)置時,這些比特是活動的,當(dāng)重置時,是非活動的。通過比特的設(shè)置,確定分組標識。例如,如果設(shè)置了SYN比特,這將包括SYN分組。在現(xiàn)有技術(shù)中很好地描述了這些比特的用途和功能。因此,將不進行進一步的討論。
圖12顯示了根據(jù)本發(fā)明的原理的搜索功能或搜索查詢數(shù)據(jù)結(jié)構(gòu)的圖形表示。那些本領(lǐng)域普通技術(shù)人員可以設(shè)計其他樹形結(jié)構(gòu)。因此,圖形表示只是示范性的,并不限制權(quán)利要求所定義的本發(fā)明的范圍。
數(shù)據(jù)結(jié)構(gòu)1200包括由SA和DA的串聯(lián)組成的密鑰1202的提取,64比特。它進一步包括應(yīng)用散列函數(shù)1204,以產(chǎn)生較短的索引,如16或32比特。相對于直接表1208使用索引,以識別作為Patricia樹1210的根的項。Patricia樹具有一個或多個葉,如1212、1214、1216。每一個葉都包含散列到直接表項的完整的SA、DA以及已經(jīng)觀察到的一個或數(shù)據(jù)處理個DP值。
OPERATION在操作中,按如下方式檢查在其上面采用了本發(fā)明的設(shè)備中接收到的分組假設(shè)查詢機制在邏輯上等效于搜索樹。在一個實施例中,樹的第一樹枝對許多比特進行測試,連接許多常規(guī)樹。第一個這樣的樹枝可以叫做“直接表”。
第一查詢(第一層)將TCP SYN或RST分組的源地址(SA)和目的地址(DA)散列到直接表(DT)中。DT的索引可以是一個方便的值(如16比特)。完全密鑰是SA、DA和目的端口(DP)。葉通過SA和DA匹配分組,然后,將DP與DP的鏈接列表進行比較,以查找相同的SA和DA。如果DP是新的,則將它添加到列表中。周期性地(如每秒鐘一次),完全刪除此查詢的一些部分(如1/16)。
如果葉中的觀察到的DP的數(shù)量大于閾值(如4),那么,葉的SA、DA、DP的組合被散列到第二查詢(第二層)。對于第二查詢,散列只位于SA中。DT索引中的比特的數(shù)量可以較低(如8)。如果一個SA具有許多DA、DP組合,那么,DA、DP組合存儲在葉中。如果這樣的葉中的DA、DP組合的數(shù)量超過閾值(如四個),那么,懷疑SA參與了分布式掃描。在中等時間段內(nèi)(如四秒)清除第二層中的整個表。
建議的清除時間間隔是基于推理和真實的流量統(tǒng)計。如果清除時間間隔太短,那么,攻擊可能會被忽視,因為完全成熟的攻擊實際橫跨多個時間段。如果清除時間間隔太長,那么,本發(fā)明的對新的攻擊的反應(yīng)會被延遲。
一般而言,清除時間間隔可以被調(diào)節(jié)。如果沒有報告攻擊,那么,時間間隔可以增大到極限。如果報告了太多的攻擊,那么,清除時間間隔可以縮小到極限??梢允褂冒粗笖?shù)規(guī)律的加權(quán)函數(shù)來增大或減小周期。按如下方式描述該函數(shù)。讓i表示周期P的索引=0,1,2,...,如此P(i)是序列中的第i個值。P(0)=最小極限。周期調(diào)整可以具有下列形式1.如果報告了太少的攻擊,那么,P(i+1)=(1-K)*P(i)+K*最大極限。
2.否則P(i+1)=(1-K)*P(i)+K*最小極限這里,最小極限<最大極限,K是滿足0<K<=1的某個數(shù)。
計算機網(wǎng)絡(luò)管理包括保衛(wèi)網(wǎng)絡(luò)資產(chǎn)免受惡意通信的情況。在某些情況下,惡意通信的傳播需要一組分組,其中,具有對應(yīng)于攻擊者的一個源地址(SA)、對應(yīng)于被認為是易受攻擊者攻擊的應(yīng)用程序的一個目的端口(DP),以及對應(yīng)于可能的受害者的許多目的地址(DA)。在其它情況下,可能涉及幾個SA和DP,但仍有很多的DA。
請參看圖13,顯示了流程圖1300,這是根據(jù)本發(fā)明的原理的DETECTION算法。算法在1302處開始,然后,下一個分組到達(1304)。對因特網(wǎng)協(xié)議(IP)分組進行測試1306,看是否為TCP。測試是通過檢查IP標頭中的控制比特進行的。如果不是,該算法返回到狀態(tài)1304,等待下一個分組。如果分組是TCP,那么,對該分組進行測試1308,以查看是否為SYN。測試是通過檢查TCP標頭中的控制比特進行的。如果不是,那么,該算法返回到1304。如果是SYN,那么,對TCP標頭中的DP進行測試,以查看它在許可的列表中是否具有成員身份。如果它在許可的列表中,那么,該算法返回到1304。如果DP不是被許可的,那么,將SA和DP的串聯(lián)饋送1312到散列函數(shù)。散列的值變成直接表(DT)的索引(1314)。對DT槽進行測試1316,以查看是否具有指向葉的指針或具有指向兩個至少葉的樹的指針。如果沒有指針,那么,該算法轉(zhuǎn)到1318 INSERTIONON DT算法(圖4)。如果有指針,那么,算法進行測試,以查看是否正好指向一個葉(1320)。如果指針是指向至少具有兩個葉的樹,那么,由Patricia樹算法對SA、DP串聯(lián)進行測試1324。然后,由Patricia樹算法對SA、DP密鑰進行測試1330,以試圖匹配現(xiàn)有的葉的標記。如果SA、DP不匹配,那么,算法轉(zhuǎn)到1334INSERTION LARGER TREE算法(圖6)。如果SA,DP確實匹配樹中的葉,那么,將密鑰的DA與葉中的一個或多個DA值進行比較1332。再次轉(zhuǎn)到1320,如果DT槽正好指向一個葉,那么,該算法將密鑰SA、DP與該葉的標記進行比較1322。如果SA、DP不匹配1326,那么,該算法轉(zhuǎn)到INSERTION NEW TREE 1328。如果SA、DP匹配1326,那么,該算法轉(zhuǎn)到密鑰的DA與葉中的一個或多個DA值的比較1332。如果密鑰DA匹配一些葉DA 1336,那么,該算法返回到1304,等待下一個分組。如果密鑰DA不匹配任何葉DA,那么,新的DA存儲1338在葉中。然后,該算法進入1340THRESHOLD算法。
請參看圖14,顯示了流程圖1400,這是本發(fā)明中包含的INSERTION算法。算法在1402處開始,然后,創(chuàng)建1404從直接表(DT)槽到新葉的新指針。用SA和DP的串聯(lián)來標記該葉(1406)。葉被用來存儲分組IP標頭中的DA的值(1408)。然后,算法轉(zhuǎn)到1410前面參考圖13描述的DETECTION。
請參看圖15,顯示了流程圖1500,這是本發(fā)明中包含的INSERTION NEW TREE算法。此算法涵蓋了一個原始葉已經(jīng)附加到DT槽中,將添加具有不同的SA、DP值但具有相同散列值的第二個葉的情況。算法在1502處開始,后面是創(chuàng)建新樹1504,其根等于DT槽。一個樹枝被附加1506到根中。兩個SA、DP值散列到此相同的槽中。按已知的Patricia樹算法的方式,找到1508第一比特,其中,兩個SA,DP標記不同。樹枝中的測試比特的一個值指向原始葉(方框1508)。同一個比特的其他可能的值指向新添加的葉(方框1510)。新添加的葉以其SA、DP作為標記,并存儲了新密鑰的DA(方框1510)。然后,算法轉(zhuǎn)到DETECTION(方框1512)。
請參看圖16,顯示了流程圖1600,這是本發(fā)明中包含的INSERTION LARGER TREE算法。算法在1602處開始,后面是新樹枝和新葉的已知的Patricia樹插入1604。新葉的標記指定為密鑰的SA、DP的串聯(lián)(方框1606)。分組的DA存儲在新葉中(方框1608)。然后,算法轉(zhuǎn)到DETECTION(方框1610)。
請參看圖17,顯示了流程圖1700,這是本發(fā)明中包含的THRESHOLD算法。算法在1702處開始,后面是,將存儲在葉中的DA值的數(shù)量與配置時指定的閾值(通常是8)進行比較(方框1704)。如果(不同的)DA值的數(shù)量小于或等于閾值,那么,算法轉(zhuǎn)到DETECTION(方框1708)。如果DA值的數(shù)量大于閾值,那么,向管理員或管理系統(tǒng)發(fā)送一個報告(方框1706)。然后,算法轉(zhuǎn)到DETECTION(方框1708)。
圖18顯示了一個數(shù)據(jù)結(jié)構(gòu)的圖形表示,TCP/IP SYN分組的SA和DA與該數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián),以便判斷它是否為惡意分組。
數(shù)據(jù)結(jié)構(gòu)1800包括由SA和DP的串聯(lián)組成的密鑰的提取1802,因此是48比特。它進一步包括應(yīng)用散列函數(shù)1804,以產(chǎn)生較短的索引,如16比特。相對于直接表1808使用索引,以識別作為Patricia樹1810的根的項。Patricia樹具有一個或多個葉,如1812、1814、1816。每一個葉都包含散列到直接表項的完整的SA、DP以及已經(jīng)觀察到的一個或多個DA值。
到目前為止,是使用流程圖描述本發(fā)明的。介紹本發(fā)明中使用的算法的另一種方式如下SA、DP的散列的16比特(大約)被用作直接表(DT)中的索引。DT槽是普通的FM槽,并可以不指向任何葉,正好指向一個葉,或指向具有樹枝和兩個或更多葉的樹。每一個葉都將完整的分組SA、DP與SA、DP的準確的模式進行比較。再者,葉包含SA、DP作為其標記,和至少一個DA(可能有多個)。
如果在計算SA、DP組合的散列值時DT中的槽正好是空的(沒有指向任何東西),那么,修改DT槽,以指向具有標記SA、DP和內(nèi)容DA的新葉。否則,如果DT中的SA、DP槽具有指針,那么,按照指針到達葉或樹。如果槽指向一個樹,那么,需要對SA、DP中的某些比特進行測試,直到至多一個前面看到的葉可能適合SA、DP。不論是哪一種情況,都將密鑰中的完整的SA、DP與葉中的完整的SA、DP進行比較。如果它們不相等,那么,必須重建樹,以測試SA、DP中的比特,以區(qū)別新密鑰與前面看到的密鑰。如果它們相等,那么,葉真正對應(yīng)于密鑰,將密鑰的DA值與存儲在葉中的一個或多個DA值進行比較。如果密鑰的DA值與前面存儲的DA相同,那么,不執(zhí)行任何操作。否則,將密鑰的DA值添加到存儲在葉中的一個或多個DA值。還將DA值的新的總數(shù)與閾值進行比較。如果該數(shù)字大于閾值,判斷分組包含病毒。
下面是本發(fā)明的DETECTION ALGORITHM(檢測算法)中的搜索操作,包括下面的以偽代碼表達的子程序。
DETECTION0.下一個分組到達。
1.如果該分組不是TCP,那么,轉(zhuǎn)到DETECTION。
2.如果該分組不是TCP,那么,轉(zhuǎn)到DELETION。
3.如果分組的DP位于許可的列表中,那么,轉(zhuǎn)到DETECTION。
4.將來自分組的標頭的SA、DP組合(密鑰)饋送到散列函數(shù)。
5.散列值被用作到直接表槽的索引。
6.如果槽沒有指針(沒有與散列到槽的SA、DP的當(dāng)前會話),那么,轉(zhuǎn)到INSERTION ON DT步驟0。
7.如果槽指向樹(具有兩個或更多葉),那么,轉(zhuǎn)到13。
8.如果槽(正好)指向一個葉,則將SA、DP與該葉的對等物進行比較。
9.如果密鑰和葉的SA、DP不匹配,則轉(zhuǎn)到INSERTION NEWTREE步驟0。
10.否則,連續(xù)地將分組的DA與葉中的一個或多個DA值進行比較。11.如果分組的DA和葉的某些DA相等,那么,轉(zhuǎn)到0。
12.否則,將新的DA存儲在葉中。轉(zhuǎn)到THRESHOLD。
13.執(zhí)行密鑰的SA、DP上的樹中的比特測試樹枝,直到到達葉。
14.如果密鑰和葉的SA、DP不匹配,則轉(zhuǎn)到INSERTIONLARGER TREE步驟0。
15.否則,連續(xù)地將分組的DA與葉中的一個或多個DA值進行比較。16.如果分組的DA和葉的某些DA相等,那么,轉(zhuǎn)到0。
17.否則,將新的DA存儲在葉中。轉(zhuǎn)到THRESHOLD。
INSERTION ON DT0.創(chuàng)建從DT槽到具有SA、DP作為標記的新葉的指針,并存儲DA。
1.轉(zhuǎn)到DETECTION。
INSERTION NEW TREE0.創(chuàng)建其根等于DT槽和一個樹枝的一個新樹。
1.查找其中它們不同的兩個SA、DP組合的兩個串聯(lián)中第一個比特。
2.在到兩個葉的比特測試樹枝中使用該比特,一個葉是原始的,并添加具有新的SA、DP作為標記的另一個葉,并存儲新密鑰的DA。
3.轉(zhuǎn)到DETECTION。
INSERTION LARGER TREE0.使用常規(guī)的Patricia樹算法來插入新的比特測試樹枝,添加一個葉。
1.新葉具有新密鑰的SA、DP作為標記,并存儲DA。
3.轉(zhuǎn)到DETECTION。
THRESHOLD0.如果葉中的DA的新數(shù)量大于閾值T,那么,報告來自SA的惡意通信的可能性。
1.轉(zhuǎn)到DETECTION。
DELETION
1.將幀計數(shù)器增大1。
2.將幀計數(shù)器值與閾值進行比較。
4.如果幀計數(shù)小于或等于閾值,那么,轉(zhuǎn)到DETECTION。
5.如果幀計數(shù)器值超過閾值,那么,從DT中刪除所有葉與樹。
6.將幀計數(shù)重置為零。
7.轉(zhuǎn)到DETECTION。
在另一個實施例中,計數(shù)可以是時間間隔,而不是幀,即,DELETION1.將時間計數(shù)器增大1。
2.將時間計數(shù)器值與閾值進行比較。
4.如果時間計數(shù)小于或等于閾值,那么,轉(zhuǎn)到DETECTION。
5.如果時間計數(shù)器值超過閾值,那么,從DT中刪除所有葉與樹。
6.將時間計數(shù)重置為零。
7.轉(zhuǎn)到DETECTION。
3.REPORTING ALGORITHM在從檢測機制接收到REPORT時,本發(fā)明可以以下列響應(yīng)之一作出反應(yīng)1.向管理員發(fā)送警告,然后,管理員可以調(diào)查具有給定SA、SP、DA、DP的通信,以了解是否可能有惡意。
2.將DP=槽值添加到許可的DP的列表中。
3.丟棄具有相同的SA、DA、DP的所有隨后的分組4.或者,丟棄具有相同的SA的所有隨后的分組5.可能隨時間而變化的響應(yīng)1、2、3、4的組合。
本發(fā)明所提供的許多好處之一是,檢測可以動態(tài)地并實時地執(zhí)行。結(jié)果,可以檢測到未經(jīng)授權(quán)的嗅探,并在對網(wǎng)絡(luò)上的設(shè)備造成危害之前采取校正操作。
盡管是參考TCP/IP協(xié)議描述本發(fā)明的,但是,這不應(yīng)該被理解為對本發(fā)明的范圍的限制。本發(fā)明可以廣泛地用于許多不同的協(xié)議。當(dāng)使用其他協(xié)議時,那些本領(lǐng)域普通技術(shù)人員可以應(yīng)用本發(fā)明的原理來檢測偵察。任何這樣的使用和/或應(yīng)用都在如權(quán)利要求所闡述的本發(fā)明的范圍之內(nèi)。
前面的內(nèi)容只是為了說明本發(fā)明,不應(yīng)該理解為對其限制。雖然描述了本發(fā)明的示范性實施例,但是,那些精通本技術(shù)的普通人員將認識到,在不偏離本發(fā)明的新穎的原理和高級用法的情況下,在示范性實施例中作出許多修改方案也是可以的。相應(yīng)地,所有這樣的修改方案都包括在如權(quán)利要求所定義的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種檢測網(wǎng)絡(luò)上的未經(jīng)授權(quán)的掃描的方法,包括下列步驟(a)監(jiān)視在網(wǎng)絡(luò)設(shè)備中接收到的通信;(b)檢測所述通信內(nèi)的預(yù)先定義的分組子集;以及(c)對預(yù)先定義的分組子集進行分析,以檢測具有預(yù)先定義的統(tǒng)計特征的可疑的分組。
2.根據(jù)權(quán)利要求1所述的方法,進一步包括下列步驟發(fā)出告警,表示檢測到具有預(yù)先定義的統(tǒng)計特征的分組。
3.根據(jù)權(quán)利要求1或權(quán)利要求2所述的方法,其中,分組子集包括在來自TCP/IP集的TCP分組中TCP標頭的三個比特中的至少兩個比特(SYN、RST、FIN)被設(shè)置的分組。
4.根據(jù)前面的任何一個權(quán)利要求所述的方法,進一步包括下列步驟在耦接到所述網(wǎng)絡(luò)的設(shè)備中提供查詢結(jié)構(gòu),所述查詢結(jié)構(gòu)在邏輯上等效于搜索樹,該搜索樹具有第一部分,該部分被分區(qū)為多個槽,至少一個槽可操作地耦接到樹形結(jié)構(gòu);接收設(shè)備中的網(wǎng)絡(luò)通信;利用編程的CPU對網(wǎng)絡(luò)通信進行分析,以檢測具有預(yù)先定義的統(tǒng)計特征的TCP/IP分組;對于如此檢測到的每一個TCP/IP分組,使用所述編程CPU來從源地址(SA)和目的地址(DA)生成散列值;使用散列值索引到槽中;檢查槽以查找指針;如果沒有發(fā)現(xiàn)指針,則插入新葉,SA和DA作為所述葉的標識符;將所述每一個TCP/IP分組中包含的目的端口(DP)的地址存儲在所述葉中;以及在所述槽中創(chuàng)建指向所述葉的指針。
5.根據(jù)權(quán)利要求4的方法,進一步包括下列步驟如果指針位于槽中,則使用所述指針來訪問葉;檢查所述葉的內(nèi)容,以檢測記錄在其中的目的端口(DP)的地址;將如此檢測到的地址的數(shù)量與閾值進行比較;以及如果地址的數(shù)量等于或超過閾值,則執(zhí)行第二層查詢。
6.根據(jù)權(quán)利要求5所述的方法,進一步包括下列步驟如果所述葉中的地址數(shù)量小于閾值,則將DA添加到所述葉中。
7.一種檢測網(wǎng)絡(luò)上的掃描的系統(tǒng),包括存儲器;可操作地在所述存儲器內(nèi)配置的查詢數(shù)據(jù)結(jié)構(gòu);以及執(zhí)行一組算法的處理器,該組算法將預(yù)先定義的分組與查詢數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián),以檢測具有預(yù)先定義的統(tǒng)計特征的預(yù)先定義的分組,并對預(yù)先定義的分組子集進行分析,以檢測可疑的分組。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),進一步包括用于發(fā)出告警的裝置,告警表示檢測到具有預(yù)先定義的統(tǒng)計特征的分組。
9.根據(jù)權(quán)利要求7或權(quán)利要求8所述的系統(tǒng),其中,分組子集包括在來自TCP/IP集的TCP分組中TCP標頭的三個比特中的至少兩個比特(SYN、RST、FIN)被設(shè)置的分組。
10.根據(jù)權(quán)利要求7到8中的任何一個權(quán)利要求所述的系統(tǒng),進一步包括耦接到所述網(wǎng)絡(luò)的設(shè)備中的查詢結(jié)構(gòu),所述查詢結(jié)構(gòu)在邏輯上等效于搜索樹,該搜索樹具有第一部分,該部分被分區(qū)為多個槽,至少一個槽可操作地耦接到樹形結(jié)構(gòu);用于接收設(shè)備中的網(wǎng)絡(luò)通信的裝置;用于利用編程的CPU對網(wǎng)絡(luò)通信進行分析以檢測具有預(yù)先定義的統(tǒng)計特征的TCP/IP分組的裝置;對于如此檢測到的每一個TCP/IP分組,用于使用所述編程CPU來從源地址(SA)和目的地址(DA)生成散列值的裝置;用于使用散列值索引到槽中的裝置;用于檢查槽以查找指針的裝置;如果沒有發(fā)現(xiàn)指針,則用于插入新葉的裝置,SA和DA作為所述葉的標識符;用于將所述每一個TCP/IP分組中包含的目的端口(DP)的地址存儲在所述葉中的裝置;以及用于在所述槽中創(chuàng)建指向所述葉的指針的裝置。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),進一步包括如果指針位于槽中,用于使用所述指針來訪問葉的裝置;用于檢查所述葉的內(nèi)容以檢測記錄在其中的目的端口(DP)的地址的裝置;用于將如此檢測到的地址的數(shù)量與閾值進行比較的裝置;以及如果地址的數(shù)量等于或超過閾值,用于執(zhí)行第二層查詢的裝置。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),進一步包括如果所述葉中的地址數(shù)量小于閾值,用于將DA添加到所述葉中的裝置。
13.包括程序代碼裝置的計算機程序,當(dāng)所述程序在計算機上運行時,用于執(zhí)行權(quán)利要求1到6中的任何一個權(quán)利要求所述的所有步驟。
14.一種用于檢測計算機網(wǎng)絡(luò)上的有害的分組的方法,包括a)提供對接收到的分組進行掃描的至少一個算法;以及b)識別具有預(yù)先定義的格式的包括單一源地址(SA)、N個目的地址(DA)和M個目的端口(DP)的分組。
15.根據(jù)權(quán)利要求14所述的方法,進一步包括下列步驟提供允許的DP的列表;將識別的分組中的DP與允許的DP的列表進行比較;以及丟棄具有匹配的DP的識別的分組。
16.一種用于檢測計算機網(wǎng)絡(luò)中的包含有害代碼的分組的系統(tǒng),包括包括存儲器和至少一個處理元件的網(wǎng)絡(luò)處理器;數(shù)據(jù)結(jié)構(gòu),包括至少一個Patricia樹布局,存儲了至少一個比特模式類似于位于所述存儲器內(nèi)的攜帶有害代碼的分組的比特模式的規(guī)則;在所述至少一個處理元件上部署的計算機程序,如果執(zhí)行,使所述處理元件從預(yù)先定義的分組中的預(yù)先定義的字段生成密鑰會將密鑰與規(guī)則關(guān)聯(lián),以識別具有單一SA(源地址)、單一DP(目的端口)和許多DA(目的地址)的分組。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,處理元件使用散列的預(yù)先定義的分組的SA和DP索引到所述直接表的槽中。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,如果槽沒有輸入,則處理器執(zhí)行第二程序,以在所述槽中插入指針。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,如果槽包含指向單一葉的信息,則將葉SA、DP與預(yù)先定義的分組中的SA、DP進行比較,如果在SA、DP中發(fā)生匹配,那么,將葉中的DA與分組中的DA進行比較,如果沒有發(fā)生匹配,則將分組DA添加到葉中的DA的列表中。
20.包括程序代碼裝置的計算機程序,當(dāng)所述程序在計算機上運行時,用于執(zhí)行權(quán)利要求14到15中的任何一個權(quán)利要求所述的所有步驟。
全文摘要
一種檢測和響應(yīng)系統(tǒng),包括一組算法,用于檢測普通計算機通信流內(nèi)的TCP或UDP分組的子集(應(yīng)該聚焦于引出響應(yīng)的網(wǎng)絡(luò)流量),所述TCP或UDP分組的子集具有一個IP源地址(SA)值、一個或幾個目的地址(DA)值,以及超過了不同的目的端口(DP)值的閾值的數(shù)量。諸如直接表和Patricia搜索樹之類的查詢機制記錄和跟蹤具有一個SA和一個DA以及對于給定SA、DA組合觀察到的DP值集合的分組集。檢測和響應(yīng)系統(tǒng)報告存在這樣的分組子集,以及該分組子集的標頭值,包括SA、DA和多個DP。檢測和響應(yīng)系統(tǒng)還包括對報告的各種管理響應(yīng)。
文檔編號H04L29/06GK101052934SQ200580022880
公開日2007年10月10日 申請日期2005年7月20日 優(yōu)先權(quán)日2004年7月22日
發(fā)明者艾倫·戴維·布朗熱, 羅伯特·威廉·丹福德, 凱文·戴維·希伯格, 克拉克·德布斯·杰佛里斯 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1