專利名稱:檢測惡意網(wǎng)絡軟件代理的制作方法
技術領域:
本發(fā)明涉及計算機網(wǎng)絡,更具體地,涉及計算機網(wǎng)絡中攻擊的檢測。
背景技術:
計算機網(wǎng)絡通常包括交換數(shù)據(jù)和共享資源的互連計算設備的集合。這些設備可以 包括例如網(wǎng)絡服務器、數(shù)據(jù)庫服務器、文件服務器、路由器、打印機、終端用戶計算機及其他 設備。各種設備可以執(zhí)行大量不同的服務和通信協(xié)議。不同的服務和通信協(xié)議中的每一種 都使網(wǎng)絡暴露于不同的安全漏洞。用于檢測網(wǎng)絡攻擊的傳統(tǒng)技術使用了模式匹配。具體地,入侵檢測系統(tǒng) ("IDS (intrusion detection system) ”)應用正則表達式或子串匹配來檢測數(shù)據(jù)流中的 規(guī)定模式??梢允褂枚鄠€模式來嘗試提高攻擊檢測的精度。為了提高檢測攻擊的可能性, IDS可以嘗試識別與數(shù)據(jù)流相關的應用軟件和協(xié)議的類型?;谧R別,IDS選擇合適的模式 來應用,從而檢測網(wǎng)絡攻擊,本文中使用的“網(wǎng)絡攻擊”包括病毒或其它惡意活動。惡意用戶在開放式系統(tǒng)互連(OSI)參考模型的各層上實施網(wǎng)絡攻擊。例如,歷史 上,服務拒絕(DoS)攻擊已在OSI模型的第三層(網(wǎng)絡層)或第四層(傳輸層)上實施,如 攻擊者利用同步(SYN)數(shù)據(jù)包連續(xù)攻擊網(wǎng)絡服務器的SYN泛洪攻擊(SYN flood attacks), 這可能導致服務器的開放連接數(shù)的溢出。類似的攻擊包括ACK泛洪和復位(RST)攻擊。近來,惡意用戶已經(jīng)開發(fā)出了在OSI模型的第七層(應用層)上的網(wǎng)絡攻擊。例 如,應用層上的DoS攻擊可以連續(xù)地發(fā)布請求,以消耗大量的Web服務器資源。例如,第七 層DoS攻擊包括向服務器重復發(fā)布數(shù)據(jù)庫查詢。應用層上的其他惡意網(wǎng)絡會話包括“點擊 欺詐(click fraud)”,在這種情況下自動設備或腳本反復選擇網(wǎng)頁的特定的基于廣告的鏈 接。顯示基于廣告的鏈接的網(wǎng)頁的所有者獲得每次選擇鏈接的情形時的收益,因此鏈接的 自動選擇可能是欺騙性的。另一種應用層上的惡意網(wǎng)絡會話涉及向盡可能多的收件人發(fā)送 垃圾電子郵件的電子郵件發(fā)送腳本。為了實施這些攻擊,一些惡意用戶編寫用于在一個或多個其他用戶的計算機上執(zhí) 行的程序(即,惡意軟件代理)。惡意用戶可以編寫病毒、木馬、蠕蟲或者其他實施這些各種 攻擊并且將其傳播到許多不同的計算機的惡意程序。惡意程序可以充當執(zhí)行腳本或其他自 動程序以在應用層上執(zhí)行網(wǎng)絡攻擊或執(zhí)行其他惡意行為的“機器人(bot)”。被相同的惡意 程序感染的一組計算機設備被稱為“機器人網(wǎng)絡(bot net)”,可能相互配合在應用層上發(fā) 起對共同目標的網(wǎng)絡攻擊或者惡意行為。傳統(tǒng)的IDS設備不能對實施這些應用層攻擊的軟 件代理進行檢測或反應。
發(fā)明內(nèi)容
總的來說,本發(fā)明公開描述了用于檢測執(zhí)行惡意攻擊或者其他行為的自動軟件代 理的技術。該技術總地包括分析網(wǎng)絡會話中采用的協(xié)議(例如,第三層至第七層協(xié)議), 以計算特定網(wǎng)絡會話的指標(metrics),并確定該會話表示正常的用戶行為還是惡意的自動軟件代理。例如,入侵檢測系統(tǒng)(IDS)或入侵檢測和防御(IDP)設備檢查特定的網(wǎng)絡會 話的業(yè)務,并計算多個不同的指標的分數(shù)。例如,該指標可以涉及通常指示為惡意的網(wǎng)絡會 話的特征。使用這些特征的各種組合來確定網(wǎng)絡是由惡意網(wǎng)絡軟件代理發(fā)起的可能性。從 而,IDP設備可以計算指標的總分,并在總分超過閾值時確定網(wǎng)絡會話是惡意的。在一個實例中,路由器或者其他網(wǎng)絡設備包括執(zhí)行本發(fā)明公開中所描述的技術的 服務平面組件(例如,移動卡)。服務平面卡可以插入到多機箱網(wǎng)絡設備以裝配多機箱網(wǎng)絡 設備來執(zhí)行這些技術。例如,路由器可以包括可容納服務平面入侵檢測和防御(IDP)卡的 插槽,來執(zhí)行本發(fā)明公開的技術。在一個實例中,一種方法包括用網(wǎng)絡設備接收網(wǎng)絡會話的數(shù)據(jù)包;組合來自數(shù) 據(jù)包的網(wǎng)絡會話的網(wǎng)絡會話數(shù)據(jù),網(wǎng)絡會話數(shù)據(jù)包括網(wǎng)絡會話的數(shù)據(jù)包流數(shù)據(jù)和應用層數(shù) 據(jù);基于應用到網(wǎng)絡會話數(shù)據(jù)的多個指標計算網(wǎng)絡會話的多個分數(shù),其中,指標中的每一個 均對應于由自動軟件代理發(fā)起的網(wǎng)絡會話的特征,以及,分數(shù)中的每一個均表示網(wǎng)絡會話 由自動軟件代理發(fā)起的可能性;合計多個分數(shù),以生成總分;當總分超過閾值時,確定網(wǎng)絡 會話由自動軟件代理發(fā)起;以及當確定網(wǎng)絡會話由自動軟件代理發(fā)起時,執(zhí)行程序化響應。在另一實例中,網(wǎng)絡設備包括網(wǎng)絡接口,接收網(wǎng)絡會話的數(shù)據(jù)包;控制單元,具 有一個或多個處理器;重組模塊,在控制單元中執(zhí)行,以重組網(wǎng)絡會話的應用層數(shù)據(jù);流 表,存儲網(wǎng)絡會話的數(shù)據(jù)包流信息;機器人檢測模塊,在控制單元中執(zhí)行,以基于多個指標 計算網(wǎng)絡會話的多個分數(shù),多個指標的每一個均被應用到重組的應用層數(shù)據(jù)和數(shù)據(jù)包流信 息中的至少一個,其中,指標中的每一個均對應于由自動軟件代理發(fā)起的網(wǎng)絡會話的特征, 其中,機器人檢測模塊被配置為根據(jù)多個分數(shù)的合計(aggregate)產(chǎn)生總分,并且當總分 超過閾值時確定網(wǎng)絡會話由自動軟件代理發(fā)起,其中,分數(shù)中的每一個均表示網(wǎng)絡會話由 自動軟件代理發(fā)起的可能性;以及攻擊檢測模塊,在控制單元中執(zhí)行,當確定網(wǎng)絡會話由自 動軟件代理發(fā)起時,執(zhí)行程序化的響應。在另一實例中,計算機可讀介質(例如計算機可讀存儲介質)包括例如編碼的指 令,該指令使可編程處理器接收網(wǎng)絡會話的數(shù)據(jù)包;組合來自數(shù)據(jù)包的網(wǎng)絡會話的網(wǎng)絡 會話數(shù)據(jù),網(wǎng)絡會話數(shù)據(jù)包括網(wǎng)絡會話的數(shù)據(jù)包流數(shù)據(jù)和應用層數(shù)據(jù);基于應用到網(wǎng)絡會 話數(shù)據(jù)的多個指標計算網(wǎng)絡會話的多個分數(shù),其中,指標中的每一個均對應于由自動軟件 代理發(fā)起的網(wǎng)絡會話的特征,以及,分數(shù)中的每一個均表示網(wǎng)絡會話由自動軟件代理發(fā)起 的可能性;合計多個分數(shù),以生成總分;當總分超過閾值時,確定網(wǎng)絡會話由自動軟件代理 發(fā)起;以及當確定網(wǎng)絡會話由自動軟件代理發(fā)起時,執(zhí)行程序化響應。本發(fā)明公開的技術可以提供多個優(yōu)點。例如,該技術能夠通過實時檢測業(yè)務和確 定網(wǎng)絡會話的特征來實現(xiàn)自動軟件代理(“機器人”)的實時檢測,而不是只是檢測機器人 的離線和既成事實的活動。例如,本發(fā)明公開的技術可以根據(jù)各層(包括應用層)的網(wǎng)絡 會話的各種特征來確定網(wǎng)絡會話是由惡意的自動軟件代理發(fā)起的。因此,本技術可以用于 降低或者防止受到惡意或者不希望的網(wǎng)絡活動(例如實時的服務拒絕(DoS)攻擊、點擊欺 詐、垃圾電子郵件機器人、網(wǎng)絡爬行(web crawling)或者其他不希望的網(wǎng)絡會話)的影響。附圖和以下的描述中示出了一個或多個實例的細節(jié)。根據(jù)描述和圖示以及根據(jù)權 利要求,其他的特征、目標和優(yōu)點是明顯的。
圖1是示出了根據(jù)本發(fā)明公開中所描述的技術的一個示例性的企業(yè)計算機網(wǎng)絡 的框圖,其中,入侵檢測和防御(IDP)可以嘗試檢測例如機器人的惡意網(wǎng)絡會話。圖2是示出了 IDP設備的組件的一個實例布局的框圖。圖3是更詳細地示出了參照圖2所描述的狀態(tài)檢測引擎的一個實例的框圖。圖4是更詳細地示出了參照圖3所描述的一個實例機器人檢測模塊的框圖。圖5是示出了用于配置多個指標計算器的一個實例用戶界面的截屏。圖6是示出了用于通過檢測網(wǎng)絡業(yè)務來檢測機器人的一個實例方法的流程。圖7是示出了包含執(zhí)行本發(fā)明公開的技術的服務平面卡的路由器的一個實例的 框圖。
具體實施例方式圖1是示出了根據(jù)本發(fā)明公開中所描述的技術的一個示例性的企業(yè)計算機網(wǎng)絡4 的框圖,其中入侵檢測和防御(IDP)設備10可以嘗試檢測由惡意的自動軟件代理(例如機 器人)發(fā)起的惡意網(wǎng)絡會話。本發(fā)明的公開中提到的“機器人(bot) ”通常應該被理解為指 的是自動軟件代理,其可以執(zhí)行惡意或者其他不希望的行為。盡管本發(fā)明公開主要涉及一 種IDP設備,不過入侵檢測系統(tǒng)(IDS)或者入侵防御系統(tǒng)(IPS)也可以采用類似的技術。在 圖1的實例中,IDP 10是單個網(wǎng)絡設備。例如,防火墻9、交換機19、安全管理設備18、IDP 14或節(jié)點8A 8N中的單個節(jié)點中的任意一個、或者諸如路由器、虛擬專用網(wǎng)絡(VPN)設備 或網(wǎng)關的其他設備,可以實現(xiàn)關于IDP 10所描述的功能。網(wǎng)絡4包括耦合到諸如因特網(wǎng)的公共網(wǎng)絡6的私人企業(yè)計算網(wǎng)絡5。公共網(wǎng)絡6可 以包括例如一個或多個客戶計算設備。防火墻9保護私人企業(yè)網(wǎng)絡5,具體地,保護內(nèi)部計 算節(jié)點8A 8N(計算節(jié)點8)。計算節(jié)點8代表企業(yè)網(wǎng)絡5中的任意私人計算設備,例如工 作站、筆記本電腦、文件服務器、打印服務器、數(shù)據(jù)庫服務器、網(wǎng)絡服務器、電子郵件服務器、 數(shù)據(jù)庫、打印機、個人數(shù)碼助理(PDA)、智能電話和其他設備。安全管理設備18可以管理企 業(yè)網(wǎng)絡5的一個或多個網(wǎng)絡安全設備,例如IDP 10、防火墻9、IDP 14或者一個或多個計算 節(jié)點8。在一個實例中,安全管理設備18可以實施簡單的網(wǎng)絡管理協(xié)議(SNMP)以修改網(wǎng)絡 安全設備的設置。交換機19向和從企業(yè)網(wǎng)絡5中的目的地(例如,計算節(jié)點8中的一個、 安全管理設備18、IDP 14和IDP 10)引導網(wǎng)絡業(yè)務。在圖1的實例中,企業(yè)網(wǎng)絡5包括IDP 10,用于監(jiān)測在防火墻9和內(nèi)部計算節(jié)點8 之間流動的業(yè)務。具體地,IDP 10監(jiān)測數(shù)據(jù)包流的數(shù)據(jù)包,其中,除封裝常規(guī)數(shù)據(jù)包外,數(shù) 據(jù)包還封裝已封裝的數(shù)據(jù)包流的子數(shù)據(jù)包。IDP 10嘗試確定特定的網(wǎng)絡通信是否表示網(wǎng) 絡攻擊。網(wǎng)絡通信可以包括標準數(shù)據(jù)包或者封裝的子數(shù)據(jù)包。IDP 10可以首先嘗試識別 與網(wǎng)絡通信相關聯(lián)的應用程序。IDP 10還可以確定網(wǎng)絡通信是否表示多層應用程序。應 用程序(例如多層應用程序)識別的進一步的細節(jié)可以參見Yang等人于2007年11月8 日提交的美國專利申請第 11/937,163 號 “Multi-layered ApplicationClassification and Decoding"以及Burns等人于2007年8月8日提交的美國專利申請第11/835,923號 "Identifying Applications forlntrusion Detection Systems,,,其中每一個申請的全部 內(nèi)容均結合于此作為參考。
IDP 10還可以將模式匹配與專用于應用程序和協(xié)議的異常檢測進行集成,以識別 復雜的攻擊行為。在一個實例中,IDP 10允許系統(tǒng)管理員指定攻擊定義。系統(tǒng)管理員可以 指定復合攻擊的定義。關于攻擊的定義(例如復合攻擊的定義)的進一步的細節(jié)可以參 見Guruswamy等人于2005年1月27日提交的美國專利申請第11/045,572號“Compound Attack Detection in a Computer Network,,,胃i胃內(nèi)攻擊的定義可以指定例如文本和非文本(例如二進制)模式的任意組合以及協(xié) 議異常,以定義復雜的攻擊簽名。并且,IDP 10可以將特定的簽名與某些應用的協(xié)議相關 聯(lián)。對于IDP 10截獲的給定的通信會話,IDP嘗試識別會話的數(shù)據(jù)包流的應用類型和底層 協(xié)議,以選擇一個或多個攻擊簽名應用到數(shù)據(jù)包流。IDP 10識別在被監(jiān)測的業(yè)務中流動的數(shù)據(jù)包流,并且透明地重組來自數(shù)據(jù)包流的 應用層通信。IDP 10中的一組專用于協(xié)議的解碼器分析應用層通信并且識別應用層事務。 通常,“事務(transaction)”指的是對等設備之間的有界系列的相關應用層通信。本發(fā)明 公開還可以將事務稱作網(wǎng)絡會話。例如,單個TCP連接可以用于發(fā)送(接收)多個超文本 傳輸協(xié)議(HTTP)請求(響應)。例如,使用單個TCP連接可以獲取包括多個圖像和到HTML 頁面的鏈接的單個網(wǎng)頁。HTTP解碼器識別TCP連接中的每個請求/響應作為不同的事務。 這對防止某些攻擊定義被跨事務邊界應用是有用的。在一個實例中,可以根據(jù)源和目的IP 地址、協(xié)議以及源和目的端口號來識別事務。其他的實例可以以其他的方式(例如,通過使 用介質訪問控制(MAC)地址)來識別事務。IDP 10將攻擊定義應用到元(element)和協(xié)議解碼器識別的專用于協(xié)議的異常, 以檢測并防止網(wǎng)絡攻擊。例如,系統(tǒng)管理員可以指定復合網(wǎng)絡攻擊,包括反復FTP登錄失敗 的協(xié)議異常和匹配“根(root)”的登陸用戶名的模式。通過這種方式,系統(tǒng)管理員可以將模 式分析與協(xié)議異常相結合以定義復雜的攻擊定義。在網(wǎng)絡攻擊的事件中,IDP 10可以采取 一個或多個編程措施,諸如自動放棄與其中檢測到網(wǎng)絡攻擊的應用層通信相關聯(lián)的數(shù)據(jù)包 流。根據(jù)本發(fā)明公開的技術,IDP 10還可以使用該分析來計算特定的網(wǎng)絡會話的指標 (metrics),用于確定該會話表示正常的用戶行為還是惡意的自動軟件代理。通過計算一個 或多個網(wǎng)絡流的各個指標的總分,IDP 10可以檢測一個或多個“機器人”的存在。指標可以 對應于各種類型的網(wǎng)絡活動。如本發(fā)明公開中使用的機器人一般包括在一個或多個網(wǎng)絡計 算設備上執(zhí)行的程序以實現(xiàn)惡意網(wǎng)絡會話。機器人可以執(zhí)行腳本,以使機器人實現(xiàn)惡意網(wǎng) 絡會話的一系列的一個或多個行為。機器人可以與其他機器人共同行動,以形成“機器人網(wǎng) 絡”。機器人網(wǎng)絡可以包括成千上萬甚至更多的一起行動的計算設備。在典型的機器人網(wǎng) 絡中,一組機器人在中央位置的計算設備的指揮下一起行動,在中央位置的計算設備可以 包括編寫機器人的惡意用戶的計算設備或者被攻擊或被感染的計算機終端。位于中央位置 的計算設備可以通知機器人網(wǎng)絡的機器人有關目標身份(諸如目標的網(wǎng)絡地址),并指示 機器人攻擊目標。惡意軟件代理可以利用網(wǎng)絡會話進行惡意行為,諸如例如服務拒絕(DoS)攻擊、 點擊欺詐、垃圾郵件輸出或者其他惡意網(wǎng)絡活動。機器人和機器人網(wǎng)絡還可以進行不一定 是惡意的而是不希望的網(wǎng)絡會話。例如,管理員可以確定網(wǎng)絡蜘蛛或網(wǎng)絡蠕蟲在特定網(wǎng)站 (例如企業(yè)網(wǎng)絡5呈獻的公共網(wǎng)站)上是不希望的。通常,網(wǎng)絡蜘蛛包括記錄網(wǎng)頁副本或關鍵字以及遍歷所有或大多數(shù)的網(wǎng)頁的超文本鏈接的機器人,其通常遍歷并檢索整個網(wǎng)站。 當網(wǎng)絡管理員確定網(wǎng)絡蜘蛛是不希望的,并配置IDP 10識別并阻止網(wǎng)絡蜘蛛時,IDPlO識 別并阻止網(wǎng)絡蜘蛛。為了檢測機器人以及惡意的或其他不希望的網(wǎng)絡會話,IDP 10監(jiān)測每個網(wǎng)絡會話 的網(wǎng)絡業(yè)務并且分析任意數(shù)量的不同的網(wǎng)絡層(例如第三層至第七層)上的業(yè)務。IDP 10 計算網(wǎng)絡會話的網(wǎng)絡業(yè)務的多個指標并合計這些指標,以產(chǎn)生表示關于網(wǎng)絡會話是否有可 能由惡意軟件代理發(fā)起的總指示器的總分。即,IDP 10通常使用指標作為網(wǎng)絡會話的概要 (profile)以區(qū)分正常的用戶行為和類似機器人的行為。IDP 10可以計算每個指標的分 數(shù),以使指標的較低的分數(shù)對應于正常的用戶行為而指標的較高的分數(shù)對應于類似機器人 的行為。通過合計指標的分數(shù),IDP 10生成綜合分數(shù)并且當綜合分數(shù)超過最小閾值時確定 網(wǎng)絡會話是惡意的。通過這種方式,IDP 10可以防止標記僅以一個指標與正常用戶不同的 網(wǎng)絡會話。IDP 10還對指標的每個分數(shù)的輸出進行加權,以調節(jié)特定的指標對于總分的影 響。管理員可以個性化設置權數(shù)以加強或弱化特定的攻擊或機器人活動類型。例如,DoS攻 擊的簽名對應于指標的特定子集。因此,管理員可以例如通過對與DoS攻擊的簽名對應的 子集的指標中的每一個比其他指標更重要地進行加權,加強對DoS攻擊的阻斷以超過點擊欺詐。IDP 10計算特定網(wǎng)絡會話的各個指標的分數(shù)。例如,用于檢測基于超文本傳輸協(xié) 議(HTTP)的攻擊的指標可以包括在每單個HTTP連接中的多個事務、由單個客戶端設備在 相同時間打開的多個HTTP連接、來自設備的HTTP請求的時間分布、每個請求之間的時間延 遲、被請求的URL的多樣性、先前瀏覽過的URL的請求的百分比、連接建立的速率、數(shù)據(jù)包速 率、服務器響應時間分布、圖像百分比、腳本、網(wǎng)頁風格、內(nèi)置頁框、或其他請求的網(wǎng)頁的特 定的數(shù)據(jù)目標、之后的鏈接行為、用戶代理分布、客戶端是否正確處理網(wǎng)絡cookie、客戶端 操作系統(tǒng)分布、或者其他指標。又例如,為了檢測SPAM機器人,IDP 10可以確定會話是否涉及郵件交換的協(xié)議 (例如SMTP、P0P3、IMAP協(xié)議)以及可以計算與每個會話每個連接的郵件事務的數(shù)量、同時 打開的連接的數(shù)量、電子郵件事務請求的延遲、郵件事務請求的時間分布以及多個郵件傳 輸協(xié)議是否被單個設備同時利用相關的指標。采用本文中所描述的技術的IDP 10可以提供多個優(yōu)點。例如,IDP 10可以通過 檢測網(wǎng)絡會話的業(yè)務(包括業(yè)務的應用層數(shù)據(jù))來確定網(wǎng)絡會話是惡意的。此外,IDP 10 可以通過實時檢測業(yè)務來實時檢測機器人。因此,IDP 10可以防止惡意或者其他不希望的 網(wǎng)絡活動,例如服務拒絕(DoS)攻擊、點擊欺詐、電子郵件接收、網(wǎng)頁爬行或者由自動軟件 代理實時發(fā)起的其他不希望的惡意網(wǎng)絡會話。圖2是示出了 IDP 20的一個實例配置的框圖。在示出的實例中,IDP 20包括轉發(fā) 平面22,用于透明監(jiān)測入站網(wǎng)絡業(yè)務24并轉發(fā)網(wǎng)絡業(yè)務作為出站網(wǎng)絡業(yè)務26。在圖2所 示的實例中,轉發(fā)平面22包括流分析模塊25、狀態(tài)檢測引擎28、多個協(xié)議解碼器30、轉發(fā)組 件31和安全管理模塊44。圖2的IDP 20的實例示出了作為單個網(wǎng)絡設備的IDP 20,諸如 圖1的IDP 10或14。其他的實例可以在多個網(wǎng)絡設備或者諸如圖1的安全管理設備18、 交換機19或防火墻9的其他類型的設備中實現(xiàn)IDP 20的功能。
安全管理模塊44給出了一種用戶界面,管理員42通過該用戶界面配置IDP 20。 例如,管理員42可以配置IDP 20用來監(jiān)測企業(yè)網(wǎng)絡的特定的子網(wǎng)。此外,安全管理模塊44 給出了一種用戶界面,管理員42可以通過該用戶界面來指定攻擊定義33,以使安全管理模 塊44中繼到狀態(tài)檢測引擎28。在一個實例中,攻擊定義33包括復合攻擊定義。此外,安全 管理模塊44可以給出一種用戶界面,管理員42通過該用戶界面可以修改諸如監(jiān)測的最高 優(yōu)先級數(shù)據(jù)包流、應用的端口綁定或者確定與數(shù)據(jù)包流相關聯(lián)的應用類型和協(xié)議的其他特 點的關于數(shù)據(jù)包流特性的假設。在一個實例中,安全管理設備18(圖1)實現(xiàn)安全管理模塊 44的功能,以使管理員42能夠遠程編程IDP 20。根據(jù)從管理員42接收的配置,安全管理 設備18可以經(jīng)由例如簡單網(wǎng)絡管理協(xié)議(SNMP)配置IDP 20。流分析模塊25接收入站業(yè)務24并且識別業(yè)務中的網(wǎng)絡流。在一個實例中,流分 析模塊25包括網(wǎng)絡接口(未示出),例如網(wǎng)絡接口卡(NIC)。每個網(wǎng)絡流表示在網(wǎng)絡業(yè)務 中的一個方向的數(shù)據(jù)包的流并由至少一個源地址、目的地址和通信協(xié)議所識別。流分析模 塊25可以利用附加信息指定網(wǎng)絡流,包括源介質訪問控制(MAC)地址、目的MAC地址、源端 口和目的端口。其他的實例可以使用其他的信息來識別網(wǎng)絡流,例如IP地址。流分析模塊25維護流表35中的數(shù)據(jù),該流表描述了網(wǎng)絡業(yè)務中出現(xiàn)的每個活 動(active)的數(shù)據(jù)包流。流表35指定與每個活動的數(shù)據(jù)包流相關聯(lián)的網(wǎng)元(network element),即諸如源和目的設備以及與數(shù)據(jù)包流相關聯(lián)的端口的低等級信息。此外,流表35 識別共同形成客戶端和服務器之間的單個通信會話的數(shù)據(jù)包流對或者數(shù)據(jù)包流組。例如, 流表35可以指定通信會話作為共享至少一些常見的網(wǎng)絡地址、端口和協(xié)議的流的相反方 向的數(shù)據(jù)包流對。根據(jù)以下進一步詳細的描述,狀態(tài)檢測引擎28檢測數(shù)據(jù)包流,以識別數(shù)據(jù)包流中 的攻擊。根據(jù)本發(fā)明公開的技術,狀態(tài)檢測引擎28檢測數(shù)據(jù)包流,以檢測數(shù)據(jù)包流在應用 層工作的機器人或者類似機器人的活動。當狀態(tài)檢測引擎28檢測到機器人時,狀態(tài)檢測 引擎28執(zhí)行程序化響應,例如發(fā)送警報40到安全管理模塊44、或者指示轉發(fā)組件31丟棄 數(shù)據(jù)包流的數(shù)據(jù)包或結束對應于該數(shù)據(jù)包流的網(wǎng)絡會話。狀態(tài)檢測引擎28還可以限制數(shù) 據(jù)包流的速率,即將對應于檢測出的機器人的網(wǎng)絡會話節(jié)流到某個比特率,例如IOMbits/ 秒。攻擊檢測模塊52還可以記錄參加流表35中的網(wǎng)絡會話的至少一個網(wǎng)絡設備的標識 符,并且阻斷從已記錄的標識符發(fā)起的將來的連接請求。即,流分析模塊25可以接收連接 請求,確定連接請求從流表35記錄的標識符發(fā)起,并阻斷該連接請求。以這種方式,IDP 20 可以阻斷來自參加作為程序化響應的網(wǎng)絡會話的網(wǎng)絡設備的進一步的連接請求。轉發(fā)組 件31還可以建立一條消息并發(fā)送到其他的網(wǎng)絡設備(例如其他的路由器或者IDP、IDS或 IPS設備),以阻斷或者響應來自狀態(tài)檢測引擎28為其檢測出機器人的源網(wǎng)絡設備的數(shù)據(jù) 包流。警報40可以包括如下細節(jié),例如數(shù)據(jù)包流的源地址、對應于數(shù)據(jù)包流的應用程序的 識別、計算的網(wǎng)絡會話的指標的分數(shù)(該分數(shù)使狀態(tài)檢測引擎28得出具體的網(wǎng)絡會話是惡 意的結論)、或者關于網(wǎng)絡會話的其他信息。除簽名之外,IDP 20可以使用重組的TCP段的最小數(shù)據(jù)尺寸,以識別對應于數(shù)據(jù) 包流或者封裝的數(shù)據(jù)包流的應用程序。某些應用程序需要最小量的數(shù)據(jù),因此IDP 20可以 通過確定數(shù)據(jù)包流是否包含識別協(xié)議的足夠的數(shù)據(jù)來區(qū)分惡意的數(shù)據(jù)包流。此外,IDP 20 不一定識別出每個應用程序。在一個實例中,當應用程序未知時,IDP20可以簡單地轉發(fā)數(shù)據(jù)包流。而其他的實例可對未識別的應用程序采取其他的措施,例如丟棄面向未知應用程 序的所有數(shù)據(jù)包或者將默認簽名應用到與未知的應用程序類型相關聯(lián)的所有數(shù)據(jù)包流。其 他的實例還將本發(fā)明公開的技術應用到其他的協(xié)議,例如用戶數(shù)據(jù)報協(xié)議(UDP)。從而,IDP 20需要UDP段的最小數(shù)據(jù)尺寸,以識別與UDP段相關聯(lián)的應用程序。在一個實例中,狀態(tài)檢測引擎28包括用于執(zhí)行應用程序識別的協(xié)處理器。協(xié)處理 器可以連續(xù)地接收數(shù)據(jù)包流的形式的輸入并可以不斷地對數(shù)據(jù)包流執(zhí)行應用程序識別。對 于數(shù)據(jù)包流的每個組塊,協(xié)處理器可以返回協(xié)處理器識別的應用程序的一個或多個身份認 證。通常,協(xié)議解碼器30包括一個或多個專用于協(xié)議的軟件模塊集,用于處理應用層 通信32并輸出識別應用層事務的事務數(shù)據(jù)34。具體地,事務數(shù)據(jù)34表示兩個對等設備之 間的一系列相關的應用層通信開始和結束的時間。在一個實例中,一個或多個協(xié)議解碼器 30可以是通用協(xié)議解碼器,以便通用協(xié)議解碼器嘗試識別對應于應用層通信32的有效載 荷的應用程序。通用協(xié)議解碼器的一個實例是將一組預定義的應用指紋/簽名匹配到被解 碼的數(shù)據(jù)并且根據(jù)具體的指紋匹配來識別應用程序的算法。例如,通用協(xié)議解碼器可以嘗 試識別對應于HTTP通信的有效載荷的應用程序。很多協(xié)議解碼器30對應于不同的通信協(xié)議或者設備??梢员粎f(xié)議解碼器30支持 的通信協(xié)議的實例包括超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡新聞傳輸協(xié)議 (NNTP)、簡單郵件傳輸協(xié)議(SMTP)、遠程登錄、域名系統(tǒng)(DNS)、菜單查詢系統(tǒng)(Gopher)J^ 針(Finger)、郵局協(xié)議(POP)、安全套接層(SSL,Secure Socket Layer)協(xié)議、輕量目錄訪 問協(xié)議(LDAP)、安全外殼(SSH)、服務器消息塊(SMB)和其他協(xié)議。在一個實例中,協(xié)議解 碼器30中的每一個經(jīng)由通用軟件接口( S卩,以獨立于底層傳輸機制的方式處理應用數(shù)據(jù)的 軟件接口)接收數(shù)據(jù)。在這種方式下,協(xié)議解碼器可以在應用于給定的數(shù)據(jù)包流時被互換、 復用和堆疊(分層)。協(xié)議解碼器30應用到給定的數(shù)據(jù)包流或者單個的數(shù)據(jù)包之后,協(xié)議解碼器將事 務數(shù)據(jù)34、應用層元36和協(xié)議異常數(shù)據(jù)38返回到狀態(tài)檢測引擎28。狀態(tài)檢測引擎28將 攻擊定義33應用到專用于協(xié)議的應用層元36和異常數(shù)據(jù)38,以檢測并防止網(wǎng)絡攻擊和其 他安全風險。在檢測到安全風險的事件時,狀態(tài)檢測引擎28輸出警報40到安全管理模塊44,用 于記錄和進一步分析。此外,狀態(tài)檢測引擎28可以根據(jù)策略定義采取更多的措施,例如丟 棄與通信會話相關聯(lián)的數(shù)據(jù)包、自動關閉通信會話或其他措施。如果沒有檢測到給定的通 信會話的安全風險,則轉發(fā)組件31繼續(xù)在對等設備之間轉發(fā)數(shù)據(jù)包流。轉發(fā)組件31可以 例如根據(jù)轉發(fā)數(shù)據(jù)包流中使用的企業(yè)網(wǎng)絡的拓撲結構維護用于存儲路由的路由表。當狀態(tài) 檢測引擎28確定只有多個封裝子數(shù)據(jù)包中的一個或者不完整的子集對應于惡意網(wǎng)絡會話 時,轉發(fā)組件31可以轉發(fā)只包括那些不對應于惡意的網(wǎng)絡會話的子數(shù)據(jù)包的重組數(shù)據(jù)包。圖3是示出了 IDP 20的狀態(tài)檢測引擎28的一個實例的框圖。在該實例中,狀態(tài) 檢測引擎28包括重組模塊50、攻擊檢測模塊52、模式表54、數(shù)據(jù)緩沖區(qū)55、異常表56、攻擊 定義33、策略行動模塊68和策略70。通過移除任意的底層傳輸信息(例如,第四層(L4)信息及第四層以下的信息),重 組模塊50接收入站網(wǎng)絡業(yè)務24并重組數(shù)據(jù)包流的應用層通信32。重組模塊50將重組的應用層通信32轉發(fā)到合適的協(xié)議解碼器用于處理。狀態(tài)檢測引擎28存儲從安全管理模塊44接收的攻擊定義33。攻擊定義33可以 被存儲到例如計算機可讀介質(例如,隨即存取存儲器(RAM))。攻擊定義33中的每一個均 指定模式表54中指定的一個或多個模式以及異常表56中指定的一個或多個專用于協(xié)議的 異常的組合。當狀態(tài)檢測引擎28接收數(shù)據(jù)包作為數(shù)據(jù)包流的一部分時,重組模塊50緩沖數(shù)據(jù) 緩沖器55中的數(shù)據(jù)包。在一個實例中,數(shù)據(jù)緩沖器55作為滑動窗口存儲數(shù)據(jù)。即,在數(shù)據(jù) 緩沖器55存儲數(shù)據(jù),直到變滿或者達到用于識別所指定需要的最大數(shù)據(jù)量。當數(shù)據(jù)緩沖器 55滿時,其丟棄一些數(shù)據(jù)以騰出存儲新的數(shù)據(jù)的空間。在一個實例中,數(shù)據(jù)緩沖器55根據(jù) 先入先出(FIFO)協(xié)議存儲和丟棄數(shù)據(jù),其中,當數(shù)據(jù)緩沖器55變滿時,第一個存儲的數(shù)據(jù) 便是第一個被丟棄的數(shù)據(jù)。在另一實例中,數(shù)據(jù)緩沖器55根據(jù)最近最少使用協(xié)議丟棄數(shù) 據(jù),其中,當數(shù)據(jù)緩沖器55變滿時,最近最少使用的數(shù)據(jù)包流將被丟棄以為將存儲的新的 數(shù)據(jù)騰出空間。在一個實例中,重組模塊50根據(jù)5元組{源IP地址、目的IP地址、協(xié)議、源端口、 目的端口 }關聯(lián)網(wǎng)絡會話的數(shù)據(jù)包流中的數(shù)據(jù)包。其他的實例采用其他的方法關聯(lián)數(shù)據(jù) 包與具體的數(shù)據(jù)包流或者封裝的數(shù)據(jù)包流。在一個實例中,IDP 20包括利用虛擬局域網(wǎng) (VLAN)的網(wǎng)絡的部分。因此,重組模塊50可以根據(jù)VLAN標識符、源地址和目的地址關聯(lián)數(shù) 據(jù)包流中的數(shù)據(jù)包。攻擊檢測模塊52將復合攻擊定義33應用到應用層元36和從協(xié)議解碼器30接收 到的協(xié)議異常數(shù)據(jù)38。應用層元36可以包括未封裝的數(shù)據(jù)包流或者封裝的數(shù)據(jù)包流的元。 即,攻擊檢測模塊52可以檢測正常的未封裝的網(wǎng)絡業(yè)務中或者封裝的數(shù)據(jù)包流中的網(wǎng)絡 攻擊。對于復合攻擊定義33中的每一個,攻擊檢測模塊52選擇復合攻擊定義指定的模式 表52中的一個或多個模式,并確定應用層元36中的任意一個是否匹配所定義的模式。模 式中的每一個可以被定義為相應的“正則表達式”,“正則表達式”一般指的是用于匹配數(shù)據(jù) 中的模式的公式。除了確定定義的模式是否存在之外,攻擊檢測模塊52可以確定協(xié)議解碼器30檢 測的任意協(xié)議異常是否與攻擊定義33指定的協(xié)議異常相匹配。當在給定的通信會話中檢 測到由攻擊定義指定的模式和協(xié)議異常兩者時,攻擊檢測模塊52確定相應的數(shù)據(jù)包流與 攻擊定義33中的一個相匹配。進一步地,基于每個事務或在通信會話的存在期中,攻擊定 義33中的每一個可以指定是否必須滿足模式匹配和協(xié)議異常。攻擊檢測模塊52與機器人檢測模塊58相互作用,以確定具體的網(wǎng)絡會話是否對 應于正常的用戶或者對應于機器人。如參照圖4更加詳細描述的,機器人檢測模塊58計算 具體的網(wǎng)絡會話的多個指標的分數(shù)、累計分數(shù)、將總分與閾值比較并且在總分超過閾值時 確定網(wǎng)絡會話對應于機器人。攻擊檢測模塊52將各種信息傳遞給機器人檢測模塊58以執(zhí) 行這些計算。例如,攻擊檢測模塊52可以將事務數(shù)據(jù)34和應用層元36傳遞給機器人檢測 模塊58。攻擊檢測模塊52還可以從流表35中檢索數(shù)據(jù)并將數(shù)據(jù)從流表35傳遞到機器人 檢測模塊58,例如多個打開的連接、每個打開的連接的多個請求、每個請求的時間戳和/或 對每個請求的回復的時間戳。攻擊檢測模塊52還可以在IDS 20接收到數(shù)據(jù)包時將全部數(shù) 據(jù)包傳遞給機器人檢測模塊58,或者將數(shù)據(jù)包的TCP頭傳遞給機器人檢測模塊58,以使機器人檢測模塊58可以檢測TCP頭以確定正在被通信會話的一方使用的工作系統(tǒng)。在檢測到安全風險時,狀態(tài)檢測引擎28輸出警報40到安全管理模塊44 (圖2),用 于記錄和進一步分析。狀態(tài)檢測引擎28還可以指導轉發(fā)組件31執(zhí)行對安全風險的程序化 響應。程序化響應可以包括自動丟棄與在其中檢測到網(wǎng)絡攻擊的應用層通信相關聯(lián)的數(shù)據(jù) 包流的數(shù)據(jù)包。狀態(tài)檢測引擎28還可以使轉發(fā)組件31將關閉會話信息作為程序化響應發(fā) 送到惡意網(wǎng)絡會話中的一個或多個參與方。圖4是示出了實例機器人檢測模塊58的框圖。在圖4的實例中,機器人檢測模塊 58包括指標計算器60A 60N (指標計算器60)、加權模塊62A 62N(加權模塊62)、平均 器64、閾值存儲器66和比較器68。指標計算器60中的每一個基于接收的網(wǎng)絡會話的業(yè)務 的數(shù)據(jù)計算關于網(wǎng)絡會話的對應指標的分數(shù)。該數(shù)據(jù)可以包括應用層數(shù)據(jù),例如事務數(shù)據(jù) 34和應用層元36。數(shù)據(jù)還可以包括來自流表35的數(shù)據(jù),例如每個服務器和客戶端之間的 打開的通信會話、數(shù)據(jù)包流、連接、每個連接的事務、每個事務請求的次數(shù)和每個事務請求 的回復的次數(shù)。指標計算器60向加權模塊62中的相應的一個提供分數(shù)。指標計算器60中 的每一個輸出指示網(wǎng)絡會話是更“類似正常用戶”還是更“類似機器人”的可擴展分數(shù)。例 如,指標計算器60中的每一個可以輸出0和100之間的分數(shù),其中分數(shù)“0”表示對于具體 指標的網(wǎng)絡會話表現(xiàn)出更類似正常用戶的屬性,而分數(shù)“ 100”表示對于具體指標的網(wǎng)絡會 話表現(xiàn)出更類似機器人的屬性。加權模塊62通過擴大分數(shù)或縮小分數(shù)一定的量來加權相應的分數(shù)。例如,加權模 塊62中的一個(例如加權模塊62A)可以通過具體的加權因子縮放相應的分數(shù),在這種情 況下該分數(shù)由指標計算器60A計算。加權模塊62A可以通過因子“1. 0”縮放指標計算器60A 的輸出來完全不改變分數(shù)。加權模塊62A可以通過大于一的因子(例如1.5)縮放指標計 算器60A的輸出,以增大計算的分數(shù)的值,使來自指標計算器60A的分數(shù)對總分影響更大。 加權模塊62A還可以通過小于一的因子(例如0. 5)縮放指標計算器60A的輸出,以減小計 算的分數(shù)的值,使來自指標計算器60A的分數(shù)對總分影響更小。加權模塊62中的每一個可 以將不同的加權因子應用到指標計算器60的相應的一個的輸出。加權模塊62將相應的加 權分數(shù)發(fā)送到平均器64。平均器64計算從加權模塊62輸出的加權分數(shù)的平均分數(shù)。在實例中不包括加權 模塊62,平均器64計算指標計算器60計算的分數(shù)的平均分數(shù)。在一個實例中,平均器64 計算作為加權分數(shù)的平均的總分,例如,根據(jù)公式
N
^ weightedMetricScore(i)
總分=^-T-其中,函數(shù)weightedMetricScore(i)對應于加權模塊62中的第i個的輸出。雖 然實例公式表示串行計算加權模塊62輸出上的分數(shù),然而應當理解,在一些實例中加權模 塊62中的每一個例如利用專用硬件或者多個不同組的可編程硬件并行計算加權分數(shù)。閾值存儲器66主要存儲閾值,用于確定平均器64計算的總分數(shù)是否表示正常的 用戶行為或者類似機器人行為。比較器68比較平均器64計算的總分數(shù)與閾值存儲器66 的閾值,當總分數(shù)超過閾值時,比較器68確定被分析的網(wǎng)絡會話正在被機器人或者類似機
12器人的系統(tǒng)或程序執(zhí)行。每個指標計算器60計算通常將類似機器人行為與正常用戶行為相區(qū)別的各種不 同的指標。此外,計算的具體指標可以基于應用程序的類型和對應于網(wǎng)絡會話的協(xié)議而不 同。例如,對于采用HTTP的網(wǎng)絡會話,指標計算器60可以計算指標,該指標包含同時打開的 多個連接、每個連接的多個事務、請求的時間分布、請求之間的時間延遲、所請求的URL的 多樣性、請求之前瀏覽過的URL的百分比、連接建立的速率、數(shù)據(jù)包速率、服務器響應時間 分布、圖像的百分比、腳本、網(wǎng)頁風格、內(nèi)置頁框(iframe)或其他請求的網(wǎng)頁的特定數(shù)據(jù)目 標、之后的鏈接行為、用戶代理分布、cookie處理/支持、客戶端OS分布或者其他指標。HTTP 的這些指標可以對應于指標計算器60計算的指標的第一子集。指標計算器60計算的指標 的第二子集可以對應于電子郵件協(xié)議,例如簡單郵件傳輸協(xié)議(SMTP)、郵局協(xié)議(POP)或 者因特網(wǎng)郵件訪問協(xié)議(IMAP)。攻擊檢測模塊33(圖3)可以基于識別的具體的網(wǎng)絡會話的協(xié)議或者應用程序來 動態(tài)調節(jié)加權模塊62應用的加權。在以上的實例中,攻擊檢測模塊33可以確定網(wǎng)絡會話 正在采用HTTP,因而對應于指標的第一子集(即,為HTTP計算的指標)提高由加權模塊62 應用的加權。又例如,攻擊檢測模塊33可以減小應用到由指標計算器60中不對應于HTTP 的具體的一些算得的分數(shù)的加權。對于不同的網(wǎng)絡會話(例如對應于電子郵件協(xié)議)攻擊 檢測模塊33可以動態(tài)調節(jié)加權,以提高指標的第二子集的加權和/或降低指標計算器60 計算得到的其他指標的加權。通過實例的方式,指標計算器60中的一個可以計算表示為具體的網(wǎng)絡目的地打 開(open)的多個連接的分數(shù)。經(jīng)驗數(shù)據(jù)已經(jīng)顯示三至五個同時存在的連接對正常用戶是 常見的。因此,在一個實例中,指標計算器60中的這一個可以確定為具體的會話打開的連 接的數(shù)量是否介于三和五之間。當打開的連接的數(shù)量小于三或者大于五時,指標計算器60 中的一個輸出表示對于該指標網(wǎng)絡會話更類似于“機器人”的分數(shù)。當打開的連接的數(shù)量 在三和五之間時,指標計算器60中的一個輸出表示對于該指標網(wǎng)絡會話綜合而言更類似 于正常人的分數(shù)。例如,指標計算器60中的這一個可以根據(jù)為網(wǎng)絡目的地打開的連接的數(shù) 量與關于網(wǎng)絡目的地為正常用戶同時打開的連接的數(shù)量之差,輸出分數(shù)。以下的偽碼中出 現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶的特定要求而被管理員或者其他用戶修改。在一個 實例中,指標計算器60中的一個可以根據(jù)以下偽碼計算表示為具體的網(wǎng)絡目的地打開的 連接數(shù)量if(number_of_open_connections < 3)score = 10 ;else if(number_of_open_connections < 5)score = 0 ;else if(number_of_open_connections < 10)score = 50 ;else//number_of_open_connections > 10score = 100 ;在另一實例中,指標計算器60中的一個可以計算表示每個連接的多個事務的分 數(shù)。經(jīng)驗數(shù)據(jù)已經(jīng)顯示每個連接的五至二十個事務對于普通用戶是正常的,而每個連接的事務超過該數(shù)量的是類似機器人的行為。因此,在一個實例中,指標計算器60中的這一個 確定每個連接的事務數(shù)量是否介于五至二十之間。當每個連接的事務數(shù)量小于五或者大于 二十時,指標計算器60中的這一個輸出表示對于該指標網(wǎng)絡會話更類似于“機器人”的分 數(shù)。當打開的連接的數(shù)量介于五和二十之間時,指標計算器60中的一個輸出表示對于該指 標網(wǎng)絡會話更類似于正常用戶的分數(shù)。例如,指標計算器60中的一個可以根據(jù)網(wǎng)絡會話的 每個連接的事務數(shù)量與正常的用戶的網(wǎng)絡會話的每個連接的事務數(shù)量之間的平均距離,輸 出分數(shù)。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶的特定要求而被管理員或 者其他用戶修改。在一個實例中,指標計算器60中的一個可以根據(jù)以下偽碼計算分數(shù)if(avg_number_of_transactions_per_connection < 5)score = 25 ;else if(avg_number_of_transactions_per_connection < 20)score = 0 ;else if(avg_number_of_transactions—per_connection < 30)score = 50 ;else//avg_number_of_transactions_per_connection > 30score = 100 ;又例如,指標計算器60中的一個可以計算表示請求之間的時間分布(即,請求之 間的延遲的分布)的分數(shù)。經(jīng)驗數(shù)據(jù)已經(jīng)顯示,對于正常用戶,對應于用戶訪問新的網(wǎng)頁的 時間將會突然出現(xiàn)大量的請求,然后對應于用戶查看網(wǎng)頁的數(shù)據(jù)(例如,文本、圖像、電影、 音頻等等)期間的時間會有暫停。另一方面,對于機器人,經(jīng)驗數(shù)據(jù)已經(jīng)顯示,請求之間的 任意延遲幾乎沒有。認識到這一點,指標計算器60中的這一個可以計算表示請求之間的平 均延遲的分數(shù),以便當請求之間有較長的延遲時該分數(shù)較低,而當請求之間的延遲較短或 者實際上沒有延遲時該分數(shù)較高。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶 的特定要求而被管理員或者其他用戶修改。在一個實例中,指標計算器60中的這一個可以 根據(jù)以下偽碼計算分數(shù)if(avg_delay_between_requests < . 1) //. 1 禾少score = 100 ;else if(avg_delay_between_requests < 1)//1 禾少score = 50 ;else if(avg_delay_between_requests < 3)//3 禾少score = 25 ;else//avg_delay_between_requests > 3 禾少score = 0 ;又例如,指標計算器60中的一個可以計算表示對請求的平均服務器響應時間的 分數(shù)。機器人可以被編程用來識別如較長的服務器響應時間所示的消耗服務器的大量資源 的請求,然后重復發(fā)送昂貴的請求,即,消耗最多的服務器資源的請求。另一方面,正常的用 戶不會有意搜索昂貴的請求,并且甚至可以為了獲得更快的結果而避免這些請求。認識到 這一點,指標計算器60中的一個可以計算表示對請求的平均服務器響應時間的分數(shù),以便 當存在較短的服務器響應時間時該分數(shù)較高,而當存在較長的服務器響應時間時該分數(shù)較低。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶的特定要求而被管理員或者其 他用戶修改。在一個實例中,指標計算器60中的這一個可以根據(jù)以下偽碼計算分數(shù)if(avg_server_response_time < . 5)//. 5 禾少score = 0 ;else if (avg_server_response_time < 1)//1 禾少score = 30 ;else if(avg_server_response_time < 3)//3 禾少score = 60 ;else//avg_server_response_time > 3 禾少score = 100 ;又例如,指標計算器60中的一個可以計算表示具體網(wǎng)頁的請求的數(shù)據(jù)對象的百 分比的分數(shù)。數(shù)據(jù)對象包括例如文本、圖像、視頻、超鏈接、諸如Javascript的腳本、內(nèi)部框 架、樣式表(stylesheet)或者其他數(shù)據(jù)對象。正常的用戶通常使用配置為請求網(wǎng)頁的所有 的數(shù)據(jù)對象網(wǎng)絡瀏覽器,以便用戶可以查看所有的數(shù)據(jù)對象。另一方面,機器人不使用這些 對象中的很多對象,而實際上,從機器人的角度,檢索這樣的對象浪費帶寬。因此,機器人可 以被編程為只請求具體的網(wǎng)頁的可用數(shù)據(jù)對象的小子集。認識到這一點,指標計算器60中 的這一個可以計算表示請求的數(shù)據(jù)對象的百分比的分數(shù),以便當請求較多的數(shù)據(jù)對象時分 數(shù)較低,而當請求較少的數(shù)據(jù)對象時分數(shù)較高。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可 以根據(jù)用戶的特定要求而被管理員或者其他用戶修改。在一個實例中,指標計算器60中的 這一個可以根據(jù)以下偽碼計算分數(shù)if (object_request_percentage < 10)// 請求的數(shù)據(jù)對象小于 10%score = 100 ;else if (ob ject_request_percentage < 30)// 請求的數(shù)據(jù)對象小于 30%score = 50 ;else if (ob ject_request_percentage < 50)// 請求的數(shù)據(jù)對象小于 50%score = 25 ;else//對象請求百分比>=50%score = 0 ;又例如,指標計算器60中的一個可以計算表示鏈接跟隨(linkfollowing)行為的 分數(shù)。正常的用戶通常從一個網(wǎng)頁鏈接到另一個網(wǎng)頁來瀏覽因特網(wǎng)。正常用戶還通常再次 訪問頁面以找到不同的鏈接。機器人可以被編程為無節(jié)制地跳過頁面,極少從一個頁面的 鏈接跟隨到達所鏈接的頁面。一些管理員確定為不希望的網(wǎng)絡蜘蛛可以恰好一次跟隨網(wǎng)頁 的每個鏈接。認識到這一點,指標計算器60中的這一個可以計算表示平均鏈接跟隨行為 的分數(shù),以便當鏈接被一次或多次跟隨并且當頁面被再次訪問時該分數(shù)較高,而當頁面沒 有被再次訪問或者鏈接從未被跟隨時或者當每個鏈接被恰好跟隨一次時該分數(shù)較低。例 如,指標計算器60中的這一個可以計算具體用戶訪問的之前未被指定的統(tǒng)一資源定位器 (URL)的百分比。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶的特定要求而被管 理員或者其他用戶修改。在一個實例中,指標計算器60中的這一個可以根據(jù)以下偽碼計算 表示鏈接跟隨行為的分數(shù)
15
if (unspecified_url_percentage < 5% )score = 0;else if (unspecif ied_url_percentage < 25% )score = 50 ;else//unspecified_url—percentage > = 25%score = 100 ;又例如,指標計算器60中的一個可以計算在網(wǎng)絡會話期間被訪問的具體頁面上 的鏈接的百分比。當頁面上跟隨大量鏈接時,例如由于訪問這些鏈接的代理表現(xiàn)出網(wǎng)絡蜘 蛛行為,因此指標計算器60中的這一個可以確定鏈接跟隨行為的分數(shù)應該更高。在一些實 例中,指標計算器60中的這一個可以為只有當頁面上有大量鏈接(例如,大于20個鏈接) 時跟隨的鏈接的百分比賦分數(shù)。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶的 特定要求而被管理員或者其他用戶修改。在一個實例中,指標計算器60中的這一個可以根 據(jù)以下偽碼計算表示鏈接跟隨行為的分數(shù)if (available_links > 20) {if (percent_links_followed > 50)//跟隨的鏈接> 50%score = 100 ;else if (percent_links_followed > 25)//跟隨的鏈接> 25%score = 50 ;else//<=跟隨的鏈接的25%score = 0 ;}else //20個或更少的可用鏈接,故沒有分數(shù)score = 0 ;又例如,指標計算器60中的一個可以計算表示具體的用戶代理(例如,諸如 Microsoft Internet Explorer、Mozilla Firefox、NetscapeNavigator> Opera Browser> Apple Safari、Google Chrome的web瀏覽器或其他網(wǎng)絡瀏覽器)和/或在網(wǎng)絡會話期間 用戶代理是否改變的分數(shù)。HTTP數(shù)據(jù)包包括用于識別用戶代理的字段。正常的用戶往往在 整個網(wǎng)絡會話過程中使用相同的用戶代理并且往往使用常見的用戶代理。機器人可能被編 程為在不同的用戶代理之間循環(huán)或者使其表示為不常見的用戶代理。認識到這一點,指標 計算器60中的這一個可以計算表示使用的用戶代理以及用戶代理是否改變的分數(shù),以便 當用戶代理是常見的用戶代理以及當用戶代理在整個網(wǎng)絡會話中保持相同時該分數(shù)較低, 而當用戶代理在整個會話中改變時和/或當用戶代理不常見時該分數(shù)較高。指標計算器60 中的這一個可以對一貫使用的不常見的用戶代理輸出分數(shù),作為比對應于改變用戶代理的 輸出低的分數(shù)。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶的特定要求而被管 理員或者其他用戶修改。在一個實例中,指標計算器60中的這一個可以根據(jù)以下偽碼計算 分數(shù)if (isKnownSecurityRisk (request—2· agent))score = 100 ;else if (request_2. agent ! = request_l. agent)
score = 70 ;else if(isUncommonAgent(request_2. agent))score = 40 ;elsescore = 0 ;指標計算器60中的一個還可以記錄有關具體代理的使用的統(tǒng)計數(shù)據(jù)。例如,指標 計算器60中的這一個可以記錄采用每個可識別的代理的所有網(wǎng)絡會話的百分比。然后,指 標計算器60中的這一個可以在這些統(tǒng)計數(shù)據(jù)中檢測大的轉變。即,當不常見的用戶代理突 然轉變?yōu)樵诖罅烤W(wǎng)絡會話中使用時,指標計算器60中的這一個可以確定使用該代理的網(wǎng) 絡會話由自動軟件代理發(fā)起,并阻塞使用該代理的所有網(wǎng)絡會話。例如,如果具體的瀏覽器 通常被所有網(wǎng)絡會話的百分之一使用,然后突然該瀏覽器被所有網(wǎng)絡會話的百分之九十使 用,則指標計算器60中的這一個可以向使用該瀏覽器的所有網(wǎng)絡會話賦以高分數(shù),用于用 戶代理的分數(shù)。又例如,指標計算器60中的一個可以計算表示客戶應用程序是否在正常的用戶 能夠處理cookie的方式下顯示為適于處理cookie的分數(shù)。用戶通常啟用cookie,而機器人 往往忽略從網(wǎng)絡接收的cookie。即,來自機器人的響應往往不包含之前由服務器發(fā)送到機 器人感染的設備的cookie。認識到這一點,指標計算器60中的這一個可以計算表示cookie 使用行為的分數(shù),以便當cookie被使用并且包含于隨后的響應時該分數(shù)較低,而當cookie 未被使用時該分數(shù)較高。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶的特定要 求而被管理員或者其他用戶修改。在一個實例中,指標計算器60中的這一個可以根據(jù)以下 偽碼計算分數(shù)if(session. cookiesDisabled)score = 100 ;elsescore = 0 ;又例如,指標計算器60中的一個可以計算表示在網(wǎng)絡會話過程中使用的操作系 統(tǒng)的分數(shù)。正常的用戶往往使用多種常見的操作系統(tǒng),而機器人可能被編程為利用個別操 作系統(tǒng)的安全漏洞。更具體地,用于植入機器人的病毒可以利用個別操作系統(tǒng)的安全漏洞。 認識到這一點,指標計算器60中的這一個可以計算表示網(wǎng)絡會話過程中使用的操作系統(tǒng) 的分數(shù),以便當操作系統(tǒng)是常用的操作系統(tǒng)時該分數(shù)較低,而當操作系統(tǒng)不常用時該分數(shù) 較高。指標計算器60中的這一個還可以被配置為當已經(jīng)被病毒利用的操作系統(tǒng)出現(xiàn)已知 的安全漏洞時對該具體的操作系統(tǒng)輸出較高的分數(shù)。當修補該安全漏洞時,指標計算器60 中的這一個可以配置為降低該操作系統(tǒng)的分數(shù)。當操作系統(tǒng)發(fā)送TCP數(shù)據(jù)包時,指標計算 器60中的這一個可以根據(jù)通過該操作系統(tǒng)設置的TCP數(shù)據(jù)包參數(shù)組檢測網(wǎng)絡會話的操作 系統(tǒng)。在一些實施例中,通過類似于以上討論的不常見的用戶代理的使用的突然增加的方 式,指標計算器60中的這一個可以檢測個別操作系統(tǒng)的使用的突然增加并且向使用該操 作系統(tǒng)的網(wǎng)絡會話賦以高分數(shù)。以下的偽碼中出現(xiàn)的分數(shù)僅僅是實例,并可以根據(jù)用戶的 特定要求而被管理員或者其他用戶修改。在一個實例中,指標計算器60中的這一個可以根 據(jù)以下偽碼計算分數(shù)
if(isKnownSecurityRisk(session. OS))score = 100 ;else if(isUncommonOS(session. OS))score = 60 ;elsescore = 0 ;圖5是示出了用于配置多個指標計算器(例如圖4中的指標計算機60)的實例用 戶界面80的截屏。管理員42還可以使用用戶界面80來配置加權模塊62 (圖4)。在一個 實例中,安全管理模塊44(圖2)向管理員42顯示用戶界面80,以便管理員42可以設置或 者調節(jié)IDP 20的配置。在圖5的實例中,用戶界面80包括指標范圍82A 82E(指標范 圍82)、加權文本框84A 84E (加權文本框84)、滑動條86A 86E (滑動條86)、調節(jié)箭頭 88A 88E (調節(jié)箭頭88)、向上滾動箭頭90、向下滾動箭頭92、滾動滑動條94、保存按鈕96、 取消按鈕98。指標范圍82、加權文本框84、滑動條86和調節(jié)箭頭88中的對應的一些的每一組 (set)均對應于指標計算器60(圖4)中的一個,用于調節(jié)具體指標的參數(shù)。在圖5的實例 中,這些組對應于打開的多個連接、每個連接的多個事務、請求之間的延遲分布、對具體請 求的服務器響應時間以及請求的數(shù)據(jù)對象的百分比。雖然在圖5的實例中只示出了五組, 但是可以使用相似的機制來調節(jié)其他指標的其他的參數(shù),例如參照圖4討論的指標中的任 意或者全部。用戶還可以通過選擇向上滾動箭頭90或者向下滾動箭頭92或者通過拖動滾 動滑動條94來使用戶界面80顯示其他的調節(jié)參數(shù)。通常,滑動條86對應于“正常的”用戶行為,而沒有被滑動條86覆蓋的相應的指 標范圍82的部分被認為更類似機器人行為。在一些實例中,指標計算器60基于計算的指 標與滑動條86中的相應的一個之間的絕對距離輸出分數(shù)。即,當計算的指標發(fā)生在滑動條 86中的相應的一個中時,指標計算器60中的相應的一個可以輸出0分或者非常低的分數(shù), 而當計算得到的指標遠遠發(fā)生在滑動條86中的相應的一個之外時,指標計算器60中的相 應的一個可以輸出高分數(shù)。輸入加權文本框84的值對某些比其他指標更重要或者更不重要的指標加權。默 認情況下,加權文本框84的值是100%。然而,諸如管理員42的用戶可以通過改變加權文 本框84的值來增強或者減弱某些指標。加入加權文本框84中的一個的百分比通過輸入的 值來改變指標計算器60中的相應的一個輸出的指標的值。這樣,當輸入值“50%”時,指標 分數(shù)降為其初始值的50%,而當輸入值“150%”時,指標分數(shù)提高“50%”。通過這種方式, 管理員42可以加權某些更重要或者更不重要的指標,例如特別強調某些網(wǎng)絡攻擊的檢測 以超過其他的。例如,指標范圍82A、加權文本框84A、滑動條86A和調節(jié)箭頭88A中每一個均允許 諸如管理員42的用戶調節(jié)涉及計算多個打開的連接的加權指標的參數(shù)。指標范圍82A允 許管理員42在介于0到10個打開連接之間的任意位置設置滑動條86A。管理員42可以使 用調節(jié)箭頭88A調節(jié)滑動條86A的寬度。在圖5的實例中,管理員42已經(jīng)設置滑動條86A 以覆蓋介于3到5個打開連接之間的指標范圍82A的區(qū)域?;瑒訔l86A表示介于3到5個 (包含)之間的打開連接是正常的用戶行為。而小于3或者大于5的打開連接表示更類似機器人的行為。從而,對于給定的通信會話,當介于3到5之間的連接打開時,指標計算器 60中的相應的一個(例如指標計算器60A)輸出低分數(shù),而當小于3或大于5的連接打開 時,指標計算器60A輸出高分數(shù),隨著分數(shù)增加,打開連接的數(shù)量進一步偏離3到5之間。管 理員42還將加權文本框84A的值設置為100%。又例如,指標范圍82B、加權文本框84B、滑動條86B和調節(jié)箭頭88B中每一個均允 許管理員42調節(jié)涉及計算每個打開連接的事務的平均數(shù)量的加權指標的參數(shù)。指標范圍 82B允許管理員42在介于0到30個打開連接之間的任意位置設置滑動條86B。管理員42 可以使用調節(jié)箭頭88B調節(jié)滑動條86B的寬度。在圖5的實例中,管理員42已經(jīng)設置滑動 條86B以覆蓋每個連接介于5到20個打開連接之間的指標范圍82B的區(qū)域?;瑒訔l86B表 示每個打開連接介于5到20個之間的事務是正常的用戶行為。而每個打開連接小于5或 者大于20的事務表示更類似機器人的行為。從而,當網(wǎng)絡會話的連接平均出現(xiàn)介于5和20 個之間的事務時,指標計算器60中的相應的一個(例如指標計算器60B)輸出低分數(shù),而當 網(wǎng)絡會話的每個連接出現(xiàn)小于5或大于20個的事務時,指標計算器60B輸出高分數(shù),隨著 分數(shù)增加,每個連接的事務的平均數(shù)量進一步偏離5到20之間。管理員42還將加權文本 框84B的值設置為100%。又例如,指標范圍82C、加權文本框84C、滑動條86C和調節(jié)箭頭88C中每一個均允 許管理員42調節(jié)涉及計算請求之間的延遲的加權指標的參數(shù)。指標范圍82C允許管理員 42在網(wǎng)絡會話過程中發(fā)布的請求之間的0到10分鐘之間的平均延遲的任意位置設置滑動 條86C。管理員42可以使用調節(jié)箭頭88C調節(jié)滑動條86C的寬度。在圖5的實例中,管理 員42已經(jīng)設置滑動條86C以覆蓋介于平均1到10分鐘延遲之間的指標范圍82C的區(qū)域。 滑動條86C表示網(wǎng)絡會話的請求之間的介于平均1到10分鐘的延遲是正常的用戶行為。 而小于平均1分鐘的延遲表示更類似機器人的行為。對于該實例,任何大于平均10分鐘 的延遲被認為是正常的用戶行為,因為滑動條86C被設置為指標范圍82C的最大可允許范 圍。從而當網(wǎng)絡會話在請求之間具有平均小于一分鐘的延遲時,指標計算器60中的相應的 一個(例如指標計算器60C)輸出高分數(shù),隨著分數(shù)增加,平均延遲更加偏離一分鐘,而當網(wǎng) 絡會話在請求之間具有平均大于一分鐘的延遲時,指標計算器60C輸出低分數(shù)。管理員42 還將加權文本框84C的值設置為70%。又例如,指標范圍82D、加權文本框84D、滑動條86D和調節(jié)箭頭88D中每一個均允 許諸如管理員42的用戶調節(jié)涉及對每個請求的平均服務器響應時間的參數(shù)。指標范圍82D 允許管理員42在介于0到10分鐘之間的任意位置設置滑動條86D。管理員42可以使用調 節(jié)箭頭88D調節(jié)滑動條86D的寬度。在圖5的實例中,管理員42已經(jīng)設置滑動條86D以覆 蓋每平均響應時間介于0到0. 1分鐘之間的指標范圍82D的區(qū)域。滑動條86D表示介于0 到0. 1分鐘之間的平均響應時間是正常的用戶行為。而大于0. 1分鐘表示更類似機器人行 為。從而當服務器的每次請求的平均響應小于0. 1分鐘時,指標計算器60中的相應的一個 (例如指標計算器60D)輸出低分數(shù),而當平均服務器請求時間大于0. 1分鐘時,指標計算 器60D輸出高分數(shù),隨著分數(shù)增加,平均服務器響應時間更加遠離0. 1分鐘。管理員42還 將加權文本框84D的值設置為150%。又例如,指標范圍82E、加權文本框84E、滑動條86E和調節(jié)箭頭88E中每一個均允 許諸如管理員42的用戶調節(jié)涉及計算被請求的網(wǎng)頁的多個數(shù)據(jù)對象的加權指標的參數(shù)。指標范圍82E允許管理員42在數(shù)據(jù)對象的0到100%之間的任意位置設置滑動條86E。管 理員42可以使用調節(jié)箭頭88E調節(jié)滑動條86E的寬度。在圖5的實例中,管理員42已經(jīng) 設置滑動條86E以覆蓋介于80%到100%被請求的數(shù)據(jù)對象之間的指標范圍82E的區(qū)域。 滑動條86E表示介于80%到100%之間的被請求的數(shù)據(jù)對象是正常的用戶行為。而小于 80%表示更類似機器人行為。從而,對于給定的網(wǎng)絡會話,當具體網(wǎng)頁的大于80%的數(shù)據(jù)對 象被請求時,指標計算器60中的相應的一個(例如指標計算器60E)輸出低分數(shù),而當小于 80%的數(shù)據(jù)對象被請求時,指標計算器60E輸出高分數(shù),隨著分數(shù)增加,被請求的數(shù)據(jù)對象 的百分比更加遠離80%。管理員42還將加權文本框84E的值設置為120%。當管理員42已經(jīng)在相應的指標范圍82上將滑動條86設置在希望的位置之后,管 理員42可以通過選擇保存按鈕96保存配置。選擇保存按鈕96之后,安全管理模塊44存 儲包含滑動條86的表示和輸入到加權文本框84中的加權的配置。管理員42還可以選擇 取消按鈕98拒絕修改IDP 20的配置。圖6是示出了用于通過檢測應用層業(yè)務來檢測機器人的一種實例方法的流程圖。 雖然圖6的方法通常會參照IDP 20來討論,但是應理解,任何IDS、IDP、IPS或者其他安全 設備都可以實現(xiàn)參照圖6討論的方法。首先,IDP 20的重組模塊50接收數(shù)據(jù)包流的數(shù)據(jù)包,即入站業(yè)務24 (110)。重組模 塊50通過在數(shù)據(jù)緩沖器55中緩沖數(shù)據(jù)包流的數(shù)據(jù)包來重組數(shù)據(jù)包流的應用層數(shù)據(jù)(112)。 在一些實例中,例如通過分析應用層數(shù)據(jù)或者數(shù)據(jù)包流的其他數(shù)據(jù)(例如傳輸層或網(wǎng)絡層 數(shù)據(jù)),協(xié)議解碼器30確定與數(shù)據(jù)包流相關聯(lián)的一個或多個協(xié)議。攻擊檢測模塊52可以嘗 試使用其他攻擊檢測技術檢測攻擊的某些類型,例如根據(jù)技術領域中已知的技術的較低層 的攻擊。然后,機器人檢測模塊58計算數(shù)據(jù)包流的數(shù)據(jù)的多個加權指標分數(shù)。即,機器人 檢測模塊58基于類似機器人業(yè)務的第一特征計算數(shù)據(jù)的第一指標分數(shù)(112)。例如,指標 計算器60A可以基于對應于數(shù)據(jù)包流的網(wǎng)絡會話打開的多個連接來計算第一指標分數(shù),指 標計算器60B可以基于具體連接的請求的平均數(shù)量來計算第二指標分數(shù)。然后,機器人檢 測模塊58將加權應用到第一指標分數(shù)(114)。具體地,對應于計算指標分數(shù)的指標計算器 60中的一個的加權模塊62中的一個將權數(shù)應用到計算得到的指標分數(shù)。例如,加權模塊 62A計算由指標計算器60A算得的指標分數(shù)的加權形式。機器人檢測模塊58為可用的每對指標計算器60和加權模塊62計算加權指標分 數(shù)。在圖6的實例方法中,機器人檢測模塊58通過檢查是否仍有要計算的指標來連續(xù)計算 這些分數(shù)(118),而如果是,則計算剩余指標的加權指標分數(shù)。但是,應理解,在一些實例中, 加權指標分數(shù)可以被并行計算,例如使用專用硬件或者每個同時工作的多個可編程硬件設備。在計算加權指標分數(shù)中的每一個之后,機器人檢測模塊58的平均器64基于算得 的加權指標分數(shù)計算平均加權指標分數(shù)(120)。例如,平均器64可以將加權指標分數(shù)相加 并且除以指標計算器的數(shù)量,以產(chǎn)生平均加權指標分數(shù)。然后,比較器68將平均器64算得的平均加權指標分數(shù)與閾值66進行比較,以確 定平均加權指標分數(shù)是否超過閾值(122)。當平均加權指標分數(shù)超過閾值時(122的“是” 分支),IDP 20執(zhí)行程序化響應(124)。程序化響應可以包括例如發(fā)送警報、發(fā)送消息到其他的網(wǎng)絡設備以阻斷或檢測來自對應于數(shù)據(jù)包流的網(wǎng)絡會話的服務器或客戶端或兩者的 業(yè)務、阻斷數(shù)據(jù)包流的后來的數(shù)據(jù)包、丟棄數(shù)據(jù)包流、發(fā)送數(shù)據(jù)包流的關閉會話消息到網(wǎng)絡 會話的客戶端、發(fā)送數(shù)據(jù)包流的關閉會話消息到網(wǎng)絡會話的服務器、防止客戶端和/或服 務器發(fā)起新網(wǎng)絡會話、防止來自客戶端和/或服務器的某些請求(例如阻斷數(shù)據(jù)庫查詢請 求)、節(jié)流(例如限制速率)來自客戶端或服務器或兩者的通信或者其他響應。而當平均加 權指標分數(shù)沒有超過閾值時(122的“否”分支),IDP 20轉發(fā)數(shù)據(jù)包流的數(shù)據(jù)包(126)。根據(jù)權利要求6所述的方法大體包括用網(wǎng)絡設備接收網(wǎng)絡會話的數(shù)據(jù)包;組合 來自數(shù)據(jù)包的網(wǎng)絡會話的網(wǎng)絡會話數(shù)據(jù),網(wǎng)絡會話數(shù)據(jù)包括網(wǎng)絡會話的數(shù)據(jù)包流數(shù)據(jù)和應 用層數(shù)據(jù);基于被應用于網(wǎng)絡會話數(shù)據(jù)的多個指標計算網(wǎng)絡會話數(shù)據(jù)的多個分數(shù),其中,指 標中的每一個對應于自動軟件代理發(fā)起的惡意網(wǎng)絡會話的特征,以及其中,分數(shù)中的每一 個表示網(wǎng)絡會話由自動軟件代理發(fā)起的可能性;集合多個分數(shù),以生成總分;當總分超過 閾值時,確定網(wǎng)絡會話由自動軟件代理發(fā)起;以及當確定網(wǎng)絡會話為惡意時,執(zhí)行程序化響 應。在一些實例中,該方法還可以包括分析通過多個網(wǎng)絡會話的代理行為。例如,IDP 20可 以將圖6的方法應用到多個網(wǎng)絡會話,以確定多個網(wǎng)絡會話中的任意一個是否由自動軟件 代理發(fā)起,并識別由自動軟件代理發(fā)起的那些網(wǎng)絡會話。圖7是示出了一種實例路由器150的框圖。在圖7的實例中,路由器150包括不同 的“平面(plane)”,為路由器150執(zhí)行不同的任務。通常,路由器150包括轉發(fā)平面190, 用于接收和/或發(fā)送數(shù)據(jù)包;路由平面170,用于路由功能(例如計算通過網(wǎng)絡的路由);以 及服務平面160,包括多個服務卡164,每個均為路由器150執(zhí)行各種繁雜工作。通常,服務 卡164可以擴展路由器150的功能以為路由器150執(zhí)行附加的功能。服務卡164可以被移 除或者用實現(xiàn)其他功能的其他卡替代。在圖7的實例中,服務平面卡164包括IDP卡162,其通常實現(xiàn)關于IDP 20 (圖2 和3)描述的功能。即,IDP卡162可以包括網(wǎng)絡接口,接收網(wǎng)絡會話的數(shù)據(jù)包;控制單元, 具有一個或多個處理器;重組模塊,在控制單元中執(zhí)行,以組合網(wǎng)絡會話的應用層數(shù)據(jù);機 器人檢測模塊,在控制單元中執(zhí)行,以基于多個指標計算應用層數(shù)據(jù)的多個分數(shù),其中,指 標中的每一個對應于由自動軟件代理發(fā)起的網(wǎng)絡會話的特征,以根據(jù)多個分數(shù)的合計產(chǎn)生 總分,并在總分超過閾值時確定網(wǎng)絡會話由自動軟件代理發(fā)起;以及攻擊檢測模塊,在控制 單元中執(zhí)行,以在確定網(wǎng)絡會話由自動軟件代理發(fā)起時,執(zhí)行程序化的響應。服務卡164還 可以包括例如防火墻卡、安全管理卡、用戶界面卡、附加的網(wǎng)絡接口或其他卡。服務卡164還向流控制單元192發(fā)送消息166。在一個實例中,IDP卡162發(fā)送包 含具體的數(shù)據(jù)包流的指令的消息166。即,IDP卡162可以指示流控制單元192丟棄數(shù)據(jù)包 流的數(shù)據(jù)包,向數(shù)據(jù)包流的客戶端或服務器發(fā)送關閉會話消息,或者在確定該數(shù)據(jù)包流不 是惡意的之后停止向IDP卡162發(fā)送數(shù)據(jù)包流的數(shù)據(jù)包。其他的服務卡164還可以向流控 制單元192發(fā)送類似的消息166。路由器150還包括路由平面170,其中,路由器150執(zhí)行各種路由任務。例如,路由 平面170的路由引擎172根據(jù)一個或多個協(xié)議178計算路由器150連接的網(wǎng)絡的路由。路由 器150還經(jīng)由服務通信模塊(SCM) 176從其他路由器接收通知的路由(advertisedroutes)。 路由引擎172將通告的和計算的路由存儲在路由信息庫(RIB)ISO中。路由引擎172還根 據(jù)通告的和計算的路由向轉發(fā)組件194發(fā)送更新,以便轉發(fā)組件194可以沿著路由引擎172
21計算的路由恰當?shù)剞D發(fā)接收的數(shù)據(jù)包。在圖7的實例中,路由引擎172還包括用戶界面(UI)174。UI 174使管理員 (admin) 152能夠與路由器150互動,例如增加或更新協(xié)議178。在一些實例中,管理員152 使用UI 174配置服務平面卡164,例如IDP卡162。例如,UI 174可以展示圖5的實例用 戶界面以允許管理員152配置IDP卡162,例如其指標和權數(shù)。UI174還通過服務通信模塊 176將接收到的權數(shù)和指標傳送給IDP卡162。通常,轉發(fā)平面190為路由器接收并轉發(fā)數(shù)據(jù)包。流控制單元192接收各種數(shù)據(jù) 包流或者其他網(wǎng)絡會話的數(shù)據(jù)包154。當流控制單元192接收用于路由引擎172的消息時, 流控制單元192通過例如服務卡164中的一個將消息送往路由引擎172。流控制單元192 通過一個或多個服務卡164指示某些數(shù)據(jù)包。流控制單元192還可以向轉發(fā)組件194直接 發(fā)送接收到的數(shù)據(jù)包。當IDP卡162已經(jīng)將消息166發(fā)送到流控制單元192以阻斷具體的 數(shù)據(jù)包流的數(shù)據(jù)包時,流控制單元192丟棄其數(shù)據(jù)包流的接收到的數(shù)據(jù)包154。轉發(fā)組件194將網(wǎng)絡會話的數(shù)據(jù)包轉發(fā)給另一網(wǎng)絡設備。轉發(fā)組件194還根據(jù)從 路由引擎172接收到的消息維護轉發(fā)信息庫(FIB) 196。當路由引擎172通知路由時,轉發(fā) 組件194將通告的路由轉發(fā)給與路由器150通信的一個或多個其他的路由器。本發(fā)明公開中所描述的技術可以在硬件、軟件、固件或其任意組合中被實現(xiàn)或者 至少部分被實現(xiàn)。例如,所描述的技術的各個方面可以在一個或多個處理器中實現(xiàn),處理器 包括一個或多個微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列 (FPGA),或任意其他同等集成或獨立的邏輯電路,以及這些組件的任意組合。術語“處理器” 或者“處理電路”一般指的是上述邏輯電路中的任意一種、獨立的或者與其它邏輯電路組合、 或者任意其他同等電路。包含硬件的控制單元還可以執(zhí)行本發(fā)明公開的一個或多個技術。這樣的硬件、軟件和固件可以在同一設備或獨立的設備中實現(xiàn),以支持本發(fā)明的 公開中所描述的操作和功能。此外,所描述的單元、模塊或組件中的任意一種可以作為分立 但相互操作的邏輯器件一起或者單獨實現(xiàn)。模塊或單元的不同特征的描寫旨在突出不同功 能的方面,不一定意味著這樣的模塊或單元必須由獨立的硬件或軟件組件實現(xiàn)。相反,與一 個或多個模塊或單元相關聯(lián)的功能可以通過獨立的硬件或軟件組件、或者集成在通用或獨 立的硬件或軟件組件中來實現(xiàn)。在一個實例中,服務平面卡可以包括執(zhí)行本發(fā)明公開中描述的技術的硬件控制單 元,以便服務平面卡可以被插入到多機箱網(wǎng)絡設備。以這種方式,通過將實現(xiàn)這些技術的服 務平面機箱連接到可擴展的多機箱網(wǎng)絡設備,多機箱網(wǎng)絡設備可以將本發(fā)明公開的技術與 連接到多機箱網(wǎng)絡設備的其他機箱的功能相結合。例如,路由器可以被配置為通過將執(zhí)行 這些技術的服務平面機箱連接到路由器來實現(xiàn)本發(fā)明公開的技術。本發(fā)明公開中描述的技術還可以在包含指令的計算機可讀介質(例如,可讀存儲 介質)中被實現(xiàn)或者編碼。例如當指令被執(zhí)行時,在計算機可讀介質中嵌入或者編碼的指 令可以使可編程處理器或者其他處理器執(zhí)行該方法。計算機可讀存儲介質可以包括隨機 存取存儲器(RAM)、只讀存儲器(ROM)、可編程只讀存儲器(PR0M)、可擦除可編程只讀存儲 器(EPROM)、電子可擦除可編程只讀存儲器(EEPROM)、閃存、硬盤、CD-ROM、軟盤、磁帶、磁介 質、光介質、或其他計算機可讀介質。已經(jīng)描述了各種實例。這些或其他實例在以下的權利要求的范圍內(nèi)。
權利要求
一種方法,包括用網(wǎng)絡設備接收網(wǎng)絡會話的數(shù)據(jù)包;組合來自所述數(shù)據(jù)包的所述網(wǎng)絡會話的網(wǎng)絡會話數(shù)據(jù),所述網(wǎng)絡會話數(shù)據(jù)包括所述網(wǎng)絡會話的數(shù)據(jù)包流數(shù)據(jù)和應用層數(shù)據(jù);基于被應用于所述網(wǎng)絡會話數(shù)據(jù)的多個指標計算所述網(wǎng)絡會話的多個分數(shù),其中,所述指標中的每一個均對應于由自動軟件代理發(fā)起的網(wǎng)絡會話的特征,以及,所述分數(shù)中的每一個均表示所述網(wǎng)絡會話由自動軟件代理發(fā)起的可能性;合計所述多個分數(shù),以生成總分;當所述總分超過閾值時,確定所述網(wǎng)絡會話由自動軟件代理發(fā)起;以及當確定所述網(wǎng)絡會話由自動軟件代理發(fā)起時,執(zhí)行程序化響應。
2.根據(jù)權利要求1所述的方法,還包括將多個加權值中的每一個應用到所述多個分 數(shù)中相應的一個上,其中,合計所述多個分數(shù)包括合計應用了相應的所述加權值的多個分數(shù)。
3.根據(jù)權利要求2所述的方法,還包括經(jīng)由用戶界面接收所述多個加權值。
4.根據(jù)權利要求1所述的方法,還包括經(jīng)由用戶界面接收所述指標中的至少一個的定義。
5.根據(jù)權利要求1所述的方法,其中,所述指標中的第一個對應于所述網(wǎng)絡會話的打 開的連接的數(shù)目,所述指標中的第二個對應于每個打開的連接的事務平均數(shù)量,所述指標 中的第三個對應于所述網(wǎng)絡會話過程中請求之間的時間分布,所述指標中的第四個對應于 對所述請求的平均服務器響應時間,所述指標中的第五個對應于所述網(wǎng)絡會話所請求的網(wǎng) 頁的數(shù)據(jù)對象的百分比,所述指標中的第六個對應于所述網(wǎng)絡會話過程中的鏈接跟隨行 為,所述指標中的第七個對應于所述網(wǎng)絡會話過程中用戶代理的改變,所述指標中的第八 個對應于網(wǎng)頁cookie處理行為,以及所述指標中的第九個對應于由所述網(wǎng)絡會話的客戶 端設備使用的操作系統(tǒng)。
6.根據(jù)權利要求1所述的方法,其中,執(zhí)行程序化響應包括以下中的至少一個發(fā)送警 報;丟棄所述網(wǎng)絡會話的所述數(shù)據(jù)包;向所述網(wǎng)絡會話的客戶端發(fā)送關閉會話消息;阻斷 來自所述網(wǎng)絡會話的網(wǎng)絡設備的連接請求;向所述網(wǎng)絡會話的服務器發(fā)送關閉會話消息; 限制所述網(wǎng)絡會話的速率;隨阻斷所述客戶端的其他網(wǎng)絡會話的指令向網(wǎng)絡設備發(fā)送所述 客戶端的標識符;以及隨阻斷所述服務器的網(wǎng)絡會話的指令向網(wǎng)絡設備發(fā)送所述服務器的 標識符。
7.一種網(wǎng)絡設備,包括網(wǎng)絡接口,接收網(wǎng)絡會話的數(shù)據(jù)包; 控制單元,具有一個或多個處理器;重組模塊,在所述控制單元中執(zhí)行,以重組所述網(wǎng)絡會話的應用層數(shù)據(jù); 流表,存儲所述網(wǎng)絡會話的數(shù)據(jù)包流信息;機器人檢測模塊,在所述控制單元中執(zhí)行,以基于多個指標計算所述網(wǎng)絡會話的多個 分數(shù),所述多個指標的每一個均被應用到經(jīng)重組的應用層數(shù)據(jù)和數(shù)據(jù)包流信息中的至少一 個,其中,所述指標中的每一個均對應于由自動軟件代理發(fā)起的網(wǎng)絡會話的特征,其中,所 述機器人檢測模塊被配置為由所述多個分數(shù)的合計來生成總分,并且當所述總分超過閾值時確定所述網(wǎng)絡會話由自動軟件代理發(fā)起,其中,所述分數(shù)中的每一個均表示所述網(wǎng)絡會 話由自動軟件代理發(fā)起的可能性;以及攻擊檢測模塊,在所述控制單元中執(zhí)行,當確定所述網(wǎng)絡會話由自動軟件代理發(fā)起時, 執(zhí)行程序化響應。
8.根據(jù)權利要求7所述的設備,其中,所述機器人檢測模塊將多個加權值中的每一個 應用到所述多個分數(shù)中相應的一個上,并在已將所述加權值應用到用于所述多個分數(shù)的聚 集的所述多個分數(shù)之后,產(chǎn)生所述總分。
9.根據(jù)權利要求8所述的設備,還包括用戶界面,用于接收所述多個加權值。
10.根據(jù)權利要求7所述的設備,還包括用戶界面,用于接收所述指標中的至少一個 的定義。
11.根據(jù)權利要求7所述的設備,其中,所述指標中的第一個對應于所述網(wǎng)絡會話的 打開的連接的數(shù)目,所述指標中的第二個對應于每個打開的連接的事務平均數(shù)量,所述指 標中的第三個對應于所述網(wǎng)絡會話過程中請求之間的時間分布,所述指標中的第四個對應 于對所述請求的平均服務器響應時間,所述指標中的第五個對應于所述網(wǎng)絡會話所請求的 網(wǎng)頁的數(shù)據(jù)對象的百分比,所述指標中的第六個對應于所述網(wǎng)絡會話過程中的鏈接跟隨行 為,所述指標中的第七個對應于所述網(wǎng)絡會話過程中用戶代理的改變,所述指標中的第八 個對應于網(wǎng)頁cookie處理行為,以及所述指標中的第九個對應于由所述網(wǎng)絡會話的客戶 端設備使用的操作系統(tǒng)。
12.根據(jù)權利要求7所述的設備,其中,由所述攻擊檢測模塊執(zhí)行的所述程序化響應包 括以下至少一個發(fā)送警報;丟棄所述網(wǎng)絡會話的所述數(shù)據(jù)包;向所述網(wǎng)絡會話的客戶端 發(fā)送關閉會話消息;向所述網(wǎng)絡會話的服務器發(fā)送關閉會話消息;阻斷來自所述網(wǎng)絡會話 的網(wǎng)絡設備的連接請求;限制所述網(wǎng)絡會話的速率;隨阻斷所述客戶端的其他網(wǎng)絡會話的 指令向網(wǎng)絡設備發(fā)送所述客戶端的標識符;以及隨阻斷所述服務器的網(wǎng)絡會話的指令向網(wǎng) 絡設備發(fā)送所述服務器的標識符。
13.根據(jù)權利要求7所述的設備,還包括路由器,其中,所述路由器的服務平面包括指 令檢測和預防卡,其包括所述重組模塊、所述機器人檢測模塊以及所述攻擊檢測模塊。
全文摘要
本發(fā)明公開描述了用于確定網(wǎng)絡會話是否由自動軟件代理發(fā)起的檢測惡意網(wǎng)絡軟件代理的技術。在一個實例中,一種諸如路由器的網(wǎng)絡設備包括網(wǎng)絡接口,用于接收網(wǎng)絡會話的數(shù)據(jù)包;機器人檢測模塊,用于基于多個指標計算網(wǎng)絡會話數(shù)據(jù)的多個分數(shù),以根據(jù)多個分數(shù)的合計生成總分,并在總分超過閾值時確定網(wǎng)絡會話由自動軟件代理發(fā)起,其中,指標中的每一個對應于自動軟件代理發(fā)起的網(wǎng)絡會話的特征;以及攻擊檢測模塊,用于在確定網(wǎng)絡會話由自動軟件代理發(fā)起時,執(zhí)行程序化響應。每個分數(shù)均表示網(wǎng)絡會話由自動軟件代理發(fā)起的可能性。
文檔編號H04L29/06GK101883020SQ20101017092
公開日2010年11月10日 申請日期2010年4月29日 優(yōu)先權日2009年4月29日
發(fā)明者克里希納·納拉亞納斯瓦米, 布賴恩·伯恩斯 申請人:叢林網(wǎng)絡公司