專利名稱::高性能網絡內容分析平臺的制作方法
技術領域:
:本發明涉及網絡通信。更具體來講,本發明涉及提供網絡內容分析,以例如用來防止信息泄漏和/或檢測欺詐加密。
背景技術:
:內容掃描總體上講是一種相對發展良好的領域。在大多數應用中,內容掃描是基于關鍵字的;然而,更加高級的應用使用模式匹配/文檔分類的正則表達式或者統計方法。這些方法本身已經被應用于許多文檔分類問題。統計分類器的成功應用的例子是兜售信息(Spam)過濾,其中貝葉斯(Bayesian)分類器顯示出98%的正確率。數字資產保護(例如,防止信息經由網絡信道泄漏)領域是相當新的。迄今為止,一些商業系統借用現有領域的方法和工具,專注于針對存在關鍵字與否對數據進行離線分析。數字資產保護中最有進展的部分是電子郵件掃描器,其充當電子郵件遞送和交換軟件的附加軟件。此領域中的產品提供基于關鍵字的過濾和基于正則表達式(regexp)的過濾,并且關注于防止試圖把攻擊性的或者其它不合適的電子郵件傳遞至公司外部,以保護公司免受可能的訴訟。數字資產保護領域最近開始引起關注,而這特別是因為美國政府的保密倡議(initiative),所述保密倡議例如是以金融機構為目標的“格拉姆-利奇-布利利法案”(Gramm-Leach-BlileyAct,“GLBA”)和用于保健供應商的健康保險便利和義務法案(HealthInsurancePortabilityandAccountabilityAct,“HIPAA”)。例如,信用卡號及病歷的泄漏會給公司造成數百萬美元的債務。因此,這些事件應被制止。
發明內容依照一個方面,本發明提供了一種方法,包括接收網絡數據;根據所述網絡數據重組客戶端-服務器通信會話;并且通過使用(i)基于統計的檢測和(ii)基于關鍵字的檢測中的至少一個來分析所述客戶端-服務器通信會話,以經由所述網絡數據檢測信息泄漏。依照另一方面,本發明提供了一種方法,包括接收網絡通信;通過對所述網絡通信實時地提供至少內容重組、掃描和識別,以防止經由網絡通信進行的數據的未授權和/或惡意地轉送。依照又一個方面,本發明提供了一種方法,包括接收網絡數據;并且通過至少應用多維內容概要分析(profiling)來經由網絡數據防止信息泄漏。依照又一方面,本發明提供了一種具有編碼信息的機器可讀介質,當由機器讀取并且執行時,其實現了一種方法,包括接收網絡數據;根據所述網絡數據來重組客戶端-服務器通信會話;并且通過使用(i)基于統計的檢測和(ii)基于關鍵字的檢測中的至少一個來分析所述客戶端-服務器通信會話,以經由所述網絡數據檢測信息泄漏。依照再一方面,本發明提供了一種具有編碼信息的機器可讀介質,當由機器讀取并且執行時,其實現了一種方法,包括接收網絡通信;通過向所述網絡通信實時地提供至少內容重組、掃描和識別,以防止經由所述網絡通信進行的數據的未授權和/或惡意地轉送。依照又一方面,本發明提供了一種具有編碼信息的機器可讀介質,當機器讀取并且執行時,其實現了一種方法,包括接收網絡數據;并且通過至少應用多維內容概要分析來經由所述網絡數據防止信息泄漏。依照又一個方面,本發明提供了一種裝置,包括用于接收網絡數據的接收器;耦合至所述接收器的處理器,用于(i)根據所述網絡數據來重組客戶端-服務器通信會話,并且(ii)通過使用(i)基于統計的檢測和(ii)基于關鍵字的檢測中的至少一個來分析所述客戶端-服務器通信會話,以經由所述網絡數據檢測信息泄漏。依照又一方面,本發明提供了一種裝置,包括用于接收網絡通信的接收器;以及耦合至所述接收器的處理器,用于向所述網絡通信實時地提供至少內容重組、掃描和識別,以防止經由所述網絡通信進行的數據的未授權和/或惡意地轉送。依照又一方面,本發明提供了一種裝置,包括用于接收網絡數據的接收器;以及耦合至所述接收器的處理器,用于通過至少應用多維內容概要分析來經由所述網絡數據防止信息泄漏。圖1描述了網絡內容分析平臺的一個實施例的框圖;圖2描述了圖1的分組捕獲的一個實施例的框圖;圖3描述了圖1的分組捕獲的一個實施例的流程圖;圖4描述了圖1的IP碎片整理程序(defragmenter)的一個實施例的框圖;圖5描述了IP碎片整理程序空閑描述符鏈的一個實施例;圖6描述了IP碎片整理程序描述符時期鏈的一個實施例;圖7描述了IP碎片整理程序會話描述符結構的一個實施例;圖8描述了圖1的IP碎片整理程序的一個實施例的流程圖;圖9描述了圖1的TCP重組器的一個實施例的框圖;圖10描述了TCP重組器空閑會話與有效負載鏈的一個實施例;圖11描述了流轉換圖的一個實施例;圖12描述了TCP會話轉換圖的一個實施例;圖13描述了TCP會話時期鏈的一個實施例;圖14描述了TCP會話環形緩沖區的一個實施例;圖15描述了TCP有效負載鏈的一個實施例;圖16描述了圖1的TCP重組器的一個實施例的流程圖;圖17描述了圖1的內容解碼器的一個實施例的流程圖;圖18描述了內容解碼樹的一個實施例;圖19描述了自動關鍵字發現工具的一個實施例的流程圖;圖20描述了圖1的關鍵字掃描器的一個實施例的流程圖;圖21描述了自動內容概要分析器工具的一個實施例的流程圖;圖22描述了超平面計算的一個實施例的流程圖;圖23描述了圖1的多維內容概要分析掃描器的一個實施例的流程圖;圖24描述了輸出得分計算的一個實施例的流程圖;圖25描述了內容掃描器有限狀態自動機的一個實施例;圖26描述了圖1的欺詐加密檢測器的一個實施例的流程圖;圖27描述了圖1的進程管理器的一個實施例的框圖;圖28描述了圖1的事件假脫機程序的一個實施例的框圖;圖29描述了圖1的事件假脫機程序的一個實施例的流程圖;圖30描述了圖1的TCP限制器(killer)的一個實施例的框圖;并且圖31描述了圖1的TCP限制器的一個實施例的流程圖。縮語列表GLBA格拉姆-利奇-布利利法案(GrammLeachBlaileyAct)HIPAA健康保險便利和義務法案(HealthInsurancePortabilityandAccountabilityAct)IP網際協議(InternetProtocol)TCP傳輸控制協議(TransportControlProtocol)DF數字指紋識別(DigitalFingerprinting)HTML超文本標記語言(HypertextMarkupLanguage)FSA有限狀態自動機(FiniteStateAutomata)PDF便攜式文檔格式(PortableDocumentFormat)HTTP超文本傳輸協議(HyperTextTransferProtocol)FTP文件傳輸協議(FileTransferProtocol)XML可擴展標記語言(extensiblemarkuplanguage)SSN社會安全號碼(SocialSecurityNumber)OS操作系統(OperatingSystem)API應用編程接口(ApplicationProgrammingInterface)NIC網絡接口卡(NetworkInterfaceCard)FD全雙工(FullDuplex)SPAN交換端口分析器(SwitchedPortAnalyzer)CPU中央處理單元(CentralProcessingUnit)SMP對稱多處理(SymmetricMulti-Processing)IPC進程間通信(Inter-ProcessCommunication)DoS拒絕服務(DenialofService)PCAP分組捕獲(PacketCapture)PLR分組丟失比率(PacketLossRatio)RAM隨機存取存儲器(RandomAccessMemory)FDC空閑描述符鏈(FreeDescriptorChain)SMTP簡單郵件傳送協議(SimpleMailTransferProtocol)MCP多維內容概要分析(Multi-dimensionalContentProfiling)MIME多用互聯網郵件擴展(Multi-purposeInternetMailExtension)TAR磁帶存檔(TapeArchive)AKD自動關鍵字發現(AutomaticKeywordDiscovery)AIR告警信息記錄(AlertInformationRecord)DRM數字權利管理(DigitalRightsManagement)ACP自動內容概要分析器(AutomaticContentProfiler)FIFO先進先出(FirstIn-FirstOut)VM虛擬機(VirtualMachine)ASCII美國標準信息交換碼(AmericanStandardCodeforInformationInterchange)CCN信用卡號碼(CreditCardNumber)VPN虛擬專用網絡(VirtualPrivateNetwork)RED欺詐加密檢測器(RogueEncryptionDetector)SSL/TLS安全套接字層/傳輸層安全(SecureSocketLayer/TransportLayerSecurity)NCAP網絡內容分析平臺(NetworkContentAnalysisPlatform)MUTEX互斥鎖(Mutually-ExclusiveLock)UDP用戶數據報協議(UserDatagramProtocol)ACL訪問控制列表(AccessControlList)SNMP簡單網絡管理協議(SimpleNetworkManagementProtocol)ROM只讀存儲器(Read-OnlyMemory)具體實施方式幾乎每個組織都在其網絡上維護有價值的信息,例如包括患者記錄、顧客信用卡號碼、化學配方和/或顧客列表。在近6年中,大約有百分之二十的被調查組織承認遭受過專有信息的網絡盜竊。那時,他們所報告的經濟損失已經增加了850個百分點,使得專有信息失竊成為因計算機濫用而造成經濟損失的最大來源。各組織可以使用間接的方法——基本的網絡安全措施,諸如黑客防備、軟件補丁、用戶認證和物理安全措施之類——來保護他們的數據。更直接的方法是例如單獨和或與一種或多種間接方法結合來監視數據自身流(例如,外發數據流)。本發明的一個實施例提供了一種用于監控并且防止信息流(例如,外發數據流)的方法。所述信息可以包括敏感信息、私人信息和/或諸如知識產權的數字資產。所述方法可以捕獲網絡通信量,并且例如實時和/或離線地提供內容掃描和識別。所述方法可用來檢測和/或防止(i)數據的未授權移動、(ii)信息的泄漏和/或(iii)數字資產的批量轉送。所述數字資產可能包括顧客列表、客戶和患者記錄、金融信息、信用卡號碼和/或社會安全號碼。所述方法可以重組完整的客戶端-服務器對話流,應用解碼器和/或解壓器,和/或使用一個或多個內容掃描器來分析得到的數據流。所述一個或多個內容掃描器可包括多維內容概要分析、加權的上下文內的關鍵詞和/或數字指紋識別。所述方法還可以執行處理單獨網絡分組的深層分組檢查。所述方法還可以提供一層或多層的內容解碼,其例如可以“剝離”通用壓縮、聚合、文件格式和/或編碼方案,并且可以以適于處理的形式來提取實際內容。另外,所述解碼器可以揭露出諸如電子郵件附件之類的隱藏的傳送機制。所述方法可以概要分析(例如,統計的和/或關鍵字概要分析)數據并可對數據的外流進行檢測,即使數據已經從其原始形式和/或文檔類型進行了修改。所述方法還可以檢測未授權的(例如,欺詐)加密會話并且停止被認為是惡意的數據轉送。所述方法可以對實時網絡通信量(例如,包括1Gbps的網絡)進行操作,并且允許例如構建一個具有全雙工能力的(例如,一個或多個Gbps)機器來防止信息的未授權轉送。多維內容概要分析可以捕獲文檔(例如,文本、二進制數據、數據文件)的特性,并且可以容許文檔生命周期中常見的變化編輯、分支為若干獨立的版本、類似文檔的集合等。其可以被視為關鍵字掃描和指紋識別的后繼,并且可以結合兩種技術的能力。關鍵字掃描是文檔分類的相對有效并且用戶友好的方法。它基于一組非常特定的字,在文本中進行逐字匹配。用于掃描的詞典包括不適合用于通信的字、用于機密項目、產品和/或進程的碼字以及那些不依賴于它們的應用上下文就能引起懷疑的其它字。匹配可以由基于逐集合(setwise)字符串匹配算法的單次匹配器來實現。正如任何人都熟悉的Google所證實的那樣,關鍵詞搜索的信噪比可以從好變為無法接受,這取決于關鍵詞本身的獨特性以及關鍵詞和它們被期望表達的概念之間映射的正確性。數字指紋識別(“DF”)能夠以接近零的假陽性(falsepositive)率正確地指出某一文檔和/或數據文件的確切復制品。所述方法可以通過安全散列算法(例如,SHA-1和MD5)來計算消息摘要。DF可以檢測特殊數據文件的未授權復制和/或驗證文件沒有被篡改。由于DF對內容中較小改變的高靈敏度,幾乎沒有任何什么例如構成機密信息和知識產權的實際生活中的數據集被及時“凍結”并且只能夠依照原始形式來利用,所以很少將DF應用于外泄檢測問題。不完整的信息(例如,部分文檔)或者采用不同形式的相同信息(例如,作為HTML發送的Word文檔)或者具有額外標點字符的相同文檔可以通過基于DF的檢測器而完全不被察覺。盡管存在這些缺陷,作為用于析出內容中一些變化(例如,大小寫折疊、空白規范化、詞序規范化、單詞多形態、使用SOUNDEX代碼而不是字)的某些方法的上面的第二層,DF仍可能是十分有用的。內容概要分析可以包括用于識別屬于某一文檔類別的文檔的一種或多種技術。同一類別中的文檔共享類似的統計特征,這些統計特征是在諸如概要分析之類的制備過程中被確定的。概要分析可以利用屬于所述類別的有代表性的文檔集合(正面學習集合),附帶類似于但不屬于所述類別的文檔(負面學習集合)。對于一個類別,該概要分析進程可以只執行一次;統計特征的最終集合(例如,概要圖(profile))可用來測試該類別中的成員。概要圖的質量可能依賴于概要分析算法捕獲屬于該類別中所有文檔所公有的特性的能力;它可以使用不同本性的多個無關特性來進行改善。每一特性可以定義一個維度(例如,隨著文檔的不同而變化的定量測度)。安全設備的內容概要分析可使用多個不同的特性(例如,400個以上的不同特性),這些特性可以實時地計算出以用于數據通過網絡。通過所述網絡的每個文檔可以被映射至多維空間中的單個點;其在此空間中的位置可用來計算類別成員(例如,一個以上類別中的成員可以被識別)并且觸發告警和/或反應措施。內容概要分析方法已經由密碼分析學使用了幾個世紀了;古羅馬人就知道基于個體字母頻率變化的簡單分析方法。雖然所述簡單分析方法仍有價值,但是當補充了針對諸如詞和句的較大元素進行操作的高級統計法時,簡單的統計特性能夠更好地工作。多維概要分析器可以利用多個(例如,200左右)低級統計測度來進行操作,而剩下的測度都是高級統計測度。高級統計測度可以考慮到某些通用問題領域(例如,保護涉及個人健康記錄、銀行帳戶信息、顧客列表、信用卡信息、郵寄地址、電子郵件、個人歷史等的機密個人信息)來設計;可以通過添加新的領域特有的維度使所述高級統計測度把其它領域重新確定為目的。除了用于概括給定元素的總體用法的個體高級和低級特性以外,所述概要分析器可以具有專用于文檔的空間結構的多個(例如,100個以上)維度,包括元素之間的互相共現和布局。舉例來說,所述概要分析器可以在郵政編碼緊跟州名且彼此交錯的一些郵政地址中獲知州名和郵政編碼具有非常類似的頻率。空間分析可用于捕獲文檔的整體結構;具有和目標類別相似的使用模式的索引、詞典以及其它類型的文檔都不能輕易地欺騙它。概要分析一個學習文檔集合可以生成與所述集合中的文檔數目一樣多的位于多維屬性空間中的點。每一點可以表示個體文檔(或者文檔的片段),并且可以被標記為“+”(在類別中)或者“-”(不在類別中)。最終的學習動作可以計算出所述屬性空間的最簡單劃分,而該劃分以最小的重疊程度將“+”和“-”點分開。該劃分可以基于有限狀態自動機(“FSA”)被自動地“數字化”為數據驅動算法,所述有限狀態自動機可以充當快速單次掃描引擎,該引擎能夠以高置信度和有線速度來識別出“位于人群中的臉”。所述方法可包括如下一些個體的或組合的特征·在分組級上監控網絡通信量以便識別并防止數據外泄(例如,公司數據);·關注于諸如顧客列表、客戶端和患者記錄等的數字資產的‘大塊’轉送;·基于實時網絡的,例如具有最小配置要求;·TCP會話重組;·揭露出并分析通信的所有層面(例如,PDF、以太網、IP、TCP、HTTP);·用于數據轉送的所有流行協議(例如,電子郵件、FTP、HTTP)的多級解碼;·對嵌套數據層(例如,附件、ZIP存檔)的深度檢查·對流行數據格式(例如,MSWord、MSExcel、HTML、XML、純文本)的檢查;·基于統計的和/或關鍵字的檢測;·用于自動概要分析和關鍵字發現的一個或多個工具,以便使所述方法的行為適合本地數據;·例如考慮文件結構的多維分析;·用于統計分析的域特有的高級特征(例如,SSN、信用卡號碼、郵政地址、電子郵件地址);·實時關閉非法通信的及時反應;和/或·欺詐加密(例如,未授權的加密的通信信道)檢測。可以把這些特征的一個或多個并入到網絡應用中。所述應用可以是自含的、關注任務的,和/或使得建立并加強涉及公司數字資產的一組網絡使用策略成為可能。所述方法例如可以被安裝在現成(off-theshelf)的Linux操作系統(“OS”)和基于Intel的硬件上,并且可以允許所述應用起到單機網絡應用的作用。所述方法可以使用Linux系統API來進行網絡分組捕獲。所述方法還可使用Linux特有的實時調度工具和標準的UNIX進程間通信(“IPC”)信道。所述方法還可使用UNIX聯網API來用于通用管理目的(例如,配置、向遠程控制臺發送告警信息)。所述方法還可以利用一個或多個網絡接口卡(“NIC”)來進行分組捕獲。所述NIC未必完全由OS(例如,沒有分配的IP地址)激活,并且可以用于“混雜”模式。所述方法例如可以在FD/SPAN模式中監聽任意數量的NIC。所述方法的多個實例還可以運行于所述應用上。所述方法可以包括TCP會話限制器模塊,用于拆掉惡意的TCP會話,并且可以使用獨立的NIC來把分組注入到指定的網絡段中。可以利用所述方法來對機器可讀介質(例如,CD)進行編程,所述機器可讀介質例如可被安裝在任何運行于配備奔騰IV和/或更高CPU的PC硬件上的Linux7.3+上。可以使用千兆比特IntelNIC進行網絡探測。所述應用可以包括64位PCI/X總線以及相應的IntelPro64位1Gbps卡。應用安裝可以包括三個動作·安裝硬化的Linux內核以及必要的Linux公用程序集合;·依照所述方法安裝軟件;和/或·配置/調試軟件以便符合特定硬件配置。圖1舉例說明了包括若干模塊的系統(例如,平臺)的一個實施例。所述系統可以適用于各種應用,例如訪問包括TCP/IP網絡數據交換內容的所有網絡通信層。所述系統能夠例如使用日用硬件(例如,具有千兆比特NIC的多處理器Intel/Linux盒)來對完全飽和的千兆比特通信進行操作。所述系統可以是可擴展的,并且可以通過把網絡探測和分析應用分解為經由IPC通信的多個模塊,以允許有效利用對稱多處理(“SMP”)配置中的一個或多個CPU。所述系統提供對網絡數據交換的有效并且準確的重構。所述系統可以(1)例如借助于依照混雜模式操作的網絡接口卡來獲取穿過所述網絡的個體分組,(2)解碼所述分組(例如,IP)以揭開底層傳輸層,(3)合并成為碎片(fragment)的分組,(4)跟蹤正在進行的雙向數據交換(例如,會話),并且,對于TCP會話,(5)重組每一數據會話的兩側,使它們的整個內容可由內容分析層利用。這種重構因若干因素而變得復雜。所述因素之一是速度現代聯網設備支持最新的千兆比特以太網標準,因此許多網絡段在達到700-800兆位秒或者更高的有效速度上操作。為了跟上這種連接,探測組件需要足夠快,以便捕獲每個分組并有足夠的時間來分析其內容(例如,單獨地或者作為會話的一部分)。另一個因素是準確性作為一種被動應用,探測器未必具有重構所有情況下的所有通信所需的全部信息(而為了實現這這點,它應該有權訪問通信主機的內部狀態)。如果探測器分析全雙工流或者不對稱地路由通信(若干相關的網絡流可能經由獨立的NIC獲取并且被作為單個通信信道來進行分析),那么情況會變得更加復雜。對于此問題而言,現有開放源和專用解決方案在許多方面存在不足。所述有效方案依賴于專用設備,諸如IBM的PowerNP網絡處理器;那些無效方案太慢且不精確而不能用于實際的高速網絡環境。解決此問題的系統甚至未必依賴任何專用設備。所述系統可以例如以千兆比特的速度提供分組探測、碎片整理、解碼、IP和TCP會話跟蹤、重組和/或分析層2-7。另外,所述系統可以包括具有臨時事件存儲設備和事件假脫機程序的統一事件處理后端。所述系統可以被設計成能利用多個CPU,以便為內容分析算法提供可擴展性。這種可擴展性可以通過將整個應用分解為多個模塊并且經由靈活的IPC機制連接它們來實現,該機制適用于所述給定配置。所述平臺的API可以包括用于連接處理模塊的如下方法·內嵌。可以把分組分析器連同框架一起編譯為相同的可執行狀態,并且在主要的分組處理周期中采取時間共享。此方法可以適用于單處理器硬件。·分組級并行。在例如通過IP和TCP重組器解碼并初始處理后,使得所述分組可用于使用循環隊列對獨立進程進行進一步的分析。例如,可以把一個或多個(例如,高達32個)外部分析器附屬于單個隊列。選項還可以包括建立若干獨立隊列,在它們之間具有輪轉(round-robin)分組分布。和/或·流級并行。TCP流重組器可以把重組的流數據置于循環流隊列中。此隊列可服務于被設計來分析整個客戶端-服務器會話內容的程序。例如,可以把一個或多個(例如,高達32個)外部分析器連接至單個隊列。同時,可以配置多重隊列,在它們之間具有輪轉分布。內嵌和外部內容分析組件都可以例如通過經由基于消息的API調用中心事件處理組件來生成事件。所述事件處理組件可以依照正常的優先級運行于獨立的進程;它可以從輸入隊列中獲得事件并且可以把它們寫入臨時文件存儲設備。永久性事件存儲設備可用來以最小的信息損失經受住網絡故障。所述事件處理組件可以被設計成能最小化拒絕服務(“DoS”)攻擊探測器自身的可能影響。它可以通過把整個系列事件壓縮為一個“組合”事件來對一系列相同的或者相似事件作出反應,所述“組合”事件以壓縮形式來存儲全部信息;對于相同的事件而言,所述組合事件可以包含來自單個事件的信息以及事件計數。通過事件處理器收集的信息可以例如通過事件假脫機組件發送至其目的地(例如,諸如數據挖掘控制臺的獨立的事件分析組件)。當新事件被寫入假脫機目錄時,所述事件假脫機程序可以跟蹤新事件。每一新事件可以被加密并且發送至一個或多個目的地。所述事件假脫機程序可以作為獨立的低優先級進程來運行。分組捕獲分組捕獲模塊的一個實施例(例如,參見圖1)可以被配置來用于快速并且可靠的分組捕獲和/或是千兆比特能力的網絡探測器。依照單NIC半雙工模式,所述分組捕獲模塊在常備硬件(例如,具有千兆比特IntelNIC的Linux/Intel盒上的libpcap)上可以提供2倍于常規分組捕獲方法的速度。此加速可以通過將耗時的活動保持在最少程度,而留有更多時間進行分組處理來實現,所述耗時活動諸如硬件中斷、系統調用和數據復制。實際生活中的網絡通信是變化多樣的。常見的分組大小分布趨向于最大約80字節和1500字節。一段時間內的分組速率分布可能會很不均勻。不同于合法的目的主機,網絡探測器可能沒有能力依其所需來協商分組速率。因此,可以將其設計成能夠為正被探測的通信提供足夠的緩沖,并且同樣,每一分組提供一個相當規模的處理窗口。每一硬件中斷都可能產生上下文切換,其是現代IntelCPU上的非常昂貴的操作。為了使中斷保持最小值,所述分組捕獲模塊可以利用定制的IntelNIC驅動器以充分利用IntelNIC的延遲中斷模式。可以利用最新Linux內核所支持的分組套接字模式(例如,PACKET_RX_RING套接字選項)的所謂“渦輪”擴展來減少系統調用次數。當將其使用至最大潛能,修改的驅動器和渦輪模式可以提供對NIC數據緩沖區的盡可能快的訪問;100%能力的輪詢導致每一捕獲分組只產生約0.001次(被分攤的)中斷/系統調用。為了處理通信中的瞬間電涌,所述分組捕獲模塊可以為分組緩沖區分配若干兆字節。大型緩沖區還可以減少由IP碎片整理程序和TCP重組器引起的不規則延遲所導致的的分組丟失。所述分組捕獲模塊可以使用多個NIC依照FD/SPAN模式進行操作,為完全的會話重組提供支持。來自依照混雜模式操作的多個NIC的分組可以通過同時輪詢若干分組緩沖區而交錯。所述輪詢策略未必引入附加的上下文切換或者系統調用;每個緩沖區都可能獲得輪詢機會。所述分組捕獲模塊可以被實現為若干需要時加載的動態庫。所述“通用目的”庫可處理任意數目的NIC。還有具有被優化來用于1(HD模式)和2(FD模式)NIC的硬編碼參數的版本。編程API類似于PCAP(由于功能上的差異,要做到完全兼容是不現實的)。所述通用目的庫可以接受具有多個接口的接口初始化字符串(例如,“eth1∶eth3∶eth5”)。對面向TCP模型的實際通信和模擬通信的分組到達時間分布的測量表明,對分組緩沖和拾取的改善使用于分組處理的時隙平均增加了20%。對于相同的通信量,這使得在0.5-1千兆位秒區域中的分組丟失率(“PLR”)下降了30%-50%,由此允許傳感器在相同的PLR截至(cut-off)和通信飽和水平的情況下能夠處理1.5倍或更多的負載。所述分組捕獲模塊(例如,參見圖2)可以被配置為利用Linux高速網絡捕獲接口。此接口可以在NIC驅動器空間內分配環形緩沖區,并且將它直接映射到接收方的進程,由此消除了用于把數據從內核復制到目的進程的系統調用開銷。環形緩沖區的附加優勢是它有效地消除了網絡通信中的電涌以及分組處理中的延遲。所述分組捕獲模塊可以使用C語言以需要時加載的動態庫形式實現。可以有三個庫,并被優化來與1個NIC、2個NIC以及任意數量的NIC一起使用。分組捕獲模塊API所述分組捕獲模塊可以使用標準UNIX動態庫接口來實現。該接口可作為需要時加載的動態庫在所述分組捕獲模塊中使用。存在有若干分組捕獲模塊庫,且針對不同數目的NIC(例如,1、2、用戶指定數目)進行優化。例如除了期望包含特定數目NIC名稱的特定格式的字符串的初始化調用之外,所述分組捕獲模塊API在所有場合中可以是一樣的。所述分組捕獲模塊可以導出如下函數·void*init(char*iface,char*errbuf,char*nr_blocks)○ifaceNIC名稱字符串,類似“eth1”。在多個接口的情況下,iface字符串看起來像如下“eth1∶eth3∶eth2”○errbuf指向調用者提供的錯誤緩沖區的指針,例如不少于512字節○nr_blocks將由NIC驅動器分配的所請求的塊數量。如果nr_blocks是0,那么請求默認值。·voidfini(void*handler)○handler由相應init()函數返回的值·voidstat(void*handler,pc_st*stat)○handler由相應init()函數返回的值○stat統計數據結構·intlinktype(void*handler)○handler由相應init()函數返回的值·intloop(void*handler,pc_catcher_t*func,char*arg)○handler由相應init()函數返回的值○func用于接受分組數據的用戶特有的函數的地址○arg將向下傳至func()的可選參數分組捕獲模塊初始化方法可以加載分組捕獲動態庫并且調用其init()函數。此函數可以為NIC名稱解析輸入串,對于每個發現的NIC名稱,此函數可以執行如下操作·創建分組套接字·請求NIC驅動器來分配具有指定大小的環形緩沖區;·把得到的緩沖區映射至其存儲空間;和/或·初始化內部緩沖區標識器,該內部緩沖區標識器用于指向緩沖區片段的開始。在初始化之后,所述方法(例如,參見圖3)可以調用loop()函數。loop()函數可以在所述方法的生命周期內工作,例如直到出現致命錯誤或者所述方法接收到終止信號為止。loop()可以依照輪轉的方式來輪詢NIC緩沖區。可以通過檢驗由驅動器(例如,參見圖2)初始化的控制字段來驗證每一緩沖區的當前片段是否已準備好數據。如果在所述片段中沒有可利用的數據,那么可以檢驗下一個NIC緩沖區。如果所有緩沖區是空的,那么loop()可以例如使用poll()系統調用來懸掛(suspend)所述方法。當新的數據變為可用或超時(例如,一秒的超時)之后,無論哪一個首先到來,所述方法都可以恢復。在超時的情況下,用戶指定的函數可以利用NULL參數來調用。這對于任務是監視通信缺失的某些分組處理器來講是有用的。在用戶函數被調用之后,可以經由poll()再次懸掛所述方法。在可用數據的情況下,所述方法可以檢驗由poll()返回的結果,以便查看目前哪個NIC緩沖區具有數據并且可以直接跳轉至該緩沖區的最近檢驗的片段,過后恢復正常的緩沖區輪詢過程。如果poll()被通知存在約一個以上就緒緩沖區,那么所述方法可以根據保存的緩沖區索引來恢復正常過程。當所述方法發現退出的理由時,分組捕獲模塊可以停止。來自分組捕獲API的所述fini()函數可以關閉控制套接字。UNIX標準進程退出過程可以關閉所有通信信道并且回收由所述方法使用的所有存儲器。因此,可以不必調用fini()。IP碎片整理程序IP碎片整理程序的一個實施例(例如參見圖1)可以被配置為滿足網絡探測器的特定要求。在通信合法且碎片稀少的假定下,已經設計出多用途的IP碎片整理程序。充當分組檢查應用基礎的網絡探測器可能不得不在重負載下工作,并且在存在DoS攻擊的情況下保持穩定。除提供快速的和/或魯棒的分組重組外,它還可以例如當非法碎片一到達時就檢測到并對非法碎片作出反應。因此所述分組檢查應用可包括低反應延遲且能對抗專門設計來降低‘標準’IP堆棧的攻擊。用于網絡探測器的IP碎片整理程序可以提供如下可配置的選項最小碎片大小、每一分組的碎片的最大數目、最大重組的分組大小、分組重組超時等。所述IP碎片整理程序可以被配置為在任何碎片順序下同樣好地執行。所述碎片整理程序可以包括低每-碎片開銷,并且可以關注每-碎片(和/或每-分組開銷)以便處理DoS攻擊,所述DoS攻擊利用非法的和/或隨機重疊碎片來泛洪(flooding)網絡。可以通過降低初始化/完成階段的成本和/或在碎片之間分布所述處理(例如,均勻地)來實現每-碎片開銷的最小化。因此,可以在處理中及早識別無效的碎片流,并且幾乎沒有時間會花費在第一無效碎片后的所有碎片上。最小化初始化/完成時間還可以積極地影響碎片合并程序對很短碎片的性能,所述很短碎片用在以安全裝置為目標的某些DoS攻擊中。這種改善可以歸因于更好地利用了由NIC和分組捕獲庫提供的緩沖能力。所述碎片整理程序可以提供例如1千兆位秒(Gbps)以上的吞吐量,并且例如對于大無效碎片可以達到19Gbps。針對無效的碎片,碎片整理程序的早先無效碎片檢測可以導致6折性能增益。IP碎片順序對IP碎片整理程序的性能沒有影響。對比來看,Snortv2.0的碎片整理程序平均比IP碎片整理程序的性能慢3倍。小碎片和/或無效碎片上的低吞吐量是瓶頸,它會影響整個分組檢查應用用于處理重負荷并且對抗千兆比特網絡上的DoS攻擊的能力。IP碎片整理程序的一個實施例(例如,參見圖4)可以被配置為準確的并且高速的IP分組碎片整理程序。對于每個來自分組捕獲模塊的網絡分組,IP碎片整理程序的子例程可以被調用一次。所述子例程可以為IP碎片屬性而檢驗分組。如果發現了該屬性,那么所述分組可以被視為碎片并且可以被發送至碎片處理/重組子例程。所述碎片還可以發送給下一處理器模塊——類似SNORTRAN的分組處理器需要掃描所有接收的分組,包括碎片。在成功重組之后,所述重組的IP分組可以被提交以便進一步處理。認為不良的和/或不滿足獨立配置要求的IP碎片例如可以使用告警機構被報告。IP碎片整理程序還可以使用統計存儲器池來計數接收到的碎片、整理碎片后的分組、生成的告警等。IP碎片整理程序配置參數所述IP碎片整理程序可以接受如下的配置參數·mempool設置存儲器池的大小和相應散列表大小。值可以是小、中、大、巨大。·maxsize設置“合法”重組IP分組的最大長度。如果重組的長度大于指定的值,那么所述IP碎片整理程序可以生成告警并且解散所述分組。默認值可以是10KB。·minsize設置“合法”重組IP分組的最小長度。如果重組的長度小于指定的值,那么所述IP碎片整理程序可以生成告警并且解散所述分組。默認值可以是1000字節。和/或·timeout設置IP分組重組的超時。如果用于此特殊分組的重組時間超出指定值,則所述IP碎片整理程序可以生成告警并且解散所述分組。默認值可以是30秒。IP碎片整理程序初始化過程IP碎片合并程序的初始化子例程ipdefrag_init()可以在啟動期間被調用。所述子例程可以讀取配置文件并分配碎片整理程序會話描述符池及相應的散列表(大小可以在配置文件中設置)。所述IP碎片整理程序在分組處理階段不必動態分配存儲器所有請求的資源可以在初始化階段被預先分配。為了改善性能,所分配的存儲器可以例如通過使用Linuxmlock()系統調用而被排除在調換之外。在調用mlock()之后,可以使用bzero()調用來初始化所分配的存儲器,以便確保所有必需的頁被載入存儲器并被鎖定在那里,因此在分組處理階段不會出現頁錯誤。可以以超級用戶的權限調用ipdefrag_init(),以確保mlock()調用成功。在分配后,來自所述池的所有會話描述符可以被順序地插入單向空閑描述符鏈中(例如,參見圖5)。此鏈可以在分組處理階段由分配和解除分配(de-allocation)子例程使用。IP碎片整理程序的分組處理的一個實施例(例如,參見圖8)可以包括入口點ip_defrag(),每當新的分組數據來自分組捕獲模塊時,它將被調用。ip_defrag()可以檢驗所述分組具有IP碎片屬性,例如,MF標志和/或碎片偏移量不為零。如果分組被認為是IP碎片,那么其長度可以被驗證除最后一個之外的所有IP碎片可以具有可由8除盡的有效負載長度。可以為錯誤長度的碎片生成告警;此后,這種碎片可以被忽略。如果到來分組還沒有被識別為IP碎片,那么ip_defrag()可以在描述符時期鏈中最舊的元素(例如參見圖6)中檢驗超時的元素,如果找到,則解除分配它們。所述解除分配子例程可以重置碎片整理程序會話描述符,從散列表和描述符時期鏈(例如,參見圖6)中將其移除,并且將其置于空閑描述符鏈的開始(例如,參見圖5),并調整空閑描述符鏈(“FDC”)變量。否則,碎片的IPid及其協議、源和目的地地址可被用來計算散列值以存取到來碎片的會話描述符。如果沒有發現針對該碎片的會話描述符,則分配一個新的。分配子例程可以從FDC變量所指向的空閑描述符鏈的首部獲取描述符(參見圖5);然后把FDC切換至鏈上的下一描述符。可以把最新分配的描述符的參考插入兩個位置中·使用計算出的散列值的散列表;和/或·雙向描述符時期鏈,作為“最新”項,調節變量TC_young(參見圖6)。如果所述空閑描述符鏈為空,那么來自統計共享池的分配失敗計數器可增加,并且來自描述符時期鏈的最舊的描述符可被重新使用。這可以確保·所述方法可以處理資源短缺而不會崩潰;和/或·新IP分組可以具有比舊IP分組更高的優先級。在現代網絡中,30秒IP重組超時是很少的,并且通常表明惡意活動。碎片整理程序會話描述符(例如,參見圖7)可以包括兩個部分控制數據和有效負載緩沖區。來自到來IP碎片的有效負載數據可以被復制到相應會話描述符的有效負載緩沖區中。所述描述符中的IP偏移位掩碼中的標志可以被設置來準確地識別重組IP分組中的哪些8字節塊被復制。攜帶已被標記的塊的任何新IP碎片可以產生告警。相應的碎片整理程序描述符可以被標記為不良的。屬于不良描述符的每個后續碎片可以被忽略。如先前描述的那樣,不良描述符最終可以被解除分配(例如,當其超時期滿時)。該法可允許·甚至在發送告警之后也可以識別惡意的IP碎片(淚滴(teardrop)攻擊等等)。·對每個惡意會話只生成一個告警;和/或·惡意的IP碎片不會導致空閑描述符鏈中資源短缺。由碎片整理程序會話描述符所涉及的重組IP分組可以被認為是完整的,如果·所有碎片被復制(例如,在IP偏移位掩碼中沒有間隙);·最后IP碎片被接收;和/或·重組有效負載的最終長度等于來自相應會話的所有有效負載碎片的總和。必要時,重組分組可以接收新的IP和層4校驗和。此后,將其發送至流水線的其余部分以用于進一步處理。當完成分組遞送時,相應的碎片整理程序會話描述符可以如上所述被解除分配。TCP重組器TCP重組器的一個實施例(例如,參見圖1)能夠進行幾千兆比特的數據處理。它例如可以向諸如內容掃描和加密檢測的模塊饋送重組的網絡數據。它還可以向已處理的每一網絡分組指派TCP流屬性,以使深度分組檢查模塊可以分析所述分組。所述TCP重組器可以跟蹤TCP會話,保存描述每一開放會話的信息列表和/或連接屬于會話的分組,以便使客戶端和服務器流的整個內容可以被傳遞至內容檢查的上級。TCP重組器可以提供多層重組和內容檢查。只處理全雙工連接的一側和/或重組數據流內的任意區域以便改善概率檢測器的概率的類似“深度”分組檢查的部分解決方案未必是足夠的。TCP重組器可成熟到足以處理現實分組流的復雜性。分組檢查員的重組器所面對的問題與TCP/IP棧的那些十分不同通過依照混雜模式的探測器NIC看到的分組不是依照所期望的順序到來的,因此傳統的狀態圖很少被使用;標準超時由于抽頭和路由器所引入的各種延遲而需要被調節;在分組流中未必有足夠的信息來計算客戶端和服務器等的內部狀態等。用于分組探測器的TCP流重組器可以在例如好于任何“標準”TCP/IP棧的現代網絡的苛刻環境下操作。所述TCP重組器可以包括TCPSYN防洪、存儲器過載保護等。用于分組探測器的所述TCP/IP流重組器可以是快速的。所述TCP重組器可以被耦合至分組捕獲層,以允許它同時監控任意數目的NIC和/或交錯從不同網絡流中取出的數據。所述分組捕獲層可以允許可靠地重組諸如全雙工TCP流的客戶端和服務器數據和/或非對稱路由的分組,其中每個流可以取決于會話控制信息的其它流。所述TCP重組器可以依照一個或多個模式操作·只跟蹤會話。此模式適合于只須跟蹤TCP分組的方向(例如,客戶端至服務器或服務器至客戶端)和有效性的應用。在SMP設置中,使得方向信息可由接收方應用經由分組級API得到。·會話跟蹤和部分TCP流重組。客戶端-服務器會話的初始部分可以被收集在緩沖區中,所述緩沖區通過可配置的截止值來限制。在SMP設置中,使得所述重組的流可由接收方應用經由流級API得到。可以為用于記入包含惡意分組的TCP會話的初始碎片的應用配置此模式。對于會話的服務器部分來說,默認截止值可以是8KB,對于客戶端部分來說,默認截止值是8KB。和/或·會話跟蹤和高級TCP流重組。客戶端-服務器會話可以被收集到預先分配的緩沖區鏈中。依照默認,每個會話可以收集最多1600KB(例如,每一方向800KB)。大小參數是可配置的并且可以根據需要增加。在SMP設置中,重組的流可以為接收方應用所獲得。長TCP會話中常見的“TCP序列跳躍”效應可以被監視到并且與惡意的和/或窗口外的分組加以區別。此模式可以例如為這樣的應用遞送流重組,在所述應用中,重組的流被進一步逐層的分解/解碼并且對內容進行分析。TCP重組器可以基于令人想起馬爾可夫網絡的簡化的狀態轉換圖。每一套接字對可以被映射至獨立的有限狀態自動機,有限狀態自動機通過基于到來分組的類型、其序號、及其相對于最新“基點”的時序(例如,先前分組或者對應于密鑰變換的分組)從一個狀態切換至另一個狀態來跟蹤會話。由于重組器可能不得不處理不合適的分組(例如,應答分組之后到來的請求分組),所以轉換未必僅僅依賴于分組類型。在每一狀態,自動機可以保存對會話的實際狀態可能處于的若干“猜測”,并且可以基于到來分組來選擇“最好”的一個。無論哪一個“猜測”可以更好地預測分組的出現,都可以將其作為觀察到的會話狀態的“最好”特征,并且可以為下一動作形成新的“猜測”。所述TCP重組器還可以包括硬編碼的規劃和轉換;允許編碼優化的固定并且內嵌替代的參數。對于正常通信量,最終的重組器可以包括1.5-2Gbps(或更多或者較少)的平均吞吐量。當平均分組長度是80字節時,在特別制備的SYN泛洪/DoS攻擊上,它可以一直到250Mbps。所述TCP重組器足夠快以至于能夠處理完全飽和的1Gbps的通信量。與SMP配置中的第二CPU上運行的獨立的分組級檢驗進程或者一個或多個獨立的TCP流解碼器/分析器一起,所述平臺可以為各種各樣的千兆比特能力的網絡監視方案提供基礎。比較起來,目前可得到的類似Snort的流4的開放源方案需要采用欺詐和詭計以跟上日常硬件上的千兆比特通信量。在Snort2中,這意味著受限的默認設置(只客戶端、若干眾所周知的端口)和諸如“HTTP流控制”處理器的人工過濾器,而所述人工過濾器忽略差不多80%的在默認模式下的通信量。利用Snort2設置進行試驗可清楚表明stream4的吞吐量是真實的瓶頸;僅僅通過將Snort丟棄分組的方式從‘可預測的’變為‘隨機的’,就能處理更多的分組。對于來自IP碎片整理程序的每一網絡分組,TCP重組器模塊的子例程(例如,參見圖9)可以被調用一次。所述例程可以驗證所述分組是否是TCP分組。如果是,那么可以發送該分組以用于TCP處理/重組。所述分組可以通過它所屬的TCP會話的地址(如果有的話)來標注,并且可以被提交給流水線以便進一步處理(取決于配置)。可以對分組和相應的會話檢查非法的TCP標志組合(可以獨立地配置對什么是合法的要求)。可以經由告警機構報告非法分組和會話和/或丟棄該非法分組和會話,這取決于配置。使用UNIXIPC共享的存儲器和信標池,TCP重組器可以重構TCP會話和客戶端-服務器會話數據,并且可以將它們發送至分析模塊以便進一步處理。所述分析模塊可以作為獨立的UNIX進程來運行。它們可以使用IPC信道來檢索TCP會話數據。TCP重組器還可以使用統計存儲池來計數重組的會話、生成的告警等。TCP重組器配置參數所述TCP重組器可以接受如下配置參數·alert生成關于非法分組和TCP會話的告警。·evasion_alert如果TCP分組不適合預測的TCP窗口,那么生成告警。·noclient不重組會話的客戶端部分(套接字對)。·noserver不重組會話的服務器部分。·plimit設置用于重組特定客戶端-服務器會話的存儲緩沖區的最大數量。·pring設置用于向分析器發送重組數據的有效負載環的大小。·mempool設置用于TCP會話描述符的存儲池的大小以及相應散列表的大小。值可以是小、中、大、巨大。和/或·payload設置用于重組客戶端服務器會話的存儲緩沖區的總數以及它們的總體大小。每-會話限制可由plimit參數設定。TCP重組器初始化TCP重組器的初始化子例程tcps_init()可以在啟動期間被調用。所述子例程可以讀取配置文件并且使用UNIX共享存儲器來分配如下存儲器池·TCP會話描述符;·用于訪問所述會話描述符池的散列表·有效負載緩沖區;和/或·TCP會話環形緩沖區。存儲器分配大小可以基于配置參數來計算。大小為32的UNIX信標集合也可以被分配。所述TCP重組器在分組處理階段不必動態地分配存儲器;所有請求的資源可以在初始化階段被預先分配。所分配的共享存儲器可以通過使用shmctl()系統調用中的LinuxSHM_LOCK選項被排除在調換之外。在請求鎖定之后,可以使用bzero()調用來初始化所分配的存儲器,以便確保所有必需的頁可以載入存儲器并且鎖定在那里,因此在分組處理階段不會出現頁錯誤。tcp_stream_init()可以基于超級用戶權限來調用以確保shmctl()調用成功。如果已經分配了必要的片段,并且所有大小都是正確的,那么tcp_stream_init()可以附屬于現存的存儲器池而不用重置它們。另外,如果重啟,所述模塊可以不必解除分配存儲器。可以完成這來支持‘軟重啟’特征重新加載的應用可以繼續使用現有的TCP會話數據,僅僅在重新加載的時刻丟失分組。所述TCP重組器需要存儲器(例如,大量RAM)。為了獲得所有所請求的存儲器,應用程序可以在標準啟動過程期間利用sysctl()來增加SHMMAX系統參數。在分配后,TCP會話描述符和有效負載緩沖區可以分別被順序地插入所述空閑會話鏈和空閑有效負載鏈中(例如,參見圖10)。這些鏈可以在分組處理階段由分配和解除分配子例程使用。TCP會話分配和狀態轉換為了鏡像TCP會話的全雙工特性,所述描述符可以包含兩個相同的子結構,該子結構用于描述客戶端和服務器流。為每個流識別的狀態可以包括LISTEN(傾聽)、SYNRCVD、SYNSENT、ESTABLISHED(建立)和CLOSED(關閉)。兩個流的生命周期可以始于CLOSED狀態。對于正常的TCP/IP通信量來說,依照流轉換圖(例如,參見圖11),所述狀態可以升級到ESTABLISHED,然后最終回到CLOSED。當接收到SYN和SYNACK分組時,流的描述符字段ISN可用來保存SEQ數目。此字段稍后可用于TCP有效負載重組和附加TCP會話驗證。所述TCP會話描述符可以利用其自己的狀態標志來遵循其所描述的流的轉換,以反映所述會話的通用狀態UNESTABLISHED(未建立)、ESTABLISHED或者CLOSED。圖12舉例說明了會話狀態轉換圖的一個實施例。每一會話可以始于UNESTABLISHED狀態。當客戶端和服務器流都切換到ESTABLISHED狀態時,會話可以升級到到ESTABLISHED狀態。當兩個流都切換到CLOSED狀態時,會話便處于CLOSED狀態。每個會話狀態可以對應于會話時期鏈中的一個特定位置(例如,參見圖13)。所述會話分配子例程可以執行如下動作·通過調用bzero()來初始化描述符;·把描述符置于散列表;·把描述符從空閑會話鏈中去除;·把描述符置于UNESTABLISHED時期鏈的首部;和/或·把唯一的會話id分配給描述符的sid字段。隨著每個會話升級,依照會話狀態轉換圖,可以把描述符從當前時期鏈上去除并且置于下一個的首部。TCP會話解除分配所述TCP會話描述符可以包括稱為etime的字段,其用于保存屬于此特定會話的最新分組的時間。對于TCP重組器接收到的每個分組,位于時期鏈結束時的會話例如可以通過ses_recycle()子例程來測試超時。所使用的超時取決于會話的狀態·UNESTABLISHED12秒·ESTABLISHED600秒·CLOSED30秒所述ses_recycle()程序還可以檢查模塊寬度RC_LVL變量,其用于確定失效會話的最大數目以便對每一所接收的分組解除分配。此數目可以從每一分組兩個失效會話開始,并且結束于每一分組高達30會話(存在一個表用于基于RC_LVL值來計算會話數目,其中RC_LVL本身可以在從1到7的范圍內)。所述ses_recycle()程序計算所述限制,必要時遞減RC_LVL(最小值可為1),然后依照如下順序來從ASC_old側動手處理會話時期鏈(例如,參見圖13)UNESTABLISHED到CLOSED到ESTABLISHED。在每一鏈中,它可以從末尾開始解除分配失效會話,然后必要時它可以順序地移到下一鏈,直到不再有失效會話或者達到所述限制為止。在把新的會話插入到散列表中期間,每當存在沖突時,RC_LVL會增加。當重組器處于TCP重組器過載條件模式時,還可將其指派為最大值。解除分配子例程可以從散列表和會話時期鏈中去除會話描述符,并且例如使用FSC_tail變量把它轉送到空閑會話鏈的末尾。在解除分配過程期間,沒有會話數據被重置;按照這種方式,數據仍可以由異步模塊使用,直到在后續分配期間被重置為止。如果會話具有所收集的其有效負載數據,那么子例程可以把會話的地址和會話id插入到TCP會話環形緩沖區中,并重置信標陣列,以表明會話數據可以為異步處理所用。異步處理模塊可以把提供的會話id與指派給sid字段的會話id進行比較,以便驗證數據仍未被重寫并且開始處理。如果會話升級到CLOSED狀態,那么TCP會話信息還可以被插入TCP會話環形緩沖區中。提交之后,有效負載緩沖區從會話處分離。會話描述符中的空閑的字段可以防止TCP重組器兩次提交數據。處理TCP重組器過載條件當沒有空閑會話描述符可以利用以便滿足分配請求時,會出現TCP重組器過載條件的一個實施例。如果mempool配置參數對網絡通信量來說不適當,或者當網絡段受到TCPsyn-flood攻擊時,它可能發生。當切換到此模式時,所述TCP重組器可以把RC_LVL變量設置為其最大值,并且停止分配新的會話,直到空閑會話數量例如變得小于總會話池的10%為止。它可以連續跟蹤現有的會話并收集它們的有效負載數據。TCP會話隊列API可以在TCP重組器初始化階段期間例如使用UNIXIPC機構來分配TCP會話環形緩沖區和信標陣列。緩沖區可以由被許可的任何進程訪問。圖14舉例說明了包括TCP會話地址、會話id和被處理為位掩碼的整數值(例如,32位)的每一緩沖區扇區。所述信標陣列可以包含32個信標。每一異步處理模塊可以調用用于指定0和31之間的唯一id號的tcpplcl_init()子例程,以便附屬于環形緩沖區和信標陣列。所提供的id可以被其它API函數用來涉及信標陣列中的特定信標和位掩碼中的相應位。然后,所述進程可以調用tcpplcl_next()來獲得下一可用的TCP會話。TCP重組器可以通過執行如下動作來提交用于處理的新會話·把會話地址和會話id置于環形緩沖區的下一扇區;·重置此扇區中的位掩碼;和/或·重置所述信標陣列。客戶端側上的所述tcppicl_next()子例程可以例如使用semwait()調用來等待id指定的信標。當緩沖區就緒時,它可以逐片段地遍歷緩沖區,設置位掩碼中的id指定位,直到它發現下一扇區中的位已被設置為止。該情形意味著不再有數據仍可用——到了再次調用semwait()的時候。所述API可以向應用程序提供關于TCP會話和重組的有效負載數據的全部信息。一旦變為可用,所述信息將被處理。TCP有效負載重組每次會話描述符切換到ESTABLISHED狀態時,可以把有效負載緩沖區從空閑有效負載鏈取出,并且如果noclient和noserver配置參數允許,那么將其初始化并且指派給客戶端和/或服務器流描述符。屬于特定會話的分組的每一非空有效負載可以被復制到有效負載緩沖區中的相應位置,直到所述會話升級到CLOSED狀態或者有效負載緩沖區的數目超過限制,例如由plimit參數所指定的限制(例如,參見圖15)。分組的有效負載在緩沖區內的位置可以通過分組的SEQ數目、流的ISN和流的基本字段值的組合來確定。后者可以通過子例程來計算對于長TCP會話而言,現代TCP堆棧傾向于隨機增加SEQ數目;基本字段補償那些改變。pl_alloc()子例程可用來把有效負載緩沖區加入所述鏈,例如最多達到plimit的值。如果空閑有效負載鏈為空,那么pl_alloc()可以執行下列步驟·增加統計池中的有效負載失敗計數器;·把當前有效負載鏈標記為完整的,避免稍后越限有效負載復制;和/或·將錯誤返回至調用者。當會話達到CLOSED狀態時,或者如果有效負載緩沖區由于會話超時而從ESTABLISHED狀態解除分配,那么ses_free()子例程可以執行下列步驟·向TCP會話環形緩沖區提交TCP會話;·向空閑有效負載鏈的末尾添加有效負載緩沖區;和/或·設置會話描述符的空閑字段,因此會話可以不被提交兩次。ses_free()子例程可以不必擦除有效負載和/或會話數據在異步應用程序經由TCP會話隊列API對緩沖區進行處理時,它僅將緩沖區標記為可用。分組處理周期概述每當有新的分組數據來自IP碎片整理程序時,就調用TCP重組器的入口點子例程tcps()。首先,tcps()調用ses_recycle(),(參見,TCP會話解除分配章節),然后可以檢驗所述數據是否真的是TCP分組(例如,參見圖16)。如果所述到來分組沒有被識別為TCP分組,那么tcps()結束。然后可以為了大量非法的TCP標志組合(例如,SYN和FIN標志一同存在)而探測所述TCP分組。如果設置了告警配置標志,那么為無效的TCP分組生成告警;此后,這種分組將被忽略。否則,分組的源和目的地址以及端口(套接字對信息)可用來計算散列值,并且用來識別所述分組的相應的會話描述符。基于所述分組承載的標志以及會話描述符是否被發現,可以跟隨分組分析階段。此階段試圖識別非法分組;例如,如果分組包含SYN標志并且會話描述符已被分配,那么所述分析可以包括對流ISN與分組的SEQ數目進行比較,并且審查相應的超時。作為此特殊分析的結果,此分組可以被識別為·TCP重傳嘗試;·新TCP會話的開始;和/或·TCP會話欺詐/劫持嘗試。通過此分析確定的非法的TCP分組可以被忽略和/或報告。在這一點上,所有非法分組可以被濾出。所述會話/分組組合接下來可以被分析。根據會話狀態和分組標志/有效負載,可以進行一個或多個如下動作·把分組的有效負載存儲在有效負載緩沖區中;·分配新的會話;·升級流狀態;·升級會話狀態;·把會話提交給TCP會話環形緩沖區;和/或·增加流的基本值以便補償流SEQ值中的突然跳轉。在tcps()結束時,所述分組可以利用它所屬的TCP會話的地址來標注,并且可以被發送給流水線的其余部分以便進一步處理。TCP重組器卸載所述TCP重組器在正常退出期間使用atexit()機構來解除分配共享的資源。如果在重新配置周期期間應用程序例如已經接收到來自進程管理器的重新配置請求,那么共享存儲器和信標陣列可以被原封不動地留下。所述模塊可以重讀其配置文件,同時所有其它模塊連續正常操作。重新加載操作可以是迅速的;重新加載的TCP重組器模塊可以再次附屬于共享的資源而不用重置它們,并且繼續行使其職責。有效負載解碼器所述平臺的一個實施例可以對實時網絡通信進行操作(例如,100Mbps和/或更高或更低),并且可以由多層內容解碼支持,所述內容解碼例如可以“剝離”通用壓縮、聚合、文件格式和編碼方案并依照適用于處理的形式來提取實際內容。有效負載解碼器的一個實施例(例如,參見圖1)可以工作來遞歸地檢查已知數據格式的有效負載,借助于各個解碼器對其進行解碼并且對已解碼的內容重復相同的過程(例如,參見圖17)。有效負載解碼器可以包括例如可以用于各種MicrosoftOffice格式、電子郵件、HTML/XML、壓縮數據、HTTP、其它流行的基于TCP的協議等的多個解碼器(例如,14個解碼器或更多或者更少)。當有效負載解碼器無法更進一步解碼其輸入數據,或者它達到其存儲器限制時,有效負載解碼器將停止。在任何情況下,解碼的數據塊例如可以被發送至一個或多個內容掃描器(例如,關鍵字和/或MCP掃描器)以便檢查。所述有效負載解碼器可以包括一個或多個解碼器·SMTP郵件會話;·多部件的MIME包絡;·引用可打印的郵件附件;·Base64郵件附件;·8位二進制郵件附件;·ZIP存檔;·GZip存檔;·TAR存檔;·MicrosoftWord文檔;·MicrosoftExcel文檔;·MicrosoftPowerPoint文檔;·PostScript文檔;·XML文檔;和/或·HTML文檔。明文(plaintext)和/或二進制文檔可以被直接掃描并且不必進行任何專門的解碼。例如可以借助于解碼器API把附加解碼器插入系統。初始化內容解碼器模塊的初始化階段可以開始于調用TCP會話重組器API以便注冊為客戶端并且可以訪問重組會話。在那之后,可以分配存儲器來存儲統計信息,并且本地存儲器管理機制可以被初始化。個體解碼器可以通過調用initdecoders()程序來進行注冊,所述initdecoders()程序用于收集與可利用的解碼器有關的信息并且可以將其復制到共享存儲器中的全局統計信息區域。還可以通過調用其init()方法來初始化每一解碼器,從而允許解碼器初始化它們自身的數據。存儲器分配解碼器例如可以通過調用dq_alloc()程序來為每個解碼的組件數據塊分配新的數據緩沖區。某些解碼器(例如,MicrosoftWord的)可以為已解碼數據分配單個數據塊;其它(例如,ZIP)解碼器可以分配多個塊——每一組件一個塊。對dq_alloc()的每次調用可以傳遞所述請求的存儲器容量和位置信息,該位置信息可用于重組層次“路徑”,該路徑可以唯一地標識已解碼緩沖區在原始有效負載內的位置。解碼路徑不僅可用來報告成功的標識符,還可用來提供統計和解碼過程信息。通過dq_alloc()的調用者請求的存儲器因物理原因或作為人為限制的結果而無法獲得。每一模塊都具有其自有的存儲器帽,以使每個進程都位于其限制內,并且總體系統性能并不依賴于輸入數據始終正確的假定。類似ZIP的某些解碼器可以只提供已解碼存儲器塊的估計大小;一個或多個解碼器就緒來接收更小的塊,并且由此局限于局部解碼。所有解碼器可以被寫入來支持局部解碼。格式識別和解碼解碼器可以經由通用解碼器API的decode()方法來調用。每一解碼器可以執行其自有的格式識別,并且在失配或者內部解碼失敗的情況下,可以返回“格式沒有識別出”的結果。如果解碼器已經經由dq_alloc()分配了數據塊,則它可以在返回‘無法識別’的結果以前經由dq_clear()來釋放它們。由于存儲器限制,解碼器可以產生局部結果;這可以不認為是失敗。一旦緩沖區被解碼,其存儲器就可以被釋放,并且被排除在循環之外(由一個或多個解碼的緩沖區來有效地替代)。除存儲器限制以外,內容解碼器可以為解碼隊列的長度設置獨立的限制,限制解碼“樹”的大小(例如,參見圖18),并且因此限制了解碼其所有元素所需的時間。在高負載設置下,這可以允許在完成解碼給定有效負載的每個組件的需要和下一有效負載到來時要結束解碼的需要之間進行平衡。隊列長度參數(DQ_MAX_LEN)的默認值可以是100(或更多或者更少)。解碼隊列長度可被限制的事實會影響解碼樹遍歷策略。所述內容解碼器可以使用“深度優先”策略,例如,優選解碼至少一些塊“至結束”,而不是對較大數目的塊進行不完整地解碼。掃描沒有發現適當解碼器或者因為人為限制(例如,解碼樹的“葉子”)而不再解碼的數據緩沖區可以被發送,以便例如檢查關鍵字和MCP掃描器。每一有效負載可以“原始”和/或解碼后的形式被檢查。內容掃描內容掃描可以用于防止信息的未授權轉送(例如,機密信息和知識產權)。關鍵字掃描器關鍵字掃描是一種簡單、相對有效且用戶友好的文檔分類方法。它基于一組字,在文本中逐字地匹配。用于掃描的詞典可以包括不適用于通信中的字、用于機密項目、產品或者進程的碼字和/或那些不依賴于它們的使用上下文就能引起懷疑的其它字。通過使用多字短語可以考慮某些上下文信息,但是對于較大上下文而言,這樣做會導致組合爆炸。自動關鍵字發現(AKD)工具的一個實施例可以發現關鍵字和/或關鍵短語;關于關鍵短語長度的閾值可以作為參數被輸入。AKD工具可以接收一列文件,提取文本信息,并且為“正面”訓練集合(例如,屬于“受保護”類別的文檔)制備字和/或短語頻率詞典。這些詞典可與標準詞典和/或根據負面訓練集合制備的詞典(例如,表示“其它”文檔)相比擬。可以使用標準貝葉斯分類程序(例如參見Cheeseman,P.,Self,M.,Kelly,J.,Taylor,W.,Freeman,D.,&Stutz,J.(1988)。貝葉斯分類。SeventhNationalConferenceonArtificialIntelligence,SaintPaul,Minnesota,607-611頁)為正面集合上的頻率明顯不同于負面集合上的頻率的關鍵字和/或關鍵短語指派權重。最后,可以把規范化的權重指派給一個或多個關鍵字和/或關鍵短語,將其進行排序,并且所述工具例如返回例如頂部的100個(或更多或者更少)以用于手工檢查。加權的關鍵字和/或關鍵短語的列表可以被加載入關鍵字掃描器組件,該組件可以掃描來自有效負載解碼器的每一數據塊中是否存在關鍵字。可以通過使用基于逐集合字符串匹配算法的單次匹配器(例如,逐集合Boyer-Moore-Horspool)(例如參見在UniversityCollegeofNorthWales由G.A.Stephen于1992年10月出版的StringSearch-TechnicalReportTR-92-gas-01)來執行匹配。如果有,可以通過評分函數來評估匹配,并且如果達到預置評分閾值,則生成告警。AKD工具數據流所述AKD工具可以基于諸如專有文檔和/或數據庫的顧客特有的數據來發現關鍵字和關鍵短語。AKD可以是基于傳統的“自然(naive)”貝葉斯學習算法。雖然此算法相當簡單,并且其假定通常違反實際情況,但是最近的工作已經表明自然貝葉斯學習實際上非常有效并且難以系統地加以改進。概率文檔分類可以是該算法的應用領域之一。所述算法可以使用正面數據和反面數據(例如,文檔)的代表性訓練集合(例如,參見圖19)。所述集合可用來匯集字/短語頻率詞典。然后可以比較正面集合和反面集合的詞典,并且為字/短語指派貝葉斯概率估計。具有高估計值的字/短語由于與正面或者與負面訓練樣品的緊密關聯而可用于猜測樣品文檔的類型。來自組合詞典的字/短語可以按照最終權重來排序,并且所述算法例如可以返回它們中的頂部的100個。負面集合可以較大,例如,可以把本地計算的負面集合的頻率詞典與用于商業通信的公共頻率詞典組合。在一些特定的應用領域中,領域特有的頻率詞典可用于表示負面訓練集合。正面訓練集可用于計算正面頻率詞典。由于兩個詞典的大小可能變化,所以兩個詞典中的頻率計數可以使用三個最常用的英文字(例如,‘the’、‘of’、‘and’)的相應計數值來規范化。非英語應用領域可以使用專門的規范化規則(例如,通過全體字計數來規范化)。除用于產生關鍵字的基于基本字頻率的通過以外,AKD可以允許人們推導出關鍵短語。由于關鍵短語的精確度更高,所以它比關鍵字更加有用,但是直接組合列舉會產生具有極低實用價值的各種巨大詞典。AKD可以使用非組合方式,該方式可以適合于混合的文本/二進制文件,諸如數據庫記錄。它可以是基于文本串提取算法的,該算法等效于由Unix字符串公用程序提供的算法。數據文件可以被標記以便確定數據流被中斷(例如,從二進制切換至文本或者從文本切換到二進制)的位置;可以把兩個中斷之間的短文本串作為“關鍵短語”。然后可以在負面訓練集中識別這些關鍵短語,并且可以創建相應的關鍵短語頻率詞典。這些詞典可以依照類似于如上所述的關鍵字詞典的方式來使用。當最有用的關鍵字/關鍵短語被識別出并且它們的權重被計算出時,最后的動作就是計算最大頻率。最大頻率可用來限制常常導致假陽性識別的較高數目關鍵字匹配的掃描器的靈敏度。可以使用相同的規范化的頻率詞典來計算最大頻率。為了降低掃描器的靈敏度,可以把每1000字節訓練數據的匹配平均數乘以2來作為“有用”關鍵字/關鍵字短語匹配的限制。超出這限制的所有匹配可以被忽略(例如,它們不會對最后評分作出貢獻)。關鍵字掃描器數據流關鍵字掃描器可以是基于逐集合字符串匹配算法的。例如,所述關鍵字掃描器可以使用Boyer-Moore-Horspool算法的逐集合擴展,其使用有限狀態自動機(FSA)。可以使用與Lex掃描器工具相同的技術將輸入串集合(例如,關鍵字和/或關鍵短語)轉換為FSA。另外,Boyer-Moore-Horspool跳躍表可以被添加來實現亞線性搜索時間。所述算法的性能未必隨著關鍵字/關鍵短語的數目而增加,但是存儲器需求會增加。同樣,算法的性能可能依賴于集合中最短串的長度(例如,真正的短串可以使性能變為線性并且使算法變慢)。所述匹配可以被“并行”執行,這意味著所述算法只需要遍歷數據一次(例如,參見圖20)。所有匹配可以在獨立的匹配計數陣列中被標記。對于每個關鍵字/關鍵短語,所述陣列可以包含一個計數器。首先,所有計數器被設置為零。對于每次匹配,相應計數器增加。當掃描器到達數據塊的末尾時,計數器陣列可以依照由AKD工具進行的初步概要分析而被規范化以降低頻繁匹配的重要度。此工具可以基于諸如專有文檔和數據庫的顧客特有的數據來發現關鍵字和關鍵短語。每一發現的關鍵字/關鍵短語可以返回兩個相關數值每一匹配的得分和輸入數據中的每1000字節的最大匹配數目。兩個數值可以基于訓練數據來計算;它們可以反映出關鍵字及其期望頻率的相對重要性。規范化可以限制每一匹配計數器小于或等于給定關鍵字/關鍵短語的最大匹配計數(例如,調節到輸入緩沖區的大小)。此后,所述計數器可以乘以相應的匹配得分、求和并且規范化以得到每-1000字節的輸出得分。為了估計文檔匹配,關鍵字掃描器可以把輸出得分與可配置的閾值進行比較。初始化可以例如,通過loadkwv()例程,通過加載來自外部文件的、由外泄防止模塊的-k參數指定的關鍵字/關鍵短語數據來初始化所述模塊。可以把命令行存儲在通用配置文件中;可以通過AKD工具根據用戶樣本數據文件來生成關鍵字文件。每一關鍵字文件可以包含標識信息(例如,訓練集合名稱)、一個或多個告警信息記錄(例如,告警ID、描述以及得分閾值)以及關鍵字/相對得分/匹配限制三者的列表。可以為每一關鍵字文件分配新的存儲塊;加載的關鍵字文件可以被保存在鏈中并且用于計算相應的得分。在加載關鍵字文件之后,所述模塊可以注冊自身以便接收從內容解碼器輸出的數據。同時,為了能夠生成告警,它可以建立與平臺的告警機構的連接。最后的初始化動作可以是為關鍵字文件構建FSA。每一關鍵字集合可用來例如基于Aho-Corasick前綴樹匹配器來計算有限狀態自動機。自動機可以被構造為使得每個前綴只由1個狀態來表示,例如,即使前綴可以開始多個模式。Aho-Corasick-風格FSA可以伴隨有由同一字符串集合計算出的Boyer-Moore-Horspool跳躍表。FSA和相應的跳躍表一起可以通過在一次掃描內就找出所有關鍵字匹配。所用的算法可以是逐集合的Boyer-Moore-Horspool字符串搜索。對于每個到來數據塊而言,可以計算出一個匹配得分列表,每個加載的關鍵字文件計算出一個得分。為了計算關鍵字文件的得分,可以調用fsa_search()程序,其中以相應的FSA和跳躍表作為參數。所述fsa_search()程序可以通過增加計數器陣列中的匹配計數器來登記所有關鍵字匹配。所述陣列可以為每個關鍵字/關鍵短語包含一個計數器;所述計數器可以初始被設為零并且在每次匹配時都增加。當所述搜索結束時,計數器可用來針對給定關鍵字集合計算數據塊的得分。為了計算得分,可以相對于從關鍵字文件加載的各個匹配限制來檢驗每一計數器。如果計數器大于其匹配限制,那么可以把其值設置為匹配限制。當所有計數器都被按照這種方式剪切后,將其乘以從關鍵字文件加載的各個相對得分。將乘以相對得分的計數器相加,并且所得結果例如被規范化到1000字節塊大小,以產生給定關鍵字文件的最后得分。可以把最后得分與從關鍵字文件加載的存儲在相應告警信息記錄(AIR)列表中的閾值相比較。小于或等于給定得分的最大閾值定義了可以生成什么樣的告警;用于生成告警的所有必要的信息可以存儲在相應的AIR中。多維內容概要分析(MCP)掃描器類似關鍵字掃描,MCP可以獲取文檔和/或數據文件的特性(例如,基本特性),同時容許文檔生命周期中的常見變化編輯、分支為若干獨立版本、類似文檔的集合等。MCP可以結合關鍵字掃描和/或數字指紋識別(TomasSander(編者)在2001年11月5日在美國PA費城舉行的“ACMCCS-8WorkshopDRM2001”上發表的SecurityandPrivacyinDigitalRightsManagement)的能力。內容概要分析可以是以識別屬于某一文檔類別的文檔為目標的技術組合。同一類別中的文檔共享相似的統計特征,這些統計特征例如是在稱為概要分析的制備進程中被確定的。自動內容概要分析器(ACP)工具可以接收屬于所述類別(正面訓練集合)的有代表性的文檔集合,如果必要,則伴隨有負面訓練集合(類似于但不屬于所述類別的文檔)。對于一個類別,概要分析進程可以只執行一次;統計特征的最終集合(例如,概要圖)可用來測試該類別中的成員。概要圖的質量取決于概要分析算法用于獲取該類別中所有文檔所公有的特性的能力;它可以通過使用不同屬性的若干無關特性來進行改善。每一特性可以定義一個維度(例如,隨文檔的不同而變化的定量測度)。所述內容概要分析組件例如可以使用對通過網絡的所有數據進行實時計算而得到的多于(或少于)400個不同的特性值。每一文檔(例如,由有效負載解碼器返回的數據塊)可以被映射至多維空間中的單個點;其在此空間中的位置可用來計算其所屬類別(一個成員可以屬于一個以上的類別)并且可以觸發告警和/或反應措施。內容概要分析方法已經由密碼分析學使用多年。雖然仍有價值,但是當補充了能夠對諸如詞和句的較大元素進行操作的高級統計方法時,簡單的統計特性能夠工作得更好。多維概要分析器可以利用200個左右的低級統計測度和100個左右的高級統計測度的組合來進行操作。高級統計測度可以考慮到某些通用問題領域(例如,保護涉及個人健康記錄、銀行帳戶信息、顧客列表、信用卡信息、郵寄地址、電子郵件、個人歷史、SSN等的機密個人信息)來設計;可以通過添加新的領域特有的維度使所述高級統計測度把其它領域重新確定為目的。除了用于概括給定元素的總體用法的單個高級和低級特性以外,所述概要處理器可以具有專用于文檔的空間結構的100個以上的維度,包括元素之間的互相共現和布局。舉例來說,所述概要分析器可以捕獲下述事實在郵政編碼緊跟州名且彼此交錯的一些郵政地址中,州名和郵政編碼具有非常類似的頻率。空間分析可用于捕獲文檔的整體結構;具有和目標類別相似的使用模式的索引、詞典以及其它類型的文檔都不能輕易地欺騙它。當ACP工具概要分析訓練文檔集合時,它可以生成與所述集合中的文檔一樣多的多維屬性空間中的點。每一點表示個體文檔(或者文檔的片段),并且可以被標記為“+”(在類別中)或者“-”(不在類別中)。最終學習動作可以計算利用最小重疊來分離“+”和“-”點的屬性空間的最簡單劃分。基于有限狀態自動機(FSA),此劃分可以被自動地“數字化”為數據驅動算法,所述有限狀態自動機(FSA)可以充當快速單次掃描引擎。由概要分析器生成的FSA可以被加載入MCP掃描器組件,其用于檢查出自有效負載解碼器的每一數據塊。可以為每一數據塊計算“受保護”文檔的類別中的成員的概率測度。如果達到預置閾值,那么可以生成告警。MCP生成的告警可以結合例如由關鍵字掃描器基于相對權重產生的告警,這取決于文檔類型。內容掃描方法的組合導致受保護數據的可靠識別。MCP模塊可以在先入-類別外泄防止系統中工作。防止模式可以在數據被完全轉送以前要求實時分析以及惡意的會話終止。API可以允許任意的(可配置的)數目的連接點,每一點可以向最多32個內容掃描模塊發送重組會話數據的參考,其中所述內容掃描模塊與主要分組捕獲周期并行運行。可以基于輪轉來向每一連接點提供與重組會話數據的鏈接。連接點本身可以作為環形緩沖區來實現,所述環形緩沖區例如結合了具有自動溢出保護的FIFO能力。它可以保存最后的128個會話并且獨立地跟蹤每一模塊在緩沖區中的位置,有效地消除通信量方面的尖峰以及內容分析模塊處理速度方面的差異。實驗表明對于小型到中等公司常見的網絡通信量而言,使用基于Intel的2-處理器硬件和快速NIC就足夠了。大型公司或擁擠的網絡線路可以使用4-處理器的服務器中的更大處理能力。ACP工具數據流自動內容概要分析器(ACP)工具可以接受屬于所述類別的有代表性的文檔集合(正面訓練集合),如果必要,則伴隨有負面訓練集合(類似于但不屬于所述類別的文檔)。對于一個類別,概要分析進程可以只執行一次;統計特性的最終集合(例如,概要圖)可由MCP掃描器使用。ACP工具可以依照三個階段來操作(參見圖21)。第一,正面和負面訓練集合中的所有文檔可以由在MCP掃描器運行時間時使用的相同算法來測量。所述算法可以把每一文檔表示為多維空間中的點(每一統計屬性為一個維度,總共420個維度(更多或更少))。未必使用掃描算法的最后得分動作,因為得分可能需要現有的概要圖。在第一階段結束時,在420維空間中存在兩個點集合;所述集合可以對應于正面和負面訓練集合。最終集合可以沿不同維數重疊到各種程度。第二階段的工作是發現實際的超平面集合以便有效分離表示正面集合和負面集合的點(參見圖22)。由于所述算法本質是統計的,所以可以使用概率標準來確定分離質量。作為超平面位置函數的不合適分類的貝葉斯條件概率可以通過簡單的下降算法來最小化。為了改善掃描器的運行時的性能,人們可以僅僅使用正交于所述軸之一(一個可以利用對于單個維數的投影來工作)的超平面。此方法產生簡單易執行的概要圖;由于考慮到維數(例如,較大數),所以在大多數情況下其質量是足夠的。如果沒有實現給定維度的最小有用的分離質量,那么可以忽略維度。分離超平面的組合集合的整體質量還可以通過貝葉斯概率準則來進行評估。在計算超平面集合時,最后的動作可以是將其轉換為可以加載入掃描器的格式(例如,概要圖)。MCP掃描器可以借助于機器(例如,能夠對規范化維數執行約20次簡單算術運算的虛擬機(“VM”))來解釋概要圖。使用不是固定編碼的參數化的得分計算器的VM允許在分離表面的可執行表示中的某些靈活性;它可以用作——非正交的超平面或者手工編碼概要圖(概要圖可以具有可由手動編輯的可讀ASCII表示)。最終概要圖可以在初始化時被加載入MCP掃描器。MCP掃描器可以支持多個概要圖;對于每個數據塊來說,測量算法可以運行一次;得分計算算法可以運行的次數與加載概要圖的數目一樣多。可以使用相同的規范化頻率詞典來計算最大頻率。為了降低掃描器的靈敏度,可以把訓練數據的每1000字節的匹配平均數乘以2來作為“有用”關鍵字/關鍵字短語匹配的限制。超出此限制的所有匹配可以被忽略(它們對最后評分沒有貢獻)。MCP掃描器數據流MCP掃描器可以是基于有限狀態自動機(FSA)的。FSA可以被編碼為用于表示每一狀態的一組代碼碎片以及把控制從一狀態轉送至另一狀態的一組跳轉(例如,參見圖25,示出了級1狀態、跟蹤計算、涉及低級特征(例如,符號和數字計數器)。可以把附加狀態存儲在額外的狀態變量中,以便允許計算高級特征)。FSA開始于初始狀態并且當輸入流為空時可以停止。表示狀態的每一碎片根據從輸入流中提取的下一數據字節/字符的值來編碼動作集合。MCP的FSA可以被硬編碼;它可以實現用于并行計算多個運行計數器的算法。MCP可以使用500個運行計數器(或更多或者更少);每一狀態可以基于輸入字節來更新它們中的某些。存在具有不同意義的多個MCP計數器·字符計數器某一類別的字符數·字符位置計數器某一類別的字符的最后位置·字符距離計數器某一類別字符之間的距離和·數值計數器十進數(SSN/CCN/...)的運行值·串值計數器字符串(例如頂級域名)的運行值·特征計數器不同類型的高級“特征”的數目·特征位置計數器高級特征的最后位置·特征距離計數器某些特征之間的距離和MCP可以依照順序來更新計數器(參見圖23);可以基于當前FSA狀態、字符計數器的值和數字/串值計數器的內容來計算特征。每一特征可以通過在預定特征的散列表中查找(這利用兩個字母的狀態縮寫、郵政編碼、頂級域名和電子郵件地址來工作)和/或通過專用確認器算法(SSN和CCN的校驗和或者范圍)來確認。當諸如SSN的特征被計算時,所述算法可以更新各個高級計數器。雙層結構可以允許對輸入數據的多重特征進行有效單次“并行”計算。當所有數據被處理時,可以使用計數器來計算輸出維度值輸入數據的相對獨立特性。每一維度可以是基于一個或多個計數器的值的。維度可以通過規范化計數器值來計算;規范化可以包括如下操作·將計數器除以字節總數·將計數器彼此相減以便獲得相對“delta”測量值·把計數器彼此相除以便獲得相對‘factor’測量值·減掉并且除以推導出的測量值可以使MCP的FSA適合于域-特有維度(例如,顧客/客戶端信息),而不是專用于特殊顧客。MCP的FSA可以計算多個(例如,420個)輸出維度。最后的動作可以是計算輸出得分(參見圖24)。此動作可以使用通過獨立的MCP概要分析工具制備的數據,所述MCP概要分析工具用于基于用戶數據構建統計概要圖。概要圖可以是用于把多維(例如,420維)的空間劃分為兩個子空間的多維表面,其中一個對應于目標文檔的集合(需要識別的數據)。MCP可以將分割表面表示為一組超平面,每個均把空間切分為兩個子空間,其中一個包含目標子空間。計算目標子空間成員可以使用用于每個超平面的一系列計算;如果考慮中的點位于所有超平面的“正確”側,那么它屬于目標子空間。輸出得分可以被計算為為給定點和所有超平面之間的距離(位于超平面“錯誤”側被當做負面距離)之和。所述得分可以通過由ACP工具“編程”的簡單虛擬機(MCPScoreVM,參見下面表1)來計算。正得分未必確保正確的子空間成員;負得分可以確保非成員。由于通過MCP概要分析工具計算的多維表面只可以是實際文檔成員的近似值,所以不必要求目標子空間中的正確的成員。為了估計文檔成員,MCP掃描器可以把輸出得分與可配置的閾值進行比較。實現方式詳細說明所述模塊可以通過從外部文件經由loadfpv()例程加載例如通過外泄防止模塊的-f參數指定的概要圖數據來進行初始化。可以把命令行存儲在公共配置文件中;可以通過ACP工具根據用戶樣本數據文件來生成概要圖文件。每一概要圖文件可以包含標識信息(概要圖名稱)、一個或多個告警信息記錄(例如,告警ID、描述以及得分閾值)以及MCPScoreVM指令的列表。可以為每一概要圖分配新的存儲塊;加載的概要圖可以被保存在鏈中并且用于計算相應的得分。在加載概要圖之后,所述模塊可以注冊自身以便接受出自內容解碼器的數據。同樣,為了能夠生成告警,它可以建立與平臺的告警機構的連接。對于每個到來數據塊,MCP掃描器可以計算輸出維度的集合。輸出維度可以根據運行計數器陣列來計算。此陣列可以包括多個(例如,8個)細分1.大寫字母計數器(UC細分)2.小寫字母計數器(LC細分)3.郵政編碼計數器(ZIP細分)4.州名縮寫計數器(STE細分)5.電子郵件地址計數器(AT細分)6.頂級域名計數器(TLD細分)7.信用卡號碼計數器(CCN細分)8.社會安全號碼計數器(SSN細分)每一細分可以包括約60個計數器(或更多或者更少),用于跟蹤值、位置和/或距離。除了專用的計數器外,所有計數器可以是32位整數,用于跟蹤SSN和CCN(例如,64位整數可以用于較大數目)。可以通過專用確認算法來確認高級值對于除SSN和CCN之外的所有細分,所述確認部分可以包括經由bsearch()例程在合法值的預先排序陣列中查找所收集的信息。對于SSN和CCN來說,專用確認代碼可以確信數目在允許的范圍內,不包含不可能的數字并且通過校驗和測試。低級和高級元素的相對位置的計算可以基于距離計數器。每一細分例如可以采用50個距離計數器(或更多或者更少),以計數分別通過0-49個字符隔開的相同類型的兩個特征的出現次數。對于小寫字母來說,與最新大寫字母的距離被計數;對于高級特征來說,附加計數器跟蹤郵政編碼、頂級域名和電子郵件地址之間的距離。合起來,所述計數器可以捕獲以用戶記錄為典型的文檔結構,其依照正確順序包含名稱、郵政地址、電子郵件地址、社會安全和信用卡號碼(可能缺少某些元素)。MCP掃描器可以借助于能夠對規范化維度執行約20次簡單算術運算的簡單虛擬機(MCPScoreVM)來解釋概要圖。使用不是固定編碼的參數化的得分計算器的VM允許分離表面的可執行表示的某些靈活性;它可以用作——非正交的超平面或者手工編碼概要圖(概要圖具有可由手動編輯的可讀ASCII表示)。由于通過MCP概要分析工具計算的多維表面的簡單屬性,所以可以只使用5個操作(或更多或者更少)表1公共得分VM命令每一命令可以向運行得分計數器添加某一值,其最初被設置為零。最終得分可以被規范化為1000字節,并且與存儲在相應告警信息記錄(AIR)列表中的閾值進行比較。小于或等于得分的最大閾值定義可以生成什么樣的告警;用于生成告警的所有必要信息可以被存儲在相應的AIR中。欺詐加密檢測現代處理器所增加的計算能力以及電子商務技術的發展為臺式計算機市場帶來了許多高質量密碼算法,這些高質量密碼算法原先只用于專用的政府項目。很難過高估計用于互聯網購物者和增高科技商業的益處——在整體計算機化的時代增強的保密性和安全性成為必需。然而,類似許多技術進步那樣,強大的加密是一把雙刃劍通過確保所有通信的保密和安全,它隱藏諸如知識產權盜竊之類的非法行為。“欺詐”加密被認為是對計算機網絡的一種新的威脅。無線局域網、ad-hoc設置和“半公共”以及未經認可的VPN的增長使網絡更加容易從外部越權訪問。在商業領域還存在這樣的趨勢依賴現代計算機技術來加密每個事務和通信信道,這使得情況甚至更壞。IT人員不再能判斷哪些連接被授權與某人家用計算機的加密連接經常無法與對電子商務服務器的授權連接相區分。建立未經認可的VPN變得更容易。P2P軟件的不斷流行增加了公司網絡的脆弱性通過HTTP穿隧來冒充成合法電子商務通信的軟件即使沒有明確的用戶請求的情況下(例如,作為安裝其它軟件的副效應)也可能被安裝。未經認可的VPN在外圍防御中會產生“漏洞”;一旦它變得能夠轉送專有的數據到內聯網計算機或者從未授權位置遠程操作內聯網計算機,那么外圍防御實際上就不存在。考慮到此趨勢,某些計算機安全性專家的建議集中于內部防御,這通過使內聯網上的每一單個計算機變為安全來實現,就像所述計算機能夠被直接從公司防火墻外部的任一點訪問。此策略部分解決了這種問題,但是這種方案的總成本通常很高盡管構成“外圍設備”的計算機數目通常非常小并且慢慢增加,但是整個內聯網非常大,并且以更高的速度增長,并且往往需要不斷維護(例如,補丁和新服務包通常與安裝在同一主機上的安全軟件沖突)。考慮到缺乏嚴格訓練的安全人員,針對每一內部計算機的安全在大多數組織內是不現實的。比較起來,更加簡單并且經濟的解決方案在于監視和控制所有外部連接,所述外部連接限制為只對認可會話加密(例如,部門間的VPN和有限數目的眾所周知的電子商務站點)。此方案保持維護外圍防御的低總成本;內部計算機需要依照常規的方式來保證安全,就像它們慣常那樣。控制欺詐通信信道只給“總體內部安全”策略增加了小部分潛在成本。解決此問題的方案可以包含欺詐加密檢測器(RED)組件,用于跟蹤所有安全連接,并且當未授權的類似VPN的信道被建立時,用于向安全人員告警。作為附加好處,它可以不斷地檢查加密的會話,其參數在已建立的加密強度、協議版本等的范圍之外。RED組件可以通過向穿過敏感信息區域的邊界的加密通信提供一組合法的參數(源、目的地、協議、密鑰長度等)來進行配置;它可以把公共電子商務活動(諸如在Amazon的安全服務器上買書)和試圖建立安全P2P信道區分開。授權的VPN可以在RED允許的源/目的地/端口列表中被指定,以便使正常的辦公室間通信不產生任何告警。RED可以作為專用進程來操作,所述進程用于獲得來自所饋送的重組TCP會話數據的信息。運行時TCP會話重組可以允許SSL會話及其屬性被正確地識別。可以檢查每一會話的加密(例如,可以識別SSL/TLS的所有公共變化),并且如果它被加密,那么可以將其參數(客戶端IP、服務器IP、端口、持續時間、版本等)與授權VPN列表相比較。通過處理從內部獨立地發起的短會話,常規的電子商務通信可被默認允許。由RED組件收集的信息可以被發送到集中式事件處理器并且被轉發給控制臺,在控制臺中,它可以和出自多個傳感器的其它相關事件一起被存儲和處理。這樣做考慮到了“欺詐VPN”嘗試以及其它網絡策略侵害之間的相關性,并且提供集中式公開辯論的信息存儲和數據挖掘。RED數據流RED可以對例如由TCP會話重組模塊所提供的重組TCP會話進行操作。RED可以確定正在被分析的會話是否被加密,如果是,則確定加密參數是否與配置文件中指定的策略相匹配。RED可以被配置為檢測SSL和/或TLS會話(例如,SSL2.0版本及以上、TLS1.0版本及以上)。RED未必有權訪問密鑰資料,因此它未必解密會話的內容;然而,初始握手和密碼組協商消息可以被明文發送,因此會話可以被加密并且選擇的密碼組可以被檢測器利用。RED可以遵循協議的分層結構,并且解碼所述層以便可以訪問交換的信息。SSLv2.0和SSLv3.0/TLS1.0具有不同的記錄和消息格式,并且可以由獨立的解碼過程來處理,但是全體解碼器功能可以是相同的(參見圖26)。首先,RED可以解碼SSL/TLS記錄協議層以便審查其頂部承載的消息。接下來,RED可以識別ClientHello和/或ServerHello消息,其包含有關協商的密碼組的信息。如果在任何上述動作中解碼失敗,那么RED會認為會話未加密。安全協議是嚴格的,并且不會利用不正確的或者缺失數據來建立連接。如果解碼成功,那么RED可以獲得有關用于編碼會話的初始密碼組的信息(所述密碼組可以在會話過程中被改變,但是由于這不是明文執行的,所以RED不必跟蹤后續改變)。假定已知會話被加密并且已知用于加密所述內容的密碼組,RED可以執行如下檢驗·依照本地策略,給定通信的各方可以建立安全連接·按照現在的標準,密碼組可以很強大·通信的持續時間在允許的范圍內RED的配置文件可以允許人們指定哪些方(IP地址)可以建立安全信道(客戶端和服務器被區別,因此存在關于安全連接的啟動器的獨立限制)。對于每個這種記錄來說,可以有關于所允許的端口、對連接總體持續時間的限制以及密碼組的最小強度的信息。可以使用端口來限制被加密的服務(例如,HTTP);對持續時間的限制可用來把用于基于SSL的電子商務的短會話與更長的可能是非法的會話加以區分。如果連接被允許,那么可以將其密碼組強度與為此連接所指定的最小可接受水平相比。可以檢測到創建沒有由所述配置明確允許的連接的所有企圖,并且依照告警的形式發送到系統的告警處理后端。根據其配置,可以把告警報告給操作者和/或可以立即采取行動(斷開正在進行的連接)。進程管理器建立在網絡內容分析平臺(“NCAP”)上的應用程序例如可以包括若干并行工作的UNIX進程。進程的數目及其功能可以變化。另一方面,可以提供如下功能啟動、停止以及重新配置。表示某些特定功能或者模塊的特殊進程組才需要重新配置,而其余的應用程序應該繼續,而不會丟失任何共享數據。所述“啟動”和“停止”請求可以由OS在正常的引導/關閉序列期間發布。所述‘重新配置’請求可以來自自動下載機構以便執行特殊模塊的運行時重新加載(例如,規則組更新進程)。總的重新配置時間可以被最小化在此程序期間,所述應用程序可以只部分操作。啟動過程可以開始若干NCAP模塊(參見圖27)。這些模塊可以分配和/或要求不同IPC資源以執行它們的功能。雖然IPC死鎖依賴性可以在應用程序規劃階段被解決,但是啟動序列是自動的并且是可靠的,以便萬一無法獲得所需要的資源時,也允許進行穩定的模塊恢復。有時使救援人員生活更加容易的附加特征人工地發布重新配置請求的能力;人工地啟動/停止整個應用程序的能力;以及利用無法經由標志系統公用程序獲得的所有必要內部信息列出當前運行中的進程的能力。進程管理器的一個實施例可以被配置為提供一種用于充當基于整個NCAP的應用程序的啟動器/監視器的可靠進程。其特征可以包括·靈活配置;支持任意數目的程序。·標準誤差報告機構。·自動模塊恢復。·恢復過載保護如果模塊在一行中開始若干次之后立即死掉,那么下次要等到底層問題被解決之后再重啟它。·標準重新配置機構重啟保持應用程序共享數據的指定模塊組。還可以開發特殊控制工具,其用于在正確授權之后使用又一個IPC信道與主要的管理進程連接。它可以支持列表并且重新加載組命令,以便為自動上載機構提供通用接口。事件假脫機程序事件假脫機程序的一個實施例可以為事件處理提供通用API。它還可以收集統計量和進程、過濾器,并且使用加密信道在網絡上可靠地轉送數據。在實際生活的網絡的苛刻條件下,它還可以在“啟動和忘記”模式中工作。NCAP可以以事件的形式遞送信息。事件是適用于獨立處理并且稍后存儲和數據挖掘的最小基本信息單元。生成的事件可以例如依照實時或可靠的方式被轉送到事件處理/數據挖掘控制臺。事件處理模塊可以應用用于處理、在數據庫中存儲最終信息并且如果需要發送SNMP和/或電子郵件告警的附加層。由各種NCAP模塊生成的事件可以被存儲在假脫機文件中。模塊還可以使用IPC來存儲實時統計數據(例如,處理的分組數目、協議分布、模塊專用信息)。如果偶然停電,那么可以重置統計數據。事件數據可以具有文件系統級。作為附加好處,緩沖區事件流可以依照壓縮的形式被備份,以便允許向集中式事件數據庫存儲/重新加載存檔。事件假脫機程序可以被配置為監控任意數目的事件假脫機目錄和統計數據塊。它可以獨立地監控不同的數據源。每一事件假脫機文件可以依照FIFO順序由專用UNIX進程(假脫機監視器)處理。每一統計塊可以依照可配置的間隔由狀態收集器進程定期地輪詢。假脫機監視器可以生成獨立的二進制檢查點文件,其包含有關監視器當前狀態的完整信息。在供電周期的情況下,事件假脫機程序將能從每一隊列上的最后不完整事務開始繼續。事件假脫機程序可以是模塊化應用程序。它可以依照邏輯流(例如,事件流、統計流等)的形式收集并且路由數據。它可以具有用于需要時加載的數據處理模塊(插件程序)的API。每一流可以與任意數目的插件相關聯。插件可以是唯一的模塊,其已經知道特殊流的內部結構。事件假脫機程序可以提供通用目的的類似MUTEX的資源,其可以在幾個數據處理模塊之間共享,倘若如此配置的話。這種體系結構使可擴展性更加容易并且減少代碼維護工作。把新數據類型處理(例如,TCP會話數據)添加到事件假脫機程序僅僅變換為改變配置文件并且寫入識別此數據類型的插件的工作。除在傳感器側工作的事件壓縮算法以外,事件處理模塊可以執行事件處理(例如,后期處理)以及接收所述數據時的相關性處理。可以使用基于UDP的網絡協議利用如下內置特征來進行可靠的并且安全的網絡數據轉送,所述內置特征是校驗和驗證、利用重傳時間計算算法的分組或者會話級重傳、服務器側ACL驗證、運行時數據壓縮以及加密。事件處理模塊可以運行例如在端口80/UDP上偵聽的事件假脫機程序的服務器部分(“Netspool(網絡假脫機)”)。它可以接收來自每一授權傳感器的由傳感器名稱標記的數據流。基于邏輯流類型,網絡假脫機可以發送數據以便附加處理并且調用插件來存儲數據。基于所述配置,它還可以生成電子郵件/SMMP消息,并且發送原始數據以便進一步處理。如果出現網絡故障,假脫機監視器和/或網絡假脫機可以試圖在高達30分鐘(依照逐漸增加的超時間隔)內發送數據然后退出。可以由主要的事件假脫機程序進程重啟所述完成的進程并且繼續不完整的事務。所述周期可以持續,直到數據被成功地發送為止。圖28示出了依照分布模式工作的事件假脫機程序的示圖的一個實施例。傳感器也具有運行的網絡假脫機進程;它可以只允許本地客戶端連接。雖然假脫機監視器以及狀態收集器可以發送數據,但是對于每一應用而言,它只可以具有一個數據流源。所述配置可以為傳感器主機上的每個模塊提供自動MUTEX-風格鎖定。事件假脫機程序可以收集并且轉送例如由基于NCAP的應用程序內的所有模塊生成的事件。事件假脫機程序可以作為具有專用子進程的多進程分布式應用程序來實現,其可以使用UNIXIPC并且聯網以便相互通信并且和系統其余部分通信。可以被歸入事件假脫機程序應用程序的一列子進程如下·告警使用UNIX消息收集來自分析模塊的事件。濾出由用戶禁止的事件·evspool假脫機程序進程管理器·狀態收集器保存共享統計池·假脫機監視器從特定假脫機目錄獲取事件數據所述進程管理器可以啟動告警進程(參見圖29),其附屬于IPC消息池和/或從文件映射告警映射。然后它可以等待到來事件幀。接收幀,它可以解碼來自所述幀的告警id信息,并且相對于告警映射集合來檢驗它。如果允許發送告警id,那么告警進程可以把所述幀置于假脫機文件中。所述告警幀可以由假脫機監視器從假脫機文件取出,其可以在evspool管理下運行。假脫機監視器的任務可以是從假脫機文件逐個地拾取幀,利用流標簽和傳感器名稱來前插(prepend)每一幀,跟蹤檢驗點文件中的當前假脫機指針并且向網絡假脫機進程發送最終的幀。所述數據可以經由專有的、可靠的并且安全的基于UDP的協議來發送。所述事件數據可以保存在假脫機文件中,直到它被發送為止。特別開發的網絡協議和檢驗點文件可以確保應用程序經得起網絡故障和硬件重新引導。網絡假脫機進程可以接收所述幀,并且根據所述配置,可以將其發送到另一網絡假脫機或者將其發送到本地數據庫插件或者它們兩者。數據庫插件可以被實現為多個需要時加載的動態庫。后期處理的附加層可以包括事件相關性。網絡假脫機還可以收集來自狀態收集器的信息。狀態收集器可以復制分配給基于NCAP的應用程序的統計池的共享存儲器片段,并且將其反復地發送到數據庫(依照預先配置的時間間隔)。TCP限制器TCP限制器模塊的一個實施例例如通過實時停止TCP會話來提供了對惡意通信作出反應的能力。所述TCP限制器模塊可以利用Linux分組套接字API。此接口提供了用于直接與NIC驅動器連接并且將人工地生成的分組置于其輸出隊列的能力。所述驅動器接受來自用戶空間程序的完整的網絡分組(包括層2首部),并且沒有修改地將它注入網絡。如果網絡分析器足夠快,則如果正在進行的TCP會話被認為是惡意的,那么它可以生成TCPRST分組來停止正在進行的TCP會話。它可以通過向客戶端和服務器計算機發送具有正確SEQ和套接字對屬性的TCPRST分組來執行。在基于特殊套接字對接收了TCPRST分組之后,主機的TCP/IP棧可以關閉連接,清除數據緩沖區并且向用戶應用程序返回錯誤(“由對等方重置連接”可以是標準的錯誤消息)。由于裝備TCP限制器的應用程序主動地干擾了正常網絡活動,所以它可以對模塊的行為具有獨立的越權控制。所述TCP限制器模塊可以包括對來自NCAP應用程序的對話結束請求被允許還是被忽略的控制。所述控制機制可以包括用于指定目的地地址和端口范圍的獨立配置文件,以便歸入/排除可能的重置目標列表(IP過濾器)和“位圖”文件,其中所述“位圖”文件允許/禁止對每個告警ID的重置分組生成,其包括RST分組方向(告警映射)。所述TCP限制器模塊可以作為獨立的UNIX進程來實現,其用于使用UNIX消息IPC與其客戶端(例如,本地應用程序)通信。它可以在啟動期間從配置文件中讀取IP過濾器,并且依照共享模式把告警映射文件映射到存儲器,由此允許來自tcpkc的改變被接收。只有當IP過濾器信息需要改變時才要求重啟模塊。標準重啟過程可以由進程管理器提供。重啟不會影響基于NCAP的應用程序中的其它進程。TCP限制器模塊API所述TCP限制器API可以使用UNIX消息機構。TCP限制器可以附屬于在啟動過程期間由NCAP內核分配的消息隊列。隊列的ID可以被所有NCAP模塊獲知。TCP限制器進程可以預期依照tcpk_t結構描述的格式的消息緩沖區。所述tcpk_t結構可以包含創建TCPRST分組必需的告警id和層2/3/4信息。TCP限制器模塊初始化TCP限制器可以由進程管理器啟動。它可以從命令行獲得NIC名稱、告警映射名稱和IP過濾器配置文件的名稱。然后它可以讀取并且解釋IP過濾器信息并且把告警映射文件映射至存儲器。下一動作可以是例如通過利用指定的NIC名稱打開分組套接字來打開到NIC驅動器的控制連接。在初始化階段結束時,所述模塊可以把特定的NIC設置為NOARP模式。初始化之后,TCP限制器可以進入無限循環,其包括等待對話終止請求、接收它們、使用IP過濾器和告警映射來過濾所接收的請求,并且如果允許,使用請求中提供的信息來生成TCPRST分組。如上所述,告警映射還可以指定發送分組的方向客戶端側、服務器側或者它們兩者。如果兩側都被指定,那么TCP限制器模塊可以在一個序列中生成兩個分組并且發送該兩個分組為服務器側連接創建一個,為客戶端側創建另一個。TCP限制器模塊重新配置所述tcpkc命令行公用程序可以提供用于更新告警映射信息的方式。它可以修改指定的二進制映射文件;所述改變立即可以為運行的TCP限制器進程所利用,所述TCP限制器進程將保存映射到其存儲器的此文件。為了改變IP過濾器信息,所述TCP限制器模塊需要被重啟。這可以由進程管理器所提供的標準機構來執行。重啟TCP限制器模塊不會影響其它基于NCAP的模塊。TCP限制器模塊卸載當基于NCAP的應用程序發現退出理由時,TCP限制器模塊可以停止。所述模塊不會采取任何特定動作,因為所述UNIX標準退出過程關閉所有通信信道并且回收由進程使用的所有存儲器。機器可讀介質可以包括編碼信息,當由機器讀取并且執行時其實現例如所描述的實施例(例如,一個或多個描述方法)。所述機器可讀介質可以存儲可編程參數并且還可以存儲包括可執行指令、不可編程參數和/或其它數據的信息。所述機器可讀介質可以包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、非易失性存儲器、光盤、磁帶和/或磁盤。所述機器可讀介質例如還可以包括調制或者其他方式操縱的載波,以便傳送可由機器(例如,計算機)讀取、解調/解碼的指令。所述機器可以包括一個或多個微處理器、微控制器和/或其它邏輯元件陣列。鑒于前文,本領域普通技術人員將顯而易見的是,所描述的實施例可以依照軟件、固件和/或硬件來實現。用于實現本發明的實際軟件代碼或專用控制硬件不是對本發明的限制。由此,所述實施例的操作和行為是在沒有特別參考實際軟件代碼或專用硬件組件的情況下描述的。缺少這種特定參考是可行的,這是因為可以清楚理解的是,基于此處的描述,本領域普通技術人員將能夠設計出軟件和/或控制硬件來實現本發明的實施例。提供所描述的實施例的先前呈現,以便允許本領域技術人員能夠作出或者使用本發明。對這些實施例的各種修改都是可能的,并且此處呈現的通用原理還可以應用于其他實施例。例如,本發明可以部分地或者完全作為硬連線電路、作為制造為專用集成電路的電路結構或者作為載入非易失性存儲器的固件程序或者作為機器可讀代碼載入數據存儲介質的軟件程序來實現,其中所述機器可讀代碼是可由諸如微處理器或者其它數字信號處理單元或者其它可編程機器或者系統的邏輯元件陣列執行的指令。因而,本發明不意指局限于上文示出的實施例、任何特殊的指令序列和/或任何特殊的硬件配置,而是與此處以任何方式公開的原理和新穎特征相一致的最寬廣范圍一致。權利要求1.一種方法,包括接收網絡數據;根據所述網絡數據重組客戶端-服務器通信會話;并且通過使用(i)基于統計的檢測和(ii)基于關鍵字的檢測中的至少一個來分析所述客戶端-服務器通信會話,經由所述網絡數據檢測信息的泄漏。2.如權利要求1所述的方法,還包括解碼所述客戶端-服務器通信會話以便檢測并且檢查一個或多個應用協議,并且其中所述客戶端-服務器通信會話包括所述一個或多個應用協議。3.如權利要求2所述的方法,其中,所述一個或多個應用協議包括(i)pdf、(ii)http、(iii)電子郵件、(iv)電子郵件附件、(v)ftp、(vi)zip、(vii)msword、(viii)msexcel、(ix)html、(x)xml、(xi)gzip、(xii)tar以及(xiii)明文中的至少一個。4.如權利要求1所述的方法,其中,所述客戶端-服務器通信會話包括(i)TCP、(ii)IP以及(iii)以太網中的至少一個。5.如權利要求1所述的方法,其中,所述基于統計的檢測包括多維內容概要分析。6.如權利要求1所述的方法,其中,所述基于統計的檢測包括域-特有的高級特征。7.如權利要求6所述的方法,其中,所述域-特有的高級特征包括(i)社會安全號碼、(ii)信用卡號碼、(iii)通迅地址以及(iv)電子郵件地址中的至少一個。8.如權利要求1所述的方法,其中,所述基于關鍵字的檢測包括一個或多個加權關鍵字。9.如權利要求1所述的方法,其中,所述信息包括數字資產。10.如權利要求1所述的方法,還包括分析所述網絡數據,以便檢測任何未授權的加密會話。11.一種方法,包括如下步驟接收網絡通信;以及通過實時地向所述網絡通信提供至少內容重組、掃描和識別來防止經由所述網絡通信進行數據的未授權和/或惡意的轉送。12.如權利要求11所述的方法,其中,所述內容掃描和識別包括多維內容概要分析。13.如權利要求11所述的方法,其中,使所述內容掃描和識別適合于本地數據。14.如權利要求11所述的方法,其中,所述方法能夠防止經由所述網絡通信以完全飽和的千兆比特速度進行數據的未授權和/或惡意的轉送。15.一種方法,包括接收網絡數據;并且通過至少應用多維內容概要分析來經由所述網絡數據防止信息泄漏。16.如權利要求15所述的方法,其中,所述信息包括數字資產。17.如權利要求15所述的方法,其中,所述多維內容概要分析考慮了所述信息結構。18.一種具有編碼信息的機器可讀介質,當由機器讀取并且執行時,其實現一種方法,所述方法包括接收網絡數據;根據所述網絡數據重組客戶端-服務器通信會話;并且通過使用(i)基于統計的檢測和(ii)基于關鍵字的檢測中的至少一個來分析所述客戶端-服務器通信會話,經由所述網絡數據檢測信息泄漏。19.一種具有編碼信息的機器可讀介質,當由機器讀取并且執行時,其實現一種方法,所述方法包括接收網絡通信;以及通過實時地向所述網絡通信至少提供內容重組、掃描和識別來防止經由所述網絡通信進行數據的未授權和/或惡意的轉送。20.一種具有編碼信息的機器可讀介質,當由機器讀取并且執行時,其實現一種方法,所述方法包括接收網絡數據;并且通過至少應用多維內容概要分析來經由所述網絡數據防止信息泄漏。21.一種設備,包括接收器,用于接收網絡數據;耦合至所述接收器的處理器,用于(i)根據所述網絡數據來重組客戶端-服務器通信會話,并且(ii)通過使用(i)基于統計的檢測和(ii)基于關鍵字的檢測中的至少一個來分析客戶端-服務器通信會話,以便經由所述網絡數據檢測信息泄漏。22.一種設備,包括接收器,用于接收網絡通信;以及耦合至所述接收器的處理器,用于通過向所述網絡通信實時地提供至少內容重組、掃描和識別來防止經由所述網絡通信進行數據的未授權和/或惡意的轉送。23.一種設備,包括接收器,用于接收網絡數據;以及耦合至所述接收器的處理器,用于通過至少應用多維內容概要分析來通過所述網絡數據防止信息泄漏。全文摘要方法的一種實現重組完整的客戶端-服務器會話流,應用解碼器和/或解壓縮器,并且使用多維內容分析和/或加權的上下文中的關鍵字來分析所述得到的數據流。所述方法可以檢測所述數據的外泄,例如,即使所述數據已經從其原始形式和/或文檔類型進行了修改。所述解碼器還可以揭示隱藏的傳輸機構,比如電子郵件附件。所述方法還可以檢測未授權(即,欺詐性的)的加密會話,并且停止被認為是惡意的數據傳送。例如,所述方法考慮構建2Gbps(全雙工)-能力的外泄防止機。文檔編號G06F21/00GK1965306SQ200480033060公開日2007年5月16日申請日期2004年9月9日優先權日2003年9月10日發明者吉恩·薩夫丘克申請人:菲德利斯安全系統公司