新四季網

用來減少軟體的攻擊面的自動代碼鎖定的製作方法

2023-05-26 00:40:21 1


本申請要求於2014年6月24日提交的美國臨時申請No.61/998,320的權益和優先權。以上申請的全部教導通過引用併入本文。



背景技術:

隨著過去的每一天,網絡攻擊正變得越來越複雜。攻擊以利用特定應用中的特定漏洞為目標。這種攻擊的原因和影響在網絡層是不可辨別的,因為它們不會觸發似乎是明顯惡意的網絡活動。在企業系統上執行的應用是攻擊者的優選目標,因為可以從這些應用訪問高價值的信息,諸如信用卡號、客戶社會保障號碼和其他個人可標識信息。為了處理這些有針對性的攻擊,許多供應商已經部署了網絡安全產品,諸如試圖學習用戶行為的下一代防火牆、或試圖在沙盒中運行似乎是可疑代碼的代碼並等待這種可疑代碼執行惡意活動的沙盒技術。在這些情況下,惡意軟體經常適應其行為,例如等待更長的時間段來執行其惡意意圖。由於這些產品必須放棄嘗試在某一點檢測行為並將用戶流量傳遞給預期接收者,所以攻擊僅等待這個檢測時間。這些行為的改變阻礙所部署的網絡安全產品的用於識別攻擊行為的能力,因此,它們用於檢測惡意軟體的存在的能力大大降低。



技術實現要素:

如今,計算機應用的大量惡意軟體攻擊源於惡意行為者在運行應用的進程中注入並隨後執行惡意內容的能力。注入這樣的惡意內容的方法涉及標識和利用執行不充分的輸入驗證的設計不良的應用代碼。當前的網絡安全技術要麼試圖觀察應用中的惡意內容,跟蹤應用的行為,要麼在沙箱中篩查可疑代碼的行為。這些技術不具有鎖定計算機應用的指令以防止應用代碼中的惡意內容的注入和執行的能力。此外,這些技術不具有用於跟蹤和關聯訪問鎖定代碼的嘗試以便於在惡意軟體成功地執行其惡意意圖之前準確地標識惡意軟體攻擊的能力。

許多企業系統執行由通用代碼組成的計算機應用,該通用代碼包括企業或企業中的一類用戶所不使用的軟體功能。通過確定與不使用的軟體功能相對應的代碼並禁用該代碼的指令,用於注入惡意內容的攻擊面被顯著減少(即,鎖定)。禁用不使用的指令通過使惡意行為者能夠攻擊應用的點最小化而提供實質的益處,同時不影響執行應用的用戶的體驗。作為鎖定的結果,執行這些計算機應用的任何設備,諸如臺式計算機、膝上型計算機、移動或其他形式的個人計算機、網際網路就緒設備(例如,蜂窩電話)、機頂盒、MP3播放器、遊戲控制臺、或通信地耦合到這些設備的其他設備,被更好地保護免受惡意軟體攻擊。

本公開針對用於鎖定計算機應用的指令以便於檢測和防止惡意軟體攻擊的示例系統和方法。這些系統和方法根據用於計算機應用的可用指令來確定一組指令。所確定的一組指令提供計算機應用的特定功能。在示例實施例中,特定功能可以取決於執行應用的用戶的類別。在一些實施例中,系統和方法通過對計算機應用的特定功能執行功能測試並捕獲在功能測試期間被執行的指令來確定該組指令。在這些實施例中的一些實施例中,系統和方法還可以通過對特定功能執行負面測試來確定該組指令。負面測試觸發關於特定功能的異常處理函數,並且系統和方法捕獲由觸發的異常處理函數執行的指令。在其他實施例中,系統和方法通過在功能測試期間靜態地分析執行特定功能的線程的結構來捕獲用於異常處理函數的指令。系統和方法可以將用於該組指令的存儲器地址寫入到用於在硬體處理器上加載的表。在一些實施例中,系統包括被配置為根據用於計算機應用的可用指令來確定該組指令的儀器引擎。

在一些實施例中,系統和方法可以在存儲器中重新組織該組指令,以及將經重新組織的該組指令寫入到更小的存儲器空間。在這些實施例中,系統和方法可以在將經重新組織的該組指令寫入到更小的存儲器空間之前使經重新組織的該組指令隨機化。在一些實施例中,儀器引擎被配置為重新組織和隨機化該組指令,並且在這些和其他實施例中,儀器引擎還可以被配置為將用於經重新組織的指令的存儲器地址寫入到表。

一旦該組指令被確定,則針對不在該組指令中的每個可用指令,系統和方法將相應指令改變為不起作用以防止相應指令的執行。系統和方法可以將相應指令永久或臨時地改變為不起作用。在一些實施例中,系統和方法可以通過在加載時間期間利用不起作用的指令重寫相應指令來將相應指令改變為不起作用。在其他實施例中,系統和方法可以通過在運行時期間利用不起作用的指令重寫相應指令來將相應指令改變為不起作用。系統和方法可以通過利用無操作(NOP)指令重寫相應指令來將相應指令改變為不起作用。在一些實施例中,儀器引擎被配置為將相應指令改變為不起作用。

在將指令改變為不起作用之後,系統和方法可以捕獲在運行時被訪問的計算機應用的存儲器地址。在一些實施例中,系統包括分析引擎,其被通信地耦合到儀器引擎,並且被配置為捕獲存儲器地址。如果所捕獲的存儲器地址與用於不起作用的指令的存儲器地址匹配,則系統和方法可以聲明安全攻擊。在一些實施例中,系統包括驗證引擎,其被通信地耦合到分析引擎和儀器引擎,並且被配置為聲明安全攻擊。

附圖說明

根據如在附圖中示出的對本公開的示例實施例的以下更具體的描述,前述事項將是顯而易見的,其中在不同的視圖中相似的附圖標記指代相同的部分。附圖不一定是成比例的,重點反而在於示出本公開的實施例。

圖1示出高級持續惡意軟體攻擊的示例配置。

圖2示出用於鎖定計算機應用的指令的示例方法的流程圖。

圖3示出具有基於組織和該組織的用戶的類別的功能的示例計算機應用。

圖4示出了用於存儲應用的活動指令的示例表。

圖5A示出用於捕獲執行計算機應用的所需功能的指令的示例配置的框圖。

圖5B示出用於在在線模式和離線模式下鎖定指令的示例配置的框圖。

圖6示出本公開的實施例中的用來跟蹤所生成的事件的示例事件鏈狀態機。

圖7A示出本公開的實施例中的客戶端和分析引擎的示例框圖。

圖7B示出用來在圖7A的客戶端和分析引擎之間傳輸數據的示例協議數據單元(PDU)。

圖8示出其中可以實現本公開的實施例的計算機網絡或類似的數字處理環境。

圖9示出了圖8的計算機系統中的計算機(例如,客戶端處理器/設備或伺服器計算機)的示例內部結構的示圖。

具體實施方式

下面是對本公開的示例實施例的描述。

惡意軟體攻擊的概述

國家漏洞資料庫(NVD)在2011年列舉了大約4100個應用漏洞,並且在2012年列舉了大約5300個應用漏洞,其被劃分為二十三個攻擊類別。儘管幾個攻擊類別涉及由疏忽或錯誤配置導致的攻擊,但是最大數量的攻擊類別涉及惡意行為者在組織的正在執行的進程中有意注入惡意內容並隨後導致惡意內容的執行。注入這樣的惡意內容的過程涉及標識和利用某一設計不良的代碼,其執行不充分的輸入驗證。例如,如果代碼缺少與大小相關的驗證,則該代碼可能允許包括在緩衝區錯誤攻擊類別中的緩衝區錯誤式的攻擊。在這些攻擊中,惡意行為者注入惡意內容以試圖從正在執行的進程中挖掘信息以訪問來自組織的機密信息,諸如信用卡數據、智慧財產權、社會保障號碼。惡意行為者然後可以通過從該組織或該組織的客戶竊取資源來使用該機密信息獲利。

惡意軟體攻擊示例

圖1示出高級持續惡意軟體攻擊的示例。在這種情形下,來自行為者自己的基礎設施102的惡意行為者(或黑客)使用諸如nmap 104之類的掃描工具來遠程地掃描面向企業108的基礎設施的web。當掃描發現具有已知漏洞或零日漏洞的伺服器時,行為者安裝殼代碼106以獲得對遠程企業伺服器(即,目標)110的控制並訪問企業網絡。一旦進入網絡,惡意行為者加載附加的工具。這些工具可以包括nmap、埠掃描器、密碼破解工具、ftp客戶端、壓縮工具,散列和/或加密和解密工具。

行為者然後訪問企業基礎設施,尋找機器114或116,提升的特權用戶從該機器114或116登錄到有價值的目標,諸如資料庫和文件倉庫。行為者出於抓取用戶的訪問憑證並為更多黑客工具找到家的目的而正在尋找機器114或116。在發現具有易受攻擊的應用114或116的機器時,惡意行為者可以抓取憑證、滲透並隨後訪問目標110。一旦目標被訪問,則交易的附加的工具被加載到目標110上。惡意軟體也可以被存放到行動裝置(諸如特權用戶的智慧型手機和膝上型計算機)上,因為他們攜帶他們的機器通過諸如咖啡店、機場和酒店之類的無保護網絡。在另一種情形下,內部用戶可以利用病毒或其他惡意軟體攻擊來感染目標機器。通過使用複雜的密碼破解工具或窺探內聯網流量,惡意軟體可以獲得管理用戶116的憑證。

企業資料庫是惡意行為者的優選目標,因為特權用戶可以訪問極有價值的信息。例如,在這些資料庫中,特權用戶可以訪問關於許多用戶的大塊機密客戶信息,而常規用戶只能訪問機密信息中與其自身相關的部分。在憑證已被得到之後,惡意行為者可以作為特權用戶連接到資料庫和文件倉庫118,並且提取有價值的機密信息,諸如真實姓名、家庭地址、社會保障、駕駛執照、出生日期、醫療記錄、金融信息(諸如信用卡/借記卡號)、電話號碼、電子郵件地址、用戶名和密碼、保險信息、詳細的客戶列表、設計方案和原始碼或其他智慧財產權。

惡意行為者可以可選地壓縮和加密該信息,並以小塊將其上傳到黑客命令控制中心112,以便不引起企業安全分析員的注意。為了實現該目的,惡意行為者可以每天改變黑客命令控制中心112的IP位址或使用代理,使得企業中的入侵檢測系統不能建立模式。企業通常每天發送和接收超過10GB的數據;因此以短突發上傳相對少量的數據通常不被注意。

應用114或116對惡意軟體攻擊的漏洞與應用中的代碼量(即,攻擊面)成正比。通過確定由每個類別的用戶(例如,特權用戶)執行的特定代碼,並且將用於代碼的其餘部分的指令改變為不起作用,供行為者將惡意內容注入到應用中的攻擊面被最小化。更具體地,惡意行為者將發現用來注入惡意內容的漏洞(諸如設計不良的代碼)的概率與被改變為不起作用的指令的數量成比例地減少,從而保護應用免受惡意攻擊。此外,如果應用的指令塊一貫地加載在相同的位置和序列中,則應用114或116對惡意軟體攻擊的漏洞可以被增加。通過確定由一類用戶類訪問的特定指令,可以在每個系統的存儲器中重新組織和隨機化那些指令。因此,即使惡意行為者在應用的最小化攻擊面中定位了漏洞,惡意攻擊者也被防止使用相同的漏洞來攻擊另一系統上的應用。

鎖定過程

圖2示出用於鎖定計算機應用的指令的示例方法200的流程圖。方法200可以用來減少計算機應用的攻擊/威脅面,以便檢測和防止安全攻擊。方法200以儀器引擎根據用於計算機應用的可用指令來確定一組指令在步驟220處開始。該組指令可以對應於組織或組織的一類用戶所使用的應用的特定功能,而可用指令對應於應用的所有功能。也就是說,應用供應商經常向組織交付包括組織不為組織的所有類別的用戶使用的功能的應用。例如,組織作為整體可以僅使用功能的子集,並且另外,不同類別的用戶(例如,普通用戶、特權用戶、管理員)可以僅使用該子集的一部分。儀器引擎可以確定由組織實際使用並且由組織的不同類別的用戶使用的特定功能的指令。

在一些實施例中,儀器引擎可以使用動態過程來確定該組指令。在該過程中,可以行使由組織或組織的一類用戶使用的特定功能,其繼而執行對應於該功能的目標代碼塊。可以使用包括功能測試和負面測試的各種方法來行使特定功能,其測試代碼塊對無效輸入或關於功能的意外行為的處理。在一些實施例中,測試可以由人類測試者手動執行,並且在其他實施例中,測試可以由測試工具自動執行。另外,在一些實施例中,可以根據應用供應商提供的文檔或組織向供應商提供的需求(例如,用例)來確定組織或該組織的一類用戶的特定功能。在其他實施例中,可以基於檢查如在作為應用的一部分提供的圖形界面或命令行界面中指示的所有應用命令來確定組織或該組織的一類用戶的完整功能,或者可以在用戶在真實世界條件下執行應用時在一段時間內學習功能。在其他實施例中,信息技術或組織的其它這樣的部門可以選擇對不同類別的用戶可用的功能,並相應地配置應用。

當對應於功能的代碼塊被執行時,儀器引擎研究代碼的行為並捕獲所生成的代碼的指令(例如,彙編代碼指令)。針對每個代碼塊,儀器引擎可以將所生成的指令的存儲器地址存儲在表中,例如在儀器資料庫的黃金表中。在一些實施例中,指令的代碼塊的存儲器地址被存儲為範圍。儀器引擎還可以將表傳送到分析引擎,分析引擎可以將表寫入在存儲器中或者分析引擎上的其他存儲元件中,以用於快速引用該組指令。

在一些實施例中,儀器引擎可以使用靜態過程來確定該組指令。在該過程中,儀器引擎可以使用代碼分析來反彙編應用的可執行文件和庫。例如,包含應用的特定功能的可執行文件和庫可以由供應商以庫文件提供,諸如以動態連結庫(DLL)提供。儀器引擎可以反彙編庫文件,以及跟蹤組織或組織的一類用戶所使用的功能的函數、庫(例如,導入/導出/跳轉庫)和數據,以確定與功能相對應的代碼塊。對應於特定功能的可執行文件和庫可以根據與由應用供應商提供的動態連結庫(例如,API文檔)相關的文檔來確定。

當儀器引擎反彙編庫文件時,針對每個代碼塊,儀器引擎可以將相應指令的存儲器地址存儲在表中,諸如在儀器資料庫的黃金表中。在一些實施例中,指令的代碼塊的存儲器地址被存儲為範圍。儀器引擎還可以將表傳送到分析引擎,分析引擎可以將表寫入到硬體處理器以用於快速引用該組指令。

在步驟240,對於不在該組指令中的每個可用指令,儀器引擎將相應指令改變為不起作用。更具體地,儀器引擎檢索在步驟220中確定的該組指令的存儲器地址。儀器引擎可以檢索存儲在表(諸如黃金表)中的存儲器地址。儀器引擎然後可以遍歷應用的完整範圍的存儲器地址。如果遍歷的存儲器地址不對應於針對該組活動指令檢索的存儲器地址,則儀器引擎將相應指令改變為不起作用。在其它實施例中,如果遍歷的存儲器地址範圍不對應於針對該組指令檢索的存儲器地址範圍,則儀器引擎將相應的指令範圍改變為不起作用。

在一些實施例中,儀器引擎將指令永久地改變為不起作用,並且在其他實施例中,儀器引擎將指令臨時改變為不起作用。在儀器引擎臨時改變指令的實施例中,儀器引擎存儲原始指令和相應存儲器地址的副本,以在將來重新加載應用期間將不起作用的指令中一個或多個指令改回原始指令。在儀器引擎永久地改變指令的實施例中,不起作用的指令跨應用的重新加載而持續。儀器引擎可以通過在運行時期間或在加載時間期間利用不起作用的指令重寫指令來將相應的指令改變為不起作用。在一些實施例中,儀器引擎可以基於原始碼是自生成原始碼或解釋性原始碼來確定在運行時或加載時間重寫相應的指令。指令引擎可以通過利用無操作指令(或NOP)或等效的不起作用的指令重寫指令來將相應指令改變為不起作用。應用的未被改變為可操作的指令在下文中可以被稱為活動指令。

通過使不用的指令不起作用,鎖定過程向執行應用的組織提供多個好處。鎖定過程減少了應用的可攻擊代碼面,從而不起作用的指令無法用來執行攻擊。鎖定過程可以通過基於組織的用戶類別鎖定指令來進一步減少應用的可攻擊面。例如,應用與代表小部分用戶的管理員相比,代碼可以針對構成應用的主要用戶的普通用戶而被進一步鎖定。另外,組織可能需要為應用實現更少的補丁發布,因為補丁可能針對於應用指令中被改變為不起作用的功能。更少的補丁導致企業系統的更少停機時間,這繼而導致組織的增加的生產力和成本節省。

此外,在示例實施例中,儀器引擎可以重新組織由組織或組織的一類用戶使用的活動指令的所存儲的存儲器地址。儀器引擎以保持相應指令的相對地址關係的方式(例如,重定向存儲器指針)重新組織存儲器地址。在一些實施例中,當重新組織存儲器地址時,儀器引擎還可以使存儲器地址位置隨機化。儀器引擎然後可以將活動指令寫入到更小的存儲器地址空間,並且在其中應用被加載的每個系統上以不同的順序和位置寫入存儲器地址。因此,如果惡意行為者在一個系統上定位和利用應用中的漏洞,則惡意行為者將不能在另一系統上定位相同的漏洞來利用。

在步驟260,可以被通信地耦合到儀器引擎的分析引擎捕獲在運行時被訪問的應用的存儲器地址。然後,如果分析引擎確定所捕獲的存儲器地址與用於不起作用的指令的存儲器地址匹配,則分析引擎可以將事件傳送到漏洞引擎。分析引擎可以將存儲器地址與對應於活動指令的活動存儲器地址的黃金表進行比較,並且如果地址不在表中,則將事件傳送到驗證引擎。在一些實施例中,分析引擎可以在硬體過程上訪問黃金表以用於更快的處理。在步驟280,可以被通信地耦合到分析引擎和儀器引擎的驗證引擎然後可以聲明安全攻擊。在其他實施例中,漏洞引擎可以關聯狀態機中的事件以檢測安全攻擊。

功能的確定

圖3示出具有基於用戶類別的功能的示例計算機應用。示例計算機應用可以從應用供應商交付給組織。應用可以包括由應用供應商提供的標準功能310。應用還可以包括專門為組織提供的被稱為通用340的通用功能,以及基於組織中的用戶類別的特定功能。例如,應用可以包括被引用為用戶320的特定於用戶類別的功能。對於另外的示例,應用可以包括特定於被稱為管理員330的更特權的用戶類別的功能。通用340、用戶320和管理330功能可以基於由組織從供應商請求的特徵的應用需求(例如,用例),而標準功能310可以被提供給使用該應用的所有組織。

組織中的個人可以僅使用應用的標準功能310的子集。例如在圖3中,組織可以僅使用標準的主(Home)功能,並且可以從應用接口移除對所有其他標準功能(例如,iCreate、郵件發送等)的訪問。雖然組織可能已經移除對不用的功能的訪問,但是代碼的指令在系統上的存儲器中仍然是活動的,並且仍然可能提供漏洞,惡意行為者可以通過該漏洞利用應用。使用與圖2的方法類似的方法,人類測試者或自動測試工具可以行使關於主功能提供的所有選項,諸如粘貼、超級複製等。當選項被行使時,儀器引擎可以捕獲選項的對應指令,以及在表中記錄與指令對應的存儲器地址。

另外,在一些實施例中,組織中的所有個人都可以使用通用功能340,但是用戶功能320和管理330僅可以由相應類別的用戶使用。例如,組織可能已經移除用戶類別對管理功能330的訪問。然而,當個人執行應用時,關於管理功能330的指令在存儲器中仍然是活動的,並且仍然可以提供漏洞,其中惡意行為者可以利用應用。使用與圖2的方法類似的方法,人類測試者或自動測試工具可以行使對類別用戶的個人可用的所有選項(例如,用戶功能320和通用功能340)。當選項被行使時,儀器引擎可以捕獲選項的對應指令,並且將與指令對應的存儲器地址記錄在表中。

在對用戶可用的所有選項都被執行之後,儀器引擎然後可以遍歷應用的所有功能310、320、330、340的所有指令。如果被遍歷指令的存儲器地址不存在於表中,則存儲器地址可以被改變為不起作用(例如,NOP)。因此,在本示例中,當用戶類的個體執行應用時,僅標準功能310的主選項、通用功能340和用戶功能的指令是活動的,並且管理功能330的指令是不起作用的(即,不活動)。因此,當個人執行應用時,管理功能330的指令不能夠為惡意行為者(包括來自另一用戶類別的個人)提供利用應用的漏洞,從而消除了對應用的惡意攻擊的可能性。另外,儀器引擎可以檢測到惡意行為者曾試圖訪問不起作用的代碼,並且基於該事件生成安全事件。

黃金表

圖4示出用於存儲應用的活動指令的示例表。在本實施例中,該表被稱為黃金表。當計算機應用的特定功能(例如,圖3的功能)被行使時,主機系統繼而執行對應於該功能的代碼塊。儀器引擎捕獲每個代碼塊的生成的指令(例如,彙編代碼指令)。如圖4所示,儀器引擎將針對每個執行的代碼塊的枚舉記錄在黃金表中。另外,儀器引擎記錄相應代碼塊的捕獲指令的範圍的起始存儲器地址和結束存儲器地址。黃金表可以被存儲在儀器引擎或分析引擎處的資料庫中。在一些實施例中,黃金表還被加載在硬體過程上以用於快速引用在黃金表中記錄的代碼塊和對應的存儲器地址。注意,可以為執行應用的每個用戶類別以及為加載應用的每個系統創建單獨的黃金表。

當應用的存儲器地址被訪問時,分析引擎檢查訪問的存儲器地址是否與黃金表中的存儲器地址匹配。在一些實施例中,分析引擎單獨檢查存儲器地址,並且在其他實施例中,分析引擎檢查代碼塊的存儲器地址的範圍。如果所訪問的存儲器地址不在黃金表中,則分析引擎可以向驗證引擎報告事件以聲明(或關聯)安全攻擊。注意,在該實施例中,黃金表包含針對所有活動代碼塊的存儲器地址,然而,在其他實施例中,黃金表可以替代地包含所有不起作用的代碼塊的存儲器地址。在這些其他實施例中,分析引擎檢查所訪問的存儲器地址是否在黃金表中,並且可以向驗證引擎報告事件以聲明安全攻擊。

活動指令的確定

圖5A示出用於捕獲執行計算機應用的所需功能的指令的示例配置的框圖。

組織或應用供應商可以向應用開發者提供需求文檔,詳細地指定組織或應用供應商所需的應用的功能。需求文檔可以將所需的功能組織為用例510,其標識其中組織或應用供應商可以使用所需功能的可能情形(以及與每個情形相關的所有相應參數)。組織還可以在需求文檔中指定不同類別的用戶所需要的不同功能。因此,需求文檔可以包括用於這些不同類別的用戶中的每個類別的用戶的特定用例510。

應用供應商然後可以向組織交付包括應用的所有標準功能的應用的版本。如果組織所指定的所有或部分所需功能(即,用例)不包括在標準功能中,則供應商可以進一步將該所需功能併入應用的版本中。因此,如圖3所示,應用的交付版本包括組織的所有需要的功能,但也包括組織所不使用的標準功能。另外,也如圖3所示,應用的交付版本包括組織的特定類別的用戶的所有需要的功能,但也包括該特定類別的用戶所不需要的功能,其反而對應於組織的其他類別用戶。

為了行使組織所需的所有功能,組織可以測試提供給供應商的完整的用例集合510。另外,為了行使組織的一類用戶所需的所有功能,組織可以測試針對該類用戶向供應商提供的完整的用例集合510。組織可以採用手動人類測試者、自動測試工具或兩者的組合來根據用例510執行功能測試520。自動測試工具可以包括可用於基於用例510的功能測試520的多個自動測試工具中的一個或多個自動測試工具。功能測試520可以通過使用應用接口(例如,圖形界面和命令行界面)選擇應用的命令選項或檢測執行應用的命令選項(或相關代碼)的代碼來執行。

在執行功能測試520之前,儀器引擎可以被配置為監視計算機應用的執行。因此,在應用加載時間,儀器引擎可以將指令插入到應用的模塊中或者執行與應用分離的進程以監視應用的活動(例如,堆棧、堆和系統調用)。然後,當功能測試被執行時,儀器引擎可以確定正被執行的代碼塊,以及捕獲該代碼塊的生成的指令(例如,彙編代碼指令)。針對每個代碼塊,儀器引擎可以將所生成的指令的存儲器地址550存儲在資料庫560的黃金表565中。在一些實施例中,黃金表如圖4所示被格式化。可以對整個組織所需要或使用的所有功能執行功能測試520,並且相應功能的指令被存儲在第一黃金表565中。可以改為針對特定用戶類別所需要的所有功能執行功能測試520,並且相應功能的指令可以被存儲在第二黃金表565中。類似地,可以替代地針對每個其他用戶類別執行功能測試520,並且相應功能的指令可以被存儲在單獨的黃金表565中。

基於功能測試520,儀器引擎可以執行負面測試540以進一步捕獲與組織或組織的各類用戶的需要功能相關的指令。具體地,負面測試540測試對關於所需功能的無效輸入或意外行為的處理(例如,異常處理)。當功能測試被執行時,儀器引擎可以監視通過執行應用的代碼塊而正被生成的觸發函數(例如,系統調用)530。儀器引擎然後可以通過模擬與需要功能有關的上下文特定錯誤(例如,異常處理)來使用該信息來執行負面測試540。模擬的錯誤可以包括磁碟已滿、文件共享違例和存儲器耗盡。當負面測試540被執行時,儀器引擎可以確定正被執行的代碼塊,以及捕獲該代碼塊的生成指令(例如,彙編代碼指令)。針對每個代碼塊,儀器引擎可以將所生成的指令的存儲器地址555存儲在資料庫560的黃金表565中。來自負面測試540的存儲器地址555可以被存儲在與來自功能測試的存儲器地址550相同或分開的黃金表565中。

在其他實施例中,負面測試540可以被靜態地執行。在這些實施例中,儀器引擎可以通過在功能測試期間靜態地分析執行特定功能的線程的結構來確定用於異常處理功能的指令。例如,在x86CPU架構中,指向註冊的異常處理器的指針被加載在線程控制塊中。在一些實施例中,儀器引擎可以通過靜態地分析可執行鏡像來確定用於異常處理功能的指令。例如,在x64CPU架構中,異常處理器存在於可執行鏡像本身的單獨部分中。針對每個代碼塊,儀器引擎可以將所確定的指令的存儲器地址555存儲在資料庫560的黃金表565中。來自負面測試540的存儲器地址555可以被存儲在與來自功能測試的存儲器地址550相同或分開的黃金表565中。

鎖定模式

圖5B示出用於鎖定應用的指令的示例配置的框圖。在圖5B的實施例中,指令可以由在線鎖定模式575或離線鎖定模式580下的儀器引擎570鎖定。

在線鎖定模式

儀器引擎570可以在在線鎖定模式575下被配置用於重寫應用的不用的指令。儀器引擎570可以被配置為臨時或永久地重寫每個不用的指令。在儀器引擎570臨時重寫不用的指令的實施例中,儀器引擎570存儲不用的指令和相應的存儲器地址的副本,以在將來重新加載應用期間將不起作用的指令中的一個或多個指令改寫回不用的指令。在儀器引擎570永久地重寫指令的實施例中,不起作用的指令跨應用的重新加載而持續。儀器引擎570可以首先從資料庫560中的一個或多個黃金表565加載所有存儲器地址572。加載的黃金表565對應於在執行應用時所需的所有功能。例如,可以為不同類別的用戶加載不同的黃金表565,因為每個相應用戶類別所需的功能可以變化。如果應用不包含自生成或解釋性代碼(例如,Javascript),則在將應用加載到存儲器中之後,儀器引擎570可以執行應用鎖定。也就是說,儀器引擎570可以遍歷所加載的應用的所有存儲器地址。如果遍歷的存儲器地址不對應於從黃金表565加載的指令地址572,則儀器引擎570重寫對應的指令。儀器引擎可以通過將指令改變為適於執行應用的系統的CPU架構的不起作用的指令585(例如,NOP指令)來重寫應用存儲器590中的指令。

如果應用確實包含自生成或解釋性代碼,則儀器引擎570可以在運行時間期間(即,實時地)執行應用鎖定。因此,儀器引擎需要針對應用的每次執行來執行應用鎖定。為了重寫應用的不用的指令,儀器引擎570監視CPU指令高速緩存以確定關於將要由系統進程執行的指令。如果將要執行的指令的存儲器地址不對應於從黃金表565加載的指令地址572,則儀器引擎570重寫相應的指令。否則,儀器引擎570允許指令繼續加載到應用的執行流水線中。注意,在一些實施例中,即使應用不包含自生成或解釋性代碼,測試引擎570仍然可以被配置為在運行時而不是加載時間期間執行應用鎖定。另外,在一些實施例中,應用的一些指令可以在加載時被鎖定,並且同一應用的其他指令可以在運行時被鎖定。

離線鎖定模式

儀器引擎570可以被配置為離線鎖定模式580以用於優化應用的活動代碼。如果應用不包括自修改或解釋性代碼,則檢測引擎570可以首先從資料庫560的一個或多個黃金表565加載指令地址574,作為針對應用的特定功能集的活動指令集。指令地址574可以根據它們相應的代碼塊而被加載。儀器引擎570然後可以重新組織代碼塊和代碼塊中的指令,以使得指令包含更小的存儲器空間,諸如更小的可執行文件或庫模塊。作為重新組織的一部分,儀器引擎570還可以使指令的存儲器地址隨機化。重新組織和隨機化涉及以保留指令之間的所有相對地址關係(例如,存儲器指針)的方式更新指令的存儲器地址。儀器引擎570可將具有更新的存儲器地址的代碼塊寫入到主機系統作為可執行文件或庫,以便在下次加載應用時使用。

此外,針對每個代碼塊,儀器引擎570然後可以將更新的存儲器地址594寫回到黃金表565,替換相應代碼塊的先前存儲器地址。然後,下一次將儀器引擎配置為在線鎖定模式時,更新的存儲器地址將被用來重寫不用的指令。當惡意行為者發現新的漏洞時,行為者通常依賴於用於執行攻擊的硬編碼的攻擊矢量,諸如在相同架構的所有機器上的相同位置中的代碼塊。通過重新組織和隨機化指令,如果惡意攻擊成功在特定代碼塊中利用一個機器,則相同的攻擊在另一個機器中將不會在相同位置奏效。

事件的攻擊鏈

圖6描繪了用於使用事件鏈過程來關聯檢測到的安全事件的事件鏈狀態機。能夠檢測和阻止惡意攻擊情形的事件鏈是阻止這種高級持續威脅的關鍵部件。如圖2所示,在事件鏈中可以被關聯的一個檢測到的事件是對包含設置為不起作用的應用指令的存儲器地址的訪問。由於包含在這些存儲器地址中的指令不被執行應用的這類用戶使用,所以對這些存儲器地址的訪問一定是由外部用戶(諸如惡意動作者)進行的。與其他檢測到的事件相關聯的該事件可以共同指示攻擊情形,其中惡意行為者試圖從應用進程挖掘數據以用來訪問機密資源。

現有的網絡安全工具依賴於安全分析員來設置表示攻擊的事件的閾值。例如,一個安全分析員可能已經將以下深藏心底:在一天的正常過程中每小時將發生某數量的埠掃描和的登錄嘗試。問題然後變為在觸發警報之前每小時每個源多少埠掃描嘗試是過多。另外,如果為每個埠掃描生成警報,分析員可能正在調查沒有惡意意圖的埠掃描。如果由於提高的閾值而過晚提出警報或從未提出警報,則惡意軟體攻擊可能已經成功。另外,這些工具具有不完全的知識庫來有效地檢測攻擊,因此,這些工具產生了如此多的假陽性,以至於典型的安全分析員被噪聲淹沒。用於生成真實真正警報的能力需要網絡安全工具精確和可靠地區分良性和惡意事件。惡意行為者將意識到同一組特徵或已知可疑的網絡或應用行為。因此,惡意行為者能夠諸如使用加密來編碼數據、改變IP和埠組合、或者通過減慢攻擊以避免基於在知識庫中詳細說明的行為的檢測來削弱對攻擊的檢測。

相比之下,在本公開中,路徑驗證引擎根據圖6所示的事件鏈狀態機來跟蹤安全事件的狀態。事件鏈狀態機使用存儲在各種內部資料庫中的記錄(諸如轉換劇本資料庫)來跟蹤這些事件。當新線程開始時,事件鏈狀態機在602處被初始化為起始狀態。事件管理引擎723將事件串行化,諸如圖2所示,以使得關於一個線程的一組事件在針對適當的線程的狀態機上被更新。當線程上發生轉換時,狀態機記錄目標地址,但保持在起始狀態。當路徑驗證引擎生成中等或高嚴重性事件時,事件鏈狀態機在604處前進到下一個狀態,即Ei狀態。該新狀態在轉換發生時繼續記錄轉換的目標地址。關於中等和高嚴重性事件而更新到新狀態並記錄轉換事件的狀態機的過程在606、608和610處繼續,直到線程在612處到達終止狀態。當最高嚴重性級別事件被觸發時安全分析員被通知,並且當發生攻擊時事件鏈狀態機捕獲取證。

取決於系統的模式,存在能夠響應於這種安全事件而採取的各種補救動作。所採取的補救動作可以實時執行。一個補救動作可以由關閉web應用組成。其他補救動作可以是要釋放與其上已經出現威脅的線程相關聯的一個或多個套接字;終止其上已經出現威脅的線程,和/或將造成威脅的用戶列入黑名單。另一個補救動作將是取消阻塞與應用伺服器的一個或多個套接字相關聯的所有套接字。這將阻止所有當時連接的用戶。另一個補救動作將是通過從資料庫中刪除他/她的會話ID來註銷違規用戶。下一個請求或響應然後將不會被傳遞給攻擊者。又一個補救動作可能是忽略攻擊。這可能是由於分析員不認為攻擊具有重要意義。針對給定事件的最合適的建議補救動作被預先編程,以使得如果安全分析員已經選擇以自動模式操作分析引擎,則補救動作自動發生。

分析引擎的路徑驗證引擎可以以三種模式運行:監視模式或偏執模式。這些模式之間的區別是如何以及何時實施與在應用中的給定線程上接收的一個或多個事件相關聯的補救動作。在監視模式下,當運行時信息到達並被分析引擎分析時,它會生成針對指定安全分析員的通知。然後,安全分析員的工作是幹預並選擇最合適的補救動作。安全分析員可以決定在線程已經到達終止狀態之前將「忽略」型預編程補救動作改變為更高影響的補救動作。在完成補救動作之後,分析引擎在企業中的適當權限清除針對給定線程的建議補救動作時實施補救動作。

在偏執模式下,在沒有來自安全分析員的任何手動幹預的情況下自動執行經編程的(預設或用戶配置的)補救動作。在任一模式下,一旦準備好執行補救動作,分析引擎就讓監視代理知道要執行哪個補救動作。監視代理然後對應用執行與補救動作相關聯的行動。一旦補救動作被完成,監視代理就將確認消息發送回分析引擎。在接收到確認時,分析引擎執行內務,包括更新安全分析員。

在學習模式下,分析引擎忽略所有事件和補救動作。在該模式下,應用在原始環境中運行,並記錄所有事件和事件鏈。安全分析員使用該信息來構建應當何時提出事件以及應當將什麼補救動作與所述事件相關聯的標準。

監視代理和分析引擎基礎架構

圖7A描繪了示例監視代理和分析引擎基礎設施的高級框圖。該可以在包括範圍從智慧型電話、平板、膝上型計算機、臺式機到高端伺服器的計算設備的各種硬體上配置基礎設施。如該圖所示,由監視代理702執行的數據收集可以與由分析引擎執行的分析分離,以提高應用性能。該基礎設施提供高可用性,以防止黑客破壞其對惡意軟體攻擊的保護。監視代理702與應用交互以收集加載時間和運行時數據。應用701的基礎設施包括進程存儲器703、第三方庫704、內核服務706和指令流水線707。監視代理702的基礎設施包括儀器和分析引擎(儀器引擎)705、圖形用戶界面(GUI)711、客戶端守護進程708、配置資料庫709以及流送和壓縮引擎710、以及中央處理單元(CPU)736。應用701的本地或遠程用戶738通過像鍵盤、滑鼠或類似的I/O設備的設備與應用交互,或者通過可以通過管道、共享存儲器或套接字建立的通信信道在網絡上與應用交互。作為響應,應用進程703將適當的指令集分派到指令流水線707中以供執行。應用還可以利用其自己的或第三方的庫704,諸如libc.so(Linux)或msvcrtxx.dll(Windows)。當來自這些庫的功能被調用時,來自這些庫的適當指令也被插入到指令流水線707以供執行。此外,應用可以利用來自內核706的諸如存儲器、文件I/O等的系統資源。以時間排序順序放在一起的來自應用、庫和內核的這些指令序列交付給定用戶所需的應用功能。

當應用的代碼開始加載到存儲器中時,儀器和分析引擎(即,儀器引擎)705執行若干不同的加載時間動作。一旦所有模塊都已加載,應用的檢測指令就生成運行時數據。客戶端守護程序708通過從配置資料庫709讀取一個或多個配置文件來在736處初始化CPU中的儀器和分析引擎705、流送引擎710和GUI 711進程。它還初始化儀器引擎、流送引擎、GUI、儀器和分析引擎705及其自身之間的相互通信管道。客戶端守護程序還確保如果包括其自身在內的任何監視代理進程變得無響應或死掉,則其將被重新生成。這確保了監視代理702是高可用性企業級產品。

儀器和分析引擎705將從應用收集的負載和運行時數據推送到流送引擎中。流送引擎將來自監視代理702的原始數據封裝到PDU中。然後,它在高帶寬、低延遲通信信道712上將PDU推送到分析引擎728。如果監視代理702和分析引擎728位於同一機器上,則該信道可以是存儲器總線。如果這些實體位於不同的硬體上但在相同的物理鄰域中,則信道可以是基於乙太網或光纖的傳輸,其允許在實體之間建立遠程連接,以跨網際網路傳輸負載和運行時數據。

分析引擎728的基礎設施包括網絡接口卡(NIC)713、分組池714、時間戳引擎715、處理器結構716、散列引擎717、TCAM引擎718、應用映射資料庫719和線程上下文資料庫720,其可以包含由執行被系統監視的應用的一類用戶使用的存儲器地址的表。分析引擎728的基礎設施還包括內容分析引擎721、事件和事件鏈722、事件管理引擎723、事件日誌724、應用守護進程725、分析引擎配置資料庫726、網絡接口727、儀錶板或CMS 737、SMS/SMTP伺服器729、OTP伺服器730、升級客戶端731、軟體升級伺服器732、軟體鏡像733、事件更新客戶端734和事件升級伺服器735。

在網絡接口卡713處截取PDU以及協議頭部,PDU從該網絡接口卡713被拉出並放入分組池714中。PDU中的時間戳欄位由時間戳引擎715填充。這有助於以確保在分組池緩衝區中沒有分組卡住非常長的時間。

處理器結構716從分組緩衝區中拉出分組,並且地址欄位被散列和替換在分組中的適當位置中。該操作由散列引擎717執行。然後,處理器結構開始以分組到達的次序從分組緩衝區中移除分組。具有來自加載時間階段的信息的分組被處理,以使得相關數據被提取並存儲在應用映射資料庫719中。具有來自運行時階段的信息的分組根據圖5被處理。分析引擎728的效率可以基於處理器結構中的處理器的數量而被增加或減少。

轉換目標數據被保存在線程上下文資料庫720中,線程上下文資料庫720具有用於每個線程的表。處理器結構還利用TCAM引擎718來執行轉換和存儲器區域搜索。由於處理器結構使用散列執行查找,所以使用的實際時間是可預測的並且非常短。通過仔細選擇結構中的處理器的數量,可以適當地改變每個分組的吞吐量。

當分析引擎728執行搜索時,其可以不時地發現關鍵/管理函數或系統調用的無效轉換、無效操作,或者在不期望的位置上找到存儲器寫入。在這些情況的每一種情況中,分析引擎728將如在事件和事件鏈資料庫722中存儲的策略所描述的編程嚴重性的事件分派給事件管理引擎723。原始事件日誌被存儲在事件日誌資料庫724中。儀錶板/CMS 737還可以訪問事件日誌以及顯示應用狀態。

補救動作還與事件和事件鏈資料庫722中的每個事件相關聯。用戶可以從一系列動作來設置補救動作,這一系列動作從在一個極端忽略事件到在另一極端終止線程。可以使用事件更新客戶端734和事件升級伺服器735向分析員推薦所推薦的補救動作。為了改變上述推薦動作,分析員可以相應地使用儀錶板/CMS 737。儀錶板/CMS 737提供了GUI界面,該GUI界面顯示每個受監視應用的狀態並允許安全分析員對應用具有某些控制,諸如啟動和停止應用。當事件被生成時,事件鏈從正常狀態前進到後續狀態。可以採取與新狀態相關聯的補救動作。如果補救動作涉及非忽略動作,則使用SMS或SMTP伺服器729向安全分析員發送通知。安全分析員的SMS/SMTP地址可以使用LDAP或其他目錄協議來確定。從儀錶板/CMS 737啟動或停止應用的過程需要提升的特權,故安全分析員必須使用OTP伺服器730進行認證。

新事件還可以被創建並被連結到事件和事件鏈資料庫722中,連同嚴重性和向分析員推薦的補救動作。這允許將針對一個安裝處的新攻擊的唯一事件和事件鏈被分派到其他安裝。為此目的,所有新事件和事件鏈都被加載到事件升級伺服器735中。事件更新客戶端734周期性地連接並認證事件升級伺服器735以檢索新事件和事件鏈。事件更新客戶端然後將這些新事件和事件鏈加載到事件和事件鏈資料庫722中。內容分析引擎721可以開始針對封裝到新事件鏈中的新攻擊來跟蹤應用。

正如客戶端守護進程一樣,設施守護進程725負責啟動在分析引擎728上運行的各種進程。為此目的,它必須從分析引擎配置資料庫726讀取配置信息。守護進程還負責對分析引擎728中的所有進程運行心跳輪詢。這確保分析引擎生態系統中的所有設備始終處於最高工作狀態。三個連續的心跳的丟失表明目標進程沒有反應。如果任何進程已經過早退出,守護進程將恢復包括自身在內的該進程。

不時地,出於諸如修復軟體中的錯誤的目的,可以在設施主機中或在分析引擎728或監視代理702中升級軟體。為此目的,升級客戶端731不斷地檢查軟體升級伺服器732,最新軟體在軟體升級伺服器732處可獲得。如果客戶端發現分析引擎728或監視代理702中的實體正在運行較舊的鏡像,則它將允許分析員利用來自軟體升級伺服器732的新鏡像來升級舊鏡像。新鏡像被捆綁在一起作為系統鏡像733。這使得有可能向設施或主機提供經測試的兼容鏡像。如果分析引擎728或監視代理702中的子系統的鏡像之一與系統鏡像中的針對相同組件的鏡像不匹配,則所有鏡像將被滾動到先前已知的良好系統鏡像。

用於監視代理和分析引擎通信的PDU

圖7B示出用來在圖7A中的監視代理702和分析引擎728之間傳送數據的示例協議數據單元(PDU)。為了使監視代理702和分析引擎728彼此有效地工作,它們使用PDU彼此通信。PDU可以特別地被監視代理702用來將提取的應用的模型和/或收集的運行時數據打包以用於向分析引擎728的傳輸。PDU包含要在監視代理702和分析引擎728之間傳輸的針對每種類型的信息的欄位。PDU被劃分為應用提供的數據部分、生成的HW/CVE以及內容分析引擎或原始數據部分。

應用提供的數據部分包含來自各種寄存器的數據以及放置在該部分的各個欄位中的源地址和目標地址。協議版本包含PDU 752的版本號。隨著協議版本隨時間改變,源和目的地必須能夠繼續彼此通信。該8位欄位描述如由源實體生成的分組的版本號。在協議版本欄位之後是當前未使用的保留欄位756。

如圖7所示,應用提供的數據部分中的下一個欄位是消息源/目的地標識符757、753和754,用來在分析引擎基礎設施內交換流量。不時地,圖7中所示的各種實體相互交換流量。並非所有這些設備都具有或需要IP位址,並且因此,兩個(硬體和主機)查詢路由器引擎使用消息源和目的地欄位在內部路由流量。某些消息需要跨網絡去往分析引擎中的實體。為此目的,向實體指派以下ID。給定的分析引擎設施可以具有多於一個加速器卡。每張卡將具有唯一的IP位址;因此,各個實體將具有唯一的ID。上述基礎設施還可以運行多於一個應用。由於每個應用伺服器將具有唯一的IP位址,因此對應的監視代理側實體也將具有唯一的ID。

監視代理側實體

1.GUI

2.儀器和分析引擎

3.客戶端消息路由器

4.流送引擎

5.客戶端側守護進程

6.CLI引擎

7.客戶端看門狗

8.客戶端壓縮塊

9.客戶端iWarp/RDMA/ROCE乙太網驅動器(100Mb/1Gb/10Gb)

每個PCI卡的實體(起始地址=20+n*20)

20.分析引擎TOE塊

21.分析引擎PCI橋

22.解壓縮塊

23.消息驗證塊

24.分組散列塊

25.時間戳塊

26.消息超時定時器塊

27.統計計數器塊

28.分析引擎查詢路由器引擎

29.分析引擎輔助

分析引擎主機實體

200.分析引擎PCIe驅動器

201.主機路由引擎

202.內容分析引擎

203.日誌管理器

204.守護進程

205.Web引擎

206.看門狗

207.IPC消息傳送總線

208.配置資料庫

209.日誌資料庫

SIEM連接器

220.SIEM連接器1-儀錶板/CMS

221.SIEM連接器2-HP ArcSight

222.SIEM連接器3-IBM QRadar

223.SIEM連接器4-Alien Vault USM

分析引擎基礎設施實體

230.儀錶板/CMS

231.SMTP伺服器

232.LDAP伺服器

233.SMS伺服器

234.權利伺服器

235.資料庫備份伺服器

236.OTP客戶端

237.OTP伺服器

238.校驗和伺服器

239.票務伺服器

240.事件鏈升級伺服器

241.軟體更新伺服器

所有用戶應用

255.用戶應用-應用PID被用於標識發出查詢的應用

應用提供的數據部分的另一個欄位是消息類型欄位,其指示正在傳輸的數據的類型755。在最高級別,存在在各個本地監視代理側實體之間、在分析引擎設備側實體之間以及在監視代理側和設備側實體之間流動的三種不同類型的消息。另外,需要通過網絡行進的消息必須符合OSI模型和其他協議。

應用提供的數據部分的以下欄位是包含針對分組779的序列標識符的分組序列號欄位。流送引擎將對丟失的分組執行錯誤恢復。為此目的,它需要唯一地標識分組。遞增的有符號64位分組序列號被流送引擎插入,並且僅通過剩餘的分析引擎基礎設施。如果序列號在64位邊界處包裝,則其可以從0重新開始。在諸如心跳或日誌消息等的非應用分組的情況下,分組序列號可以是-1。

應用提供的數據部分還包含金絲雀消息欄位,其包含用於加密目的的金絲雀761。監視代理702和分析引擎728知道如何根據一些常見但是具有新鮮性質的信息(諸如應用啟動時間、PID、許可證字符串和授權用戶名)計算金絲雀。

應用提供的數據部分還包含在所有消息中使用的通用欄位。應用源指令地址780、應用目的地指令地址758、存儲器起始地址指針759、存儲器結束地址指針760、應用PID 762、線程ID 763、分析引擎到達時間戳764和分析引擎離開時間戳765欄位保存通用應用數據。

PDU還包含HW/CAE生成部分。為了便於分析和保持固定時間的預算,分析引擎在處理之前對源和目的地地址欄位進行散列並更新PDU。PDU的HW/CAE生成的部分是放置散列數據以供以後使用的地方。該部分包括散列應用源指令地址766、散列應用目的地指令地址767、散列存儲器起始地址768和散列存儲器結束地址769欄位。HW/CAW生成部分另外包含與金絲雀771相關的其他欄位,其包括存在於所有PDU分組中的硬編碼內容起始魔術頭部、API名稱魔術頭部、調用下文魔術頭部和調用原始數據魔術頭部。

HW/CAE生成部分還包括用來標識包括結果、配置位、操作模式、錯誤代碼和操作模式數據的其他配置和錯誤數據的欄位770。欄位的結果部分被分段以返回針對不同分析引擎查詢的布爾結果—轉換劇本、代碼布局、存儲器(堆棧或堆)溢出和深度檢查查詢。該欄位的配置位部分指示何時設置壓縮標誌、演示標誌或同位標誌。該欄位中的標誌的存在向分析引擎728指示分組是否應該在壓縮模式下返回。演示標誌指示系統處於演示模式,因為不存在針對系統的有效許可。在此模式下,日誌和事件將不會完全可用。同位標誌指示應用正在分析引擎728中運行以使得主機查詢路由器引擎能夠確定向哪裡發送需要返回到應用的分組。如果此標誌被設置,則分組經由PCI橋被發送,否則它們通過PCI卡上的乙太網接口被發送。欄位的操作模式部分指示系統是處於偏執模式、監視模式還是學習模式。這些模式將在本節稍後更詳細地討論。最後,欄位的錯誤代碼部分指示系統中的錯誤。錯誤代碼的前八位將對應於消息源。其餘的12位將對應於每個子系統所報告的實際錯誤。

PDU還包含內容分析引擎或原始數據。諸如OS庫調用和系統調用的參數和返回值之類的所有可變數據都放在PDU的該部分中。該部分中的數據包含從應用收集的數據的內容,並且主要以內容分析引擎為目標。該部分包含可變大小的API名稱或編號772、調用內容魔術頭部777、可變大小的調用內容774、調用原始數據魔術頭部778、可變大小的原始數據內容776以及兩個保留的773和775欄位。另外,這些欄位可以針對管理消息而過載。

數字處理基礎設施

圖8示出其中可以實現本公開的實施例的計算機網絡或類似的數字處理環境。

客戶端計算機/設備50和伺服器計算機60提供執行應用等的處理、存儲和輸入/輸出設備。客戶端計算機/設備50還可以通過通信網絡70連結到包括其他客戶端設備/過程50和伺服器計算機60的其他計算設備。通信網絡70可以是遠程接入網絡、全球網絡(例如,網際網路)、全球計算機集合、區域網或廣域網以及當前使用相應協議(TCP/IP、藍牙等)來彼此通信的網關的一部分。其他電子設備/計算機網絡架構是合適的。

客戶端計算機/設備50可以配置有監視代理。伺服器計算機60可以被配置為與用於檢測安全攻擊的客戶端設備(即,監視代理)50通信的分析引擎。伺服器計算機60可以不是單獨的伺服器計算機,而是雲網絡70的一部分。在一些實施例中,伺服器計算機(例如,分析引擎)可以將所捕獲的存儲器地址與黃金表中的存儲的存儲器地址進行比較。客戶端(儀器引擎)50可以將包含所存儲的存儲器地址的黃金表記錄傳達到伺服器(分析引擎)60。在一些實施例中,客戶端50可以包括在客戶端(即,儀器引擎)50上執行的用於捕獲活動指令並確定對應的存儲器地址的客戶端應用或組件(例如,儀器引擎),並且客戶端50可以將黃金表記錄中的該信息傳達到伺服器(例如,分析引擎)60。

圖9是圖8的計算機系統中的計算機(例如,客戶端處理器/設備50或伺服器計算機60)的示例內部結構的示圖。每個計算機50、60包含系統總線79,其中總線是用於計算機或處理系統的組件之間的數據傳送的一組硬體線。系統總線79本質上是連接計算機系統的不同元件(例如,處理器、盤存儲、存儲器、輸入/輸出埠、網絡埠等)的共享導管,其使得能夠在元件之間傳送信息。附接到系統總線79的是用於將各種輸入和輸出設備(例如,鍵盤、滑鼠、顯示器、印表機、揚聲器等)連接到計算機50、60的I/O設備接口82。網絡接口86允許計算機連接到附接到網絡(例如,圖8的網絡70)的各種其他設備。存儲器90為用來實現本公開的實施例(例如,本文所述的監視代理、儀器引擎和分析引擎元件)的計算機軟體指令92和數據94提供易失性存儲。盤存儲95為用於實現本公開的實施例的計算機軟體指令92和數據94提供非易失性存儲。中央處理器單元84也附接到系統總線79並提供計算機指令的執行。

實施例或其各方面可以以硬體、固件或軟體的形式來實現。如果以軟體實現,則軟體可以被存儲在被配置為使得處理器能夠加載軟體或其指令子集的任何非暫時性計算機可讀介質上。處理器然後執行指令並且被配置為操作或使得裝置以如本文所描述的方式操作。

另外,硬體、固件、軟體、例程或指令在本文中可以被描述為執行數據處理器的某些動作和/或功能。然而,應當認識到,本文包含的這樣的描述僅僅是為了方便,並且這樣的動作實際上由計算設備、處理器、控制器或其他設備執行固件、軟體、例程、指令等導致。

應當理解,流程圖、框圖和網絡圖可以包括更多或更少的元件、被不同地布置或者被不同地表示。但是還應當理解,某些實現方式可以規定塊和網絡圖以及示出實施例的執行的塊和網絡圖的數量以特定方式實現。

因此,另外的實施例還可以在各種計算機體系結構、物理、虛擬、雲計算機和/或其某種組合中實現,並且因此,本文所描述的數據處理器旨在僅用於說明的目的,而不作為對實施例的限制。

本文引用的所有專利、公開的申請和參考文獻的教導通過引用而被整體併入。

儘管已經參照本公開的示例實施例具體示出和描述了本公開,但是本領域技術人員將理解,在不脫離所附權利要求所涵蓋的本公開的範圍的情況下,可以在其中進行形式和細節上的各種改變。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀