技術領域
本申請涉及惡意軟件檢測。
背景技術:
惡意軟件“malware”包括所謂的高級持續(xù)性威脅(APT),其特征在于以竊取敏感信息和/或獲得對計算資源的未授權訪問為目的持續(xù)性背景執(zhí)行。檢測APT和采取補救動作通常是困難的。包括反病毒應用的傳統(tǒng)反惡意軟件產(chǎn)品根據(jù)用于檢測惡意軟件的文件簽名。已知惡意軟件的可執(zhí)行文件的簽名被存儲在數(shù)據(jù)庫中,并且檢測產(chǎn)品針對具有匹配簽名的文件來掃描目標系統(tǒng)。這樣的檢測技術可以通過創(chuàng)建具有相同或相似的功能但是不同簽名的變體(在某種程度上由造假者使用的技術)而被挫敗。這些檢測技術還可以被通過禁用反病毒軟件、將其本身嵌入到操作系統(tǒng)內(nèi)核中以及其他方法來主動尋求避免檢測的惡意軟件挫敗。
在計算上存在朝向基于虛擬機的計算平臺的移動,基于虛擬機的計算平臺采用執(zhí)行在物理計算機上的仿真的或“虛擬的”計算機(機器)。虛擬機容易以與物理機器相同的方式受惡意軟件的感染,并且傳統(tǒng)反惡意軟件技術具有從對文件簽名的依賴所引起的相同限制。
技術實現(xiàn)要素:
示例實施例涉及用于檢測在虛擬計算平臺的受監(jiān)控的虛擬機中持續(xù)地執(zhí)行的惡意軟件的存在并對其做出響應的方法、系統(tǒng)和計算機程序產(chǎn)品。該方法包括在內(nèi)核日志中記錄在管理器內(nèi)核處的I/O請求并且在虛擬機(VM)日志中記錄在由管理器管理的VM處的I/O請求。之后,所記錄的I/O請求可以被比較,以根據(jù)在VM日志和內(nèi)核日志中記錄的I/O請求之間的差異來檢測惡意軟件的證據(jù)。
附圖說明
本文中公開的實施例的目的、特征和優(yōu)點可以通過結合附圖參考下文描述來被更好地理解。附圖不意味著限制被包含在本文中的權利要求的范圍。為清楚起見,不是每個元素都可以被標記在每個附圖中。附圖不一定是按比例繪制的,相反著重于說明實施例、原理和概念。因此,本公開內(nèi)容的特征和優(yōu)點將從結合附圖進行的其示范性實施例的以下具體實施方式而變得更明顯,在附圖中:
圖1是圖示根據(jù)本發(fā)明的示例實施例的系統(tǒng)的框圖;
圖2是根據(jù)本發(fā)明的示例實施例的方法的流程圖;
圖3是圖示根據(jù)本發(fā)明的示例實施例的裝置的框圖;并且
圖4是圖示以計算機程序代碼來體現(xiàn)的本發(fā)明的示例實施例的框圖。
具體實施方式
大多數(shù)已知的高級持續(xù)性威脅(APT)的變體具有共同的持續(xù)性行為(即,確保惡意軟件代碼將在受感染的機器被重新啟動之后運行)。不同的持續(xù)性選項通常包括:改變系統(tǒng)上的特定文件或改變磁盤上的特定塊,尤其是主引導記錄(MBR)。檢測可能涉及在可能受感染的機器上運行的檢測軟件的使用。然而,在與APT相同的操作系統(tǒng)內(nèi)運行檢測軟件可能具有某些限制,諸如由APT對檢測軟件的潛在禁用或通過隱藏技術對APT的潛在隱形。例如,如果虛擬 機(VM)磁盤的MBR感染了惡意軟件,則當VM啟動時惡意軟件運行、能夠隱藏在VM內(nèi)核本身中、并且之后能夠攔截去往存儲裝置的所有I/O。惡意軟件之后將能夠向內(nèi)核呈現(xiàn)正確的MBR,其被存儲在某個其他位置中,隱藏磁盤上的MBR被改變的事實。應當理解,任何磁盤檢測將不會檢測到從在VM主機上運行的任何程序幾乎不可見的該惡意軟件。
這些弱點對惡意軟件檢測軟件(尤其是在VM中運行的檢測軟件)的部署提出挑戰(zhàn)。這些問題可以在虛擬計算環(huán)境中通過適當利用在給定(可能受感染的)虛擬機的操作系統(tǒng)外部的系統(tǒng)部件來解決。因此,本發(fā)明的示例實施例意識到在從VM 120到達存儲裝置160的I/O之前存在另一層,即與惡意軟件隔離并且惡意軟件可以不對其隱藏的管理器110。潛在的解決方案是在能夠與正在執(zhí)行的惡意軟件的反檢測活動隔離的虛擬機監(jiān)控器或“管理器”中將檢測軟件部署在可能受感染的虛擬機(VM)的外部。因此,公開了用于檢測在虛擬計算平臺的受監(jiān)控的虛擬機中持續(xù)地執(zhí)行的惡意軟件的存在并對其做出響應的方法和裝置。
圖1是根據(jù)本發(fā)明的示例實施例的系統(tǒng)100的框圖,系統(tǒng)100包括由耦合到風險引擎170的管理器110管理的虛擬機(VM)計算平臺。VM計算平臺是使用“虛擬機”的構造提供數(shù)據(jù)處理的一個或多個物理計算機的集合,虛擬機是模仿物理計算機器的軟件。VM計算平臺包括多個虛擬機(VM)120(為簡單起見圖示了一個),其具有到管理器內(nèi)核140和底層物理計算機或物理機器的接口,底層物理計算機或物理機器包括如本領域中公知的處理器、存儲器、輸入/輸出電路等等。
VM 120參與文件系統(tǒng)操作I/O請求165A、165B(統(tǒng)稱為165)和需要內(nèi)核140的參與的網(wǎng)絡操作,并且因此在這個意義上對內(nèi)核140“可見”。例如,想要在VM 120中創(chuàng)建文件的應用調(diào)用在該VM 120的操作系統(tǒng)(未示出)中的函數(shù)。VM操作系統(tǒng)繼而執(zhí)行指向由管理器110向VM操作系統(tǒng)呈現(xiàn)的存儲設備的表示的文件系統(tǒng)I/O 操作165(例如,為文件分配存儲塊)。管理器110以對VM 120透明的方式將這些操作轉化成對于真實物理存儲設備的對應操作。
如下面更詳細地描述的,輔助VM的風險引擎170可以檢測可能正在VM 120中執(zhí)行的可能有害的軟件(被稱為“惡意軟件”)的存在的證據(jù)。該檢測部分通過在執(zhí)行“受感染的”VM 120(即,其中給定類型的惡意軟件正在執(zhí)行的VM 120)期間檢測I/O元數(shù)據(jù)中的改變來被執(zhí)行。在操作期間,VM計算平臺收集操作數(shù)據(jù),將其提供給風險引擎170以調(diào)用對操作數(shù)據(jù)的分析。例如,如圖1中示出的,VM 120和管理器內(nèi)核140中的每一個包括相應風險代理130、150,如下面更詳細地描述的,經(jīng)由相應風險代理所有I/O操作165通過并且被記錄。如果檢測到惡意軟件的證據(jù),則可以采取控制動作以解決由惡意軟件施加的威脅,該控制動作可以例如包括通知人類系統(tǒng)操作員或采取某種自動動作。應當理解,其他實施例可以包括物理主機而非VM 120、以及在存儲裝置160中運行的風險引擎170。另外,管理器風險代理150可以在虛擬小型計算機系統(tǒng)接口(VSCSI)層中。在其他實施例中,管理器風險代理150可以是針對VM 120運行的過濾驅(qū)動器,其在與VM 120相同的用戶空間中運行(即,在VM 120外部攔截由VM 120生成的I/O)。
盡管圖1示出在風險代理130、150與風險引擎170之間的直接連接,將認識到在這些部件之間的通信通過管理器110和物理計算硬件,類似于在VM 120和其他外部計算機或設備中的任何設備之間的通信。圖1的組織是要突出風險代理130、150的特殊作用。
在某些實施例中,風險代理130、150可以是馬薩諸塞州霍普金頓的EMC公司的EMC RecoverPoint拆分器(splitter)。每個拆分器可以是在產(chǎn)品主機、交換機或存儲陣列上運行的代理,其能夠攔截I/O并將它們拆分到數(shù)據(jù)保護裝置(例如,馬薩諸塞州霍普金頓的EMC公司的EMC RecoverPoint)以及存儲陣列160,使I/O失敗、重定向I/O、或者進行對I/O的任何其他操縱。在某些實施例中,風險引擎170可以是數(shù)據(jù)保護裝置(例如,馬薩諸塞州霍普金頓的EMC 公司的EMC RecoverPoint),其可以是用作數(shù)據(jù)保護裝置的計算機或計算機的集群(即,物理設備)、或者過程的集合(即,虛擬設備或者虛擬設備和物理設備的組合),數(shù)據(jù)保護裝置負責數(shù)據(jù)保護服務,包括尤其存儲系統(tǒng)的數(shù)據(jù)復制以及將由主機計算機向存儲系統(tǒng)發(fā)出的日志(journaling)I/O請求。鏡像的討論可以在于2008年3月18日發(fā)布的標題為“PROTECTION OF MIRRORED DATA”的美國專利No.7,346,805中找到,日志和與日志相關聯(lián)的一些技術的討論可以在于2009年4月7日發(fā)布的標題為“METHODS AND APPARATUS FOR OPTIMAL JOURNALING FOR CONTINUOUS DATA REPLICATION”的美國專利No.7,516,287中找到,并且動態(tài)地添加用于日志的存儲的討論可以在于2010年11月23日發(fā)布的標題為“METHODS AND APPARATUS FOR DYNAMIC JOURNAL EXPANSION”的美國專利No.7,840,536中找到,這些專利中的全部被授予給馬薩諸塞州霍普金頓的EMC公司,并且通過引用將它們整體并入本文。
圖2是圖示根據(jù)本發(fā)明的示例實施例的方法的流程圖。圖1和2可以結合來描述。如圖1和2中所圖示的,VM風險代理130可以在VM日志135中記錄I/O請求165(210)。類似地,管理器內(nèi)核風險代理150可以在內(nèi)核日志155中記錄在管理VM 120的管理器內(nèi)核140處的I/O請求(220)。在某些實施例中,由風險代理130、150記錄的數(shù)據(jù)可以包括與時間戳、I/O類型(例如,讀、寫)、起始地址、偏移和長度中的一項或多項有關的I/O元數(shù)據(jù)。之后,I/O元數(shù)據(jù)的元素可以由風險引擎170進行比較以查找在VM 120上運行的惡意軟件的證據(jù)。另外,為便于比較,某些實施例可以生成VM日志元數(shù)據(jù)和內(nèi)核日志元數(shù)據(jù)的簽名(例如,哈希)以用于在調(diào)查VM 120上的惡意軟件的存在時的后續(xù)比較。
應當理解,在某些實施例中,經(jīng)由風險代理150在管理器內(nèi)核140級別處跟蹤存儲I/O 165請求日志允許在其他情況下幾乎不可能的高級能力(例如,VM引導時間記錄)。另外,在該級別處執(zhí)行的 跟蹤不可能由在VM級別處執(zhí)行的惡意軟件檢測和繞開。此外,在VM日志135中記錄在VM 120處的I/O請求165可以包括將I/O請求165記錄到針對存儲160的主引導記錄或者記錄到VM操作系統(tǒng)。
風險代理130、150中的每個風險代理之后可以將其相應日志135、155轉發(fā)到風險引擎170。風險引擎170之后可以將在VM日志155中記錄的I/O請求165與在內(nèi)核日志155中記錄的I/O請求165進行比較(230)??赡鼙淮鄹牡腣M日志135與管理器內(nèi)核日志155的比較允許標識這些日志之間的差別。
根據(jù)比較的結果,風險引擎170可以檢測在VM 120中運行的惡意軟件的證據(jù)(240)。換言之,來自風險代理130、150的I/O日志135、155中的差異可以指示在VM 120中運行的惡意軟件的存在。如果發(fā)現(xiàn)日志尤其在高風險區(qū)域(例如,MBR或操作系統(tǒng)二進制文件)中相當不同,則可以提供通知以觸發(fā)關于潛在風險的人工干預。注意,在VM日志135與內(nèi)核日志155之間的差別不能決定惡意軟件或某種惡意物;然而,這樣的差別是異常的并且指示惡意軟件。
在某些實施例中,諸如系統(tǒng)操作員的用戶可以注入I/O以執(zhí)行特定I/O訪問來探測潛在的惡意軟件。因此,可以比較經(jīng)由對所注入的I/O的處理由風險代理130、150生成的VM日志135與內(nèi)核日志155。換言之,如果用戶懷疑在VM 120中、包括在VM 120的特定部分中存在惡意軟件,則用戶可以將I/O指向VM 120(即,所懷疑的弱點所在),其將使得I/O被處理并且I/O元數(shù)據(jù)在VM日志135與內(nèi)核日志155中被生成。如以上所描述的,可以比較該VM日志135和內(nèi)核日志155數(shù)據(jù),以確認是否存在惡意軟件的證據(jù)。
圖3是根據(jù)本發(fā)明的示例實施例裝置305的框圖。裝置305可以系統(tǒng)300的一部分并且包括存儲程序邏輯315的存儲器310、用于執(zhí)行過程325的處理器320以及經(jīng)由總線335連接的通信I/O接口330。
處理可以以硬件、軟件或兩者的組合來被實施。處理可以以在可編程計算機/機器上執(zhí)行的計算機程序來被實施,可編程計算機/ 機器均包括處理器、存儲介質(zhì)或由處理器可讀取的其他制品(包括易失性存儲器和非易失性存儲器和/或存儲元件)、至少一個輸入設備和一個或多個輸出設備。程序代碼可以被應用到使用輸入設備輸入的數(shù)據(jù)以執(zhí)行處理并生成輸出信息。
本發(fā)明的方法和裝置可以至少部分地采取被體現(xiàn)在有形非瞬態(tài)介質(zhì)中的程序代碼(即,指令)的形式,有形非瞬態(tài)介質(zhì)諸如軟盤、CD-ROM、硬盤驅(qū)動器、隨機存取存儲器或只讀存儲器、或者任何其他機器可讀存儲介質(zhì)。當程序代碼被加載到機器(諸如圖3的計算機)中并由該機器執(zhí)行時,機器稱為用于實踐本發(fā)明的裝置。當被實施在一個或多個通用處理器上時,程序代碼與這樣的處理器組合以提供類似于特定邏輯電路來操作的獨特裝置。因此,通用數(shù)字機器可以被轉變成專用數(shù)字機器。
圖4是根據(jù)本發(fā)明的示例實施例的包括程序邏輯455的計算機程序產(chǎn)品400的框圖,程序邏輯455被編碼在計算機可讀介質(zhì)460上的計算機可執(zhí)行代碼中,計算機可執(zhí)行代碼被配置用于執(zhí)行本發(fā)明的方法。用于執(zhí)行方法的邏輯可以被體現(xiàn)為前述系統(tǒng)的一部分,其可用于執(zhí)行參考所示的實施例來描述的方法。
盡管已經(jīng)出于理解的清楚的目的在特定細節(jié)中描述了前述發(fā)明,但是將是明顯的,可以在所附權利要求的范圍內(nèi)實踐某些改變和修改。本發(fā)明的范圍僅由權利要求限制,并且本發(fā)明包含許多備選、修改和等價形式。在以上描述中闡述了許多具體細節(jié),以便于提供對本發(fā)明的透徹理解。出于示例的目的提供了這些細節(jié),并且本發(fā)明可以在沒有這些具體細節(jié)中的一些或全部的情況下根據(jù)權利要求來被實踐。出于清楚的目的,沒有詳細描述與本發(fā)明相關的技術領域中已知的技術材料,以使得本發(fā)明不會不必要地被模糊。因此,以上實施方式將被認為是說明性的而非限制性的,并且本發(fā)明不限于本文中給出的細節(jié),而是可以在所附權利要求的范圍和等價形式內(nèi)被修改。