用于確定軟件的正確的執(zhí)行的系統(tǒng)和方法
【專利摘要】實(shí)施例提供關(guān)于軟件的正確操作的確信水平。實(shí)施例創(chuàng)建軟件的基準(zhǔn)和實(shí)時(shí)測(cè)量,并將比較測(cè)量以判斷軟件是否正在正確地操作。應(yīng)用提供商可以在目標(biāo)軟件應(yīng)用中包括“跟蹤元素”。當(dāng)產(chǎn)生應(yīng)用時(shí),檢測(cè)跟蹤元素,并提供蹤跡事件,蹤跡事件共同地提供表示正確的應(yīng)用執(zhí)行的“基準(zhǔn)蹤跡”。提供商向用戶提供應(yīng)用和基準(zhǔn)蹤跡。用戶實(shí)時(shí)地操作應(yīng)用,以基于應(yīng)用仍具有產(chǎn)生蹤跡事件(共同地形成“實(shí)時(shí)”蹤跡)的蹤跡元素,產(chǎn)生“實(shí)時(shí)蹤跡”。比較器比較基準(zhǔn)和實(shí)時(shí)蹤跡。如果蹤跡在彼此的預(yù)先確定的范圍內(nèi),則用戶具有軟件正在正確地操作的確信水平。此處還包括了其他實(shí)施例。
【專利說明】用于確定軟件的正確的執(zhí)行的系統(tǒng)和方法 北曰 冃樂
[0001] 軟件可能由于多種原因(包括"惡意軟件"和"軟件腐爛")而停止正確地運(yùn)行。惡 意軟件是計(jì)算機(jī)系統(tǒng)上的問題的來源,它呈現(xiàn)各種形式,帶有無限的攻擊向量。不管形式和 向量,惡意軟件的最終結(jié)果是原始軟件不能正確地工作。"腐爛"(也稱為"軟件老化")涉 及在某個(gè)時(shí)間長度之后軟件停止正確地運(yùn)行的情況。原因可能是資源消耗、缺陷、或瞬時(shí)硬 件故障,諸如雜散的高能粒子撞擊芯片。無論腐爛的原因是什么,最終結(jié)果都是軟件停止正 確地運(yùn)行。
[0002] 考慮惡意軟件和腐爛的范圍較寬的形式,軟件社區(qū)面臨著向軟件用戶提供一個(gè)軟 件實(shí)際上正在正確地執(zhí)行的確信的挑戰(zhàn)。盡管可以確保軟件的正確的加載(例如,通過諸 如imel?受信任的執(zhí)行技術(shù)之類的特征),但是,在軟件被加載之后,獲取關(guān)于該軟件的實(shí) 際執(zhí)行的可靠的信息是具有挑戰(zhàn)性的。 附圖簡述
[0003] 本發(fā)明的各實(shí)施例的特征和優(yōu)點(diǎn)將從所附權(quán)利要求書、下面的對(duì)一個(gè)或多個(gè)示例 實(shí)施例的詳細(xì)描述,以及對(duì)應(yīng)的圖形,變得顯而易見,其中:
[0004] 圖1包括在本發(fā)明的一個(gè)實(shí)施例中用于判斷軟件是否正確地操作的系統(tǒng)。
[0005] 圖2包括本發(fā)明的一個(gè)實(shí)施例中的蹤跡事件的示意結(jié)構(gòu)。
[0006] 圖3-7解決了本發(fā)明的各實(shí)施例中的來自各種軟件架構(gòu)的預(yù)期蹤跡輸出。
[0007] 圖8包括與本發(fā)明的各實(shí)施例一起使用的系統(tǒng)。
【具體實(shí)施方式】
[0008] 在下面的描述中,闡述了很多具體細(xì)節(jié),但是,本發(fā)明的各實(shí)施例可以在沒有這些 具體細(xì)節(jié)的情況下實(shí)施。沒有詳細(xì)示出已知的電路、結(jié)構(gòu),以及技術(shù),以便避免使對(duì)此描述 的理解變得模糊。"實(shí)施例"、"各實(shí)施例"等等表示所描述的各實(shí)施例可包括特定特征、結(jié)構(gòu) 或特性,但是,每一個(gè)實(shí)施例都可以不一定包括該特定特征、結(jié)構(gòu)或特征。一些實(shí)施例可以 具有為其他實(shí)施例描述的某個(gè),全部特征或沒有一個(gè)特征。"第一"、"第二"、"第三"等等描 述共同的對(duì)象,并表示正在引用相同對(duì)象的不同的實(shí)例。這樣的形容詞不暗示如此描述的 對(duì)象必須處于給定序列,無論是在時(shí)間上、在空間上,在排序上,或以任何其他方式。
[0009] 實(shí)施例提供關(guān)于軟件的正確操作的確信水平。實(shí)施例創(chuàng)建軟件的基準(zhǔn)和實(shí)時(shí)測(cè) 量,并比較測(cè)量結(jié)果以判斷軟件是否正在正確地操作。應(yīng)用提供商可以包括在目標(biāo)軟件應(yīng) 用中的"跟蹤元素"(此處也被稱為"斷言")。當(dāng)生產(chǎn)、開發(fā)、測(cè)試、裝運(yùn)或以別的方式與應(yīng) 用一起協(xié)作時(shí),檢測(cè)跟蹤元素,并提供蹤跡事件(例如,指令計(jì)數(shù)(1C)),共同地提供表示適 當(dāng)?shù)膽?yīng)用執(zhí)行的"基準(zhǔn)蹤跡"。然后,提供商向用戶提供仍包括跟蹤元素以及基準(zhǔn)蹤跡的應(yīng) 用。用戶實(shí)時(shí)地操作應(yīng)用,以基于應(yīng)用仍具有產(chǎn)生蹤跡事件(共同地形成"實(shí)時(shí)"蹤跡)的 跟蹤元素,產(chǎn)生"實(shí)時(shí)蹤跡"。然后,比較器比較基準(zhǔn)和實(shí)時(shí)蹤跡。如果蹤跡在彼此的預(yù)先確 定的范圍內(nèi),則用戶具有軟件正在正確地操作的確信水平。
[0010] 這種確信水平具有許多應(yīng)用,諸如,例如,惡意軟件檢測(cè)器和證據(jù)提供商,供公司 的信息技術(shù)(IT)組和各種各樣的用戶使用。更準(zhǔn)確地說,這種確信水平具有下列應(yīng)用: 密碼處理(例如,密碼數(shù)據(jù)只能被密碼處理器訪問,并由密碼處理器使用的確信)、在線銀 行(例如,處理用戶的銀行帳戶信息的唯一軟件進(jìn)程是授權(quán)的銀行軟件的確信)、在線游戲 (例如,個(gè)人未欺騙并且所提供的軟件正在正確地執(zhí)行游戲的確信)、數(shù)字權(quán)限管理(DRM) (例如,在DRM軟件中正在實(shí)施DRM規(guī)則的確信)、健康記錄(例如,根據(jù)合適的策略,遵循 對(duì)健康記錄的訪問的授權(quán)的確信)、財(cái)務(wù)軟件(例如,知道傳輸和自動(dòng)交易兩者都正確地發(fā) 生)、云計(jì)算(例如,需要運(yùn)行云應(yīng)用的軟件正在正確地運(yùn)行)等等。
[0011] 圖1包括在本發(fā)明的一個(gè)實(shí)施例中用于判斷軟件是否正確地操作的系統(tǒng)。系統(tǒng) 100組合了兩個(gè)過程:(1)蹤跡收集,以及(2)實(shí)時(shí)蹤跡和基準(zhǔn)蹤跡之間的比較。例如,在框 110中,軟件提供商(例如,軟件開發(fā)人員和/或能對(duì)源代碼進(jìn)行訪問的某人)對(duì)"目標(biāo)"軟 件103 (此處有時(shí)被稱為代碼、應(yīng)用等等))進(jìn)行插樁,以生成蹤跡事件(使用嵌入在代碼中 的跟蹤元素或"斷言"),然后,例如,當(dāng)軟件準(zhǔn)備發(fā)貨給用戶時(shí),從所生成的一個(gè)或多個(gè)蹤跡 事件創(chuàng)建基準(zhǔn)蹤跡106 (存儲(chǔ)在緩沖器105中)。在裝運(yùn)之后,在框111中,實(shí)時(shí)運(yùn)行的或執(zhí) 行的軟件生成蹤跡事件(使用仍嵌入在裝運(yùn)的軟件中的跟蹤元素或斷言),以生成由一個(gè) 或多個(gè)蹤跡事件共同地構(gòu)成的實(shí)時(shí)蹤跡116 (存儲(chǔ)在緩沖器115中)。然后,在框120中, 比較功能(此處被稱為"比較器")將實(shí)時(shí)蹤跡116與基準(zhǔn)蹤跡106進(jìn)行比較,如果蹤跡在 預(yù)定的可接受的量內(nèi)匹配,則用戶可以具有軟件103如供應(yīng)商預(yù)期它那樣執(zhí)行的確信水平 (130)。否則,用戶沒有這樣的確信(125)。
[0012] 用于生成蹤跡事件的機(jī)制是變化的。在一個(gè)實(shí)施例中,使用諸如系統(tǒng)可見 事件關(guān)系關(guān)結(jié)(SVEN)之類的系統(tǒng)。SVEN是允許蹤跡的創(chuàng)建的硬件機(jī)制(在,例如, www*videon-central*corn,在提交時(shí)可用)。在一個(gè)實(shí)施例中,當(dāng)希望獲得正確操作的確 信時(shí),SVEN被軟件供應(yīng)商用來創(chuàng)建基準(zhǔn)蹤跡(框110和106)和實(shí)時(shí)蹤跡(框111和116)。 SVEN處理斷言,以生成共同地在SVEN緩沖器105中形成蹤跡的SVEN事件。為使SVEN操 作,軟件103可以包括SVEN斷言。供應(yīng)商或任何其他方將斷言編譯到代碼103中,它們甚 至在生產(chǎn)發(fā)布時(shí)都保持存在。SVEN斷言(框110,111)可以生成遵循諸如在圖2中發(fā)現(xiàn)的 格式(下面進(jìn)一步地討論)之類的固定格式的SVEN事件。軟件103斷言SVEN事件(框 110,111),并且關(guān)結(jié)(nexus)收集事件,并將它置于緩沖器中(當(dāng)涉及基準(zhǔn)蹤跡時(shí)為緩沖器 105,當(dāng)涉及實(shí)時(shí)蹤跡時(shí)為緩沖器115)。
[0013] 緩沖器105、115可以是允許SVEN事件的恒定輸入的循環(huán)緩沖器。緩沖器105、115 可以包括完整性保護(hù),以確保只有SVEN才將項(xiàng)目放置到緩沖器中。由于敏感數(shù)據(jù)的暴露的 威脅,對(duì)緩沖器的讀取需要保護(hù)。
[0014] 在一個(gè)實(shí)施例中,緩沖器1〇5、115可以被包括在"被盜竊的物理存儲(chǔ)器"中,其中, BIOS將預(yù)留被盜竊的存儲(chǔ)器區(qū)域,并通過范圍寄存器指出位置。范圍寄存器將允許只對(duì)向 緩沖器的SVEN寫入進(jìn)行硬件保護(hù)。實(shí)施例可以要求SVEN是能夠向緩沖器寫入的唯一代理。
[0015] SVEN可以創(chuàng)建信息的緩沖器105,115, 一次一個(gè)事件。事件可以是32字節(jié)尺寸, 并且內(nèi)容可以是事件特定的。圖2示出了 SVEN事件200的示例布局。值得注意的是,"指 令計(jì)數(shù)"(IC)包括自從最后一次SVEN調(diào)用以來發(fā)生的指令的計(jì)數(shù)。此外,還請(qǐng)注意,"時(shí)間 戳"條目允許將SVEN事件排序?yàn)槭录呐判虻牧?。在某些?shí)施例中,時(shí)間戳足以用于排序, 并可以被用作蹤跡以代替1C。然而,在其他實(shí)施例中,1C確定蹤跡值。此外,SVEN事件200 還可以包括啟動(dòng)SVEN事件的線程的1C以作為首部的一部分。正如軟件不能控制時(shí)間戳, 軟件可能也不能控制1C。在一個(gè)實(shí)施例中,SVEN事件尺寸是32字節(jié)。
[0016] 在一個(gè)實(shí)施例中,1C包括涉及單一線程的各種屬性(例如,1C只來自于啟動(dòng)線程, 沒有其他執(zhí)行線程影響計(jì)數(shù)),無中斷(例如,1C不包括來自環(huán)0、安全模式管理(SMM),或 任何其他中斷服務(wù)的任何指令),無負(fù)荷影響(例如,如果其他操作正在在設(shè)備上發(fā)生,則 1C不響應(yīng)于增大的負(fù)荷而改變)。
[0017] 各實(shí)施例可以在各種應(yīng)用中"對(duì)進(jìn)行插樁"(例如,嵌入跟蹤元素或斷言)。例如, 實(shí)施例可以插樁"輸入解析器",輸入解析器可能會(huì)導(dǎo)致安全問題,因此,是用于插樁的好的 候選。對(duì)輸入的不正確的處理可使攻擊者將惡意軟件插入到應(yīng)用中。適當(dāng)?shù)貓?zhí)行解析器會(huì) 急劇地降低惡意軟件將信息插入到應(yīng)用中的能力。如此,各實(shí)施例可以提供正確的解析器 執(zhí)行的證據(jù)。如果各實(shí)施例可以檢測(cè)不正確的行為,則這樣做將使應(yīng)用更好地保衛(wèi)其本身 免遭惡意軟件的侵害。
[0018] 可以使用實(shí)施例來插樁"心跳應(yīng)用"。這樣的應(yīng)用每隔一定的時(shí)間間隔檢查特定 條件的證據(jù)。一個(gè)示例是定期檢查防病毒(AV)程序的執(zhí)行的心跳應(yīng)用。如果心跳應(yīng)用沒 有檢測(cè)到AV應(yīng)用,則心跳應(yīng)用將關(guān)于檢測(cè)不到AV執(zhí)行的信息通知用戶、管理控制臺(tái),等等。 這樣的插樁可以使人確定心跳應(yīng)用的健康以及程序是否正在正確地工作。
[0019] 實(shí)施例可以專注于檢測(cè)軟件腐爛。腐爛會(huì)在程序的各個(gè)部分發(fā)生。插樁可以在關(guān) 鍵區(qū)域或程序的某些部分或整個(gè)這樣的程序中執(zhí)行。
[0020] 用于插樁的其他區(qū)域包括加密功能等等。
[0021] 盡管上面的幾段討論了對(duì)軟件進(jìn)行插樁,以產(chǎn)生基準(zhǔn)和實(shí)時(shí)蹤跡(將參考圖3-7 進(jìn)一步討論插樁),現(xiàn)在注意力暫時(shí)轉(zhuǎn)向如何比較那些值。用于進(jìn)行這樣的比較的軟件應(yīng) 用(在圖1的框120中被稱為"比較器")可以與目標(biāo)軟件103配對(duì)。在一個(gè)實(shí)施例中,由 適當(dāng)?shù)夭鍢兜牟⒍x的軟件產(chǎn)生的蹤跡將不能透露有關(guān)密鑰或其他這樣的敏感數(shù)據(jù)的信 息。如此,基準(zhǔn)和運(yùn)行時(shí)蹤跡的產(chǎn)生和暴露不必是受訪問保護(hù)的(但是,在其他實(shí)施例中可 以)。此外,在一個(gè)實(shí)施例中,對(duì)框120的比較器的使用沒有限制,如此,比較器可以在沒有 任何授權(quán)的情況下工作。這可以簡化比較器的代碼和比較器的分配。在一個(gè)實(shí)施例中,t匕 較器可以訪問基準(zhǔn)和運(yùn)行時(shí)蹤跡,但是不需要對(duì)任何一個(gè)蹤跡的寫訪問。在一個(gè)實(shí)施例中, 可以阻止比較器向涉及任一蹤跡的任何緩沖器(例如,緩沖器105,115)的寫入。在一個(gè)實(shí) 施例中,比較器可以具有驗(yàn)證任一流程的完整性的功能,但是在其他實(shí)施例中,比較器沒有 這樣的能力。
[0022] 關(guān)于基準(zhǔn)蹤跡106,可以由軟件提供商(例如,軟件程序員、經(jīng)銷商,或軟件的用 戶)提供基準(zhǔn)蹤跡。基準(zhǔn)蹤跡表示正確地起作用的程序的執(zhí)行。如上文所提及的,在某些 實(shí)施例中,,比較器120不驗(yàn)證基準(zhǔn)蹤跡106的提供方(providence)和完整性。然而,在這 樣的情況下,軟件提供商可以在基準(zhǔn)蹤跡上提供數(shù)字簽名,該數(shù)字簽名將允許比較器的調(diào) 用者驗(yàn)證基準(zhǔn)蹤跡106的提供方和完整性。在某些實(shí)施例中,軟件提供商之外的實(shí)體可以 創(chuàng)建基準(zhǔn)蹤跡(例如,當(dāng)軟件在使基準(zhǔn)蹤跡的創(chuàng)建者不準(zhǔn)確的特殊環(huán)境中運(yùn)行時(shí))。
[0023] 在一個(gè)實(shí)施例中,比較器120不涉及運(yùn)行時(shí)蹤跡116的收集。比較器不驗(yàn)證運(yùn)行時(shí) 蹤跡的提供方或完整性。相反,在一些實(shí)施例中,比較器的調(diào)用者負(fù)責(zé)驗(yàn)證運(yùn)行時(shí)蹤跡的提 供方和完整性。在一個(gè)實(shí)施例中,收集實(shí)時(shí)蹤跡116并將它提交到比較器的生態(tài)系統(tǒng)必須 正確地匹配運(yùn)行時(shí)蹤跡與基準(zhǔn),驗(yàn)證基準(zhǔn)和運(yùn)行時(shí)兩者的完整性,然后,傳播比較器報(bào)告。
[0024] 在一個(gè)實(shí)施例中,比較器120可以聯(lián)機(jī)和/或離線工作。在聯(lián)機(jī)模式下,比較器監(jiān) 控實(shí)時(shí)蹤跡,并"盡可能快地"對(duì)檢測(cè)到的異常作出響應(yīng)。在脫機(jī)模式下,比較器審閱預(yù)先 記錄的實(shí)時(shí)蹤跡,并提供蹤跡匹配或不匹配的裁決。在一個(gè)實(shí)施例中,比較器可以比較存儲(chǔ) 在兩個(gè)緩沖器(例如,緩沖器1〇5,115)或者甚至單一緩沖器中的兩個(gè)蹤跡。緩沖器是動(dòng)態(tài) 的,也可以是靜態(tài)的。比較器可以在與收集運(yùn)行時(shí)蹤跡的平臺(tái)相同的平臺(tái)或不同的平臺(tái)上 操作。在一個(gè)實(shí)施例中,比較器(例如,離線比較器)可以作為環(huán)3應(yīng)用來操作(基于特許 環(huán)層次結(jié)構(gòu),其中,較低層或環(huán)有更多特權(quán))。
[0025] 然而,在某些實(shí)施例中(例如,與運(yùn)行時(shí)蹤跡的收集同步地工作的在線比較器), 比較器120可以在特殊環(huán)境中執(zhí)行。這樣的環(huán)境可以使,例如,比較器安全地通知管理控制 臺(tái),而不會(huì)有截取,或執(zhí)行應(yīng)用的新加載,而無需重新啟動(dòng)平臺(tái)。在這樣的情況下,比較器可 以與目標(biāo)軟件103隔離。例如,比較器和目標(biāo)軟件可以在可以完全地與彼此分開的不同的 地址空間中運(yùn)行。示例將包括分別對(duì)于比較器120和目標(biāo)軟件103的兩個(gè)環(huán)3進(jìn)程或兩個(gè) 分離的虛擬機(jī)(VM)。當(dāng)目標(biāo)軟件是基本組件(例如,環(huán)0或虛擬機(jī)監(jiān)視器(VMM))時(shí),該架 構(gòu)可以提供用于比較器的執(zhí)行的位置。
[0026] 在一個(gè)實(shí)施例中,比較器120可以訪問運(yùn)行時(shí)緩沖器115。隨著目標(biāo)軟件不斷地利 用額外的事件填充緩沖器(例如,由于遇到插樁的跟蹤元素或斷言導(dǎo)致的輸出),比較器可 以讀取緩沖器并比較實(shí)時(shí)蹤跡與基準(zhǔn)蹤跡。比較器的對(duì)緩沖器的訪問可以使得目標(biāo)軟件或 諸如惡意軟件之類的其他軟件都不會(huì)干擾比較器的緩沖器訪問(例如,由于將對(duì)緩沖器的 訪問的隔離到僅指定的功能的隔離機(jī)制的使用)。此外,比較器還可以具有對(duì)緩沖器的讀取 訪問,但是,任何寫訪問都會(huì)被架構(gòu)減輕。如此,在一個(gè)實(shí)施例中,僅某些實(shí)體(例如,SVEN 硬件)可以將事件(例如,SVEN蹤跡事件)寫入到緩沖器中。
[0027] 在一個(gè)實(shí)施例中,使目標(biāo)軟件103不會(huì)察覺到(例如,通過虛擬化)比較器何時(shí)執(zhí) 行比較。在比較器按日程表來操作的各實(shí)施例中,任何調(diào)度都會(huì)在目標(biāo)軟件的視界之外發(fā) 生。
[0028] 在一個(gè)實(shí)施例中,比較器(例如,120)可以在兩個(gè)蹤跡之間執(zhí)行直接比較,以產(chǎn)生 關(guān)于蹤跡是否匹配的"是"或"否"的回答。然而,在其他實(shí)施例中,比較器可以產(chǎn)生導(dǎo)致 "置信水平"的結(jié)果。例如,比較器可以對(duì)于完美匹配的1C產(chǎn)生"完成"評(píng)價(jià),對(duì)于在彼此的 10%內(nèi)的1C產(chǎn)生"高",以及對(duì)于彼此偏離超過10%的1C產(chǎn)生"低"。任何報(bào)告都要服從安 全性(例如,數(shù)字簽名)等等。
[0029] 進(jìn)一步地,比較器120可以在提供受保護(hù)的執(zhí)行位置的隔離的環(huán)境(例如,可信平 臺(tái)模塊)內(nèi)操作。執(zhí)行保證能夠在沒有干擾的情況下操作的能力。此保證提供執(zhí)行比較器 的位置,以便比較器與所有其他平臺(tái)進(jìn)程隔離。
[0030] 圖3-7解決了來自各種軟件架構(gòu)的預(yù)期蹤跡輸出。在一個(gè)實(shí)施例中,這些輸出生 成通過比較器120比較的基準(zhǔn)和實(shí)時(shí)蹤跡106、116。為便于說明,預(yù)期的蹤跡只示出了過濾 的信息量,但是,在某些實(shí)施例中,典型的首部信息仍可以存在于每一事件中。
[0031] 圖3包括帶有只使用軟件斷言而沒有相關(guān)聯(lián)的硬件蹤跡數(shù)據(jù)的功能的"直的代碼 (straight code) "。線303和306指出調(diào)用"斷言"的插入的蹤跡事件(參見"DEVH"條目)。 換言之,當(dāng)代碼的執(zhí)行連接那些斷言時(shí),這些"斷言"共同地生成基準(zhǔn)和實(shí)時(shí)蹤跡1〇6、116。 作為行303,306中的兩個(gè)不同的斷言的結(jié)果,以及所討論的"直的代碼"(例如,無循環(huán))的 事實(shí),在時(shí)間戳(TS) 45. 86和00. 02處只有兩個(gè)預(yù)期的蹤跡事件。如上文所指出的,在各實(shí) 施例中,使用了示出自從最后一個(gè)斷言以來"增量"或指令計(jì)數(shù)變化的1C。在圖3的情況 下,有2580和1256的1C。比較器將會(huì)以此信息作為基準(zhǔn)蹤跡。然后,將生成(110,106)實(shí) 時(shí)蹤跡,并將它們與基準(zhǔn)蹤跡進(jìn)行比較(120)。在沒有外部硬件使用的情況下,每次圖3的 代碼都應(yīng)該以同樣的方式運(yùn)行,如此,出口處的1C應(yīng)該是恒定值。入口 1C可能不同,因?yàn)?它將取決于如何調(diào)用功能。比較器應(yīng)該看見1C值中的很小的可變性,并且應(yīng)該相應(yīng)地判斷 (例如,"完成"、"高"、"低"級(jí)別的完整性)。甚至進(jìn)入1C應(yīng)該幾乎相同。
[0032] 圖4包括帶有外部服務(wù)的"直的代碼"。這種類型的函數(shù)沒有控制流程變化,但是 調(diào)用外部服務(wù)。在此示例中,在行403、406、408、410有四個(gè)蹤跡斷言,有四個(gè)對(duì)應(yīng)的蹤跡事 件。然而,有兩個(gè)不同的預(yù)期的蹤跡:"預(yù)期的蹤跡1"和"預(yù)期的蹤跡2"。具體而言,這是 直的比較。序列必須存在,或者函數(shù)不適當(dāng)?shù)貓?zhí)行。外部函數(shù)("ExternalABC")可以,或 可以不具有斷言。"預(yù)期的蹤跡1"示出了當(dāng)外部函數(shù)沒有斷言時(shí)的結(jié)果。"預(yù)期的蹤跡2" 示出了當(dāng)外部函數(shù)有斷言(例如,SVEN斷言)時(shí)的結(jié)果。在"預(yù)期的蹤跡1"中,后斷言示 出了包括函數(shù)調(diào)用的開銷以及由"外部ABC"執(zhí)行的所有操作的計(jì)數(shù)25890。在"預(yù)期的蹤 跡2"中,后斷言示出了相同值(258900),但是內(nèi)部操作示出了那些指令的細(xì)分。后處理可 以輕松地顯示與"外部ABC"的出口處的增量。不管怎樣,都有相同指令數(shù)量。
[0033] 圖5包括帶有循環(huán)的代碼。循環(huán)在代碼中是常見的,并提供反復(fù)地執(zhí)行相同操作 的方式。循環(huán)也是由于諸如緩沖器溢出之類的錯(cuò)誤而通常發(fā)生攻擊的一個(gè)區(qū)域。在此示例 中,在行503、504、507以及512有斷言,但是,由于循環(huán)而存在超過四個(gè)的蹤跡事件。在一 個(gè)實(shí)施例中,如果代碼斷言要查找若干個(gè)迭代,則基準(zhǔn)蹤跡將為單一迭代提供指令計(jì)數(shù),t匕 較器可以確保每一迭代都使用正確數(shù)量的指令。如果循環(huán)包括提前退出檢查,則貫穿代碼 的該路徑也可以提供蹤跡斷言。如果循環(huán)計(jì)數(shù)溢出,則這是指出代碼不正確地操作的問題 的直接證據(jù)。值得注意的是,在圖5中,對(duì)于計(jì)數(shù)0,IC比剩余迭代更大。在此情況下,循環(huán) 的第一迭代計(jì)數(shù)循環(huán)前面的指令以及循環(huán)構(gòu)造的設(shè)置。循環(huán)的所有隨后的迭代都計(jì)數(shù)從循 環(huán)的底部到頂部的指令。這與其他迭代對(duì)照,說明了對(duì)于計(jì)數(shù)0的不同的1C。
[0034] 圖6包括帶有使代碼作出決定的IF語句的代碼。在行603、605、608、613以及616 有斷言。由于由IF語句必然導(dǎo)致的差異,比較有點(diǎn)復(fù)雜。取決于代碼的復(fù)雜性,軟件提供 商可能希望僅插樁IF相關(guān)的代碼的各個(gè)部分。如果代碼路徑被尋址,并存儲(chǔ)為基準(zhǔn)蹤跡, 那么蹤跡之間的比較是直接的。然而,如果代碼路徑不在基準(zhǔn)中,則比較可以返回"未知"的 裁決。各實(shí)施例可以以各種方式處理分支。例如,實(shí)施例可以將轉(zhuǎn)移指示器以及額外的斷 言放置在目標(biāo)代碼中,以指出采取哪一個(gè)分支。另一實(shí)施例可以創(chuàng)建基準(zhǔn),以便基準(zhǔn)了解兩 個(gè)路徑,比較具有選擇任一路徑的方式。
[0035] 實(shí)施例包括基于所述惡意軟件執(zhí)行超出從所述第一基準(zhǔn)跟蹤事件擴(kuò)展到所述第 二基準(zhǔn)跟蹤事件的指令計(jì)數(shù)的指令數(shù)量,來檢測(cè)惡意軟件活動(dòng);其中,所述惡意軟件至少部 分地被包括在所述應(yīng)用中并位于所述第一和第二斷言之間。結(jié)果,實(shí)施例限制惡意軟件的 計(jì)算能力。例如,如果惡意軟件希望隱藏而不被檢測(cè)到,則惡意軟件必須在兩個(gè)蹤跡事件之 間的多個(gè)指令內(nèi)操作。如此,惡意軟件具有對(duì)兩個(gè)蹤跡事件之間的可能的工作量的計(jì)算限 制。
[0036] 圖7包括帶有硬件交互的代碼。代碼在行703、704以及708具有斷言。這里,硬 件交互是針對(duì)硬件資源R1 (例如,寄存器)的。此示例示出了組合了蹤跡數(shù)據(jù)(例如,SVEN 數(shù)據(jù))與OMAR硬件交互的實(shí)施例。OMAR是有效率地將幾百個(gè)內(nèi)部片上系統(tǒng)(SoC)信號(hào)的 蹤跡收集到主機(jī)存儲(chǔ)器中的硅特征(例如,包括在某些Intel?消費(fèi)電子產(chǎn)品平臺(tái)上)。蹤 跡斷言指出代碼將訪問哪些資源。所產(chǎn)生的蹤跡包含資源的標(biāo)識(shí)和使用。比較是直接的, 但是,通常將包括前和后斷言,以跟蹤何時(shí)發(fā)生資源訪問。
[0037] 各實(shí)施例可以以許多不同的系統(tǒng)類型來實(shí)現(xiàn)?,F(xiàn)在請(qǐng)參看圖8,示出了根據(jù)本發(fā)明 的一實(shí)施例的系統(tǒng)的框圖,該系統(tǒng)可以在臺(tái)式機(jī)、膝上型計(jì)算機(jī)、移動(dòng)因特網(wǎng)設(shè)備、移動(dòng)計(jì) 算節(jié)點(diǎn)、智能電話、手機(jī)、無線電臺(tái)、固定計(jì)算節(jié)點(diǎn)等等中發(fā)現(xiàn)。多處理器系統(tǒng)800是點(diǎn)對(duì)點(diǎn) 互連系統(tǒng),并包括通過點(diǎn)對(duì)點(diǎn)互連850耦合的第一處理器870和第二處理器880。處理器 870和880中的每一個(gè)都可以是多核處理器。術(shù)語"處理器"可以是指處理來自寄存器和 /或存儲(chǔ)器的電子數(shù)據(jù)以將該電子數(shù)據(jù)轉(zhuǎn)換為可以存儲(chǔ)在寄存器和/或存儲(chǔ)器中的其他電 子數(shù)據(jù)的任何器件或器件的一部分。第一處理器870可以包括存儲(chǔ)器控制器中樞(MCH)和 點(diǎn)對(duì)點(diǎn)(P-P)接口。類似地,第二處理器880可以包括MCH和P-P接口。MCH可以將處理器 耦合到相應(yīng)的存儲(chǔ)器,即,存儲(chǔ)器832和存儲(chǔ)器834,它們可以是本地附接到相應(yīng)的處理器 的主存儲(chǔ)器(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM))的某些部分。第一處理器870和第二處 理器880可以分別通過P-P互連來耦合到芯片組890。芯片組890可以包括P-P接口。此 夕卜,芯片組890還可以通過接口耦合到第一總線816。各種輸入/輸出(I/O)設(shè)備814以及 總線橋接器818可以耦合到第一總線816,總線橋接器818將第一總線816耦合到第二總線 820。在一個(gè)實(shí)施例中,各種設(shè)備可以耦合到第二總線820,包括,例如,鍵盤/鼠標(biāo)822、通 信設(shè)備826和諸如磁盤驅(qū)動(dòng)器或可以包括代碼830的其他大容量存儲(chǔ)設(shè)備之類的數(shù)據(jù)存儲(chǔ) 單元828。代碼可以被包括在一個(gè)或多個(gè)存儲(chǔ)器中,包括存儲(chǔ)器828、832、834、通過網(wǎng)絡(luò)耦 合到系統(tǒng)800的存儲(chǔ)器,等等。進(jìn)一步地,音頻I/O 824可以耦合到第二總線820。
[0038] 各實(shí)施例可以以代碼來實(shí)現(xiàn),并可以存儲(chǔ)在在其上存儲(chǔ)了指令的至少一個(gè)存儲(chǔ)介 質(zhì)上,指令可以被用來對(duì)系統(tǒng)進(jìn)行編程以執(zhí)行指令。存儲(chǔ)介質(zhì)可以包括,但不僅限于,任何 類型的磁盤,包括軟盤、光盤、固態(tài)驅(qū)動(dòng)器(SSD)、光盤只讀存儲(chǔ)器(⑶-ROM)、光盤可重寫 (CD-RW),以及磁光盤、諸如只讀存儲(chǔ)器(ROM)之類的半導(dǎo)體器件、諸如DRAM、和靜態(tài)隨機(jī)存 取存儲(chǔ)器(SRAM)之類的隨機(jī)訪問存儲(chǔ)器(RAM)、可擦除編程只讀存儲(chǔ)器(EPR0M)、閃存、電 可擦除編程只讀存儲(chǔ)器(EEPR0M)、磁卡或光卡,或適于存儲(chǔ)電子指令的任何其他類型的介 質(zhì)。
[0039] 此處參考諸如指令、函數(shù)、過程、數(shù)據(jù)結(jié)構(gòu)、應(yīng)用、配置設(shè)置、代碼等等之類的數(shù)據(jù) 描述了本發(fā)明的各實(shí)施例。當(dāng)數(shù)據(jù)被機(jī)器訪問時(shí),機(jī)器可以通過執(zhí)行任務(wù)、定義抽象數(shù)據(jù)類 型、建立低級(jí)別的硬件上下文,和/或執(zhí)行其他操作來作出響應(yīng),如此處更詳細(xì)地描述的。 數(shù)據(jù)可以存儲(chǔ)在易失性和/或非易失性數(shù)據(jù)存儲(chǔ)中。術(shù)語"代碼"或"程序"涵蓋較大的范 圍組件和構(gòu)造,包括應(yīng)用、驅(qū)動(dòng)程序、進(jìn)程、例程、方法、模塊,以及子程序,并可以引用任何 指令的集合,指令在由處理系統(tǒng)執(zhí)行時(shí),執(zhí)行所需操作。另外,替換實(shí)施例可以包括使用少 于所公開的全部操作的進(jìn)程、使用額外的操作的進(jìn)程、使用不同的順序的相同操作的進(jìn)程, 以及其中組合,細(xì)分,或以別的方式改變此處所公開的單個(gè)操作的進(jìn)程。
[0040] 在一個(gè)實(shí)施例中,術(shù)語"控制邏輯"的使用包括諸如晶體管、寄存器之類的硬件,或 諸如可編程邏輯器件(835)之類的其他硬件。然而,在另一個(gè)實(shí)施例中,邏輯還包括軟件或 代碼(831)。這樣的邏輯可以與諸如固件或微代碼(836)之類的硬件集成。處理器或控制 器可以包括用于表示本領(lǐng)域內(nèi)已知的各種控制邏輯中的任何一種的控制邏輯,如此,可以 實(shí)現(xiàn)為微處理器、微控制器、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、可編程邏輯 器件(PLD)等等。
[0041] 有時(shí),諸如SVEN、0MAR等等之類的術(shù)語和原則用于說明目的,但是,各實(shí)施例不 僅限于使用SVEN、0MAR或任何其他技術(shù)或系統(tǒng)。斷言和蹤跡可以使用各個(gè)軟件和硬件調(diào) 試工具來實(shí)現(xiàn),諸如,但不僅限于,來自Mobile Industry Processor Interface(MIPI) (WWW*mipi*org)的系統(tǒng)跟蹤協(xié)議(STP),及由MIPI所定義的其他調(diào)試接口。此外,術(shù)語"應(yīng) 用"還應(yīng)該廣泛地解釋以包括用戶應(yīng)用、操作系統(tǒng)、驅(qū)動(dòng)程序,以及許多其他形式的軟件、代 碼,以及程序,如上文所定義的那些術(shù)語。此外,上文還使用了術(shù)語"提供商",但是,本發(fā)明 的各實(shí)施例不僅限于任何一方。進(jìn)一步地,有時(shí),上面的各實(shí)施例被說成包括比較基準(zhǔn)和實(shí) 時(shí)蹤跡值的應(yīng)用。比較蹤跡的比較器不必位于任何特定位置,并可以位于,例如,目標(biāo)應(yīng)用 (例如,103)中,或通過完全分離的進(jìn)程位于目標(biāo)應(yīng)用之外。
[0042] 實(shí)施例包括由至少一個(gè)處理器執(zhí)行的方法,包括:接收具有第一和第二斷言的應(yīng) 用的第一和第二基準(zhǔn)蹤跡事件,所述第一和第二基準(zhǔn)蹤跡事件分別對(duì)應(yīng)于所述第一和第二 斷言;在接收到所述第一和第二基準(zhǔn)蹤跡事件之后,接收通過執(zhí)行所述應(yīng)用所生成的并且 分別對(duì)應(yīng)于所述第一和第二斷言的第一和第二實(shí)時(shí)蹤跡事件;以及,將所述第一以及第二 基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較。實(shí)施例包括通過所述第一和 第二斷言,生成,(a)所述第一和第二基準(zhǔn)蹤跡事件,以及(b)所述第一和第二實(shí)時(shí)蹤跡事 件。實(shí)施例包括確定第一和第二基準(zhǔn)蹤跡事件中的一個(gè)和第一和第二實(shí)時(shí)蹤跡事件中的一 個(gè)之間的差異。實(shí)施例包括將所述差異與預(yù)定值進(jìn)行比較,以判斷所述應(yīng)用是否正在正確 地操作。在一個(gè)實(shí)施例中,所述第一和第二基準(zhǔn)蹤跡事件分別包括第一和第二基準(zhǔn)指令計(jì) 數(shù),所述第一和第二實(shí)時(shí)蹤跡事件分別包括第一和第二實(shí)時(shí)指令計(jì)數(shù)。在一個(gè)實(shí)施例中, 將所述第一和第二基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較包括將所 述第一和第二基準(zhǔn)指令計(jì)數(shù)分別與所述第一和第二實(shí)時(shí)指令計(jì)數(shù)進(jìn)行比較。在一個(gè)實(shí)施例 中,所述第一和第二斷言中的至少一個(gè)被包括在有分支的代碼部分的一個(gè)分支內(nèi)。在一個(gè) 實(shí)施例中,所述第一和第二斷言中的每一個(gè)都被包括代碼部分的單一循環(huán)內(nèi)。在一個(gè)實(shí)施 例中,所述第一和第二基準(zhǔn)蹤跡事件分別包括第一和第二基準(zhǔn)時(shí)間戳,所述第一和第二實(shí) 時(shí)蹤跡事件分別包括第一和第二實(shí)時(shí)時(shí)間戳;以及,將所述第一和第二基準(zhǔn)蹤跡事件分別 與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較包括將所述第一和第二基準(zhǔn)時(shí)間戳分別與所述 第一和第二實(shí)時(shí)時(shí)間戳進(jìn)行比較。實(shí)施例包括實(shí)時(shí)地將第一和第二基準(zhǔn)蹤跡事件分別與第 一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較。實(shí)施例包括基于將第一和第二基準(zhǔn)蹤跡事件分別與第一 和第二實(shí)時(shí)蹤跡事件進(jìn)行比較,檢測(cè)惡意軟件活動(dòng)。在一個(gè)實(shí)施例中,將所述第一和第二基 準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較包括從位于遠(yuǎn)程的計(jì)算節(jié)點(diǎn)接 收基于將所述和第二基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較的評(píng)估。 在一個(gè)實(shí)施例中,所述第一和第二基準(zhǔn)蹤跡首先是由第一計(jì)算平臺(tái)上的第一方所生成的, 所述第一和第二實(shí)時(shí)蹤跡事件首先是由第二計(jì)算平臺(tái)上的第二方所生成的。實(shí)施例包括在 第一計(jì)算節(jié)點(diǎn)上執(zhí)行的所述應(yīng)用;比較器邏輯模塊將所述第一以及第二基準(zhǔn)蹤跡事件分別 與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較;以及,所述比較器邏輯模塊在所述第一計(jì)算節(jié) 點(diǎn)和遠(yuǎn)程耦合到所述第一計(jì)算節(jié)點(diǎn)的第二計(jì)算節(jié)點(diǎn)中的一個(gè)上執(zhí)行。在一個(gè)實(shí)施例中,t匕 較器邏輯模塊將所述第一以及第二基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn) 行比較;以及,所述比較器邏輯在第一安全環(huán)境中執(zhí)行,所述應(yīng)用在與所述第一安全環(huán)境隔 離的第二安全環(huán)境中執(zhí)行。實(shí)施例包括基于所述惡意軟件執(zhí)行超出從所述第一基準(zhǔn)蹤跡事 件擴(kuò)展到所述第二基準(zhǔn)蹤跡事件的指令計(jì)數(shù)的指令的數(shù)量,來檢測(cè)惡意軟件活動(dòng);其特征 在于,所述惡意軟件至少部分地被包括在所述應(yīng)用中并位于所述第一和第二斷言之間。
[0043] 在一個(gè)實(shí)施例中,設(shè)備包括:至少一個(gè)存儲(chǔ)器和耦合到所述至少一個(gè)存儲(chǔ)器的至 少一個(gè)處理器,以執(zhí)行操作,包括:確定具有第一和第二斷言的應(yīng)用的第一和第二基準(zhǔn)蹤跡 事件,所述第一和第二基準(zhǔn)蹤跡事件分別對(duì)應(yīng)于所述第一和第二斷言;確定分別對(duì)應(yīng)于所 述第一和第二斷言的第一和第二實(shí)時(shí)蹤跡事件;以及,基于所述第一和第二基準(zhǔn)蹤跡事件 和所述第一和第二實(shí)時(shí)蹤跡事件之間的比較,判斷所述應(yīng)用是否正確地操作。在一個(gè)實(shí)施 例中,所述第一和第二基準(zhǔn)蹤跡事件分別包括第一和第二基準(zhǔn)指令計(jì)數(shù),所述第一和第二 實(shí)時(shí)蹤跡事件分別包括第一和第二實(shí)時(shí)指令計(jì)數(shù)。在一個(gè)實(shí)施例中,操作包括:確定所述第 一和第二基準(zhǔn)蹤跡事件中的一個(gè)和所述第一和第二實(shí)時(shí)蹤跡事件中的一個(gè)之間的差異;以 及,將所述差異與預(yù)定值進(jìn)行比較,以判斷所述應(yīng)用是否正在正確地操作。
[0044] 上文所描述的設(shè)備的所有任選特征也可相對(duì)于此處描述的方法或處理而被實(shí)現(xiàn)。 盡管是參考數(shù)量有限的實(shí)施例來描述本發(fā)明的,但是,那些精通本技術(shù)的人將從其中理解 很多修改和變體。所附權(quán)利要求書涵蓋落在本發(fā)明的真正的精神和范圍內(nèi)的所有這樣的修 改和變體。
【權(quán)利要求】
1. 一種由至少一個(gè)處理器執(zhí)行的方法,包括: 接收具有第一和第二斷言的應(yīng)用的第一和第二基準(zhǔn)蹤跡事件,所述第一和第二基準(zhǔn)蹤 跡事件分別對(duì)應(yīng)于所述第一和第二斷言; 在接收到所述第一和第二基準(zhǔn)蹤跡事件之后,接收通過執(zhí)行所述應(yīng)用所生成的并且分 別對(duì)應(yīng)于所述第一和第二斷言的第一和第二實(shí)時(shí)蹤跡事件;以及 將所述第一以及第二基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較。
2. 如權(quán)利要求1所述的方法,其特征在于,包括通過所述第一和第二斷言,生成(a)所 述第一和第二基準(zhǔn)蹤跡事件以及(b)所述第一和第二實(shí)時(shí)蹤跡事件。
3. 如權(quán)利要求1所述的方法,其特征在于,包括確定所述第一和第二基準(zhǔn)蹤跡事件中 的一個(gè)和所述第一和第二實(shí)時(shí)蹤跡事件中的一個(gè)之間的差異。
4. 如權(quán)利要求3所述的方法,其特征在于,包括將所述差異與預(yù)定值進(jìn)行比較,以判斷 所述應(yīng)用是否正在正確地操作。
5. 如權(quán)利要求1所述的方法,其特征在于,所述第一和第二基準(zhǔn)蹤跡事件分別包括第 一和第二基準(zhǔn)指令計(jì)數(shù),并且所述第一和第二實(shí)時(shí)蹤跡事件分別包括第一和第二實(shí)時(shí)指令 計(jì)數(shù)。
6. 如權(quán)利要求5所述的方法,其特征在于,將所述第一和第二基準(zhǔn)蹤跡事件分別與所 述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較包括將所述第一和第二基準(zhǔn)指令計(jì)數(shù)分別與所述第 一和第二實(shí)時(shí)指令計(jì)數(shù)進(jìn)行比較。
7. 如權(quán)利要求1所述的方法,其特征在于,所述第一和第二斷言中的至少一個(gè)被包括 在有分支的代碼部分的一個(gè)分支內(nèi)。
8. 如權(quán)利要求1所述的方法,其特征在于,所述第一和第二斷言中的每一個(gè)都被包括 代碼部分的單一循環(huán)內(nèi)。
9. 如權(quán)利要求1所述的方法,其特征在于: 所述第一和第二基準(zhǔn)蹤跡事件分別包括第一和第二基準(zhǔn)時(shí)間戳,所述第一和第二實(shí)時(shí) 蹤跡事件分別包括第一和第二實(shí)時(shí)時(shí)間戳;以及 將所述第一和第二基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較包括 將所述第一和第二基準(zhǔn)時(shí)間戳分別與所述第一和第二實(shí)時(shí)時(shí)間戳進(jìn)行比較。
10. 如權(quán)利要求1所述的方法,其特征在于,包括實(shí)時(shí)地將所述第一以及第二基準(zhǔn)蹤跡 事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較。
11. 如權(quán)利要求1所述的方法,其特征在于,包括基于將所述第一以及第二基準(zhǔn)蹤跡事 件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較,來檢測(cè)惡意軟件活動(dòng)。
12. 如權(quán)利要求1所述的方法,其特征在于,將所述第一和第二基準(zhǔn)蹤跡事件分別與所 述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較包括:從位于遠(yuǎn)程的計(jì)算節(jié)點(diǎn)接收基于將所述和第二 基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡事件進(jìn)行比較的評(píng)估。
13. 如權(quán)利要求1所述的方法,其特征在于,所述第一和第二基準(zhǔn)蹤跡事件首先是由第 一計(jì)算平臺(tái)上的第一方所生成的,所述第一和第二實(shí)時(shí)蹤跡事件首先是由第二計(jì)算平臺(tái)上 的第二方所生成的。
14. 如權(quán)利要求1所述的方法,其特征在于: 所述應(yīng)用在第一計(jì)算節(jié)點(diǎn)上執(zhí)行; 比較器邏輯模塊將所述第一以及第二基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡 事件進(jìn)行比較;以及 所述比較器邏輯模塊在所述第一計(jì)算節(jié)點(diǎn)和遠(yuǎn)程耦合到所述第一計(jì)算節(jié)點(diǎn)的第二計(jì) 算節(jié)點(diǎn)中的一個(gè)上執(zhí)行。
15. 如權(quán)利要求1所述的方法,其特征在于: 比較器邏輯模塊將所述第一以及第二基準(zhǔn)蹤跡事件分別與所述第一和第二實(shí)時(shí)蹤跡 事件進(jìn)行比較;以及 所述比較器邏輯在第一安全環(huán)境中執(zhí)行,所述應(yīng)用在與所述第一安全環(huán)境隔離的第二 安全環(huán)境中執(zhí)行。
16. 如權(quán)利要求1所述的方法,其特征在于,包括基于所述惡意軟件執(zhí)行超出從所述第 一基準(zhǔn)蹤跡事件擴(kuò)展到所述第二基準(zhǔn)蹤跡事件的指令計(jì)數(shù)的指令數(shù)量,來檢測(cè)惡意軟件活 動(dòng); 其中所述惡意軟件至少部分地被包括在所述應(yīng)用中并位于所述第一和第二斷言之間。
17. 至少一個(gè)機(jī)器可讀介質(zhì),所述至少一個(gè)機(jī)器可讀介質(zhì)包括指令,當(dāng)在計(jì)算設(shè)備上被 執(zhí)行時(shí),所述指令導(dǎo)致所述計(jì)算設(shè)備執(zhí)行如權(quán)利要求1到16中任一項(xiàng)所述的方法。
18. -種設(shè)備,包括用于執(zhí)行權(quán)利要求1到16中的任何一項(xiàng)所述的裝置。
19. 一種設(shè)備,包括: 至少一個(gè)存儲(chǔ)器和耦合到所述至少一個(gè)存儲(chǔ)器的至少一個(gè)處理器,用于執(zhí)行操作,所 述操作包括: 確定具有第一和第二斷言的應(yīng)用的第一和第二基準(zhǔn)蹤跡事件,所述第一和第二基準(zhǔn)蹤 跡事件分別對(duì)應(yīng)于所述第一和第二斷言; 確定分別對(duì)應(yīng)于所述第一和第二斷言的第一和第二實(shí)時(shí)蹤跡事件;以及 基于所述第一和第二基準(zhǔn)蹤跡事件和所述第一和第二實(shí)時(shí)蹤跡事件之間的比較,判斷 所述應(yīng)用是否正確地操作。
20. 如權(quán)利要求19所述的設(shè)備,其特征在于,所述第一和第二基準(zhǔn)蹤跡事件分別包括 第一和第二基準(zhǔn)指令計(jì)數(shù),所述第一和第二實(shí)時(shí)蹤跡事件分別包括第一和第二實(shí)時(shí)指令計(jì) 數(shù)。
21. 如權(quán)利要求19所述的設(shè)備,其特征在于,所述操作包括: 確定所述第一和第二基準(zhǔn)蹤跡事件中的一個(gè)和所述第一和第二實(shí)時(shí)蹤跡事件中的一 個(gè)之間的差異;以及 將所述差異與預(yù)定值進(jìn)行比較,以判斷所述應(yīng)用是否正在正確地操作。
【文檔編號(hào)】G06F11/28GK104220992SQ201280072088
【公開日】2014年12月17日 申請(qǐng)日期:2012年3月29日 優(yōu)先權(quán)日:2012年3月29日
【發(fā)明者】D·W·格勞羅克, J·沃克 申請(qǐng)人:英特爾公司