功能。一旦攻擊者已成功地攻擊了可執(zhí)行文件,攻擊者可形成可執(zhí)行文件的攻擊版本,該攻擊版本能夠?qū)崿F(xiàn)對(duì)受保護(hù)功能的未授權(quán)訪問(wèn)一一攻擊者可隨后分發(fā)可執(zhí)行文件的這個(gè)攻擊版本,由此允許其他人訪問(wèn)這個(gè)受保護(hù)功能。類似地,攻擊者可攻擊可執(zhí)行文件以便產(chǎn)生可執(zhí)行文件的攻擊版本,該攻擊版本包括另外的惡意軟件功能一一攻擊者可隨后分發(fā)可執(zhí)行文件的這個(gè)攻擊版本,并且如果接收者運(yùn)行可執(zhí)行文件的攻擊版本,則接收者可能最終運(yùn)行惡意軟件部件。
[0025]計(jì)算機(jī)裝置10因此被布置為從外部源35下載利用簽名數(shù)據(jù)(例如,具有利用簽名文件(ESF) 30的形式)。外部源通常定期地(例如,以推送類型操作或根據(jù)來(lái)自裝置10或軟件應(yīng)用20的請(qǐng)求)將更新的ESF 30遞送給計(jì)算機(jī)裝置10。以這種方式,ESF能夠保持最新以反映由利用發(fā)現(xiàn)組70識(shí)別的改變的和新的利用,利用發(fā)現(xiàn)組70是負(fù)責(zé)發(fā)現(xiàn)并且阻止軟件應(yīng)用20上的新的利用并且負(fù)責(zé)更新ESF以便使軟件應(yīng)用20能夠檢測(cè)這些利用的主體或組織。特別地,ESF 30可識(shí)別由應(yīng)用20或計(jì)算機(jī)裝置10的合法用戶進(jìn)行的針對(duì)軟件應(yīng)用20的利用,該利用可被稱為本地利用。例如,ESF可識(shí)別旨在獲得能夠被用于擊敗內(nèi)容保護(hù)系統(tǒng)、數(shù)字版權(quán)管理系統(tǒng)和類似系統(tǒng)的關(guān)鍵數(shù)據(jù)或其它信息的利用。
[0026]ESF 30包含軟件應(yīng)用20上的已知利用的簽名。簽名數(shù)據(jù)包含關(guān)于例如如何利用簽名檢測(cè)特定利用的信息,該簽名提供用于檢測(cè)一個(gè)或幾個(gè)類似利用的信息。
[0027]軟件應(yīng)用20以如下這種方式使用集成到軟件應(yīng)用20中的系統(tǒng)證實(shí)功能或系統(tǒng)證實(shí)模塊(SVM) 50檢測(cè)利用:繞過(guò)系統(tǒng)證實(shí)功能將會(huì)阻止應(yīng)用執(zhí)行它的功能中的至少顯著部分或主要部分。特別地,SVM 50在軟件應(yīng)用20的安全內(nèi)核40內(nèi)執(zhí)行,安全內(nèi)核40是軟件應(yīng)用20中的受到很好保護(hù)區(qū)域。
[0028]可按照各種方式提供安全內(nèi)核,包括:例如通過(guò)在單獨(dú)的微處理器上的安全硬件元件中運(yùn)行應(yīng)用的一部分,以及通過(guò)使用安全軟件部件。ARM Trustzone是能夠被用于創(chuàng)建這種安全內(nèi)核的技術(shù)的例子(在“http://en.wikipedia.0rg/wiki/ARM_architecture#Security_Extens1ns_.28TrustZone.29,,描述)。
[0029]在EP2362573中描述了類似概念,EP2362573通過(guò)引用被包含于此,并且在EP2362573中,電子裝置包括安全部分和非安全部分。安全部分包括用于數(shù)據(jù)(諸如,信任密鑰和會(huì)話密鑰)的安全存儲(chǔ)的存儲(chǔ)器。安全部分是計(jì)算機(jī)裝置的專用部分并且包含硬件元件,該硬件元件不允許通過(guò)來(lái)自安全部分外面的數(shù)據(jù)讀/寫操作來(lái)執(zhí)行的訪問(wèn)并且僅允許以加密形式與接收器的非安全部分的數(shù)據(jù)傳送。EP2362573中的安全部分的例子是安全加密引擎。
[0030]在PCT/EP2012/004267中闡述了提供安全內(nèi)核的其它方式,PCT/EP2012/004267也通過(guò)引用被包含于此。這個(gè)專利申請(qǐng)描述了現(xiàn)代芯片以及如何在制造過(guò)程期間配置該現(xiàn)代芯片,并且討論使用該芯片的某個(gè)部分執(zhí)行軟件,而在該裝置上執(zhí)行的任何其它軟件無(wú)法訪問(wèn)它的操作,也無(wú)法經(jīng)該芯片的硬件管腳訪問(wèn)它的內(nèi)部存儲(chǔ)器。攻擊者因此將會(huì)需要打開(kāi)該裝置并且使用探針觀察該軟件。
[0031 ] 能夠使用安全軟件部件提供安全內(nèi)核,例如,在安全軟件部件中,應(yīng)用軟件變換,軟件變換完全修改計(jì)算機(jī)程序的控制流和數(shù)據(jù)流。一個(gè)例子是在下述文獻(xiàn)中討論的白箱 AES 技術(shù):‘‘White-Box Cryptography and an AES Implementat1n,,,by StanleyChow, Philip Eisen, Harold Johnson, and Paul C.Van Oorschot, in SelectedAreas in Cryptography: 9th Annual Internat1nal Workshop, SAC 2002, St.John’s,Newfoundland, Canada, August 15-16,2002,該文獻(xiàn)的全部公開(kāi)內(nèi)容通過(guò)引用包含于此。“White-Box Cryptography and an AES Implementat1n”公開(kāi)了一種針對(duì)通過(guò)使用一系列查找表創(chuàng)建加密算法的密鑰相關(guān)實(shí)現(xiàn)來(lái)保護(hù)加密算法的完整性的方案。通過(guò)部分評(píng)估關(guān)于(一個(gè)或多個(gè))密鑰的該算法,(一個(gè)或多個(gè))密鑰被嵌入在該實(shí)現(xiàn)中。部分評(píng)估表示涉及密鑰的表達(dá)被盡可能合理地評(píng)估,并且結(jié)果被放入該代碼中而非全部表達(dá)中。這表示該實(shí)現(xiàn)特定于(一個(gè)或多個(gè))特定密鑰并且密鑰輸入對(duì)于使用該算法的密鑰相關(guān)實(shí)現(xiàn)是非必要的。因此可分發(fā)用于加密或解密內(nèi)容或數(shù)據(jù)的、可以是用戶特定的算法的密鑰相關(guān)實(shí)現(xiàn),而非分發(fā)可以是用戶特定的密鑰。創(chuàng)建密鑰相關(guān)實(shí)現(xiàn)以通過(guò)下述操作來(lái)隱藏(一個(gè)或多個(gè))密鑰:(1)使用用于合成而非個(gè)體步驟的表;(2)利用隨機(jī)雙射對(duì)這些表進(jìn)行編碼;和(3)將加密邊界擴(kuò)展超出加密算法自身進(jìn)一步向外到包含的應(yīng)用中,由此迫使攻擊者理解顯著更大的代碼段以實(shí)現(xiàn)他們的目標(biāo)。在PCT/EP2013/056617中發(fā)現(xiàn)最新的討論,該申請(qǐng)也通過(guò)引用包含于此,在PCT/EP2013/056617中,使用糾錯(cuò)碼對(duì)數(shù)據(jù)進(jìn)行變換,并且在糾錯(cuò)數(shù)據(jù)域中執(zhí)行對(duì)數(shù)據(jù)的操作,從而在對(duì)數(shù)據(jù)的每個(gè)操作之后,糾錯(cuò)碼保持完整。
[0032]在PCT/EP2013/056615中闡述了使用安全軟件部件實(shí)現(xiàn)安全內(nèi)核的其它方式,PCT/EP2013/056615也通過(guò)引用包含于此。例如,參見(jiàn)這個(gè)文檔的第8_17頁(yè)和圖3和4以及朝著本詳細(xì)描述的末尾闡述的對(duì)應(yīng)材料。這些軟件技術(shù)使用數(shù)學(xué)技術(shù)的混合,這些數(shù)學(xué)技術(shù)使用接近加密強(qiáng)度的變換對(duì)數(shù)據(jù)進(jìn)行變換,但允許對(duì)變換數(shù)據(jù)的操作仍然在去除該變換之后產(chǎn)生有效結(jié)果。
[0033]以上技術(shù)傾向于產(chǎn)生變換的軟件代碼,變換的軟件代碼相對(duì)比較低效,但在不了解用于產(chǎn)生變換代碼的基本參數(shù)的情況下非常難以進(jìn)行反向工程。由于運(yùn)行時(shí)間低效,所以無(wú)法將這種技術(shù)應(yīng)用于全部軟件應(yīng)用,但可行的是將它們應(yīng)用于包含應(yīng)用的更關(guān)鍵安全功能的應(yīng)用的子部分(即,安全內(nèi)核)。
[0034]SVM 50使用ESF 30掃描已知利用。SVM 40能夠優(yōu)選地檢查計(jì)算裝置的寬范圍的性質(zhì),包括:搜索針對(duì)特定字節(jié)序列的隨機(jī)訪問(wèn)和永久存儲(chǔ)器,觀察裝置資源(諸如,存儲(chǔ)器、CPU使用率或10),以及觀看系統(tǒng)調(diào)用模式。
[0035]圖1還示出示例性依賴庫(kù)60,依賴庫(kù)60被安裝在計(jì)算機(jī)裝置10中并且提供應(yīng)用所需的功能。
[0036]圖2示出圖1的布置可如何操作以保護(hù)軟件應(yīng)用20免于利用。軟件應(yīng)用20安全地集成SVM 50,在啟動(dòng)時(shí)并且在軟件應(yīng)用10的執(zhí)行期間運(yùn)行SVM 50。在執(zhí)行期間,例如,可在對(duì)一個(gè)或多個(gè)依賴庫(kù)60的重要調(diào)用之前運(yùn)行SVM 50以證實(shí)未使用已知利用。
[0037]在圖2中,步驟110圖示將例如來(lái)自應(yīng)用開(kāi)發(fā)者或其它應(yīng)用源80的應(yīng)用20部署到計(jì)算機(jī)裝置20。例如在經(jīng)網(wǎng)絡(luò)下載或從計(jì)算機(jī)可讀介質(zhì)安裝之后,可部署該應(yīng)用,其中此時(shí)提供或不提供最新的ESF 30。每次在步驟115運(yùn)行應(yīng)用時(shí),也啟動(dòng)SVM 50 (圖2中未示出)。SVM隨后檢查ESF 30并且證實(shí)它是可信的并且最新的。如果不是可信的或最新的,則可由裝置在步驟120獲得新版本的ESF。
[0038]軟件應(yīng)用可被配置為直到可在裝置10獲得證實(shí)的且最新的ESF才繼續(xù)執(zhí)行。當(dāng)在步驟125運(yùn)行時(shí),SVM使用ESF內(nèi)所包含的簽名信息證實(shí)未執(zhí)行已知利用。如果發(fā)現(xiàn)利用,則在步驟130阻止或部分地阻止應(yīng)用20執(zhí)行它的功能。如果未發(fā)現(xiàn)利用,則它使應(yīng)用20能夠例如在進(jìn)行對(duì)依賴庫(kù)的調(diào)用時(shí)(如步驟135中所示)正常地繼續(xù)執(zhí)行。
[0039]同時(shí),如圖3中所示,利用發(fā)現(xiàn)組或?qū)嶓w70在步驟150中例如通過(guò)與計(jì)算機(jī)裝置10的互聯(lián)網(wǎng)連接繼續(xù)掃描在更廣泛的用戶群中實(shí)現(xiàn)的應(yīng)用上的利用,計(jì)算機(jī)裝置10已實(shí)現(xiàn)該軟件應(yīng)用并且已被識(shí)別為受到損害。當(dāng)發(fā)現(xiàn)新的利用時(shí),由利用發(fā)現(xiàn)組70針對(duì)利用簽名32在步驟155分析該新的利用,并且利用簽名數(shù)據(jù)(例如,具有ESF 30的形式)在步驟160在ESF源35上被更新以包括新的簽名32。
[0040]上述方案具有許多優(yōu)點(diǎn):
?對(duì)于將要被有效地部署的利用,必須禁用SVM 50。如果SVM未被禁用,則攻擊發(fā)現(xiàn)組70能夠部署新的簽名以禁用該利用。這迫使攻擊者擊敗安全內(nèi)核40,安全內(nèi)核40通常是應(yīng)用的最安全的部分;
?不必在部署軟件應(yīng)用20之前知道所有潛在利用和利用路徑;
?應(yīng)用20能夠掃描軟件應(yīng)用的所有依賴性,包括針對(duì)利用的依賴庫(kù)60和數(shù)據(jù)文件;
?經(jīng)常,能夠發(fā)現(xiàn)攻擊者難以改變從而使攻擊者難以適應(yīng)的針對(duì)利用的簽名;
?掃描利用時(shí)SVM的活動(dòng)能夠快速,因?yàn)楹灻臄?shù)量能夠保持為低。這是因?yàn)?,僅需要檢測(cè)影響軟件應(yīng)用20自身的利用,其中影響在計(jì)算機(jī)裝置10上執(zhí)行的其它軟件的利用被忽略。這可具有這樣的優(yōu)點(diǎn):能夠更頻繁地運(yùn)行掃描;
?因?yàn)檐浖?yīng)用20能夠要求使用相對(duì)較新版本的利用簽名文件,所以對(duì)利用簽名文件的更新能夠快速地跨許多裝置上的軟件應(yīng)用20的較大用戶群生效。
[0041]當(dāng)與用于掃描計(jì)算機(jī)系統(tǒng)上的病毒的現(xiàn)有技術(shù)軟件比較時(shí),本發(fā)明的實(shí)施例具有許多差異,包括下面各項(xiàng):
?SVM被集成到軟件應(yīng)用自身中,而非獨(dú)立地或單獨(dú)地運(yùn)行;
?SVM可掃描由計(jì)算機(jī)裝置10的用戶針對(duì)軟件應(yīng)用20進(jìn)行的利用(本地利用),而非掃描由黑客從計(jì)算機(jī)裝置外面進(jìn)行的利用;
?SVM