本公開總體上涉及信息安全領域,并且更具體地涉及對惡意軟件的追蹤和檢測。
背景技術:
網絡安全領域在當今社會中已經變得越來越重要。互聯網已經使得全世界不同計算機網絡能夠互連。具體地,互聯網提供了用于通過各種類型的客戶端設備在連接至不同計算機網絡的不同用戶之間交換數據的介質。雖然互聯網的使用已經改變了商業和個人通信,它同樣已經被用作惡意操作者對計算機和計算機網絡進行未授權訪問以及對敏感信息的有意或無意暴露的工具。
感染主機的惡意軟件(“Malware”)可能能夠執行任何數量的惡意行為,如從與主機相關聯的企業或個人盜取敏感信息、傳播至其他主機、和/或幫助分布式拒絕服務攻擊、從主機發出垃圾郵件或惡意郵件等。因此,對于保護計算機和計算機網絡免受惡意軟件的惡意或無意利用,仍然存在著重大的管理性挑戰。
附圖說明
為了對本公開及其特征和優點提供更完整的理解,結合附圖參照以下說明書,在附圖中,相同的參考號代表相同的部件,在附圖中:
圖1是根據本公開的實施例的一種用于在網絡環境中抑制惡意軟件的通信系統的簡化框圖;
圖2是根據實施例展示了可以與所述通信系統相關聯的可能操作的簡化流程圖;
圖3是根據實施例展示了可以與所述通信系統相關聯的可能操作的簡化流程圖;
圖4是根據實施例展示了可以與所述通信系統相關聯的可能操作的簡化流程圖;
圖5是根據實施例展示了可以與所述通信系統相關聯的可能操作的簡化流程圖;
圖6是根據實施例展示了可以與所述通信系統相關聯的可能操作的簡化流程圖;
圖7是根據實施展示了以點到點配置安排的示例計算系統的框圖;
圖8是與本公開的示例ARM生態系統片上系統(SOC)相關聯的簡化框圖;以及
圖9是根據實施展示了示例處理器的框圖。
附圖中的這些圖不一定要按比例繪制,因為它們的尺寸可以顯著地改變而不背離本公開的范圍。
具體實施方式
示例實施例
圖1是一種用于幫助追蹤和檢測惡意軟件的通信系統100的簡化框圖。通信系統100可以包括電子設備110、網絡114、和安全服務器116。電子設備可以包括檢測模塊118。惡意設備112可能試圖向電子設備110中引入惡意軟件。電子設備110、惡意設備112、和安全服務器116可以通過網絡114連接。在一個示例中,惡意設備112可以直接連接(例如,通過通用串行總線(USB)類型連接)至電子設備110。
在示例實施例中,通信系統100可以被配置成用于:確定與特性相關的程序開始運行;當確定應當對所述程序進行監測時對與所述程序相關的事件進行追蹤;并且確定在所述追蹤結束之前有待追蹤的事件數量。所述特性可以是任何可以指示所述程序是惡意軟件或可能包含惡意軟件的特性。例如,所述程序可以具有允許所述程序在沒有所有者的知會同意的情況下混入、修改、改變、惡化、或損壞計算機系統的特性。所述有待追蹤的事件數量可以與程序類型相關。另外,所述被追蹤的事件數量可以與所述程序的活動相關。通信系統100可以進一步被配置成用于:如果所述程序具有子程序,則確定有待追蹤的子事件數量。程序的子程序是代表或響應于來自另一程序的請求、事件、或動作行動的任何程序或代碼。通信系統100可以被配置成用于跨父進程/子進程合并被追蹤的事件,并且對所述被追蹤的事件的結果進行分析從而判定所述進程是否包括惡意軟件。在其他示例中,通信系統100可以被配置成用于分析所述被追蹤的事件的結果并將所述結果發送至安全服務器。在一些示例中,所述被追蹤的事件的結果在被發送至安全服務器之前被標準化并合并。
圖1的元件可以采取任何適當連接(有線或無線)通過一個或多個接口彼此耦聯,這為網絡(例如,網絡114)通信提供了可行的通路。另外,可以基于具體配置需求將圖1的這些元件中的任何一個或多個與架構進行組合或從中移除。通信系統100可以包括能夠進行傳輸控制協議/互聯網協議(TCP/IP)通信以便在網絡中傳輸或接收分組報文的配置。通信系統100還可以在適當情況下并基于具體需要結合用戶數據報協議/IP(UDP/IP)或任何其他適當協議運行。
為了展示通信系統100的某些示例技術,理解可以貫穿網絡環境的通信很重要。以下基礎信息可以被視為可以對本公開正確解釋的基礎。
增加對互聯網的訪問具有增加下述軟件程序的觸及的非預期效果:在沒有用戶知會同意的情況下捕捉其私人信息的軟件程序,或者在沒有用戶的知識和知會同意的情況下使計算機惡化的軟件程序。如在此所使用的術語“惡意軟件”包括任何類型的軟件程序,所述軟件程序被設計成用于沒有所有者的知會同意的情況下混入、修改、改變、惡化、或損壞計算機系統,不管軟件程序的動機,并且不管軟件程序對所有者的設備、系統、網絡或數據造成的結果。
各種檢測程序可以用于試圖檢測惡意軟件的存在。在一些實例中,檢測程序依賴對正在被檢查的軟件程序中的簽名的檢查,從而判定所述程序是否是或包含惡意軟件。在一些實例中,檢測程序使用追蹤方法來判定軟件程序是否是惡意軟件。然而,惡意軟件作者頻繁地更改或改變惡意軟件程序的部分,從而避免追蹤方法的檢測。
結果是,反惡意軟件供應商和安全系統采取了行為技術以瞄準前攝檢測。然而,一些技術是面向單個進程的并且對多組件威脅是無效的。一些威脅趨向于具有若干組件。例如,一些威脅開始于惡意URL,利用易損性或主持隱藏下載。然后,來自惡意的統一資源定位符(URL)的惡意下載(例如,C&C bot代碼、密碼竊取器有效載荷等)傾向于作為單獨的進程繁衍。追蹤單個進程并不在整個端到端的威脅事件建立上下文,從而限制了保護值。
另外,在對威脅活動進行追蹤時,一些技術使用硬編碼或預先配置的超時來確定何時停止追蹤。這是無效的,因為每個威脅具有不同的感染時間窗,并且并不保證30或60秒的追蹤可以為惡意軟件檢測捕捉到足夠的事件或行為。威脅可能等待來自惡意軟件服務器對用戶機器的活動、握手和命令等來推進,并且60秒的追蹤不可能識別惡意活動。
用于追蹤和檢測惡意軟件的通信系統(如圖1中描繪的)可以解決這些問題(以及其他的)。在圖1的通信系統100中,為了最終和檢測惡意軟件,所述系統可以被配置成用于在對事件進行標準化和合并之后對文件和程序的事件或行為進行分組。這可以建立一般的但足夠詳細的端到端的威脅事件追蹤。使用規則和機器學習將所合并的事件加標簽并相關,從而使得當檢測到威脅時抑制策略可以相應地應用于每個組件。如全文中使用的術語“事件”和“多個事件”將包括行為、動作、調用、重定向、下載、或惡意代碼可能對電子設備使用的任何其他進程、事件、或行為。
另外,檢測模塊118可以使用智能上下文來確定追蹤持續時間。代替硬編碼的超時,檢測模塊118可以利用上下文觸發器來確定何時追蹤足夠以及何時應當暫停和恢復追蹤。
通信系統110可以被配置成用于跨進程監測事件并將這些事件合并至單個追蹤中。目前的方案并不將跨多個進程的事件整合至合并的追蹤中。為了避免檢測,一些惡意軟件已經轉換為或者多組件或者在其同盟之間具有相互獨立的有效載荷。來自單個進程或單個組件的事件經常不呈現足夠的可疑活動。檢測模塊118可以被配置成用跨進程的上下文建立事件追蹤并貫穿相關的組件來組合所述事件。將多個進程的事件合并還可以有助于機器學習和惡意軟件分類。
在特定示例中,惡意軟件事件(例如,惡意軟件繁衍樹)的追蹤可能具有多個分支。進程A可以繁衍進程B1和B2,并且B1可以繁衍C1、C2、C3,等等。將這些活動合并,從而描述完整的威脅并幫助檢測惡意軟件。還可以對這些事件加標簽以便在分類階段相關。所述分類階段可以幫助防止潛在的誤報,因為惡意軟件事件的追蹤中的進程中的一部分可能是良性的并且在抑制的過程中需要忽略。
追蹤完成可以依據上下文確定,并且基于事件相關性以及追蹤暫停和恢復的其他觸發條件。例如,在低活動事件追蹤中,追蹤可以暫停,直到來自端口的發送/接收數據事件觸發了追蹤的恢復。如果安全系統被硬編碼或預先配置30秒或60秒的超時以結束追蹤,則安全系統可能錯誤發送/接收數據事件并且檢測不到惡意軟件。在另一示例中,單元時間范圍內大量的某些事件可以幫助確定何時結束追蹤。
轉至圖1的基礎設施,示出了根據示例實施例的通信系統100。總體上,通信系統100可以以任何網絡類型或拓撲實現。網絡114代表互連的通信路徑中的一系列點或節點用于接收和發射通過通信系統100傳播的信息報文。網絡114在節點之間提供通信接口,并且可以被配置成任何局域網(LAN)、虛擬局域網(VLAN)、廣域網(WAN)、無線局域網(WLAN)、城域網(MAN)、互聯網、以太網、虛擬私人網絡(VPN)、以及任何其他便于網絡環境中通信的適當架構或系統,或其任何適當組合,包括有線和無線通信。
在通信系統100中,可以根據任何適當的通信消息協議發送和接收網絡流量(包括分組報文、幀、信號、數據等)。適當的通信消息協議可以包括多層方案如開放系統互聯(OSI)模型,或其任何推導或變形(例如,傳輸控制協議/互聯網協議(TCP/IP)、用戶數據報協議/IP(UDP/IP))。相應地,在通信系統100中還可以通過蜂窩網絡上的無線電信號通信。可以提供合適的接口和基礎設施來使能與蜂窩網絡的通信。
如在此所使用的術語“報文”指可以在報文交換網絡上的源節點與目的節點之間路由的數據單元。報文包括源網絡地址和目的網絡地址。在TCP/IP消息協議中,這些網絡地址可以是互聯網協議(IP)地址。如在此所使用的術語“數據”指任何類型的二進制、數字、語音、視頻、文本、或腳本數據,或任何類型的源代碼或對象代碼,或在電子設備和/或網絡中可以從一個點傳達至另一個點的、任何其他恰當格式的任何其他適當信息,另外,消息、請求、響應、和詢問是網絡流量的形式,并且因此可以包括報文、幀、信號、數據等。
在示例實施方式中,電子設備110和安全服務器116是網絡元件,它們意味著包含網絡電器、服務器、路由器、交換機、網關、橋接器、負載均衡器、處理器、模塊,或任何其他合適的設備、部件、元件、或可運行以在網絡環境中交換信息的對象。網絡元件可以包括任何適當的硬件、軟件、部件、模塊、或便于其運行的對象,以及用于在網絡環境中接收、發射、和/或另外傳達數據或信息的適當接口。這可以包括允許數據或信息的有效交換的適當的算法和通信協議。
關于與通信系統100相關聯的內部結構,電子設備110和安全服務器116中的每一個可以包括存儲器元件,所述存儲器元件用于存儲有待用于在此所描繪的操作的信息。電子設備110和安全服務器116中的每一個可以將信息保持在任何適當的存儲器元件(例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、專用集成電路(ASIC)等)、軟件、硬件、固件中,或(在合適的情況下并基于具體需要)任何其他適當的部件、設備、元件、或對象中。在此所討論的存儲器項中的任何一個應當被理解為包含在寬泛術語‘存儲器元件’內。而且,可以在任何數據庫、寄存器、隊列、表格、高速緩存、控制列表、或其他結構(所有這些可以在任何適當的時間幀被引用)中提供在通信系統100中被使用、追蹤、發送、或接收的信息。任何此類存儲選項也可以包括在如在此所使用的寬泛術語‘存儲器元件’內。
在某些示例實現方式中,在此所描繪的功能可以通過被邏輯編碼在一種或多種有形介質(例如,ASIC中所設置的嵌入式邏輯、數字信號處理器(DSP)指令、有待由處理器執行的軟件(潛在地包括對象代碼和源代碼)、或其他類似機器等)中來實現,所述一種或多種有形介質可以包括非瞬態計算機可讀介質。在這些實例中的一部分中,存儲器元件可以存儲用于在此所描述的操作的數據。這包括能夠存儲被執行以實施在此所描述的活動的軟件、邏輯、代碼、或處理器指令的存儲器元件。
在示例實現方式中,通信系統100的網絡元件,如電子設備110和安全服務器116,可以包括軟件模塊(例如,檢測模塊118)用于實現或用于培養在此所描繪的操作。這些模塊可以通過任何適當的方式合適地組合,這可以基于具體配置和/或規定需要。在示例實施例中,此類操作可以由硬件實施、在這些元件之外實現、或包括在某個其他網絡設備中以用于實現預期的功能。此外,這些模塊可以被實現為軟件、硬件、固件、或其任何適當組合。這些元件還可以包括軟件(或往復式軟件),所述軟件可以與其他網絡元件協調以便實現如在此所描繪的操作。
另外,電子設備110和安全服務器116中的每一個可以包括處理器,所述處理器可以執行軟件或算法來執行如在此所討論的活動。處理器可以執行與數據相關聯的任何類型的指令,從而實現在此詳述的操作。在一個示例中,處理器可以將元件或物品(例如數據)從一個狀態或事物轉換至另一種狀態或事物。在另一示例中,在此所描繪的活動可以用固定邏輯或可編程邏輯(例如,由處理器執行的軟件/計算機指令)實現,并且在此所標識的元件可以是某種類型的可編程處理器、可編程數字邏輯(例如,現場可編程門陣列(FPGA)、EPROM、EEPROM)或包括數字邏輯的ASIC、軟件、代碼、電子指令、或其任何適當組合。在此所描述的潛在處理元件、模塊、和機器中的任何一個可以被理解為包含在寬泛術語‘處理器’中。
電子設備110可以是網絡元件,并且包括例如臺式計算機、膝上計算機、移動設備、私人數字助手、智能電話、平板、或其他類似設備。安全服務器116可以是網絡元件(如服務器或虛擬服務器)并且可以與客戶端、顧客、端點、或期望通過某個網絡(例如,網絡114)在通信系統100中發起通信的末端用戶相關聯。術語‘服務器’包括用于代表通信系統100內的客戶端服務客戶端的請求和/或執行某種計算任務的設備。雖然檢測模塊110在圖1中被表示為位于電子設備110中,這僅僅是出于示意性目的。在任何適當的配置中,檢測模塊118可以是組合的或分離的。而且,檢測模塊118可以與安全服務器116、云服務、或電子設備102可訪問的另一網絡整合或分布于其中。云服務總體上可以被定義為作為服務在網絡(如互聯網)上傳遞的計算資源的使用。通常,在云基礎設施中提供了計算、存儲、和網絡資源,從而有效地將工作量從本地網絡轉移至云網絡。
轉至圖2,圖2是根據實施例展示了流程200的可能操作的示例流程圖,所述流程可能與惡意軟件的追蹤和檢測相關聯。在實施例中,可以由檢測模塊118執行流程200的一種或多種操作。在步驟202,進程開始。在204,與所述進程相關的程序開始運行。在206,所述系統判定是否應當對所述程序進行監測。如果不應當對所述系統進行監測,則該流程停止。如果應當對所述程序進行監測,則對與所述程序相關的事件進行追蹤。如208中。在210,系統判定是否已經追蹤了足夠的事件,從而判定文件是否是惡意軟件。如果尚未追蹤足夠的事件,或者如果需要追蹤更多的事件,則系統返回208并且對與所述程序相關的事件進行追蹤。如果已經追蹤了足夠的事件,則對所述追蹤的結果進行分析,如212中。
轉至圖3,圖3是根據實施例展示了流程300的可能操作的示例流程圖,所述流程可能與追蹤和檢測惡意軟件相關聯。在實施例中,可以由檢測模塊118執行流程300的一種或多種操作。在302,程序開始運行。在304,系統判定所述程序是否具有應當被監測的特性。如果所述程序具有應當被監測的特性或進程,則對與所述程序相關的事件進行追蹤,如310中。如果所述程序不具有應當被監測的特性或進程,則所述系統判定所述程序是否是需要被監測的程序的子程序,如306中。程序的子程序是代表或響應于來自另一程序的請求、事件、或動作行動的任何程序或代碼。如果所述程序是應當被監測的程序的子程序,則對與所述(子)程序相關的事件進行追蹤,如310中。如果所述程序不是應當被監測的程序的子程序,則不對與所述(包括所述子程序的)程序相關的事件進行追蹤,如308中。
轉至圖4,圖4是根據實施例展示了流程400的可能操作的示例流程圖,所述流程可能與追蹤和檢測惡意軟件相關聯。在實施例中,可以由檢測模塊118執行流程400的一種或多種操作。在402,對應當被監測的程序進行標識。在404,確定與所述程序相關聯的事件類型。在406,基于所述事件類型,確定用于追蹤所述程序的內容事件數量。由于所述系統對監測可以指示惡意軟件的存在的事件感興趣,內容事件(例如,質量事件或可以指示惡意軟件的存在的那些事件)被追蹤并且并非僅僅是可能或可能不指示惡意軟件的存在的事件數量。在408,對與程序相關的事件進行追蹤。在410,系統判定是否滿足了用于追蹤程序的內容事件的數量。如果尚未滿足用于追蹤程序的事件的數量,則追蹤與程序相關的事件(新事件),如408中。如果滿足了用于追蹤程序的事件的數量,則對追蹤的結果進分析,如412中。
轉至圖5,圖5是根據實施例展示了流程500的可能操作的示例流程圖,所述流程可能與追蹤和檢測惡意軟件相關聯。在實施例中,可以由檢測模塊118執行流程300的一種或多種操作。在502,對應當被監測的程序進行標識。在504,確定與所述程序相關聯的一個或多個事件。在506,對與程序相關聯的事件進行追蹤。在508,系統判定是否追蹤了與程序相關聯的所述一個或多個事件。如果未追蹤與程序相關聯的所述事件,則追蹤與程序相關聯的事件(新事件),如506中。如果追蹤了與程序相關聯的所述事件,則將被追蹤的事件與針對程序的子程序的任何被追蹤的事件合并,并與來自程序的父程序的任何被追蹤的事件合并,如510中。
轉至圖6,圖6是根據實施例展示了流程600的可能操作的示例流程圖,所述流程可能與追蹤和檢測惡意軟件相關聯。在實施例中,可以由檢測模塊118執行流程300的一種或多種操作。在步驟602,進程開始。在604,與所述進程相關聯的一個或多個程序開始運行。在608,追蹤并合并與所述一個或多個程序相關的事件。在610,完成對所述一個或多個程序的追蹤。通過完成所述追蹤,可以將系統資源空出來,以供其他進程使用。在612,對被合并的追蹤進行標準化。在614,對被標準化、合并的追蹤進行壓縮。在618,為被合并的追蹤構造特征向量。所述特征向量可以包括關于追蹤的屬性的固定大小的列表。在620,對所述特征向量進行分析。在一些示例實現方式中,不對被合并的追蹤進行壓縮,并且不構造特征向量。
圖7根據實施例展示了以點到點(PtP)配置安排的計算系統700。具體地,圖7示出了一種系統,其中,處理器、存儲器、和輸入/輸出設備通過多個點到點的接口互連。總體上,通信系統100的網絡元件中的一個或多個可以被以相同或類似的方式配置成計算系統700。
如圖7中所展示的,系統700可以包括若干處理器,這些處理器當中,為了清晰僅示出了兩個,處理器770和780。雖然示出了兩個處理器770和780,應當理解的是,系統700的實施例還可以僅包括一個這種處理器。處理器770和780可以各自包括一組核(即,處理器核774A和774B以及處理器核784A和784B)用于執行程序的多個威脅。這些核可以被配置成用于以與上文參照圖1至圖4所討論的類似方式執行指令代碼。每個處理器770、780可以包括至少一個共享高速緩存771、781。共享高速緩存771、781可以對處理器770、780的一個或多個部件(如處理器核774和784)所利用的數據(例如,指令)進行存儲。
處理器770和780還可以各自包括集成式存儲器控制器邏輯(MC)772和782用于與存儲器元件732和734通信。存儲器元件732和/或734還可以存儲處理器770和780所使用的各種數據。在替代性實施例中,存儲器控制器邏輯772和782可以將邏輯與處理器770和780分離。
處理器770和780可以是任何類型的處理器并且可以分別使用點到點接口電路778和788通過點到點(PtP)接口750交換數據。處理器770和780可以各自使用點到點接口電路776、786、794、和798通過個體的點到點接口752和754與芯片組790交換數據。芯片組790還可以使用接口電路792通過高性能圖形接口739與高性能圖形電路738交換數據,所述接口電路可以是PtP接口電路。在替代性實施例中,圖7中所展示的PtP鏈接中的任何一個或全部可以被實現為多點分支總線而不是PtP鏈接
芯片組790可以通過接口電路796與總線720通信。總線720可以具有一個或多個通過它通信的設備,如總線橋718和I/O設備716。通過總線710,總線橋718可以與其他設備通信,如鍵盤/鼠標712(或其他輸入設備,如觸摸屏、滾動球等)、通信設備726(如調制解調器、網絡接口設備、或其他類型的可以通過計算機網絡760通信的通信設備)、音頻I/O設備714、和/或數據存儲設備728。數據存儲設備728可以存儲代碼730,所述代碼可以由處理器770和/或780執行。在替代性實施例中,總線架構的任何部分可以由一個或多個PtP鏈接實現。
圖7中所描繪的計算機系統是可以用于實現在此所討論的各實施例的計算系統的實施例的示意性展示。將理解的是,圖7中所描繪的系統的各個部件可以組合在片上系統(SoC)架構中或任何其他合適的配置中。例如,在此所公開的實施例可以并入包括移動設備(如智能蜂窩電話、平板計算機、私人數字助手、可移動游戲設備等)的系統中。將理解的是,至少在一些實施例中,這些移動設備可以配備有SoC架構。
轉至圖8,圖8是與本公開的示例ARM生態系統SOC 800相關聯的簡化框圖。本公開的至少一種示例實現方式可以包括在此所討論的追蹤和檢測特征,以及ARM部件。例如,圖8的示例可以與任何ARM核(例如,A-9、A-15等)相關聯。進一步,所述架構可以是以下各項的一部分:任何類型的平板、智能電話(包括安卓(AndroidTM)電話、iPhoneTM)、iPadTM、谷歌(Google)NexusTM、微軟SurfaceTM、私人計算機、服務器、視頻處理部件、膝上計算機(包括任何類型的筆記本)、超級筆記本(Ultra bookTM)系統、任何類型的觸摸使能的輸入設備等。
在圖8的這個示例中,ARM生態系統SOC 800可以包括多個核806-807、L2高速緩存控制裝置808、總線接口單元809、L2高速緩存810、圖形處理單元(GPU)815、互連802、視頻編解碼器820、以及液晶顯示器(LCD)I/F 825,它可以與耦聯至LCD的移動行業處理器接口(MIPI)/高清晰多媒體接口(HDMI)鏈接相關聯。
ARM生態系統SOC 800還可以包括用戶標識模塊(SIM)I/F 830、引導只讀存儲器(ROM)835、同步動態隨機存取存儲器(SDRAM)控制器840、閃存控制器845、串行外圍接口(SPI)主設備850、合適的功率控件855、動態RAM(DRAM)860、和閃存865。另外,一個或多個示例實施例包括一種或多種通信能力、接口、和特征,如實例藍牙(BluetoothTM)870、3G調制解調器875、全球定位系統(GPS)880、以及802.11Wi-Fi 885。
在運行時,圖8的示例可以提供處理能力,伴隨著相對低的功耗使能各種類型的計算(例如,移動計算、高端數字家居、服務器、無線基礎設施等)。另外,這種基礎架構可以使能任何數量的軟件應用(例如,安卓(AndroidTM)、Player、Java平臺標準版本(Java SE)、JavaFX、Linux、微軟Windows Embedded、塞班(Symbian)和烏班圖(Ubuntu)等)。在至少一個示例實施例中,核處理器可以用耦聯的低等待時間2級高速緩存實現亂序超標量流水線。
圖9根據實施例展示了處理器核900。處理器核900可以是用于任何類型處理器的核,如微型處理器、嵌入式處理器、數字信號處理器(DSP)、網絡處理器、或其他用于執行代碼的設備。雖然圖9中只展示了一個處理器核900,處理器可以可替代地包括不只一個圖9中所展示的處理器核900。例如,處理器核900代表參照圖7的處理器770和780所示和描述的處理器核774a、774b、784a、和784b的一個示例實施例。處理器核900可以是單線程核,或者(對于至少一個實施例)處理器核900可以是多線程之處在于它可以包括不只一個硬件線程上下文(或“邏輯處理器”)每個核。
圖9還根據實施例展示了耦聯至處理器核900的存儲器902。存儲器902可以是本領域技術任何已知或另外可用的廣泛存儲器(包括存儲器層次結構中的各個層)中的任何一種。存儲器902可以包括有待由處理器核900執行的代碼904,所述代碼可以是一條或多條指令。處理器核900可以遵守代碼904所指示的程序指令序列。每條指令進入前端邏輯906并由一個或多個解碼器908處理。所述解碼器可以產生微操作作為其輸出,如預定格式的固定寬度微輸出,或者可以生成其他指令、微指令、或反映原始代碼指令的控制信號。前端邏輯906還包括寄存器重命名邏輯910和調度邏輯912,后者一般給資源和隊列分配對應于用于執行的指令的操作。
處理器核900還可以包括執行邏輯914,所述執行邏輯具有一組執行單元916-1至916-N。一些實施例可以包括專用于特定功能或功能組的多個執行單元。其他實施例可以包括僅一個執行單元、或可以執行特定功能的一個執行單元。執行邏輯914執行由代碼指令所限定的操作。
在完成了所述指令所限定的操作的執行之后,后端邏輯918可以撤退代碼904的指令。在一個實施例中,處理器核900允許指令的亂序執行但需要指令的有序引退。引退邏輯920可以采取各種已知形式(例如,重排高速緩存等)。以這種方式,在代碼904執行的過程中處理器核900被變換,至少依據解碼器所生成的輸出、寄存器重命名邏輯910所利用的硬件寄存器和表格、以及經執行邏輯914修改的任何寄存器(未示出)。
雖然圖9中未加以展示,處理器在具有處理器核900的芯片上可以包括其他元件,在此參照圖7示出并描述了其中的至少一部分。例如,如圖7中所示,處理器可以包括存儲器控制邏輯連同處理器核900一起。所述處理器可以包括I/O控制邏輯和/或可以包括與存儲器控制邏輯整合的I/O控制邏輯。
注意,就在此所提供的示例,可以按照兩個、三個、或更多個網絡元件對相互作用進行描述。然而,這樣做只是出于清楚和示例的目的。在某些情況下,通過僅參照有限數量的網絡元件,可以更容易描述給定流程組的功能中的一個或多個。應當理解的是,通信系統100及其教導是隨時可擴展的并且可以容納大量部件以及更加復雜/精細的安排和配置。相應地,所提供的示例不應當限制范圍或禁止如潛在應用于無數其他架構中的通信系統100的廣泛教導。
同樣重要的是要注意,前述流程圖(即,圖2至圖6)中的操作僅展示了可以由通信系統100或在其內部執行的可能的相關場景和圖案中的一部分。在適當的情況下可以刪除或移除這些操作中的一部分,或者在不背離本公開范圍的情況下可以顯著地修改或改變這些操作。另外,多個這種操作被描述為與一個或多個附加操作共同或并行執行。然而,這些操作的定時可以顯著地改變。已經出于示例和討論的目的提供了前述操作流程。通信系統100提供了的本質靈活性在于:在不背離本公開的教導的情況下,可以提供任何適當的安排、時間順序、配置、和定時機制。
雖然已經參照了具體安排和配置對本實施了進行了詳細描述,在不背離本公開范圍的情況下,這些示例配置和安排可以顯著地改變。而且,可以基于具體需要和實現方式組合、分離、除去、或添加某些部件。另外,雖然參照便于通信過程的具體元件和操作對通信系統100進行了展示,可以用任何實現通信系統100的期望功能的合適架構、協議、和/或進程來替代這些元件和操作。
許多其他的改變、替代、變更、改變、和修改對本領域技術人員來說是確定的,并且旨在本公開包含了落在所附權利要求書的范圍內的所有的改變、替代、變更、改變、和修改。為了幫助美國專利和商標局(USPTO)以及另外在此申請上發布的任何專利的任何閱讀者解釋在此所附權利要求書,申請人希望注意的是,申請人:(a)并不旨在所附權利要求書中的任何一項當出現于其提交日期時調用美國專利法第35章第112節第(6)段,除非具體權利要求中特別使用了單詞“用于......的裝置”或“用于......的步驟”;并且(b)并不旨在借助說明書中的任何聲明以任何所附權利要求書中未以其他方式反應的方式限制本公開。
其他說明和示例
示例C1是至少一種機器可讀存儲介質,具有一條或多條指令,所述指令當被處理器執行時使所述處理器:確定與進程相關的程序開始運行;當確定了應當對所述程序進行監測時,對與所述程序相關的事件進行追蹤;確定在所述追蹤結束之前有待追蹤的事件數量,并且分析被追蹤的事件的結果,從而判定所述進程是否包括惡意軟件。
在示例C2中,示例C1的主題可以可選地包括:其中,所述有待追蹤的事件數量與程序類型相關。
在示例C3中,示例C1至C2中任一項的主題可以可選地包括:其中,所述有待追蹤的事件數量與所述程序的活動相關。
在示例C4中,示例C1至C3中任一項的主題可以可選地包括:其中,所述指令當被所述處理器執行時進一步使所述處理器判定所述程序是否具有子程序。
在示例C5中,示例C1至C4中任一項的主題可以可選地包括:其中,所述指令當被所述處理器執行時進一步使所述處理器:如果所述程序具有子程序,則確定有待追蹤的子事件數量。
在示例C6中,示例C1至C5中任一項的主題可以可選地包括:其中,所述指令當被所述處理器執行時進一步使所述處理器將所述被追蹤的子事件與所述被追蹤的事件進行組合。
在示例C7中,示例C1至C6中任一項的主題可以可選地包括:其中,所述指令當被所述處理器執行時進一步使所述處理器分析所述被追蹤的事件的結果,從而判定所述進程是否包括惡意軟件。
在示例C8中,示例C1至C7中任一項的主題可以可選地包括:其中,所述指令當被所述處理器執行時進一步使所述處理器將所述追蹤的結果傳達給網絡元件以進行進一步分析。
在示例A1中,一種裝置可以包括檢測模塊,其中,所述檢測模塊被配置成用于:確定與進程相關的程序開始運行;當確定了應當對所述程序進行監測時,對與所述程序相關的事件進行追蹤;確定在所述追蹤結束之前有待追蹤的事件數量,并且分析被追蹤的事件的結果,從而判定所述進程是否包括惡意軟件。
在示例A2中,示例A1的主題可以可選地包括:其中,所述有待追蹤的事件數量與程序類型相關。
在示例A3中,示例A1至A2中任一項的主題可以可選地包括:其中,所述檢測模塊進一步被配置成用于判定所述程序是否具有子程序。
在示例A4中,示例A1至A3中任一項的主題可以可選地包括:其中,所述檢測模塊被進一步配置成用于:如果所述程序具有子程序,則確定有待追蹤的子事件數量。
在示例A5中,示例A1至A4中任一項的主題可以可選地包括:其中,所述檢測模塊被進一步配置成用于:將所述被追蹤的子事件與所述被追蹤的事件進行組合。
在示例A6中,示例A1至A5中任一項的主題可以可選地包括:其中,所述有待追蹤的事件數量基于上下文觸發器。
在示例A7中,示例A1至A6中任一項的主題可以可選地包括:其中,所述追蹤的結果被傳達至網絡元件以進行進一步分析。
示例M1是一種方法,所述方法包括:確定與進程相關的程序已經開始運行;當確定了應當對所述程序進行監測時,對與所述程序相關的事件進行追蹤;確定在所述追蹤結束之前有待追蹤的事件數量;以及分析所述被追蹤的事件的結果,從而判定所述進程是否包括惡意軟件。
在示例M2中,示例M1的主題可以可選地包括:其中,所述有待追蹤的事件數量與程序類型相關。
在示例M3中,示例M1至M2中任一項的主題可以可選地包括:判定所述程序是否具有子程序。
在示例M4中,示例M1至M3中任一項的主題可以可選地包括:如果所述程序具有子程序,則確定有待追蹤的子事件數量。
在示例M5中,示例M1至M4中任一項的主題可以可選地包括:將所述被追蹤的子事件與所述被追蹤的事件進行組合。
在示例M6中,示例M1至M5中任一項的主題可以可選地包括:分析所述被追蹤的事件的結果;以及將所述結果發送至安全服務器。
在示例M7中,示例M1至M6中任一項的主題可以可選地包括:其中,所述有待追蹤的事件數量基于上下文觸發器。
示例S1是一種用于追蹤和檢測惡意軟件的系統,所述系統包括:檢測模塊,所述檢測模塊被配置成用于:確定與進程相關的程序開始運行;當確定了應當對所述程序進行監測時,對與所述程序相關的事件進行追蹤;確定在所述追蹤結束之前有待追蹤的事件數量,其中,所述有待追蹤的事件數量與程序類型相關;將所述被追蹤的事件與來自與所述進程相關的其他程序的事件進行組合;以及分析所組合的所述被追蹤的事件以及來自其他程序的所述事件的結果,從而判定所述進程是否包括惡意軟件。
在示例S2中,示例S1的主題可以可選地包括:其中,所述有待追蹤的事件數量基于上下文觸發器。
在示例S3中,示例S1至S2中任一項的主題可以可選地包括:所述檢測模塊被進一步配置成用于:判定所述程序是否具有子程序;如果所述程序具有子程序,則確定有待追蹤的子事件數量;將所述被追蹤的子事件與所述被追蹤的事件進行組合;以及分析所述被追蹤的事件的結果,從而判定所述進程是否包括惡意軟件。
示例X1是一種機器可讀存儲介質,包括機器可讀指令,所述機器可讀指令用于實施如示例A1至A7中任一項所述的方法或者實現如示例M1至M7中任一項所述的裝置。示例Y1是一種設備,所述設備包括用于執行示例方法M1至M7中任一項的裝置。在示例Y2中,示例Y1的主題可以可選地包括用于執行所述方法的裝置,所述設備包括處理器和存儲器。在示例Y3中,示例Y2的主題可以可選地包括存儲器,所述存儲器包括機器可讀指令。