本申請要求于2014年9月25日提交的題為“Cross-View Malware Detection(交叉視圖惡意軟件檢測)”的美國實用新型申請?zhí)?4/496,860的優(yōu)先權(quán),所述申請通過引用結(jié)合在此。
技術(shù)領(lǐng)域
本申請涉及計算機安全領(lǐng)域,并且更具體地涉及交叉視圖惡意軟件檢測引擎。
背景技術(shù):
安全性研究已經(jīng)演化成了一方面安全性研究者與另一方面惡意軟件作者之間的永久性軍備競賽。對于安全性研究者來說,他們主要關(guān)注檢測并修復(fù)惡意軟件,從而保護最終用戶和企業(yè)免受惡意和傷害。相反,惡意軟件作者關(guān)注避免檢測,從而使得其惡意軟件對象可以繼續(xù)跨企業(yè)和網(wǎng)絡(luò)傳播。
附圖說明
當(dāng)與附圖一起閱讀時,將從以下詳細描述中最充分地理解本公開。要強調(diào)的是,根據(jù)行業(yè)中的標準實踐,各種特征并未按比例繪制,并且僅用于說明目的。實際上,為了討論的清晰起見,可以任意地增大或者減小各種特征的尺寸。
圖1是根據(jù)本說明書的一個或多個示例的安全使能網(wǎng)絡(luò)的框圖。
圖2是根據(jù)本說明書的一個或多個示例的計算設(shè)備的框圖。
圖3是根據(jù)本說明書的一個或多個示例的服務(wù)器的框圖。
圖4是根據(jù)本說明書的一個或多個示例的交叉視圖檢測引擎的功能框圖。
圖5是根據(jù)本說明書的一個或多個示例的一種由交叉視圖檢測引擎執(zhí)行的方法的流程圖。
具體實施方式
概述
在示例中,公開了一種用于檢測惡意軟件行為的交叉視圖檢測引擎。惡意軟件可能試圖通過盡可能長時間地留在易失性存儲器中并且僅在必要時寫入磁盤來試圖避免檢測。為了避免檢測,所述惡意軟件還可能在文件系統(tǒng)級提供偽驅(qū)動器,所述偽驅(qū)動器執(zhí)行看似合法的假操作。固件級驅(qū)動器可以同時地執(zhí)行多個惡意操作。所述交叉視圖檢測引擎通過以下方式檢測這種行為:從所述文件系統(tǒng)級操作中解構(gòu)調(diào)用追蹤(call trace),并且從固件級操作中重構(gòu)調(diào)用追蹤。如果所述追蹤不匹配,則可以將對象標記為可疑的
本公開的示例實施例
以下公開內(nèi)容提供了用于實施本公開的不同特征的許多不同實施例或示例。以下描述了部件和安排的具體示例以便簡化本公開。當(dāng)然,這些僅是示例并且并不旨在是限制性的。進一步地,本公開在不同示例中可以重復(fù)參考標號和/或字母。這種重復(fù)是為了簡單和清晰的目的,并且本身并不指定所討論的各種實施例和/或配置之間的關(guān)系。
不同實施例可以具有不同優(yōu)點,并且不一定需要任何實施例的任何特定優(yōu)點。
安全性軍備競爭的一種表現(xiàn)可見于由某些類別的惡意軟件對象所執(zhí)行的硬盤操作。在一個示例中,反病毒代理被安裝在用戶機中用于檢測由可執(zhí)行對象所進行的某些類別的寫入操作。經(jīng)驗數(shù)據(jù)表明一般只有惡意軟件才執(zhí)行這些類型的寫入操作。
具體地,某些惡意軟件對象的目標是在最終用戶的機器上保持持久,比如跨越重新引導(dǎo)和計算機死機。因而,惡意軟件對象簡單地停留在非易失性存儲器中是不夠的。然而,在某些實施例中,停留在非易失性存儲器是可執(zhí)行對象逃避檢測的最佳選項。因而,在一個實施例中,“root kit”會嘗試避免動態(tài)分析。例如,ZeroAccess rootkit使用兩種技術(shù)來修改和存儲磁盤上的永久性數(shù)據(jù),而不被動態(tài)分析檢測到。在第一種技術(shù)中,它使用低級API創(chuàng)建新的磁盤空間,它可以在所述新的磁盤空間上存儲惡意的可執(zhí)行文件。此空間對用戶并對系統(tǒng)上運行的某些安全代理是不可見的。
在第二種技術(shù)中,它創(chuàng)建內(nèi)核模式驅(qū)動器。此驅(qū)動器直接調(diào)用文件系統(tǒng)API,從而繞開可能被反惡意軟件代理監(jiān)測的接口。此驅(qū)動器在文件系統(tǒng)中秘密地創(chuàng)建配置文件,并且在每當(dāng)安全性軟件請求對已感染文件進行讀取時返回假數(shù)據(jù)。由于惡意可執(zhí)行文件存在于內(nèi)核空間中,它不需要使用受到基于系統(tǒng)調(diào)用的動態(tài)分析器監(jiān)測的接口。
在另一示例中,“TDSS”rootkit也通過將其惡意驅(qū)動器存儲在原始磁盤扇區(qū)中并覆寫主引導(dǎo)記錄(MBR)來繞過文件系統(tǒng)分析。所述MBR在引導(dǎo)過程中加載來自所述原始磁盤扇區(qū)的惡意代碼。這個讀取在動態(tài)分析時可能不被檢測到。
因而,傳統(tǒng)的反惡意軟件引擎會難以檢測到所述惡意軟件對象。然而,惡意軟件對象最終必須向磁盤寫入以保持永久。因而,反惡意軟件引擎的某些實施例檢測并標記可疑的寫入操作。這會使可執(zhí)行對象經(jīng)受額外監(jiān)督,并可以最終導(dǎo)致將惡意軟件對象正確地識別為惡意軟件。
繼續(xù)討論軍備競賽,某些惡意軟件對象在“更高的”(更加抽象的)操作級假冒看起來合法的磁盤操作,而同時執(zhí)行低級(不那么抽象的)磁盤操作,比如在不經(jīng)過文件系統(tǒng)驅(qū)動器的情況下原始寫入至桌面。計算機上運行的反惡意軟件代理只可以看到看起來合法的磁盤操作在機器上保留惡意軟件的永久副本。因而,反惡意軟件代理會繼續(xù)認為該磁盤不存在惡意軟件,而事實上惡意軟件對象已經(jīng)成功地避開了檢測。
因此,提供交叉視圖惡意軟件檢測的系統(tǒng)和方法是有益的,其中,提供跨實體檢測引擎用于監(jiān)測高級磁盤操作和低級磁盤操作兩者。在這種背景下,“高級”磁盤操作是比如通過應(yīng)用程序編程接口(API)、其文件系統(tǒng)驅(qū)動器、或提供對文件系統(tǒng)操作的抽象的其他合法途徑執(zhí)行的磁盤操作?!暗图墶贝疟P操作是在文件系統(tǒng)驅(qū)動器、或其他合法抽象機制的級別以下發(fā)生的操作。應(yīng)該注意的是,這些高級和第一操作示例僅舉例提供,并且并不旨在是限制性的。在本說明書的某些實施例中,被視為低級操作和高級操作的操作之間會存在一些重疊。因而,在一個實施例中,低級操作與高級操作相比是在更低的抽象級執(zhí)行的操作。因而,高級操作與低級操作之間的一種示例區(qū)分特征是它們不運行于完全相同的抽象級。
在一個示例中,交叉視圖在背景中監(jiān)測引擎監(jiān)測高級磁盤操作和低級磁盤操作兩者。這可以例如通過將交叉視圖檢測引擎作為以提高的系統(tǒng)權(quán)限運行的背景進程來完成。在一個示例中,這些提高的系統(tǒng)權(quán)限可以僅比操作系統(tǒng)本身具有稍少的權(quán)限。在另一示例中,跨實體檢測引擎被設(shè)置在固件中或極低級的軟件中,從而使得它實際上以比操作系統(tǒng)更高的權(quán)限級別運行。本領(lǐng)域的實踐者可以認識到,具體的交叉視圖檢測引擎的選擇和設(shè)計、以及它所運行的權(quán)限級別是可以通過設(shè)計限制指定的設(shè)計決策。因此旨在交叉視圖檢測引擎的任何此類變化包括在本說明書中。
在另一示例中,交叉視圖檢測引擎包括兩個或更多個部件。一個部件是以本質(zhì)上不受限制的權(quán)限運行的固件級驅(qū)動器,而第二部件是文件系統(tǒng)級驅(qū)動器,所述文件系統(tǒng)級驅(qū)動器可以通過操作系統(tǒng)掛鉤與操作系統(tǒng)和文件系統(tǒng)交互,并且所述文件系統(tǒng)級驅(qū)動器可以對操作系統(tǒng)具有應(yīng)用程序級權(quán)限或提高的系統(tǒng)權(quán)限。這兩個部件合作檢測惡意軟件磁盤操作。
在一個實施例中,可以假定,如果可執(zhí)行對象同時執(zhí)行“假的”高級磁盤操作,而同時還執(zhí)行不與所述高級磁盤操作匹配的低級磁盤操作,可執(zhí)行對象可以被安全地認定為惡意軟件。
就其本質(zhì)而言,低級磁盤操作將不會固有地或本質(zhì)地比得上高級命令。就設(shè)計而言,高級操作旨在比低級操作更加抽象。在一個示例中,可以通過調(diào)用標準數(shù)據(jù)庫函數(shù)比如fprintf()來在更高抽象級別進行對磁盤的簡單寫入。標準數(shù)據(jù)庫函數(shù)之后提供必要的低級操作,以完成磁盤寫入操作。因而,高級磁盤操作和第一磁盤操作之一或另一方或兩者將需要被轉(zhuǎn)換成新的形勢,從而使得可以有效地將其進行對比。
在一個示例中,高級磁盤操作被減少至一系列調(diào)用追蹤。調(diào)用追蹤和調(diào)用圖聚類在2010年8月27日公開的約里斯基納伯(Joris Kinable)和奧勒提斯科斯塔基斯(Orestis Kostakis)所著的文章“Malware Classification based on Call Graph Clustering(基于調(diào)用圖聚類的惡意軟件分類)”中有所描述。自本申請日期起,在http://arxiv.org/abs/1008.4365可獲得此文章。
同時,低級磁盤操作被重構(gòu)成等效的調(diào)用追蹤。因而,可以將高級操作的所述解構(gòu)的調(diào)用追蹤與第一操作的所重構(gòu)的調(diào)用追蹤進行比較,從而判斷所述調(diào)用追蹤是否匹配。
如果這些調(diào)用追蹤不匹配,則可以推斷出低級磁盤操作并非在做高級操作看起來正在做的事。這種行為是惡意軟件高度特有的,并且可以對這種行為的對象進行標記。
在此認識到,磁盤事件與文件系統(tǒng)操作之間不一定存在簡單的一對一關(guān)系,或者換種說法,不存在總是與示例操作(比如,“寫入至文件”)相對應(yīng)的明確事件順序。當(dāng)原始字節(jié)以其自己的方式被截取至磁盤時,結(jié)果是實際上磁盤本身上初見或?qū)⒊霈F(xiàn)的內(nèi)容的一部分。為了確定發(fā)生了什么操作,交叉視圖檢測引擎可以使用以下信息:
磁盤之前的狀態(tài)(例如,哪些磁盤扇區(qū)包含在哪些文件和哪些元數(shù)據(jù)中)。
所截取的數(shù)據(jù)(例如,在這個單次交易中,什么數(shù)據(jù)或元數(shù)據(jù)正被寫入磁盤)。
舉例而言,在Windows新技術(shù)文件系統(tǒng)(NTFS)中,主數(shù)據(jù)結(jié)構(gòu)是主文件表(MFT)。對于磁盤上的每個文件,MFT中存在一個表項,并且該MFT表項包含描述所述文件的元數(shù)據(jù)(例如,其名稱和發(fā)現(xiàn)其內(nèi)容的扇區(qū)上所有扇區(qū)的列表)。
當(dāng)進行低級磁盤分析時,交叉視圖檢測引擎并不截取例如特定事件,所述特定事件與“創(chuàng)建稱為newfile.txt的文件”或“刪除稱為newfile.txt的文件”清楚地相關(guān)。相反,交叉視圖檢測引擎可以簡單地截取具有MFT表項的格式的(或存在于已知包含MFT表項的扇區(qū)上的)數(shù)據(jù)塊。交叉視圖檢測引擎可以然后對元數(shù)據(jù)進行解析,從而判斷自從上一次遇到元數(shù)據(jù)之后是否發(fā)生了任何改變。
類似地,為了截取文件寫入操作,交叉視圖檢測引擎不能簡單地識別與“將‘a(chǎn)bc’寫入至文件newfile.txt.”相對應(yīng)的事件。相反,總線將簡單地將原始字節(jié)‘a(chǎn)bc’發(fā)送至已知屬于文件“newfile.txt”的磁盤扇區(qū)。
在這個背景下,下面提供了調(diào)用追蹤與低級操作之間的相關(guān)性的一些非限制性示例。
示例1追蹤:
創(chuàng)建文件“newfile.txt”
寫入至文件“newfile.txt”
低級磁盤事件和條件的相應(yīng)集合可以包括:
寫入至磁盤塊8000
已知磁盤塊8000屬于MFT,并且因此存儲MFT表項(關(guān)于文件的元數(shù)據(jù))。
MFT表項被標記為“使用中”(有效)
之前,那個位置上不存在“使用中”(有效)的元數(shù)據(jù)。因此,這是新的文件。
所截取的MFT表明文件被稱為“newfile.txt”并且將其內(nèi)容存儲在磁盤塊123000至123400上。
磁盤寫入至塊123000
已知磁盤塊123000屬于文件newfile.txt
示例2追蹤:
刪除文件“newfile.txt”
低級磁盤事件和條件的相應(yīng)集合可以包括:
寫入至磁盤塊8000
已知磁盤塊8000是文件newfile.txt的MFT表項
所截取的MFT表項被標記為“未在使用”(無效)
數(shù)據(jù)記錄之前被標記為“使用中”(有效)
示例3追蹤:
刪除文件“newfile.txt”
創(chuàng)建文件“newerfile.txt”
低級磁盤事件和條件的相應(yīng)集合可以包括:
寫入至磁盤塊8000
已知磁盤塊8000是文件newfile.txt的MFT表項
MFT表項被標記為“使用中”(有效)
數(shù)據(jù)記錄之前被標記為“使用中”(有效)
MFT表項之前被列為具有序列號12
所截取的MFT表項顯示序列號13
換言之,刪除了一個文件并且非常快速地創(chuàng)建了另一個文件,并且較新的文件占據(jù)剛空出的MFT表項槽。
從原始數(shù)據(jù)進行操作的語義重構(gòu)是文件系統(tǒng)特定的;即,這些探試法僅適用于Windows NTFS文件系統(tǒng),但可能不一定適用于其他文件系統(tǒng)。
現(xiàn)在將更具體地參照所附附圖來描述交叉視圖檢測引擎。
圖1是根據(jù)本說明書的一個或多個示例的分布式安全網(wǎng)絡(luò)100的網(wǎng)絡(luò)層次圖。在圖1的示例中,多個用戶120操作多個計算設(shè)備110。具體地,用戶120-1操作臺式計算機110-1。用戶120-2操作膝上型計算機110-2。并且用戶120-3操作移動設(shè)備110-3。
每臺計算設(shè)備可以包括適當(dāng)?shù)牟僮飨到y(tǒng),比如微軟Windows、Linux、安卓、Mac OSX、蘋果iOS、Unix等。相比一種類型的設(shè)備,可能在另一種類型的設(shè)備上更經(jīng)常地使用前述項中的一些項。例如,臺式計算機110-1(其在一些情況中還可以是工程工作臺)可能更可能使用微軟Windows、Linux、Unix或Mac OSX之一。膝上型計算機110-2(其通常為具有較少定制選項的便攜式現(xiàn)有設(shè)備)可能更可能運行微軟Windows或Mac OSX操作系統(tǒng)。移動設(shè)備110-3更有可能運行安卓或者iOS。然而,這些示例并不旨在是限制性的。
計算設(shè)備110可以經(jīng)由網(wǎng)絡(luò)170而彼此通信地耦合以及耦合到其他網(wǎng)絡(luò)資源。網(wǎng)絡(luò)170可以是任何適當(dāng)?shù)木W(wǎng)絡(luò)或網(wǎng)絡(luò)的組合,通過非限制性示例的方式,包括例如局域網(wǎng)、廣域網(wǎng)、無線網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)或互聯(lián)網(wǎng)。在此展示中,為了簡單,網(wǎng)絡(luò)170被示為單個網(wǎng)絡(luò),但在一些實施例中,網(wǎng)絡(luò)170可以包括大量網(wǎng)絡(luò),比如連接至互聯(lián)網(wǎng)的一個或多個企業(yè)內(nèi)部網(wǎng)。
連接至網(wǎng)絡(luò)170的還有一個或多個服務(wù)器140、應(yīng)用程序儲存庫160以及通過各種設(shè)備連接的人類參與者(包括例如攻擊者190和開發(fā)者180)。服務(wù)器140可以被配置成用于提供適當(dāng)?shù)木W(wǎng)絡(luò)服務(wù),包括在本說明書的一個或多個示例中公開的某些服務(wù)。在一個實施例中,一個或多個安全管理員150管理服務(wù)器140和網(wǎng)絡(luò)170的至少一部分。
用戶120的目標可以是在沒有來自攻擊者190和開發(fā)者180的干擾的情況下成功地操作他們各自的計算設(shè)備110。在一個示例中,攻擊者190是惡意軟件作者,其目標或者目的是引起惡意傷害或損害。惡意傷害或損害可以采取以下形式:在計算設(shè)備110上安裝Root kit或其他惡意軟件以便篡改系統(tǒng)、安裝間諜軟件或廣告軟件以便收集個人和商用數(shù)據(jù)、丑化網(wǎng)站、操作僵尸網(wǎng)絡(luò)(比如郵件服務(wù)器)、或僅打攪和騷擾用戶120。因此,攻擊者190的一個目的可能是在一個或多個計算設(shè)備110上安裝其惡意軟件。如貫穿本說明書所使用的,惡意軟件(“惡意軟件”)包括被設(shè)計成用于采取可能不需要的行動的任何病毒、木馬、僵尸、根程序病毒包、后門、蠕蟲、間諜軟件、廣告軟件、勒索軟件、撥號器、有效載荷、惡意瀏覽器輔助對象、cookie、記錄器等,通過非限制性示例的方式,包括數(shù)據(jù)毀壞、隱藏數(shù)據(jù)收集、瀏覽器劫持、網(wǎng)絡(luò)代理或重定向、隱藏跟蹤、數(shù)據(jù)記錄、鍵盤記錄、過多的或蓄意的移除阻礙、聯(lián)系人采集以及未授權(quán)的自傳播。
可以由合適的企業(yè)操作服務(wù)器140以提供安全更新和服務(wù),包括反惡意軟件服務(wù)。服務(wù)器140還可以提供實質(zhì)服務(wù),比如路由、聯(lián)網(wǎng)、企業(yè)數(shù)據(jù)服務(wù)、和企業(yè)應(yīng)用程序。在一個示例中,服務(wù)器140被配置成用于分配和實施企業(yè)計算和安全策略??梢愿鶕?jù)書面企業(yè)策略由安全管理員150管理這些策略。安全管理員150還可以負責(zé)管理和配置服務(wù)器140以及網(wǎng)絡(luò)170的全部或部分。
開發(fā)者180也可以操作網(wǎng)絡(luò)170。開發(fā)者180可能沒有惡意的意圖,但是可能開發(fā)造成安全風(fēng)險的軟件。例如,眾所周知的且經(jīng)常被利用的安全缺陷是所謂的緩沖器溢出,其中,惡意用戶(比如攻擊者190)能夠?qū)⑦^長的字符串輸入輸入表中并且由此獲得執(zhí)行任意指令或者使用提升的特權(quán)來操作計算設(shè)備110的能力。緩沖器溢出可以是例如不良輸入驗證或未完成的垃圾收集的結(jié)果,并且在許多情況下,在非顯而易見的情境中出現(xiàn)。因此,盡管開發(fā)者180本身不是惡意的,但是其可能為攻擊者190提供攻擊向量。開發(fā)者180所開發(fā)的應(yīng)用程序也可以引起固有問題,比如崩潰、數(shù)據(jù)丟失或其他非期望的行為。開發(fā)者180可以自己托管軟件,或者可以將他的軟件上傳到應(yīng)用程序儲存庫160。因為來自開發(fā)者180的軟件本身可能是期望的,所以開發(fā)者180在漏洞變得已知時偶爾提供修復(fù)漏洞的更新或補丁是有益的。
應(yīng)用程序儲存庫160可以表示向用戶120提供交互地或自動地下載應(yīng)用程序并將其安裝在計算設(shè)備110上的能力的Windows或Apple“應(yīng)用程序商店”、類UNIX儲存庫或端口幾何、或者其他網(wǎng)絡(luò)服務(wù)。開發(fā)者180和攻擊者190都可以經(jīng)由應(yīng)用程序儲存庫160提供軟件。如果應(yīng)用程序儲存庫160具有適當(dāng)?shù)氖构粽?90難以分散明顯惡意的軟件的安全措施,那么攻擊者190反而可以暗中將漏洞插入到顯然有益的應(yīng)用程序中。
在一些情況下,一個或多少用戶120可以屬于企業(yè)。企業(yè)可以提供對可以安裝的應(yīng)用程序(例如來自應(yīng)用程序儲存庫160)的類型進行限制的政策指示。因而,應(yīng)用程序儲存庫160可以包括并非無意被發(fā)開且并非惡意軟件,但雖然如此仍違反策略的軟件。例如,一些企業(yè)限制對娛樂軟件(如媒體播放器和游戲)的安裝。因此,甚至安全的媒體播放器或游戲也可能不適合企業(yè)計算機。安全管理員150可以負責(zé)分配與此類限制一致的計算策略。
在另一示例中,用戶120可以是小孩子的父母,并且希望保護孩子不受非期望內(nèi)容(通過非限制性示例的方式,比如,色情作品、廣告軟件、間諜軟件、不符合年齡的內(nèi)容、對某些政治、宗教或社會運動的倡導(dǎo)、或用于討論非法或者危險活動的論壇)的影響。在這種情況下,父母可以執(zhí)行安全管理員150的一些或全部職責(zé)。
總地來說,是前述類型內(nèi)容之一的候選項的任何對象可以被稱為“潛在不想要的內(nèi)容”(PUC)。PUC的“潛在地”方面指,當(dāng)對象被標記為PUC時,它不一定被列入黑名單。相反,它是不應(yīng)被允許存在于或工作于計算設(shè)備110上的對象的候選項。因此,用戶120和安全管理員150的目標是配置和操作計算設(shè)備110,儀表有效地分析PUC并作出關(guān)于如何應(yīng)答PUC對象的明智決策。這可以包括計算設(shè)備110上的代理,比如圖2的交叉視圖檢測引擎224,所述代理可以與服務(wù)器140通信以得到額外智能。服務(wù)器140可以提供基于網(wǎng)絡(luò)的服務(wù),包括圖3的服務(wù)器引擎324,所述服務(wù)可以被配置成用于實施策略,并另外輔助計算設(shè)備110正確地分類并PUC采取動作。
圖2是根據(jù)本說明書一個或多個示例的客戶端設(shè)備110的框圖??蛻舳嗽O(shè)備110可以是任何適當(dāng)?shù)挠嬎阍O(shè)備。在各種實施例中,通過非限制性示例的方式,“計算設(shè)備”可以是或可以包括:計算機、嵌入式計算機、嵌入式控制器、嵌入式傳感器、個人數(shù)字助理(PDA)、膝上型計算機、蜂窩電話、IP電話、智能電話、平板計算機、可轉(zhuǎn)換平板計算機、手持計算器或者用于處理和傳達數(shù)據(jù)的任何其他電子、微電子或者微機電設(shè)備。
客戶端設(shè)備110包括連接至存儲器220的處理器210,已經(jīng)在所述存儲器中存儲了用于提供操作系統(tǒng)222和交叉視圖檢測引擎224的可執(zhí)行指令??蛻舳嗽O(shè)備110的其他部件包括存儲設(shè)備250、網(wǎng)絡(luò)接口260以及外圍接口240。
在示例中,處理器210通過存儲器總線270-3與存儲器220通信地耦連,所述存儲器總線可以例如是直接存儲器訪問(DMA)總線,雖然其他存儲器體系結(jié)構(gòu)是可能的,包括其中存儲器220通過系統(tǒng)總線270-1或某其他總線與處理器210通信的存儲器體積結(jié)構(gòu)。處理器210可以經(jīng)由系統(tǒng)總線270-1通信地耦合至其他設(shè)備。如貫穿本說明書所使用的,“總線”包括任何有線或者無線互連線、網(wǎng)絡(luò)、連接、線束、單條總線、多條總線、交叉式網(wǎng)絡(luò)、單級網(wǎng)絡(luò)、多級網(wǎng)絡(luò)或可操作用于在計算設(shè)備的部分之間或在計算設(shè)備之間承載數(shù)據(jù)、信號或電力的其他傳導(dǎo)介質(zhì)。應(yīng)當(dāng)注意的是,僅通過非限制性示例的方式來公開這些用途,并且一些實施例這些用法前述總線中的一條或多條總線,而其他實施例可以采用附加或不同總線。
在各種示例中,“處理器”可以包括提供可編程邏輯的硬件、軟件或者固件的任何組合,包括(通過非限制性示例的方式)微處理器、數(shù)字信號處理器、現(xiàn)場可編程門陣列、可編程邏輯陣列、專用集成電路或者虛擬機處理器。
處理器210可以在DMA配置中經(jīng)由DMA總線270-3而連接至存儲器220。為了簡化本公開,存儲器220被公開為單個邏輯塊,但是在物理實施例中可以包括任何合適的易失性或非易失性存儲器技術(shù)(或多項技術(shù))的一個或多個塊,包括例如DDR RAM、SRAM、DRAM、緩存、L1或L2存儲器、片上存儲器、寄存器、閃存、ROM、光介質(zhì)、虛擬存儲器區(qū)域、磁或磁帶存儲器或類似的存儲設(shè)備。在某些實施例中,存儲器220可以包括相對低等待時間的易失性主存儲器,而存儲設(shè)備250可以包括相對更高等待時間的非易失性存儲器。然而,存儲器220和存儲設(shè)備250不需要是物理上獨立的設(shè)備,并且在一些示例中,可能僅表示功能的邏輯分離。還應(yīng)注意的是,盡管通過非限制性示例的方式公開了DMA,但是DMA不是與本說明書相一致的唯一協(xié)議,并且其他存儲器架構(gòu)是可用的。
存儲設(shè)備250可以是任何種類的存儲器220,或者可以是分離的設(shè)備,比如硬盤驅(qū)動器、固態(tài)驅(qū)動器、外部存儲設(shè)備、獨立磁盤冗余陣列(RAID)、網(wǎng)絡(luò)附接存儲設(shè)備、光學(xué)存儲設(shè)備、磁帶驅(qū)動器、備份系統(tǒng)、云存儲設(shè)備或前述各項的任何組合。存儲設(shè)備250可以是或其中可以包括一個或多個數(shù)據(jù)庫或存儲在其他配置中的數(shù)據(jù),并且可以包括操作軟件的存儲副本,如操作系統(tǒng)222以及交叉視圖檢測引擎224的軟件部分。許多其他配置也是可能的,并且旨在包括在本說明書的寬泛范圍內(nèi)。
可以提供網(wǎng)絡(luò)接口260,以便將客戶端設(shè)備110通信地耦合至有線或無線網(wǎng)絡(luò)。如貫穿本說明書所使用的“網(wǎng)絡(luò)”可以包括可操作用于在計算設(shè)備內(nèi)或在計算設(shè)備之間交換數(shù)據(jù)或信息的任何通信平臺,通過非限制性示例的方式包括自組織本地網(wǎng)、提供具有電交互能力的通信設(shè)備的互聯(lián)網(wǎng)架構(gòu)、簡易老式電話系統(tǒng)(POTS)(計算設(shè)備可以使用所述簡易老式電話系統(tǒng)來執(zhí)行交易,在所述交易中它們可以由人類操作員來幫助或在所述交易中它們可以自動地將數(shù)據(jù)鍵入到電話或其他適當(dāng)?shù)碾娮釉O(shè)備中)、提供通信接口或在系統(tǒng)中的任何兩個節(jié)點之間進行交換的任何分組數(shù)據(jù)網(wǎng)絡(luò)(PDN)、或任何局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)、無線局域網(wǎng)(WLAN)、虛擬專用網(wǎng)(VPN)、內(nèi)聯(lián)網(wǎng)、或促進網(wǎng)絡(luò)或電話環(huán)境中的通信的任何其他適當(dāng)?shù)募軜?gòu)或系統(tǒng)。
在一個示例中,交叉視圖檢測引擎224是執(zhí)行根據(jù)本說明書的方法(如,5的圖方法500或其他方法)的工具或程序。在各個實施例中,交叉視圖檢測引擎224可以在硬件、軟件、固件或其一些組合中被具體化。例如,在一些情況下,交叉視圖檢測引擎224可以包括被設(shè)計成用于執(zhí)行方法或方法的一部分的專用集成電路,并且還可以包括可操作用于指示處理器執(zhí)行所述方法的軟件指令。在一些情況下,交叉視圖檢測引擎224可以作為“守護進程”程序運行?!笆刈o進程”可以包括作為后臺進程、終止并駐留程序、服務(wù)、系統(tǒng)擴展、控制面板、啟動程序、BIOS子例程或者在沒有直接的用戶交互的情況下進行操作的任何類似程序而運行的任何程序或者可執(zhí)行指令系列(無論在硬件、軟件、固件或其任何組合中實施)。還應(yīng)當(dāng)注意的是,交叉視圖檢測引擎224僅通過非限制性示例的方式被提供,并且包括交互式或用戶模式軟件的其他硬件和軟件,還可以結(jié)合、除了或替代交叉視圖檢測引擎224而被提供,以便執(zhí)行根據(jù)本說明書的方法。
在一個示例中,交叉視圖檢測引擎224包括存儲在可操作用于執(zhí)行反惡意軟件操作的非瞬態(tài)介質(zhì)上的可執(zhí)行指令。在適當(dāng)時間上(如根據(jù)啟動客戶端設(shè)備110或根據(jù)來自操作系統(tǒng)222或用戶120的命令),處理器210可以從存儲設(shè)備250中檢索交叉視圖檢測引擎224(或其軟件部分)的副本并將其加載到存儲器220中。然后,處理器210可以迭代的執(zhí)行交叉視圖檢測引擎224的指令。
交叉視圖檢測引擎224和反病毒引擎226可以組合以提供標準反病毒服務(wù)。交叉視圖檢測引擎224包括系統(tǒng)級接口254和低級接口252。
可以例如在固件或在極其低級的軟件中提供低級接口252,從而使得它在一些情況下可以在操作系統(tǒng)222的抽象級以下運行。系統(tǒng)級接口254可以在操作系統(tǒng)222的抽象級以上運行,并且可以具有提高的系統(tǒng)權(quán)限。這意味著雖然系統(tǒng)級接口254不可以對低級接口252進行自由訪問,它可以比用戶空間應(yīng)用程序具有更高的系統(tǒng)權(quán)限。這使得系統(tǒng)級接口254能夠向操作系統(tǒng)222插入掛鉤,從而截取磁盤操作以用于對比目的。在一些實施例中,系統(tǒng)級接口254可以被設(shè)置在虛擬化級或在管理員級。
外圍接口240可以被配置成用于與連接至客戶端設(shè)備110的但不一定是客戶端設(shè)備110的核架構(gòu)的一部分的任何輔助設(shè)備接口連接。外圍設(shè)備可以可操作用于向客戶端設(shè)備110提供擴展功能,并且可以或可以不完全依賴于客戶端設(shè)備110。在一些情況下,外圍設(shè)備可以是其自身的計算設(shè)備。通過非限制性示例的方式,外圍設(shè)備可以包括輸入和輸出設(shè)備,如顯示器、終端、打印機、鍵盤、鼠標、調(diào)制解調(diào)器、網(wǎng)絡(luò)控制器、傳感器、換能器、致動器、控制器、數(shù)據(jù)采集總線、照相機、麥克風(fēng)、揚聲器、或外部存儲設(shè)備。
圖3是根據(jù)本說明書的一個或多個示例的服務(wù)器140的框圖。服務(wù)器140可以是如結(jié)合圖2所描述的任何合適的計算設(shè)備。通常,除非另外特別指出,圖2的定義和示例可以被認為同樣適用于圖3。
服務(wù)器140包括連接至存儲器320的處理器310,所述存儲器具有存儲在其中的用于提供操作系統(tǒng)322和安全引擎324的可執(zhí)行指令。服務(wù)器140的其他部件包括存儲設(shè)備350、網(wǎng)絡(luò)接口360以及外圍設(shè)備接口340。
在示例中,處理器310經(jīng)由存儲器總線370-3被通信地耦合至存儲器320,所述存儲器總線可以是例如直接存儲器訪問(DMA)總線。處理器310可以經(jīng)由系統(tǒng)總線370-1被通信地耦合至其他設(shè)備。
處理器310可以在DMA配置中經(jīng)由DMA總線370-3而連接至存儲器320。為了簡化本公開,存儲器320被公開為單個邏輯塊,但是在物理實施例中可以包括任何合適的易失性或非易失性存儲器技術(shù)(或多項技術(shù))的一個或多個塊,如結(jié)合圖2的存儲器220所描述的。在某些實施例中,存儲器320可以包括相對低等待時間的易失性主存儲器,而存儲設(shè)備350可以包括相對更高等待時間的非易失性存儲器。然而,存儲器320和存儲設(shè)備350無需是物理上分離的設(shè)備,如結(jié)合圖2進一步描述的。
如結(jié)合圖2的存儲設(shè)備250而描述的,存儲設(shè)備350可以是任何種類的存儲器320或者可以是單獨的設(shè)備。存儲設(shè)備350可以是或其中可以包括一個或多個數(shù)據(jù)庫或存儲在其他配置中的數(shù)據(jù),并且可以包括操作軟件的存儲副本,如操作系統(tǒng)322以及服務(wù)器引擎324的軟件部分。許多其他配置也是可能的,并且旨在被涵蓋在本說明書的廣義范圍內(nèi)。
可以提供網(wǎng)絡(luò)接口360來將服務(wù)器140與有線或無線網(wǎng)絡(luò)通信地耦合。
在一個示例中,服務(wù)器引擎324是實現(xiàn)根據(jù)本說明書的方法的工具或程序,包括提供用于計算設(shè)備110的服務(wù)器側(cè)反惡意軟件服務(wù)和更新。服務(wù)器引擎324還可以進行對懷疑對象的“深入”分析,從而提供關(guān)于對象是否惡意的更高置信度。在各個實施例中,服務(wù)器引擎324可以在硬件、軟件、固件或其一些組合中被具體化。例如,在一些情況下,服務(wù)器引擎324可以包括被設(shè)計成用于執(zhí)行方法或方法的一部分的專用集成電路,并且還可以包括可操作用于指示處理器執(zhí)行所述方法的軟件指令。在一些情況下,服務(wù)器引擎324可以作為常駐程序處理運行,如以上所描述的。還應(yīng)當(dāng)注意的是,服務(wù)器引擎324僅通過非限制性示例的方式被提供,并且包括交互式或用戶模式軟件的其他硬件和軟件還可以結(jié)合、除了或替代安全引擎324而被提供,以便執(zhí)行根據(jù)本說明書的方法。
在一個示例中,服務(wù)器引擎324包括存儲在可操作用于執(zhí)行根據(jù)本說明書的方法的非瞬態(tài)介質(zhì)上的可執(zhí)行指令。在適當(dāng)時間上(如根據(jù)啟動服務(wù)器140或根據(jù)來自操作系統(tǒng)322或用戶120的命令),處理器310可以從存儲設(shè)備350中檢索服務(wù)器引擎324(或其軟件部分)的副本并將其加載到存儲器320中。然后,處理器310可以迭代的執(zhí)行服務(wù)器引擎324的指令。
外圍設(shè)備接口340可以被配置成用于與連接至服務(wù)器140但不一定是服務(wù)器140的核心架構(gòu)的一部分的任何輔助設(shè)備接口連接。外圍設(shè)備可以可操作用于向服務(wù)器140提供擴展功能,并且可以或可以不完全依賴于服務(wù)器140。在一些情況下,外圍設(shè)備可以是其自身的計算設(shè)備。通過非限制性示例的方式,外圍設(shè)備可以包括結(jié)合圖2的外圍設(shè)備接口240討論的任何設(shè)備。
圖4是根據(jù)本說明書的一個或多個示例的功能框圖和操作棧。在最低的抽象級或相反在最高的權(quán)限級的是硬件410。這表明,硬件410簡單地能夠做硬件410能夠做的任何事。在這個抽象級上,不存在人為限制。相反,在這一級上的限制簡單地是對固有能力的限制。同樣,在硬件級410上未提供抽象。硬件410在大多數(shù)情況下基本上受電子或機電信號控制。此類信號驅(qū)動硬件410中的直接物理響應(yīng),從而提供期望的操作。
固件420在抽象級上恰好位于硬件410之上,并且在權(quán)限級上正好位于硬件410之下。固件420可以例如提供少量的直接命令,這些直接命令可以被轉(zhuǎn)換成電信號以便用于硬件410。
監(jiān)測“低級”磁盤操作可以在一個示例中發(fā)生于或者硬件級410或者固件級420上。一種方法可以是針對比如扇區(qū)號碼、操作類型(讀取或?qū)懭?、和被讀取或?qū)懭氲臄?shù)據(jù)等信息來監(jiān)測ATAPI、SCSI、或SATA總線。
惡意軟件480和交叉視圖檢測引擎224均包括低級驅(qū)動器,用于直接操縱和/或監(jiān)測固件420。交叉視圖檢測引擎224提供低級驅(qū)動器492。惡意軟件480提供低級驅(qū)動器482。在一個示例中,惡意軟件480使用低級驅(qū)動器482來通過固件420直接操縱硬件410上的磁盤操作。這些操作可能在操作系統(tǒng)級222不可見。然而,交叉視圖檢測引擎224使用低級驅(qū)動級492來觀察這些交互。
在下一抽象級的是操作系統(tǒng)222。操作系統(tǒng)222可以提供使更高級程序能夠執(zhí)行硬件操作的各種驅(qū)動器、接口、和服務(wù)。操作系統(tǒng)222的一種有用功能是通過驅(qū)動器提供抽象,從而使得單個對象比如可執(zhí)行進程可以下發(fā)完全相同的命令,從而對各硬件平臺執(zhí)行有用工作。例如,硬件410可以是制造商提供的硬盤驅(qū)動。由于操作系統(tǒng)222對提供給硬件410的磁盤操作進行抽象,最終用戶不需要知道或關(guān)心來自哪個特定制造商的哪個特定硬盤驅(qū)動將用于硬件級410。
在下一抽象級上的是文件系統(tǒng)驅(qū)動器440。文件系統(tǒng)驅(qū)動器440通過操作系統(tǒng)222組織、存儲、和檢索文件來提供低級接口。流行的文件系統(tǒng)驅(qū)動器包括Windows NTFS,Linux上的ext3或ext4,Apple層級文件系統(tǒng)(HFS),和各種UNIX文件系統(tǒng)比如UFS、BSDFS、和ZFS。
惡意軟件480可以提供與文件系統(tǒng)驅(qū)動器440對接的高級偽驅(qū)動器484。惡意軟件偽驅(qū)動器484的目的是向文件系統(tǒng)驅(qū)動器440下發(fā)假命令來產(chǎn)生執(zhí)行合法文件操作的表象。然而,低級驅(qū)動器482阻止這些命令,從而使得它們實際并不在磁盤硬件410上被執(zhí)行。相反,當(dāng)那些假命令被下發(fā)時,低級驅(qū)動器482執(zhí)行的是惡意軟件480實際要求的任務(wù)。要注意的是,在文件系統(tǒng)驅(qū)動器級對調(diào)用的截取僅作為示例提供。在其他情況下,這些操作可以發(fā)生于其他抽象級,包括虛擬化級或虛擬機級。
交叉視圖檢測引擎224還包括高級驅(qū)動器490。應(yīng)該注意的是,將驅(qū)動器490指定為“高級的”在相對于低級驅(qū)動器492的,不一定是相對于其他抽象級,比如用戶空間應(yīng)用程序470,這些用戶空間應(yīng)用程序運行于甚至更高的抽象級并具有更低的權(quán)限級。高級驅(qū)動器490的目的是觀察高級偽驅(qū)動器484的行為,從而使得可以將高級偽驅(qū)動器484表面上執(zhí)行的操作與在固件級420實際執(zhí)行的操作進行對比。
在下一抽象級是應(yīng)用程序編程接口450。應(yīng)用程序編程接口450提供各種標準方法,從而使得用戶空間應(yīng)用程序470可以執(zhí)行文件操作,而沒有必要關(guān)心那些操作的特定實現(xiàn)細節(jié)。例如,應(yīng)用程序編程接口450可以提供fprintf()函數(shù),用戶空間應(yīng)用程序可以使用該函數(shù)向磁盤寫入,而不需要直到實現(xiàn)細節(jié)。
在下一抽象級上的是反病毒引擎226。反病毒引擎226可以提供標準反惡意軟件或反病毒操作,比如對惡意軟件對象的檢測、遷移、和修復(fù)。除交叉視圖檢測引擎224之外還設(shè)置了反病毒引擎226,從而使得它們可以合作來提高計算設(shè)備110的安全性。然而,應(yīng)該注意的是,在某些實施例中,反病毒引擎226是可選的。
在本示例中在最高抽象級上,并相反在最低的權(quán)限級上,是用戶空間應(yīng)用程序470。用戶空間應(yīng)用程序470可以僅具有向文件系統(tǒng)驅(qū)動器440提供的某些文件或文件夾寫入的許可,或僅根據(jù)賦予用戶空間應(yīng)用程序470的某些許可。
圖5是根據(jù)本說明書的一個或多個示例的執(zhí)行交叉視圖檢測的方法500的流程圖。在某些示例中,方法500可以由圖2的交叉視圖檢測引擎224執(zhí)行。
在一個示例中,方法500以兩個并行路徑開始。高級驅(qū)動器490可以使用框510的路徑,而低級驅(qū)動器492可以使用框520的路徑。
在框510,高級驅(qū)動器490進行對系統(tǒng)級調(diào)用追蹤的動態(tài)實時分析。這可以包括在有用的級(比如在文件系統(tǒng)驅(qū)動器級440)截取磁盤操作并對其進行分析。
在框530,交叉視圖檢測引擎224從框510中所檢測到的高級操作提取調(diào)用追蹤。在框552中,這產(chǎn)生了所提取的調(diào)用追蹤。
在框520的并行路徑中,低級驅(qū)動器492從標準磁盤協(xié)議(比如固件420所提供的那些)截取磁盤訪問信息。
在框540,交叉視圖檢測引擎224從這些低級訪問操作中重構(gòu)系統(tǒng)級調(diào)用追蹤。在框550中,這產(chǎn)生了所重構(gòu)的調(diào)用追蹤。
在框560,交叉視圖檢測引擎224將所重構(gòu)的調(diào)用追蹤550與所解構(gòu)的調(diào)用追蹤552進行比較。
在決策框562,交叉視圖檢測引擎224判斷這些重構(gòu)的調(diào)用追蹤是否與被解構(gòu)的調(diào)用追蹤552匹配。
在框580,如果重構(gòu)的調(diào)用追蹤550與被解構(gòu)的調(diào)用追蹤552匹配,則可以將操作傳遞至標準反病毒引擎226。然后,反病毒引擎226可以執(zhí)行標準反病毒操作,比如尋找惡意軟件行為的其他示例。
如貫穿本說明書中所使用的,“重構(gòu)的”調(diào)用追蹤是從較低抽象級轉(zhuǎn)換成較高抽象級的調(diào)用追蹤?!氨唤鈽?gòu)的”調(diào)用追蹤是從較高抽象級轉(zhuǎn)換成較低抽象級的調(diào)用追蹤。在一個示例中,重構(gòu)的調(diào)用追蹤和被解構(gòu)的調(diào)用追蹤被構(gòu)造至類似的抽象級,從而使得可以有效地對其進行比較。
返回決策框562,如果所重構(gòu)的調(diào)用追蹤550與所解構(gòu)的調(diào)用追蹤552不匹配,則進行磁盤訪問的對象可以被標記為或者惡意軟件或者至少為可疑的。被標記為惡意軟件的對象可以被列入黑名單,而被列為可疑的對象可以經(jīng)歷額外分析,在一些示例中包括:將此對象上報給服務(wù)器140,從而使得服務(wù)器140可以使用服務(wù)器引擎324對所述對象進行更大或更深入的分析,并向計算設(shè)備110回報是否應(yīng)該阻止所述對象。
在框590中,完成所述方法。
前述內(nèi)容概述了若干實施例的特征,從而使得本領(lǐng)域的技術(shù)人員可以更好地理解本公開的方面。本領(lǐng)域的技術(shù)人員應(yīng)所述認識到,他們可以容易地將本公開用作設(shè)計或修改其他過程以及結(jié)構(gòu)的基礎(chǔ),以便于實施相同的目的和/或?qū)崿F(xiàn)在此介紹的實施例的相同優(yōu)點。本領(lǐng)域的技術(shù)人員還應(yīng)意識到,所述等同構(gòu)造沒有背離本公開的精神和范圍,并且在不背離本公開的精神和范圍的情況下,可做出各種改變、替換和替代。
本公開的特定實施例可以容易地包括片上系統(tǒng)(SOC)中央處理單元(CPU)封裝件。SOC表示將計算機或者其他電子系統(tǒng)的部件整合到單個芯片中的集成電路(IC)。其可以包含數(shù)字、模擬、混合信號、以及射頻功能,所有這些功能都可以在單個芯片基底上提供。其他實施例可以包括多芯片模塊(MCM),多個芯片位于單個電子封裝件內(nèi)并且被配置成用于通過電子封裝件彼此密切交互。在各種實施例中,數(shù)字信號處理功能可以在專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)和其他半導(dǎo)體芯片中的一個或多個硅核中實施。
在示例實施方式中,本文中所概述的處理活動的至少一些部分也可以在軟件中實施。在一些實施例中,這些特征中的一個或多個特征可以在所公開的附圖的元件外部提供的硬件中實施,或者可以采用任何適當(dāng)方式來合并,以便實現(xiàn)預(yù)期功能。各種部件可以包括可以協(xié)調(diào)以便實現(xiàn)如本文中所概述的操作的軟件(或往復(fù)式軟件)。在仍其他實施例中,這些元件可以包括促進其操作的任何適當(dāng)?shù)乃惴?、硬件、軟件、部件、模塊、接口或?qū)ο蟆?/p>
此外,可以移除或以其他方式合并與所描述的微處理器相關(guān)聯(lián)的部件中的一些部件。在一般意義上,在附圖中所描繪的安排可以在其表示上可以更合邏輯,而物理架構(gòu)可以包括這些元件的各種排列、組合和/或混合。必須注意,可以使用無數(shù)可能的設(shè)計配置來實現(xiàn)在此所概述的操作目標。相應(yīng)地,相關(guān)聯(lián)的基礎(chǔ)設(shè)施具有大量替代安排、設(shè)計選擇、設(shè)備可能性、硬件配置、軟件實施方式、設(shè)備選項等。
任何適當(dāng)配置的處理器部件可以執(zhí)行與數(shù)據(jù)相關(guān)聯(lián)的任何類型的指令,以便實現(xiàn)在此詳細說明的操作。在此公開的任何處理器可以將元件或者物品(例如數(shù)據(jù))從一種狀態(tài)或者會中東西轉(zhuǎn)換為另一種狀態(tài)或者另一種東西。在另一個示例中,在此概述的一些活動可以使用固定邏輯或者可編程邏輯(例如,由處理器執(zhí)行的軟件和/或計算機指令)實施,并且在此標識的元件可以是某種類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場可編程門陣列(FPGA)、可擦除可編程只讀取存儲器(EPROM)、電可擦除可編程只讀取存儲器(EEPROM))、包括數(shù)字邏輯、軟件、代碼、電子指令、閃速存儲器、光盤、CD-ROM、DVD ROM、磁性或者光學(xué)卡、適合于存儲電子指令的其他類型的機器可讀取介質(zhì)的ASIC、或者其任何適當(dāng)?shù)慕M合。在操作中,處理器可以將信息存儲在任何適當(dāng)類型的非瞬態(tài)存儲介質(zhì)(例如,隨機存取存儲器(RAM)、只讀取存儲器(ROM)、現(xiàn)場可編程門陣列(FPGA)、可擦除可編程只讀取存儲器(EPROM)、電可擦除可編程ROM(EEPROM)等)、軟件、硬件中或者在適當(dāng)況下并基于特定需要存儲在任何其他適當(dāng)部件、設(shè)備、元件或者物體中。進一步地,可以在任何數(shù)據(jù)庫、寄存器、表格、緩存、隊列、控制列表或者存儲結(jié)構(gòu)(所有這些可以在任何適當(dāng)?shù)臅r間幀被引用)中基于特定需要和實施方式提供在處理器中被跟蹤、發(fā)送、接收或者存儲的信息。在此所討論的存儲器項中的任何存儲器項應(yīng)當(dāng)被理解為包括在寬泛術(shù)語‘存儲器’內(nèi)。類似地,在此所描述的可能的處理元件、模塊以及機器中的任何一者應(yīng)當(dāng)被理解為包括在寬泛術(shù)語‘微處理器’或者‘處理器’內(nèi)。另外,在各種實施例中,在此所描述的處理器、存儲器、網(wǎng)卡、總線、存儲設(shè)備、相關(guān)外圍設(shè)備以及其他硬件元件可以由軟件或固件配置來模仿或者虛擬化這些硬件元件的功能的處理器、存儲器以及其他相關(guān)設(shè)備實施。
采用各種形式來具體化實施在此所描述的所有或者部分功能的計算機程序邏輯,包括但決不限于源代碼形式、計算機可執(zhí)行的形式以及各種中間形式(例如,由匯編器、編譯器、鏈接器或者定位器生成的形式)。在示例中,源代碼包括以各種編程語言實施的一系列計算機程序指令,比如,目標代碼、匯編語言、或高級語言(比如,與各種操作系統(tǒng)或操作環(huán)境一起使用的OpenCL、Fortran、C、C++、JAVA或HTML)。源代碼可以限定并使用各種數(shù)據(jù)結(jié)構(gòu)和通信消息。源代碼可以采用計算機可執(zhí)行的形式(例如,經(jīng)由解釋器),或者源代碼可以被轉(zhuǎn)換(例如,經(jīng)由轉(zhuǎn)換器、匯編器、或編譯器)成計算機可執(zhí)行的形式。
在對以上實施例的討論中,可以容易地替換、替代或者以其他方式修改電容器、緩沖器、圖形元件、互連板、時鐘、DDRs、相機傳感器、除法器、電感器、電阻器、放大器、開關(guān)、數(shù)字核、晶體管和/或其他部件,以便滿足特定電路需要。此外,應(yīng)當(dāng)注意的是,對互補電子設(shè)備、硬件、非瞬態(tài)軟件等的使用提供了同樣可行的選項,以便實施本公開的教導(dǎo)。
在一個示例性實施例中,可以在相關(guān)聯(lián)的電子設(shè)備的板上實施附圖的任何數(shù)量的電路。所述板可以是可以容納電子設(shè)備的內(nèi)部電子系統(tǒng)的各種部件并進一步為其他外圍設(shè)備提供連接器的一般電路板。更具體地,所述板可以提供電連接,系統(tǒng)的其他部件可以通過這些電連接來進行電通信??梢曰谔囟ㄅ渲眯枰⑻幚硇枨?、計算機設(shè)計等來將任何合適的處理器(包括數(shù)字信號處理器、微處理器、支持芯片組等)、存儲器元件等適當(dāng)?shù)伛詈现了霭?。如外部存儲設(shè)備、附加傳感器、用于音頻/視頻顯示的控制器、以及外圍設(shè)備等其他部件可以作為插入卡而經(jīng)由線纜附接至所述板,或者集成到所述板本身中。在另一個示例實施例中,附圖的電路可以被實施為獨立的模塊(例如,具有相關(guān)聯(lián)的部件的設(shè)備和被配置成用于執(zhí)行特定應(yīng)用程序或功能的電路),或者被實施為到電子設(shè)備的專用硬件的插入模塊。
注意,使用本文中所提供的許多示例,可以關(guān)于兩個、三個、四個或更多個電氣部件來對交互進行描述。然而,已經(jīng)僅為了清晰和示例的目的而完成了這一點。應(yīng)理解的是,可以采用任何適當(dāng)方式來合并所述系統(tǒng)。根據(jù)類似設(shè)計替代方案,可以在各種可能的配置中組合附圖中展示的部件、模塊和元件中的任一者,所有所述配置在本說明書的廣泛范圍內(nèi)。在某些情況下,通過僅參照有限數(shù)量的電氣元件,可能更容易描述一組給定流程的功能中的一項或多項功能。應(yīng)當(dāng)理解的是,附圖的電路及其教導(dǎo)是可容易擴展的,并且可以容納大量部件以及更復(fù)雜/成熟的安排和配置。相應(yīng)地,所提供的示例不應(yīng)限制如潛在地應(yīng)用到無數(shù)其他架構(gòu)上的電路的范圍或抑制其寬泛教導(dǎo)。
許多其他的改變、替代、變更、改變以及修改對本領(lǐng)域技術(shù)人員來說是確定的,并且旨在本公開包含了落在所附權(quán)利要求書的范圍內(nèi)的所有這種改變、替代、變更、改變以及修改。為了幫助美國專利及商標局(USPTO)以及另外本申請發(fā)布的任何專利的任何讀取者理解本申請所附權(quán)利要求書,申請人希望注意本申請人:(a)并不旨在所附權(quán)利要求中的任一項因為在本申請的申請日存在而援引35U.S.C.第112章第(6)段,除非在特定權(quán)利要求中確切地使用了字詞“用于……的裝置”或“用于……的步驟”;并且(b)并不旨在通過本說明書中未在所附權(quán)利要求書中反映出的任何陳述以任何方式限制本公開。
示例實施方式
示例1中公開了一種計算裝置,包括:存儲器;以及交叉視圖檢測引擎,所述交叉視圖檢測引擎可操作用于:在第一抽象級上觀察由所述存儲器上的可執(zhí)行對象所執(zhí)行的第一操作;在第二抽象級上觀察由所述存儲器上的所述可執(zhí)行對象所執(zhí)行的基本上同時的第二操作;確定所述第一操作基本上不與所述第二操作匹配;并且對所述確定采取動作。
示例2中公開了如示例1所述的計算裝置,其中,所述第一抽象級是文件系統(tǒng)驅(qū)動器級。
示例3中公開了如示例1所述的計算裝置,其中,所述第二抽象級是固件級。
示例4中公開了如示例1所述的計算裝置,其中,所述第二抽象級是比所述第一抽象級低的抽象級。
示例5中公開了如示例1所述的計算裝置,其中,所述第二操作是寫入操作。
示例6中公開了如示例1所述的計算裝置,其中,對所述確定采取動作包括將所述可執(zhí)行對象指定為惡意軟件。
示例7中公開了如示例1所述的計算裝置,其中,對所述確定采取動作包括:將所述可執(zhí)行對象指定為可疑的并將所述可執(zhí)行對象報告給服務(wù)器。
示例8中公開了如示例1所述的計算裝置,其中,確定所述第一操作基本上不與所述第二操作匹配包括:從所述第二操作中重構(gòu)一個或多個調(diào)用追蹤。
示例9中公開了如示例1所述的計算裝置,其中,確定所述第一操作基本上不與所述第二操作匹配包括:從所述第一操作中解構(gòu)一個或多個調(diào)用追蹤。
示例10中公開了如示例1所述的計算裝置,其中,確定所述第一操作基本上不與所述第二操作匹配包括:從所述第二操作中重構(gòu)一個或多個調(diào)用追蹤;從所述第一操作中解構(gòu)一個或多個調(diào)用追蹤;并且將所述重構(gòu)的調(diào)用追蹤與所述解構(gòu)的調(diào)用追蹤進行比較。
示例11中公開了如示例1所述的計算裝置,其中,在所述第一抽象級上觀察由所述存儲器上的所述可執(zhí)行對象所執(zhí)行的所述第一操作包括:進行對系統(tǒng)級調(diào)用追蹤的動態(tài)分析。
示例12中公開了如示例11所述的計算裝置,其中,在所述第一抽象級上觀察由所述存儲器上的所述可執(zhí)行對象所執(zhí)行的所述第一操作進一步包括:對調(diào)用追蹤的實時分析。
示例13中公開了如示例1所述的計算裝置,其中,在第二抽象級上觀察由所述存儲器上的所述可執(zhí)行對象所執(zhí)行的所述基本上同時的第二操作包括:截取來自磁盤協(xié)議的磁盤訪問信息。
示例14中公開了一種或多種其上存儲有可執(zhí)行指令的計算機可讀取介質(zhì),所述指令用于提供交叉視圖檢測引擎,所述交叉視圖檢測引擎可操作用于:在第一抽象級上觀察由存儲器上的可執(zhí)行對象所執(zhí)行的第一操作;在第二抽象級上觀察由所述存儲器上的所述可執(zhí)行對象所執(zhí)行的基本上同時的第二操作;確定所述第一操作基本上不與所述第二操作匹配;并且對所述確定采取動作。
示例15中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,所述第一抽象級是文件系統(tǒng)驅(qū)動器級。
示例16中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,所述第二抽象級是固件級。
示例17中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,所述第二抽象級是比所述第一抽象級低的抽象級。
示例18中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,所述第二操作是寫入操作。
示例19中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,對所述確定采取動作包括將所述可執(zhí)行對象指定為惡意軟件。
示例20中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,對所述確定采取動作包括:將所述可執(zhí)行對象指定為可疑的并將所述可執(zhí)行對象報告給服務(wù)器。
示例21中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,確定所述第一操作基本上不與所述第二操作匹配包括:從所述第二操作中重構(gòu)一個或多個調(diào)用追蹤;從所述第一操作中解構(gòu)一個或多個調(diào)用追蹤;并且將所述重構(gòu)的調(diào)用追蹤與所述解構(gòu)的調(diào)用追蹤進行比較。
示例22中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,在所述第一抽象級上觀察由所述存儲器上的所述可執(zhí)行對象所執(zhí)行的所述第一操作包括:進行對系統(tǒng)級調(diào)用追蹤的實時動態(tài)分析。
示例23中公開了如示例14所述的一種或多種計算機可讀取介質(zhì),其中,在第二抽象級上觀察由所述存儲器上的所述可執(zhí)行對象所執(zhí)行的所述基本上同時的第二操作包括:截取來自磁盤協(xié)議的磁盤訪問信息。
示例24中公開了一種提供交叉視圖檢測引擎的計算機實現(xiàn)的方法,包括:在第一抽象級上觀察由所述存儲器上的可執(zhí)行對象所執(zhí)行的第一操作;在第二抽象級上觀察由所述存儲器上的所述可執(zhí)行對象所執(zhí)行的基本上同時的第二操作;確定所述第一操作基本上不與所述第二操作匹配;并且對所述確定采取動作。
示例25中公開了如示例24所述的方法,其中,確定所述第一操作基本上不與所述第二操作匹配包括:從所述第二操作中重構(gòu)一個或多個調(diào)用追蹤;從所述第一操作中解構(gòu)一個或多個調(diào)用追蹤;并且將所述重構(gòu)的調(diào)用追蹤與所述解構(gòu)的調(diào)用追蹤進行比較。
示例26中公開了一種方法,所述方法包括執(zhí)行在示例14至23中任一項中所公開的指令。
示例27中公開了一種裝置,所述裝置包括用于執(zhí)行如示例26所述的方法的裝置。
示例28中公開了如示例27所述的裝置,其中,所述裝置包括處理器和存儲器。
示例29公開了如示例28所述的裝置,其中,所述裝置進一步包括計算機可讀取介質(zhì),所述計算機可讀取介質(zhì)具有存儲在其上的軟件指令,所述軟件指令用于執(zhí)行如示例26所述的方法。