相關申請的交叉引用
本申請要求2014年12月2日提交的美國專利申請14/557,545號的優(yōu)先權,該申請的全部內(nèi)容包含于此。
本創(chuàng)造性的配置涉及安全信息和事件管理(securityinformationandeventmanagement,“siem”)。更具體地,本創(chuàng)造性的配置涉及使用一種新型普遍攔截管理器(universalinterceptionmanager,“uim”)在計算系統(tǒng)中實現(xiàn)對事件的普遍攔截的系統(tǒng)和方法。
背景技術:
各種siem系統(tǒng)被用于促進對計算設備的保護以防惡意軟件威脅。這些siem系統(tǒng)包括用于檢測網(wǎng)絡節(jié)點中事件發(fā)生的多個siem傳感器。數(shù)據(jù)記錄器被提供用于記錄所檢測到的與各個網(wǎng)絡節(jié)點中發(fā)生的事件中的每個事件相關聯(lián)的信息。集中式數(shù)據(jù)處理器周期性地訪問該數(shù)據(jù)記錄并從中檢索信息。檢索到的來自多個源的信息被匯集,使得可以監(jiān)視整個系統(tǒng)的操作。這些源包括服務、數(shù)據(jù)庫和應用程序。然后可以對所述信息進行后續(xù)處理以:識別事件的共同屬性;根據(jù)事件的共同屬性來關聯(lián)所述信息;根據(jù)相關信息發(fā)出報警;和/或生成具有事件數(shù)據(jù)的圖表,使得可以檢測系統(tǒng)內(nèi)的活動模式。
技術實現(xiàn)要素:
本發(fā)明涉及在計算系統(tǒng)中實現(xiàn)對事件的普遍攔截的系統(tǒng)和方法。這些方法包括攔截由操作系統(tǒng)(operatingsystem,“os”)對象管理器執(zhí)行的多個功能,這些功能指定在其中發(fā)生的物理事件。每個物理事件包括在運行時間內(nèi)的任何時刻在os中發(fā)生的實時事件。獲取物理事件信息,所述物理事件信息表明哪些物理事件被所攔截的由os對象管理器執(zhí)行的功能指定。
然后分析所述物理事件信息以識別與每個物理事件相關聯(lián)的多個虛擬事件。特別地,在某些情況下,所述物理事件信息的不同部分在任何給定時間被至少兩個事件處理程序同時、同步或異步地分析。每個虛擬事件包括當os子系統(tǒng)執(zhí)行多個操作中的促進相應的物理事件的發(fā)生一個操作時發(fā)生的事件。
然后過濾虛擬事件信息以生成僅指定所述虛擬事件中的選擇的虛擬事件的過濾信息。所述虛擬事件信息指定(1)被識別為與物理事件相關聯(lián)的虛擬事件,和/或(2)表征在os的運行時間內(nèi)由用戶模式程序或內(nèi)核模式程序請求的至少一個操作的特定背景的至少一個屬性。在某些情況下,基于事先指定的物理事件類型或虛擬事件類型的安全關聯(lián)性,對所述虛擬事件信息進行過濾。
然后將過濾信息序列化,使得所述信息以由所述物理事件中對應的物理事件發(fā)生的時間限定的順序識別虛擬事件。序列化的過濾信息被置于隊列中,用于后續(xù)處理以檢測對計算設備的惡意軟件威脅。此后,所述過濾信息被分派到數(shù)據(jù)記錄器軟件程序、惡意軟件檢測軟件程序或入侵檢測軟件程序。
在一些情況下,計算系統(tǒng)可以是基于安全信息和事件管理(“siem”)的網(wǎng)絡的一部分。這樣,所述方法可以進一步包括:將所述過濾信息記錄在至少一個記錄文件中;并且提供遠程集中式數(shù)據(jù)處理器對所述記錄文件的訪問。然后由遠程集中式數(shù)據(jù)處理器執(zhí)行操作以匯集來自多個網(wǎng)絡節(jié)點的過濾信息??梢苑治鏊鶇R集的過濾信息以檢測所述惡意軟件威脅。
附圖說明
將參考以下附圖描述實施例,其中在所有附圖中相同的附圖標記表示相同的項目,并且其中:
圖1是對于理解本發(fā)明有用的系統(tǒng)的示例性架構的示意圖。
圖2是圖1所示的客戶端計算機的示例性架構的示意圖。
圖3是用于理解圖1所示的并由圖1和圖2的客戶端計算機實現(xiàn)的普遍攔截管理器的操作的示意圖。
圖4是用于檢測計算系統(tǒng)內(nèi)的事件的示例性方法的流程圖。
具體實施方式
將容易理解,在此一般地描述并在附圖中示出的實施例的各部分可以以各種不同配置進行布置和設計。因此,以下對附圖所示的各種實施例的更詳細的描述并不旨在限制本公開的范圍,而僅是各種實施例的代表。盡管在附圖中示出了實施例的各個方面,但是除非特別指出,附圖不一定按比例繪制。
在不脫離本發(fā)明的精神或本質特征的情況下,本發(fā)明可以以其他具體形式實施。所描述的實施例在所有方面僅被認為是說明性的而不是限制性的。因此,本發(fā)明的范圍由所附權利要求而不是由本詳細描述來限定。在權利要求的等同物的含義和范圍內(nèi)的所有變化都將包括在其范圍內(nèi)。
在整個說明書中對特征、優(yōu)點或類似語言的引用并不意味著可以通過本發(fā)明實現(xiàn)的所有特征和優(yōu)點都應當在或在本發(fā)明的任何單個實施例中。相反,涉及特征和優(yōu)點的語言應被理解為意味著結合實施例描述的特定特征、優(yōu)點或特點包括在本發(fā)明的至少一個實施例中。因此,整個說明書中的特征和優(yōu)點以及相似的語言的討論可以但不一定是指相同的實施例。
此外,本發(fā)明的所描述的特征、優(yōu)點和特點可以以任何合適的方式組合在一個或多個實施例中。根據(jù)本文的描述,相關領域的技術人員將認識到,可以在沒有特定實施例的一個或多個具體特征或優(yōu)點的情況下實踐本發(fā)明。在其他情況下,附加特征和優(yōu)點可能在某些實施例中被確認,而可能不存在于本發(fā)明的所有實施例中。
在本說明書中對“一個實施例”,“實施例”或類似語言的引用意味著結合所指實施例描述的特定特征、結構或特點包括在本發(fā)明的至少一個實施例中。因此,在整個說明書中短語“在一個實施例中”、“在實施例中”和類似的語言可以但不一定都指代相同的實施例。
如本文中所使用的,除非上下文另有明確規(guī)定,單數(shù)形式“一”、“一個”和“該”包括多個。除非另有定義,本文使用的所有技術和科學術語具有與本領域普通技術人員通常理解的相同的含義。如本文中所使用的,術語“包括”是指“包括但不限于”。
本發(fā)明一般涉及使用一種新型普遍攔截管理器(“uim”)在計算系統(tǒng)中普遍攔截事件的系統(tǒng)和方法。uim是一種系統(tǒng)級傳感器,其能夠以非常高的粒度攔截和處理幾乎無限數(shù)量的異步事件,并且以最小的性能退化影響與操作系統(tǒng)(“os”)對象管理器同時運行。隨著討論的進行,uim的操作將會變得明顯。特別地,uim可以在硬件、軟件和/或兩者中實現(xiàn)。此外,os對象管理器(例如,windows對象管理器)在本領域中是眾所周知的,因此這里將不再贅述。
現(xiàn)在參考圖1,圖1提供了對于理解本發(fā)明有用的系統(tǒng)100的示例性架構的示意圖。系統(tǒng)100一般地配置為識別并響應對它的安全威脅。特別地,系統(tǒng)100的響應時間比傳統(tǒng)的基于siem的系統(tǒng)(例如本文背景技術中所公開的)更快。在這方面,系統(tǒng)100實現(xiàn)了本文討論的用于每個網(wǎng)絡節(jié)點內(nèi)的事件檢測的新型uim技術。
如圖1所示,系統(tǒng)100包括客戶端計算機102、服務器計算機106和集中式數(shù)據(jù)處理器(centralizeddataprocessor,“cdp”)108。計算機102、106、108中的每一個可以作為單個獨立設備操作或可以連接(例如,使用網(wǎng)絡104)到其他計算設備以分布式方式執(zhí)行各種任務。計算機102、106、108中的每一個可以包括各種類型的計算系統(tǒng)和設備,包括個人計算機(“pc”)、平板電腦、膝上型計算機、臺式計算機或能夠執(zhí)行一組指令(順序或其他)的任何其他設備,該組指令指定該設備要采取的動作。應當理解,本公開的設備還包括提供語音、視頻或數(shù)據(jù)通信的任何電子設備。此外,雖然圖1中示出了單個客戶端計算機102,但是短語“客戶端計算機”和“計算機系統(tǒng)”應被理解為包括單獨或共同執(zhí)行一組(或多組)指令以執(zhí)行本文中的任何一種或多種方法的計算設備的任何集合。
計算機102、106、108通過與網(wǎng)絡104的相應連接彼此通信地耦合。網(wǎng)絡104包括因特網(wǎng)、局域網(wǎng)(lan)、廣域網(wǎng)(wan)或用于連接計算機的任何其他合適的網(wǎng)絡。這樣,可以在計算機102、106、108之間傳送數(shù)據(jù)。
在一些情況下,系統(tǒng)100是基于siem的系統(tǒng)。這樣,計算機102、106、108實現(xiàn)siem技術。更具體地,計算機102、106實現(xiàn)本發(fā)明的新型uim技術和數(shù)據(jù)記錄技術。該uim技術通過uim112或116軟件程序來實現(xiàn)。該數(shù)據(jù)記錄技術通過數(shù)據(jù)記錄器118或120軟件程序來實現(xiàn)。特別地,該uim技術可以由運行操作系統(tǒng)(“os”)的任何網(wǎng)絡節(jié)點使用。因此,系統(tǒng)100可以包括其上安裝有uim軟件的任何數(shù)量的計算機。因此,本發(fā)明不限于圖1所示的特定系統(tǒng)架構。
每個計算機102、106包括用于記錄與在其中發(fā)生的事件有關的信息(在本文中稱為“事件相關數(shù)據(jù)”)的數(shù)據(jù)記錄器118、120。事件指定由os110或114的對象管理器(例如,windowsos)正在執(zhí)行的操作。這樣的信息由在計算機102、106上運行的uim112或116獲取。然后使這些記錄可被cdp108訪問。
cdp是本領域公知的,因此本文將不贅述。然而,應當理解,cdp108執(zhí)行數(shù)據(jù)匯集操作、數(shù)據(jù)關聯(lián)操作、報警操作和/或儀表板操作。數(shù)據(jù)匯集操作一般包括匯集來自多個源,如來自客戶端計算機102和服務器計算機106的事件相關數(shù)據(jù)。關聯(lián)操作包括識別多個事件的共同屬性并根據(jù)它們的共同屬性將事件鏈接成組。報警操作包括對關聯(lián)事件執(zhí)行自動分析,并產(chǎn)生報警,該報警指定哪些事件需要先于其他事件被調(diào)查。儀表板操作包括生成并呈現(xiàn)顯示事件相關數(shù)據(jù)中的模式的圖表。
現(xiàn)在參考圖2,圖2提供了圖1所示的客戶端計算機102的示例性架構的示意圖。服務器計算機106與客戶端計算機102相同或類似。因此,以下對服務器計算機102的討論足以理解服務器計算機106。
如圖1所示,客戶端計算機102包括系統(tǒng)接口214、用戶接口202、中央處理單元(“cpu”)、系統(tǒng)總線208、通過系統(tǒng)總線208連接到客戶端計算機102的其他部分并且可由其訪問的存儲器210、以及連接到系統(tǒng)總線208的硬件實體212。硬件實體212中的至少一些執(zhí)行包括對存儲器210的訪問和使用的動作,其可以是隨機訪問存儲器(“ram”)、磁盤驅動器和/或壓縮盤只讀存儲器(“cd-rom”)。
用戶接口202包括輸入設備、輸出設備和配置為允許用戶與安裝在客戶端計算機102上的軟件應用程序交互并控制該軟件應用程序的軟件例程。這樣的輸入和輸出設備包括但不限于顯示器屏幕(未示出)、揚聲器(未示出)、鍵盤(未示出)、方向墊(未示出)、方向旋鈕(未示出)和麥克風(未示出)。這樣,用戶接口202可以促進用于啟動安裝在客戶端計算機102上的軟件應用程序(例如,web瀏覽器)的用戶-軟件交互。
系統(tǒng)接口214允許客戶端計算機102直接或間接地與其他遠程位置的計算機(例如,圖1的服務器106和/或cdp108)通信。如果客戶端計算機102正在間接地與遠程計算機通信,則客戶端計算機102通過公共通信網(wǎng)絡(例如,圖1的網(wǎng)絡104)發(fā)送和接收信息。
硬件實體212可以包括微處理器、專用集成電路(“asic”)和其他硬件。硬件實體可以包括被編程用于提供siem相關功能,更具體地說是uim功能的微處理器。在這方面,應當理解,該微處理器可以訪問和運行安裝在客戶端計算機102上的uim112軟件程序?;蛘撸撐⑻幚砥骺梢栽谄渖习惭b有uim軟件程序。下面將關于圖3描述uim112。
如圖2所示,硬件實體212可以包括磁盤驅動器單元224,磁盤驅動器單元224包括計算機可讀存儲介質226,其上存儲有一組或多組指令220(例如,軟件代碼),用于實現(xiàn)本文描述的方法、過程或功能中的一個或多個。在由客戶端計算機102執(zhí)行期間,指令220還可以完全地或至少部分地駐留在存儲器210內(nèi)和/或cpu206內(nèi)。存儲器210和cpu206也可以構成機器可讀介質。
雖然在示例性實施例中將計算機可讀存儲介質226示為單個存儲介質,但術語“計算機可讀存儲介質”應當被視為包括單個介質或多個介質(例如,集中式或分布式數(shù)據(jù)庫和/或相關聯(lián)的高速緩存和服務器),其存儲所述一組或多組指令。術語“計算機可讀存儲介質”還應被視為包括能夠存儲,編碼或攜帶一組指令以供機器執(zhí)并且使機器執(zhí)行本公開的任一種或多種方法的任何介質。
因此,術語“計算機可讀存儲介質”應被視為包括但不限于固態(tài)存儲器,如:存儲卡或包含一個或多個只讀(非易失性)存儲器的其他封裝、ram或其他可重寫(易失性)存儲器;磁光或光介質,如盤或磁帶;載波信號,如在傳輸介質中體現(xiàn)計算機指令的信號;和/或電子郵件的或被認為是與有形存儲介質相當?shù)姆峙浣橘|的其他自包含信息歸檔或一組歸檔的數(shù)字文件附件。因此,本公開被認為包括本文列出的任何一種或多種計算機可讀介質或分發(fā)介質,并且包括其中存儲本文中的軟件實現(xiàn)的公認的等同物和后繼介質。
現(xiàn)在參考圖3,圖3提供了對于理解圖1和圖2所示的uim112的操作有用的示意圖。圖1的uim116與uim112相同或類似。因此,以下對uim112的討論就足以理解uim116。
通常,uim112被配置為檢測由os對象管理器302正在執(zhí)行的操作,并將關于檢測到的操作的信息提供給uim客戶端314(例如,圖1的數(shù)據(jù)記錄器118或120、入侵防御系統(tǒng)和/或反木馬(anti-rootkit)防御系統(tǒng))。os對象管理器在本領域中是公知的,因此在此不再贅述。但應當理解,os對象管理器302是os110的集中式資源代理,其保持對分配給進程的資源的跟蹤。
在某些情況下,os對象管理器302包括windows對象管理器。windows對象管理器是作為管理windows資源的windowsexecutive(即低級內(nèi)核模式軟件程序)的一部分實現(xiàn)的子系統(tǒng)。表現(xiàn)為邏輯對象的每個資源駐留在用于分類的命名空間中。資源可以包括但不限于物理設備、文件、文件夾、注冊表項和正在運行的進程。表示資源的所有對象都有一個對象類型屬性和有關該資源的其他元數(shù)據(jù)。windows對象管理器是一個共享資源,并且處理資源的所有子系統(tǒng)都必須通過os對象管理器。這些子系統(tǒng)包括緩存管理器、配置管理器、輸入/輸出(“i/o”)管理器、本地過程召用、存儲器管理器以及進程結構和安全參考監(jiān)視器。所有這些列出的子系統(tǒng)和os對象管理器都包括windowsexecutive的服務。
os對象管理器302被實現(xiàn)為底層os的內(nèi)核模式組件。本文中使用的短語“內(nèi)核模式”是指進程運行內(nèi)核代碼(例如,設備驅動程序代碼、平臺服務代碼和允許完全訪問客戶端計算機102的其他內(nèi)核代碼)的狀態(tài)。os對象管理器302提供實現(xiàn)不同類型的過濾器的不同服務。特別地,os的核心是基于面向對象的模型。因此,os對象管理器302是用于對被表示為對象的資源進行連貫和統(tǒng)一管理的os中的全系統(tǒng)架構融合點。例如,在windowsos應用程序中,os對象管理器302通過以下方式來管理os中的對象:提供用于管理和使用系統(tǒng)資源的共同的統(tǒng)一機制;提供用于管理系統(tǒng)對象的創(chuàng)建和銷毀的共同的統(tǒng)一機制;提供用于建立和使用系統(tǒng)對象的共同的統(tǒng)一的可擴展的基于方法的模型;支持對系統(tǒng)對象的基于句柄(handle-based)的訪問;根據(jù)引用計數(shù)執(zhí)行存儲器管理;保留用于跟蹤對象信息的對象命名空間數(shù)據(jù)庫;保持對分配給每個進程的資源的跟蹤;提供共同的統(tǒng)一的集中的安全模式;以及跟蹤特定對象的訪問權限以提供安全性。
os的各種標準工具創(chuàng)建它們自己的唯一對象類型以表示其內(nèi)部數(shù)據(jù)并提供與每個單獨對象類型相關聯(lián)的多組服務。唯一對象類型描述系統(tǒng)范圍內(nèi)這類對象的所有實例的共同性質。例如,windows對象管理器的i/o工具創(chuàng)建文件對象類型,其包括打開的文件的所有副本或打開的i/o設備的所有副本。換句話說,os內(nèi)的對象是需要os的多個應用程序、組件、模塊和系統(tǒng)服務進行共享訪問的特定的內(nèi)核模式數(shù)據(jù)結構。在不包含該os管理器工具的情況下,在os內(nèi)幾乎不會發(fā)生有意義或有用的事情。
對于os110中的每種類型的對象,存在與其相關聯(lián)的os服務和數(shù)據(jù)結構。這樣的os服務和數(shù)據(jù)結構可以通過指定的os應用程序編程接口(“api”)功能以編程方式訪問,這些功能是每個獨立的os對象管理器工具所特有的。例如,為了創(chuàng)建文件,os110導出作為特定os工具(例如,windows用戶模式win32工具)的一部分的系統(tǒng)功能(例如,createfile功能)。該功能調(diào)用適當?shù)膐s服務(例如,windows內(nèi)核模式executive工具),創(chuàng)建和表示一個打開的文件。在windows應用程序中,executive工具(作為處理整個createfile請求的完整部分)內(nèi)部調(diào)用適當?shù)膚indows對象管理器方法,該方法本身將創(chuàng)建特定文件類型的系統(tǒng)復合對象。
os對象管理器302也可以被視為實現(xiàn)普遍服務和方法的專用調(diào)度器,這些普遍服務和方法本身管理摘要類型的一些共享資源的壽命。如上所述,os110是邏輯匯聚點,所有os服務在該處提供對表示為對象的os中的共享資源的一致、統(tǒng)一和安全的訪問。為了訪問對象的特定實例,用戶模式應用程序、系統(tǒng)服務和/或內(nèi)核模式驅動程序調(diào)用打開的操作,在其間檢查訪問權限并且創(chuàng)建特殊描述符。這里使用的短語“用戶模式”是指進程運行應用程序代碼(例如最終用戶應用程序代碼)而不是內(nèi)核代碼(例如,設備驅動程序代碼和平臺服務代碼)的狀態(tài)。
由os對象管理器實現(xiàn)的一組對象類型取決于客戶端計算機102采用的os的版本。下面的列表給出可以通過osapi獲得的os對象管理器302的一些基本對象:適配器;回調(diào)(callback);控制器;調(diào)試對象(debugobject);桌面;設備;目錄;驅動程序;事件;事件對;文件;函數(shù)指針(iocompletion);工作;鍵;鍵入的事件;突變體;端口;進程;簡檔;部分;信號量;符號鏈接;線程;定時器;令牌;類型;可等待端口;窗口站;和wmiguide。這些列出的對象中的每一個在本領域中都是公知的,因此在此不再贅述。
再次參考圖3,uim102與os對象管理器302通信地集成,使得其可以過濾對os系統(tǒng)服務的召用并將過濾后的召用分派給uim客戶端314。在這點上,uim102包括事件處理程序304-308、事件過濾器310和虛擬事件調(diào)度器(virtualeventsdispatcher,“ved”)312。事件處理程序304-308通常被配置為檢測和攔截由os對象管理器302執(zhí)行的指定在其中發(fā)生的物理事件的功能。
在某些情況下,事件處理程序304-308實現(xiàn)了在kouznetsov的美國專利no.7,765,558(558專利)中描述的用于檢測和攔截計算系統(tǒng)中的事件的技術。558專利通過引用并入本文。
這里使用的術語“物理事件”是指在運行時間中的任何特定時刻在os110中發(fā)生的實時事件。例如,物理事件可以包括對os系統(tǒng)服務的召用、對象的創(chuàng)建或關閉、或對象狀態(tài)的修改。物理事件的發(fā)生是異步的,獨立的并且與uim的啟用或禁用無關。
事件處理程序304-308還被配置為識別與每個物理事件相關聯(lián)的多個虛擬事件(換句話說,將每個物理事件映射到多個虛擬事件);并且將信息352發(fā)送到事件過濾器310,信息352指定識別出的每個物理事件的虛擬事件以及在隨后的串行化處理期間放置虛擬事件的順序。這里使用的術語“虛擬事件”是指當os子系統(tǒng)執(zhí)行多個操作中的促進相應的物理事件發(fā)生的一個操作時發(fā)生的事件。因此,物理事件可以導致根據(jù)預先存儲的查找表(“l(fā)ut”)的內(nèi)容識別和選擇各種和多個虛擬事件。例如,
每個虛擬事件可以與表征被請求的操作的特定背景的一組屬性相關聯(lián)。該組屬性由每個單獨的事件處理程序304-308根據(jù)其處理物理事件的內(nèi)部邏輯來限定。在這方面,每個事件處理程序304-308可以訪問包含虛擬事件的唯一標識符和指定虛擬事件的至少一個屬性的信息的數(shù)據(jù)結構。該數(shù)據(jù)結構可以包括但不限于lut。虛擬事件的屬性可以包括但不限于回溯(back-trace)功能,該功能被表示為,為了處理虛擬事件(以及與所討論的虛擬事件相關聯(lián)的其他任意數(shù)據(jù),如召用線程、進程等的標識符)而被os110調(diào)用的各種功能的回調(diào)狀態(tài)。
在一些情況下,事件處理程序304-308被配置為處理與多個物理事件中的相應物理事件相關聯(lián)的信息350。因此,事件處理程序不處理相同的物理事件信息。因此,這些事件處理程序可以在任何時間同步、同時、異步地處理不同的物理事件信息。這個概念非常重要,因為它允許最小化多個uim客戶端314可能引起的不必要的全系統(tǒng)性能降級影響。
每個事件處理程序304-308的細節(jié)和內(nèi)部實現(xiàn)的邏輯取決于分配給事件處理程序的物理事件的具體類型以及如何和為何使用該物理事件的背景和目標。事件處理程序304-308的總體目標是(a)將每個物理事件實時轉換(或映射)到虛擬事件,以及(b)使虛擬事件可用于由多個異步并同時運行的uim客戶端314進一步處理。這種實時轉換(或映射)意味著僅獲得在每個單獨的物理事件發(fā)生時可用的背景信息,同時將關于它的信息打包成摘要和與背景無關的數(shù)據(jù)流。這樣的信息可以通過lut被事件處理程序304-308獲得。
一些類型的事件處理程序可以包括但不限于執(zhí)行事件處理程序(executiveeventhandlers,“eeh”)和對象事件處理程序(objecteventhandlers,“oeh”)。eeh處理與os內(nèi)核的高級系統(tǒng)服務相關聯(lián)的信息。相比之下,oeh處理與os對象管理器302生成的私密事件相關聯(lián)的信息。
當正在調(diào)用os系統(tǒng)服務來管理駐留在os對象管理器302的內(nèi)核級別(例如,windowsexecutive工具)的對象時,由oeh生成虛擬事件。oeh攔截物理事件,同時向多個uim客戶端314提供以下功能和特征:對發(fā)送到類型對象的方法(本文中也稱為“對象類型方法”)的召用進行低級過濾;對os對象管理器提供的基本服務的召用進行高級過濾;以及獲取與給定物理事件相關聯(lián)的背景相關信息。對象類型方法在對象實例的生命周期的各個階段被異步調(diào)用。所述階段包括但不限于:打開(創(chuàng)建對象的描述符);關閉(關閉對象的描述符);刪除(刪除對象);查詢名稱(查詢二級命名空間中對象的名稱);解析(在二級命名空間中查找對象的名稱);和安全性(讀取或修改對象的安全屬性和設置)。所述基本服務包括但不限于:按名稱打開(以其名稱打開對象);按名稱引用(按其名稱搜索對象);創(chuàng)建對象(創(chuàng)建可在os對象管理器中訪問的對象的實例);創(chuàng)建對象類型(創(chuàng)建特定類型的新對象);查找句柄(搜索以前打開的對象的描述符);以及插入對象(插入某種類型的對象,使對象可通過其句柄或名稱訪問)。使用以下服務獲取背景相關信息:召用方id(在其背景中沒發(fā)生物理事件的進程和線程的唯一標識符);在其背景中沒發(fā)生物理事件的進程的主模塊的名稱和地址;以及在處理物理事件期間調(diào)用的召用的基于堆棧的回溯。鑒于前述,oeh充當虛擬事件的提供方,允許對訪問,操縱和使用os對象管理器已知的對象的每個和每次嘗試進行跟蹤。
再次參考圖3,事件處理程序304-206將指定虛擬事件的虛擬事件信息352傳送給事件過濾器310。特別地,在運行時間期間,響應由用戶模式程序或內(nèi)核模式程序發(fā)出的特定請求,在os110中發(fā)生物理事件。這種物理事件必須以最小的延遲被處理,以避免出現(xiàn)明顯不必要的全系統(tǒng)性能下降影響。某些類型的物理事件可能相當密集地產(chǎn)生,因此這樣的物理事件可能導致事件處理程序304-308產(chǎn)生巨量的必須在uim112內(nèi)序列化的虛擬事件數(shù)據(jù)。虛擬事件數(shù)據(jù)的這種序列化由事件過濾器310執(zhí)行。在所述序列化之后,事件過濾器310動態(tài)過濾實時虛擬事件,使得與選擇的物理事件相關聯(lián)的虛擬事件信息被傳遞到ved312。在這點上,虛擬事件信息352基于先前指定的各種虛擬事件類型的安全相關性、事先指定的物理事件類型的安全關聯(lián)性和/或uim客戶端314涉及的物理事件的類型,由事件過濾器310動態(tài)過濾。例如,某些uim客戶端314關注于僅過濾和監(jiān)視選擇的物理事件,其背景涉及特定文件組的文件、特定分支的注冊表或這種分支的組、特定進程或進程組、特定線程或線程組等的事件的打開。
作為由事件過濾器310執(zhí)行的動態(tài)過濾的結果,生成了過濾后的虛擬事件信息354。過濾后的虛擬事件信息354包括指定事件發(fā)生的信息,該事件與保護計算系統(tǒng)以防惡意軟件威脅相關。然后將這樣的信息354轉發(fā)到ved312,它被臨時按隊列存儲在其中。該隊列可以包括預定長度的循環(huán)緩沖器。ved312將信息354分派到uim客戶端314(例如,圖1的數(shù)據(jù)記錄器118)以進一步處理(例如,數(shù)據(jù)記錄)。基于先入先出(“fifo”)方法從該隊列輸出信息354。特別地,ved312提供的功能可用于內(nèi)核模式組件和用戶模式組件二者。
圖4是在計算系統(tǒng)(例如,圖1的計算機102或106)中普遍攔截事件的示例性方法400的流程圖。方法400從步驟402開始,并繼續(xù)步驟404。步驟404包括攔截由os對象管理器(例如,圖3的os對象管理器302)正在執(zhí)行的指定在其中發(fā)生的物理事件的多個功能。每個物理事件包括在運行時間內(nèi)的任何時刻在os中發(fā)生的實時事件。在步驟406中獲得物理事件信息,該物理事件信息表明哪些物理事件被所攔截的由os對象管理器正在執(zhí)行的功能指定。
然后在步驟408中分析物理事件信息,以識別與每個所述物理事件相關聯(lián)的多個虛擬事件。特別地,在某些情況下,物理事件信息的不同部分在任何給定時間被至少兩個事件處理程序(例如,圖3的事件處理程序304-308)同步、同時或異步地分析。每個虛擬事件包括當os子系統(tǒng)執(zhí)行多個操作中的促進相應物理事件發(fā)生的一個操作時發(fā)生的事件。
然后在步驟410中對虛擬事件信息進行過濾,以生成僅指定虛擬事件中的選擇的虛擬事件的過濾信息。虛擬事件信息指定(1)被識別為與物理事件相關聯(lián)的虛擬事件,和/或(2)表征在os運行時間期間由用戶模式程序或內(nèi)核模式程序請求的至少一個操作的具體背景的至少一個屬性。在某些情況下,根據(jù)事先指定的物理事件類型或虛擬事件類型的安全關聯(lián)性過濾虛擬事件信息。
然后在步驟412中將該過濾信息序列化,使得該信息以由發(fā)生對應的物理事件的時間限定的順序標識虛擬事件。序列化的過濾信息被置于隊列中用于后續(xù)處理以檢測對計算設備的惡意軟件威脅,如步驟414所示。此后,執(zhí)行步驟416,其中過濾信息被分派到數(shù)據(jù)記錄器軟件程序或惡意軟件檢測軟件程序。此后,執(zhí)行步驟418,其中方法400結束或執(zhí)行其他處理。
在某些情況下,計算系統(tǒng)可以是基于安全信息和事件管理(“siem”)的網(wǎng)絡的一部分。這樣,所述方法還可以包括:將過濾信息記錄在至少一個記錄文件中;以及提供遠程集中式數(shù)據(jù)處理器對該記錄文件的訪問。然后由遠程集中式數(shù)據(jù)處理器執(zhí)行操作以匯集來自多個網(wǎng)絡節(jié)點的過濾信息。可以分析所匯集的過濾信息以檢測所述惡意軟件威脅。
特別地,windows對象管理器工具提供的服務和方法不易被其他惡意軟件檢測或siem傳感器解決方案(及類似物)所使用和依賴的由windows提供的任何標準過濾和事件管理機制用來攔截和監(jiān)視。換句話說(非正式地),與所提出的高分辨率siem傳感器的方法相比,“其他”解決方案是“盲目的低分辨率”。因此,這樣的其他傳統(tǒng)解決方案實際上錯失了在os中實時發(fā)生的許多對安全敏的感甚至對安全關鍵的事件和活動。因此,這些傳統(tǒng)的設計方案是不充分的,并且注定要大大降低/阻礙隨后的安全相關決策產(chǎn)生過程的質量,如檢測隱身惡意軟件等。例如,作為其他惡意軟件檢測或siem傳感器解決方案開始具有的所述盲目/低分辨率的直接結果,很多惡意軟件、攻擊和異常情況根本沒有被檢測到(一個人不能打擊看不到的威脅,并且如果通過設計,開始具有低分辨能力,那么永遠不能通過清晰度看到足夠好)。
本文公開和要求保護的所有裝置、方法和算法可以根據(jù)本公開,在沒有過度實驗的情況下進行和執(zhí)行。雖然已經(jīng)根據(jù)優(yōu)選實施例描述了本發(fā)明,但是對于本領域技術人員顯而易見的是,在不脫離本發(fā)明的概念、精神和范圍的情況下,可以對裝置、方法和方法的步驟順序進行改變。更具體來說,顯而易見的是,可以針對本文描述的組件,添加,組合或替換某些組件,同時獲得相同或相似的結果。對于本領域技術人員顯而易見的所有這樣的類似替換和修改被認為在所限定的本發(fā)明的精神、范圍和概念之內(nèi)。