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