專利名稱:入侵檢測的方法和系統(tǒng)的制作方法
技術(shù)領域:
和背景
本發(fā)明涉及用于通過檢測入4曼程序的攻擊來保護所迷計算機軟件 的方法和系統(tǒng),該入侵程序干擾在具有處理器和至少一個處理器存儲 器的計算機系統(tǒng)上的受保護的軟件的運行。
現(xiàn)有技術(shù)/
背景技術(shù):
描述了保護服務器-客戶機網(wǎng)絡環(huán)境以防止服務器系統(tǒng)^l外部客 戶機訪問的許多攻擊防范系統(tǒng)。通常在服務器側(cè)存在分析來自外部客 戶機送往服務器的業(yè)務所調(diào)用的訪問過程和行為的監(jiān)視進程。對于典
型行為才莫式的比較允許或不允許該訪問。例如,Alcatel的申請 US2005273855描述了這樣一種系統(tǒng),其中在申請中沒有具體描述(并 且不是那個申請的發(fā)明的組成部分的)專用攻擊防范裝置^f呆存訪問控 制功能用于允許或阻止對服務器系統(tǒng)的訪問權(quán)的黑名單。要求攻擊防 范裝置向服務器的訪問限制功能發(fā)送命令,以便管理對系統(tǒng)的可訪問 性。
另 一種現(xiàn)有技術(shù)(Oioo, US4932054)描述了在插入計算機的通信端 口的軟件保護硬件裝置中結(jié)合的過濾器組件。該裝置選擇從通信端口 發(fā)出的、從用于保護應用程序的控制軟件的命令中產(chǎn)生的比特或者比 特組合。過濾器組件選擇與產(chǎn)生用于激活保護裝置中的功能的過濾器 組件的輸出的參考碼匹配的"偽裝預定控制代碼"的比特。
發(fā)明描述
本發(fā)明的一個目的是提供用于檢測對計算機系統(tǒng)上的應用軟件的 入4曼的方法。該方法應當可靠地監(jiān)視入侵的這類企圖,并且應當極為有效。
此目的通過具有權(quán)利要求1所述的特征的方法以及具有權(quán)利要求
30所述的特征的系統(tǒng)來實現(xiàn)。在從屬子權(quán)利要求中定義如權(quán)利要求1 所述的本發(fā)明方法的其它發(fā)展和特殊實施例。
根據(jù)本發(fā)明的用于保護計算機軟件的方法檢測入侵程序的攻擊, 該入侵程序干擾在具有處理器和至少一個處理器存儲器的計算機系統(tǒng) 上的受保護的軟件的運行(execution)。受保護的軟件包括通過嵌入附 加代碼進行修改的受保護的程序、特別是應用程序。例如,受保護的 專欠件可包括集成到受保護的4欠件中的控制程序和/或安全引擎和/或監(jiān) 視器程序。
根據(jù)本發(fā)明,將要保護的計算機軟件(受保護的軟件)與許可證容 器進行通信,許可證容器包含使用受保護的計算機軟件的許可證,并 且包含至少一個密碼密鑰。許可證容器為受保護的軟件提供許可證和 密碼密鑰以保護其使用及其完整性。
受保護的計算機軟件至少部分經(jīng)過加密,并使用關聯(lián)密碼密鑰對 所述受保護的軟件進行解密以便運行。關聯(lián)密碼密鑰或密鑰是包含在 許可證容器中并且與受保護的軟件一起和/或為受保護的軟件生成的 密鑰,以便限制和控制軟件的使用以及對受保護的計算機軟件的至少 部分加密部分進行解密。
根據(jù)本發(fā)明的方法包括以下步驟
在運行受保護的軟件期間,分析軟件的行為和/或計算機系統(tǒng)上的 受保護的軟件的運行環(huán)境。此外,在這個運行期間,搜索入侵程序或 入侵的模式。在另一個步驟中,根據(jù)受保護的軟件的行為的分析或者 根據(jù)計算機系統(tǒng)上的運行環(huán)境的分析,來檢測進入受保護的軟件的入 侵。入侵程序使用監(jiān)視組件或監(jiān)視器程序來獲得對受保護的軟件的未 經(jīng)授權(quán)的訪問。在檢測到入侵或試圖入侵時,創(chuàng)建信號。信號可以是 標志等,它由受保護的軟件、控制程序、監(jiān)視器程序、安全部分和/ 或計算機系統(tǒng)進行處理以便進行進一步處理。在本發(fā)明的范圍中,受保護的軟件的行為包括在運行受保護的軟 件期間和/或之后的受保護的軟件的反應。如果入侵程序嘗試滲入受保 護的軟件,則應用的反應、計算機系統(tǒng)的計算機軟件的處理器容量的 使用、用于運行受保護的軟件的完整程序或者特殊程序或代碼部分的
整體定時(overall timing)可能偏離。此外,術(shù)語"行為"還包括到 處理器或處理器存儲器中的特殊邏輯地址的鏈接。
如上所述,計算機系統(tǒng)或主計算機包括安全裝置、通常是用于軟 件保護或軟件實現(xiàn)許可證容器的加密鎖(dongle),提供用于檢測和識 別來自運行于同 一個主計算機的本地入侵程序的攻擊的攻擊檢測功能 以及其它安全功能。
入侵軟件可通過本地方式和/或通過來自與本地主計算機進行通 信的遠程連網(wǎng)計算機或服務器的遠程訪問來引入。入侵軟件可用于攻 擊和分析軟件保護系統(tǒng)所保護的計算機軟件,如WIBU-P6專利 EP118477 Bl所述。
可以是保護硬件組件、可以是可分離安全加密鎖或者軟件許可證 容器的許可證容器(以下稱作一般術(shù)語"許可證容器")為單站計算機 或連網(wǎng)計算機提供許可證訪問參數(shù),以便對主機應用軟件進行解鎖, 但這不是進行限制。除了軟件之外,々某體內(nèi)容或者任何類型的數(shù)據(jù)也 可通過這種許可證容器來保護。術(shù)語"軟件"在此只是一個示例。在 以下"保護目標"部分給出更準確的定義。
對于避開通過客戶機程序向受保護的應用程序所提供的已安裝保 護機制,許多方法被使用并且是已知的。本發(fā)明所提出及所述的概念 是檢測和防止通常分解運行于計算機主機系統(tǒng)上的進程并且避開為目 標應用程序所提供的保護機制的不同攻擊方法的對策。
各種攻擊的方法與檢測和防范機制的對策可能同樣多。本發(fā)明概 念提出新方法及其組合來檢測和分析入侵事件,以及將它們報告^f呆 護系統(tǒng),以便組織防御措施。
本發(fā)明用于實施例如EP 1184771 Bl中提出的用于保護軟件、多媒體內(nèi)容或者任何類型的數(shù)據(jù)文件的許可證系統(tǒng)。充當許可證容器的 保護裝置經(jīng)由主計算機接口和一組消息與控制軟件進行通信,以便保 護目標應用軟件的使用和完整性。標準的應用軟件經(jīng)過加密,并且需 要許可證及關聯(lián)的解密密鑰來對應用軟件進行解密以便程序運行。入 〃f曼軟件可攻擊這種進程,并且例如可侵入保護硬件與控制軟件之間的 通信鏈路,以便允許運行應用程序。未經(jīng)授權(quán)使用(例如為了偽造而使 用調(diào)試器工具)的監(jiān)視軟件組件引起的任何入侵事件將^皮盡早發(fā)現(xiàn)。另 外,在入侵應用對運行時的受保護的應用程序進行任何千擾時,偽造 數(shù)據(jù)或指令的入侵應用程序?qū)⒈粰z測并用于防止破壞受保護的程序代 碼的完整性或者可表示單進程的運行的預定代碼段的序列的運行。
將通過阻擋許可證容器與;f企查入侵的控制豐欠件組件、又稱作控制 程序(或者控制程序才莫塊)之間的通信鏈路來保護訪問限制組件的完整 性。在防入侵方案之中,CodeMeter Developers Guide的手冊(第89 頁)中描述的一種已知方法提供控制程序(CodeMeter. exe)掃描系統(tǒng)中 例如用戶沖莫式調(diào)試器、內(nèi)核調(diào)試器、又稱作"IDE"調(diào)試器的綜合開發(fā) 環(huán)境調(diào)試器等不同類型的調(diào)試程序的存在的能力。在啟動受保護的應 用程序之前,例如,控制程序的控制才莫塊向保護裝置(CodeMeter)生成 消息,使得與軟件保護控制軟件的通信鏈路被阻擋。使用計數(shù)器描述 成用于使許可證的使用次數(shù)遞減。將單元計數(shù)器用于入侵檢測允許在 取消建立使用控制系統(tǒng)之前發(fā)生一個以上入侵檢測事件。這留待對于 控制系統(tǒng)建立的策略來實施阻撓所檢測的入侵的措施。
本發(fā)明的一個目的是使用更復雜的方法以便在攻擊或入^f曼期間隱 藏攻擊防范措施變?yōu)榛顒拥奈恢煤蜁r間。這不會在激活攻擊防范過程 期間為入侵者或入侵軟件留下痕跡或線索。
與許可證容器進行通信的控制程序模塊或功能可以是具有并不局 限于入侵防范和許可證訪問管理的許多功能的整個保護控制程序的組 成部分??刂瞥绦蜻€可以是操作系統(tǒng)(0S)的內(nèi)核驅(qū)動程序的外部組成 部分,或者可嵌入應用程序或者受保護的軟件本身。本發(fā)明所述的方法包括用于檢測入侵軟件的各種檢測機制,并且 包括防止硬件裝置與控制程序進一步通信以及揭示例如分別用于應用 程序的受保護的軟件的解密的狀態(tài)信息、密碼密鑰或秘密密鑰等的任 何通信協(xié)議參數(shù)的各種措施。
在本發(fā)明方法的 一個優(yōu)選實施例中,受保護的軟件的行為的分析 包括例如受保護的軟件中嵌入的特殊操作碼的分析和運行或者特殊程 序部分或受保護的軟件代碼中的部分的分析和運行。此外,受保護的 軟件的行為的分析還包括測量用于運行受保護的軟件的定時并且評估 測量的結(jié)果。例如,如果例如調(diào)試器等入侵軟件運行受保護的軟件, 則運行完整軟件或者軟件的部分的時間比沒有任何入侵的無干擾情況 下的運行持續(xù)更長。
分析這類特殊操作碼或特殊程序部分的運行的一個示例可以是誘 何碼的運行。下面更詳細地描述這種情況。
在接收到指明入侵檢測的消息時在硬件裝置內(nèi)部進行的計數(shù)器測
量也可通過使用不同方法來改變,以便防止通信協(xié)議的重構(gòu)或重i丈。
基礎技術(shù)的基本描述 保護目標
本發(fā)明用于實施關于計算機系統(tǒng)的許可證信息。這種許可證 (license)—方面可以是運行某個程序的許可,而另一方面可以是查看 或使用某個內(nèi)容的許可。內(nèi)容本身的保護通過能夠?qū)?nèi)容解密的特殊 修改查看器(或者使用內(nèi)容的其它部件)來實現(xiàn)。另一方面,受保護的 程序不僅在普通意義上是可執(zhí)行的(例如原始窗口二進制),而且還可 在各個方面擴展到腳本。最明顯的示例是Java和".NET"程序,它們 目前公認是程序但也全部是其它類型的腳本。隨著計算機發(fā)展為越來 越功能的強大,"原始程序"與"便攜腳本"之間的差異日漸轉(zhuǎn)弱。 保護這些種類的知識產(chǎn)權(quán)時使用的機制完全相同。因此將保護目標命 名為"受保護的應用"或"受保護的軟件",而不管它是狹窄意義的程序還是腳本或數(shù)字內(nèi)容。 保護思路
通過將特殊代碼插入受保護的程序(或者在純內(nèi)容的情況下的"查
看器")來實施保護。這個插入代碼稱作"安全引擎(SE)",并嵌入到 被插入程序的所謂"安全部分"(本文中參照附圖對它進行說明)。一 些安全服務是可與受保護的應用分離并且常駐外部"控制程序"的這 些安全服務的更通用部分(如圖3a、 3b、 3c所示)。由于功能性可在不 同部分(安全引擎-控制程序)之間移動,受保護的應用的單元、安全引 擎和控制程序?qū)⒈划斪鲉蝹€單元并被稱作"受保護的軟件"(參見圖 3b、 3c)。
保護技術(shù)
典型程序由不同部分組成。這里的術(shù)語取自眾所周知的窗口系統(tǒng), 但是大部分也用于其它系統(tǒng)(腳本或其它平臺)。
從圖2可以理解,程序由包含用于加栽程序以及標識不同部分的 某種元信息的頭部組成。代碼部分包含大多數(shù)可執(zhí)行代碼。這個代碼 可根據(jù)需要修改和修正。取決于平臺,改變和修正該代碼或多或少是 困難的。數(shù)據(jù)部分包含應用所使用的二進制數(shù)據(jù)。資源部分最常見于 GUI應用程序。從應用本身以及從操作系統(tǒng)進行訪問。在保護進程中 添加安全部分。它包括對可執(zhí)行代碼進行解密的重要部分,并且與許 可證容器或控制程序進行通信??蓤?zhí)行代碼與操作系統(tǒng)之間的連接通 過導入地址表(IAT)來進行。當啟動受保護的軟件時,操作系統(tǒng)在這里 將指針設置到操作系統(tǒng)的功能(API)(參見圖la、圖lb)。保護機制可 使用這個表來截取這些功能調(diào)用。當截取調(diào)用時,通常首先運行頭部, 然后運行API,最后運行尾部(參見圖2)。
A) 將使用檢測入侵(或攻擊)的下列方法
技術(shù)領域:
本發(fā)明方法的一個有利實施例分別將"誘斜碼(bait code)"插入 受保護的軟件的程序代碼或者原始應用程序代碼。"誘斜碼"在本發(fā)明的條件下理解為特定程序代碼,它表現(xiàn)為作 為應用程序代碼的組成部分(或者作為控制對保護裝置的訪問的控制 程序的組成部分)但沒有應用程序本身的含義或用途、并且實際上在應 用程序的常規(guī)運行期間沒有運行的常規(guī)程序代碼。對于入侵程序,沒 有深入了解整個應用程序就不可能提供充分的分析來區(qū)分誘斜碼和常 規(guī)應用程序代碼以及從其中建立用于避免誘斜碼所表示的這類"程序 運行陷阱"的優(yōu)選策略。例如,僅在出現(xiàn)調(diào)試或跟蹤事件時,誘辨碼 才引起設置標記或指針以指明已經(jīng)通過例如調(diào)試進程運行了誘餅碼。 這種事件可被解釋為并且發(fā)信號通知為出現(xiàn)入侵檢測事件。誘辨碼可 分散于不同的程序位置,并且并非每一個誘斜碼均可用于發(fā)信號通知 入侵檢測事件。在另一種情況下,誘斜碼在解密和可執(zhí)行代碼的部分 之間保持為被加密。這種加密代碼可有利地用于(應用程序的)核心部 分,其中這類部分中的誘斜碼的解密很可能發(fā)生并引起及早發(fā)現(xiàn)該事 件。在啟動(誘飾碼的)解密進程時,將發(fā)信號通知入侵檢測,參見圖
l(a)。
使用誘斜碼的另 一種情況是在導入地址表(IAT)的未使用區(qū)域中 生成指針條目。這類"靜止條目(dead entry)"的運行也將觸發(fā)入侵 事件,參見圖l(b)。
本發(fā)明方法的另一個優(yōu)選實施例包括檢測釆用API包裝器 (wrapper)的部分代碼運行。
在程序運行期間,包裝的API用來訪問通過該進程步進時遇到的 運行的后續(xù)代碼序列的功能 一種可能性是插入頭部-API-尾部。
只有該進程的完整運行才防止入侵4企測,同時通過代碼序列來實 施API功能調(diào)用。
但是,在大多數(shù)情況下對受保護的應用程序的攻擊期間,僅運行 頭部部分。不使用尾部將引起檢測程序運行中的例外行為,并且引起 發(fā)信號通知入侵事件(參見圖2的步驟)。
該方法的另 一種優(yōu)選形式涉及通過進程監(jiān)#見來4全測異常。假定與應用程序(或控制程序)分離并且作為獨立進程運行的監(jiān)視 程序(監(jiān)視器程序)用來跟蹤應用程序運行的常規(guī)過程。在應用該方法 的 一種情況中,執(zhí)行應用程序的專用程序段的定義序列的定時條件由 監(jiān)視器程序記錄,然后進行對照分析,以便對表示應用程序的"無干 擾"運行的數(shù)據(jù)建立才莫板。這種方法可適用于可能不是實時操作系統(tǒng) 的標準操作系統(tǒng)環(huán)境,其中程序運行的定時條件在進程運行的嚴#"定 時條件下保持為非常穩(wěn)定并且是可再現(xiàn)的。在入侵的情況下,例如在 運行誘飾碼的同時,程序運行的定時條件可開始改變,因而可指明預 定定時條件的限制下的異常程序運行。作為監(jiān)視器^^莫塊的組成部分的 概率分析功能可判定入侵檢測符合檢測標準、如對于代碼序列的部分 所允許的最壞定時條件。為了建立這類定時模式,監(jiān)視器模塊可使用 從運行程序代碼的預定部分發(fā)生的處理器運行周期的測量。
在建立和運行監(jiān)視功能的另一種情況中,調(diào)試器本身的調(diào)試器接 口可結(jié)合到監(jiān)視器模塊中。根據(jù)集成到監(jiān)視器模塊的調(diào)試器接口的實 現(xiàn),必須考慮保護系統(tǒng)內(nèi)部其它位置上實現(xiàn)的任何反調(diào)試(與調(diào)試器檢 測的對應入4曼機制相比)。
本發(fā)明方法的又一個優(yōu)選實施例包括高級調(diào)試器檢測。
當調(diào)試器用于監(jiān)^f見應用程序時,定時條件也可改變。在這種類似 情況下,控制程序的監(jiān)視功能能夠發(fā)現(xiàn)程序序列的非預計定時才莫式。
監(jiān)視功能也可以是os的特定內(nèi)核驅(qū)動程序的組成部分,或者可以是應
用程序本身的組成部分。
本發(fā)明的又一個優(yōu)選實施例包括通過識別定時^f莫式的高級調(diào)試器
;險測方法,可描述如下
一個示例是通過處理器異常、如無效操作或訪問沖突來檢測程序 運行中的定時異常。另一個示例^J^見和^^測普通代碼運行中的定時 異常,與使用監(jiān)視器模塊所述的相似。
中斷點(即,將中斷程序運行的程序地址的位置)的設置也影響監(jiān) 視器程序顯而易見的定時。在相關性的已確定代碼部分、即對于維護受保護數(shù)據(jù)和應用程序 代碼的完整性是關鍵的代碼部分所設置的中斷點引起可用以檢測通過 調(diào)試器的存在的入侵的運行定時^t式。不同的調(diào)試器可具有可用以通 過監(jiān)視器模塊來識別它們的典型定時模式。
另一個程序功能可基于例如在控制程序與許可證容器或保護裝置 之間的通信鏈路上的預計中斷點設定。通過調(diào)試器的中斷點的設置可 通過預定地址位置中的預先定義值設定來檢測。雖然在關鍵程序段中 的中斷點設定的預計位置上運行程序代碼,但是,監(jiān)視功能將預期預 先定義值條目,因而將停止或避開關鍵程序代碼的進一步運行,以防 止其它調(diào)試步驟。
在監(jiān)視器程序掃描專用調(diào)試器在凈皮運行時通常占用的地址空間的 同時應用另 一種方法。所監(jiān)視的這類存儲器模式可與在其上監(jiān)視器進 程通過存在某種類型的調(diào)試器來分析遇到的威脅級別的典型存儲器模 板進行比較。這可使監(jiān)視器程序分別生成或者不生成許可證容器或保 護裝置的入侵消息。例如,如果調(diào)試器功能嵌入控制才莫塊中,則遇到 的存儲器模式不是用于直觀而是用于預計監(jiān)視目的。在這種情況下, 監(jiān)視器程序忽略調(diào)試功能的存在。
本發(fā)明的另 一個優(yōu)選實施例包括主動提供線程的檢測。
線程作為共享相同資源的子進程而發(fā)生。在運行受保護的程序的 過程中,多個線程定期使用單個主進程的相同狀態(tài)信息,并且它們共
享地址空間和其它資源、如文件I/O。在檢測到主動提供線程時發(fā)信 號通知入侵。
這可通過不同措施來實現(xiàn)
a) 用于創(chuàng)建線程以便獲得有效線程的列表的API的監(jiān)視 監(jiān)視器模塊提供用于監(jiān)控在常規(guī)API功能調(diào)用之下運行的線程的
功能,并且維護容許線程的列表。如果從外部進程創(chuàng)建主動提供威脅, 則監(jiān)視器模塊將檢測這個線程,并且發(fā)信號通知主動提供線程的入侵。
b) 使用"TLS"代碼創(chuàng)建線程的監(jiān)視線程本地存儲裝置(TLS)是保留的并且來自OS指定的存儲區(qū),其 中線程將公用存儲裝置用于配合操作和數(shù)據(jù)共享。因此,所有線程運 行定義的"TLS代碼"以便將它們的本地數(shù)據(jù)初始化。這個代碼可用 于監(jiān)視所有線程以及在原始進程空間中尚未創(chuàng)建、將由監(jiān)視識別和發(fā) 信號通知的主動提供線程的創(chuàng)建。
c) "未經(jīng)授權(quán)的線程"的API調(diào)用的檢測
使用由頭部、API和尾部組成的包裝的API從進程空間外部創(chuàng)建 的未經(jīng)授權(quán)的線程還將由監(jiān)視器模塊來檢測,并且使監(jiān)視器模塊發(fā)信 號通知入〗曼檢測。
B) 在檢測到攻擊或入侵時采取的措施
(通過控制程序)與控制模塊配合工作并進行通信以便接收關于入 侵檢測的信息、即可以是包含這種信息的消息的保護裝置將^L阻止通 過控制程序進一步進行訪問,或者^皮置于不同狀態(tài)(等待狀態(tài)),取決 于實施策略并且與所檢測的入侵類型相關。入侵檢測機制可嵌入控制 程序(1),可以是受保護的軟件或者受保護的應用程序本身(2)的組成 部分,可以是獨立監(jiān)視器程序(3)的組成部分,或者可以是OS內(nèi)核驅(qū) 動程序(4)的嵌入功能或程序代碼。
進一步訪問的拒絕可影響許可證容器中保持的受保護許可證單元 計數(shù)器、例如保密程序或密碼密鑰或內(nèi)容加密密鑰等受保護數(shù)據(jù)以及 將與控制程序共享的其它類型的受保護數(shù)據(jù)的訪問。
例如,在采取加密鎖或USB記憶棒形式的硬件保護裝置的情況下, 可通過在接收所檢測攻擊的信號之后設置標志來引起保護裝置、包括 例如許可證容器的裝置的鎖定。保護裝置的禁用還可通過令使用計數(shù) 器遞減或者設置可逆或可不可逆的入慢j企測標志禁用裝置通信來實 現(xiàn),還可通過清除內(nèi)部存儲的秘密密鑰或密碼密鑰來實現(xiàn)。
在接收來自控制程序的已確定入侵檢測消息時,可激活刪除密鑰 的機制。與保護裝置的通信仍然可與控制程序繼續(xù)進行,但將拒絕訪 問用于在已經(jīng)檢測到特定攻擊的主機側(cè)運行解密進程的關鍵密鑰的請求。
可通過使用包含與特殊但不可區(qū)分的參數(shù)配合使用的共用API的 覆蓋鎖定機制來實現(xiàn)保護裝置的禁用。
在這種情況下,當常用API用于功能調(diào)用時可選擇用于保護的路 徑,并且調(diào)用的參數(shù)可以不識別為例外,例如密碼操作的返回值、特 定文本或者存儲的動作。在接收標記為入侵檢測參數(shù)的這類不可區(qū)別 參數(shù)時,將調(diào)用保護裝置的鎖定或者"告警"機制的激活。
禁用或鎖定保護裝置的另 一種可能性是根據(jù)解密操作的結(jié)果進4亍 鎖定。
在應用程序的不同位置以及在控制程序的位置,可調(diào)用(即通過調(diào) 用包裝的API功能)用于密鑰或參數(shù)的解密的密碼功能,其中這種解密 操作的返回值可引起對于與預定值的比較操作的結(jié)果發(fā)送信號通知入 侵檢測。在這類加密值已經(jīng)傳送給裝置之后,這種比較可在保護裝置 的唯一控制下執(zhí)行。
作為一個示例
原始代碼的修改可用于禁用標準分析方法。例如,API調(diào)用的修 改可使程序調(diào)用安全引擎,并且在加密之前對于從控制程序所接收的 加密輸入?yún)?shù)進行解密時,獲得返回值。控制程序傳送給保護裝置的 返回值可開始進一步處理返回值,例如與保護裝置內(nèi)部的預定值進行 簡單匹配和比較。作為一個示例,原始代碼的修改可通過運行"靜止" 誘斜碼來引起。
C) 法庭證據(jù)(forensic evidence)的收集
在檢測到攻擊時,保護系統(tǒng)可收集法庭證據(jù),以便實現(xiàn)以后針對 攻擊者的合法步驟。法庭數(shù)據(jù)設計成以后識別攻擊者或者至少識別他 的計算機。因此,法庭數(shù)據(jù)可包含以下數(shù)據(jù)但不限于這種數(shù)據(jù)
-計算機的硬件標識等 -網(wǎng)絡卡的硬件地址
-例如處理器、主板、硬盤、圖形卡等的不同計算機組件的序列號
-不同計算機組件的版本和制造商數(shù)據(jù) -計算機的軟件標識等 -巻序列號
垂os許可證號 -用戶標識等 -郵件地址
-用戶名
為了收集入侵的進一步證據(jù),可應用以下方式或步驟
a) 禁用硬件以便阻止其它攻擊,以及激發(fā)原始許可證以聯(lián)絡許 可證頒發(fā)者,以便恢復許可證。
在檢測到保護裝置被禁用時,被許可人將申請恢復對許可證和內(nèi) 容的丟失訪問權(quán)。這將允許許可證頒發(fā)者收集用于跟蹤記錄以及建立 將許可證恢復到被禁用保護裝置的策略的數(shù)據(jù)。
在許可證頒發(fā)者判定時,裝置功能性或者裝置功能性的一部分可 在恢復單個或多個許可證訪問功能時重新建立。許可證頒發(fā)者可自行 集中所收集的數(shù)據(jù),或者可改為將數(shù)據(jù)傳遞給中央實例(入侵防范服 務),以生成當前威脅情況的全局觀點。在評估這些集中數(shù)據(jù)時,可生 成用于鎖定保護裝置的新響應策略。這些策略通過例如中央時間服務 器或者通過許可證頒發(fā)者在許可證和軟件更新過程中集中分發(fā)。在本 發(fā)明的范圍內(nèi),術(shù)語"被許可人"和"許可證頒發(fā)者"不僅指合法實 體,而且還包括所使用的計算機、計算機系統(tǒng)或服務器。這種情況下 的許可證頒發(fā)者通常遠離祐L許可軟件存儲在其中并且將被運行、通過 許可證密鑰或密碼密鑰保護的計算機。許可證頒發(fā)者包括其中存儲了 與被許可軟件或應用程序有關的信息、許可證信息、許可證密鑰和/ 或密碼密鑰的服務器。
b) 防改寫保護的"一次性寫入"存儲器中的證據(jù)的收集 在將時間戳記日期和時間用于所記錄的各入^曼的同時檢測到這種事件之后,可將所檢測的入侵寫入或記錄到一次性寫入存儲器中。
許可證頒發(fā)者可定期訪問保護裝置以收集法庭證據(jù)的數(shù)據(jù)。通過 將裝置禁用命令發(fā)送給控制程序,其中控制程序?qū)⑦@種命令傳遞給裝 置本身,許可證頒發(fā)者可根據(jù)它自己的入侵檢測策略來撤消許可證。 假定許可證容器或保護裝置能夠充當使多個許可證頒發(fā)者對保護裝置 的用戶許可其相應的受保護的軟件或應用程序的保護裝置。因此,可 能發(fā)生一個以上應用程序由相同保護裝置來保護的情況。根據(jù)在保護 裝置之下運行的應用程序的類型,多于一種類型的入侵可發(fā)生并且可 被檢測。這意味著,特定入侵檢測機制可應用于一種類型的應用,而 在另一種類型的應用中,它不可應用。因此,可需要在禁用裝置之前 按照所使用并且最終在一段時間受到不同類型的入侵攻擊的不同類型 的受保護的應用程序來記錄或?qū)徲嫳Wo裝置內(nèi)部的法庭跟蹤的入侵事 件。
許可證的撤消過程、例如刪除密鑰訪問或者拒絕對存儲秘密的訪 問、或者阻擋與裝置的通信可以僅導向和限制到許可證頒發(fā)者擁有的 并且已經(jīng)同意給予^皮許可人的特定許可證的集合。在記憶棒保存多個 許可證頒發(fā)者的許可證時,單個許可證頒發(fā)者的撤消策略將通過以下
方式來設置某個汰要)等級的違反安全性的入侵事件不會影響其它 許可證頒發(fā)者保持的并且由單個許可證頒發(fā)者控制和負責的許可證。 可以想到,其它受保護的應用與保護裝置仍然是可一起操作的,只要 入侵沒有被導向例如控制模塊本身所控制的通用安全防范并且不是所 有受保護的應用必要的??梢岳斫?,撤消機制可以是可縮放的,并且 被分類為單個應用撤消事件或者可擴展到整個裝置撤消。
本發(fā)明的又一個方面是覆蓋對于多臺計算機平臺的法庭跟蹤,因 為該裝置是便攜的,并且可在受到不同的入侵威脅的多臺計算機上使 用。又一種情況可意味著,基于不同操作系統(tǒng)的不同計算機用于相同 的受保護的應用。因此,根據(jù)所遇到的多個環(huán)境的方面的法庭跟蹤可 需要審計根據(jù)上述方面的保護裝置內(nèi)部的入侵。通過實施嵌入到裝置的入侵防范策略,入侵事件的信息的收集可 更適合于在禁用裝置之前的特定數(shù)量的事件。在保護裝置內(nèi)部的安全 存儲位置存儲收集的審計的另一個優(yōu)點是通過安全傳輸向許可證頒發(fā) 者的服務、向因特網(wǎng)的遠程入侵防范服務提供審計數(shù)據(jù)。作為用于備 份許可證參數(shù)的恢復文件的組成部分,傳送的審計數(shù)據(jù)可用于以后在 策略服務器中的各種用途的評估。在一個方面,數(shù)據(jù)例如可用于按照
入^:防范M^務的策略主動重新啟用^皮禁用的保護裝置。在另 一個方面, 使服務分析從多個保護裝置審計的多個入侵事件的上下文中的法庭數(shù) 據(jù)可以是有利的。
作為另 一個方面,可存在對于激活時間和到期時間所設置的時間 參數(shù),其中在裝置內(nèi)部可在規(guī)定周期中監(jiān)視入侵事件。在記錄可凈艮告 至少單個入侵事件的審計(audit)時,裝置可請求用于與事件關聯(lián)的時 間戳。保護裝置可在控制程序的支持下向遠程入侵防范服務傳送法庭 數(shù)據(jù)。
另外,下面根據(jù)附圖所示的示范實施例更詳細地說明本發(fā)明。通 過描述和附圖,本發(fā)明的其它特征、形式、方面和優(yōu)點將變得非常明 顯。本文提供的特殊性可單獨或者結(jié)合使用以創(chuàng)建本發(fā)明的優(yōu)選實施 例。附圖包括
圖1示出基于嵌入誘何碼的入侵檢測的示意圖2示出具有嵌入安全部分的受保護的軟件的視圖3示出受保護的軟件相對于計算機系統(tǒng)的操作系統(tǒng)的不同配置。
按照圖l(a)的示例,誘斜碼可部署在包括定義為安全部分(在控
制程序中)的區(qū)域的不同代碼部分的可執(zhí)行代碼中。IAT(指針)尋址方
案提供針對操作系統(tǒng)的安全部分和API調(diào)用中的誘斜碼的使用的一個
示例。"指針"代碼(到誘斜,的鏈接)使程序跳轉(zhuǎn)到安全部分。通過
監(jiān)視和分析安全部分的專用位置的誘斜碼的運行,控制程序可發(fā)信號 通知對保護裝置的入侵的情況。作為OS的調(diào)用時的分隔符出現(xiàn)的、在此標記為"0"的未使用IAT 條目、例如"Kernel32"或"User32"可用于指向代碼部分中包含的 "靜止"誘斜碼以便運行。然后,控制程序或監(jiān)視器程序可才艮告從未 使用IAT條目位置所調(diào)用的誘斜碼的此類運行,作為發(fā)生的入侵事件 的指示。
圖2示出受保護的應用中的程序流的一般方案,以便示出未保護 應用與受保護的應用之間的差別。
1. 在程序頭部中是到應用的OriginalEntryPoint (0EP)的鏈才妄, 這是操作系統(tǒng)開始運行的點。當保護程序時,將這個值修改成指向安 全部分。
2. 從0EP向上運行該代碼。
3. 在許多點將存在對操作系統(tǒng)功能的"調(diào)用"。
4. 指向被調(diào)用功能的指針由操作系統(tǒng)設置在所謂的導入地址表 (IAT)中。當保護應用時,這些指針重定向到安全部分。
5. 在安全部分,運行預計功能的執(zhí)行之前的頭部。這個頭部可能 進行某種反調(diào)試器校驗(check)。
6. 在頭部之后,調(diào)用原始功能(API)。
7. 在該功能(function)之后,在安全部分內(nèi)部運行尾部,清除已 分配的程序棧并且可能進行更多反調(diào)試器校驗。尾部使程序運行直接 返回受保護的應用。
8. 對于未保護應用,IAT直接指向操作系統(tǒng)。對于受保護的應用, 在IAT中可能還存在一些指針,它們沒有重定向到安全部分,因為每 一次重定向?qū)τ谡w性能具有顯著影響。
通過僅運行包裝API的頭部,入^f曼事件將由控制程序在進一步程 序運行的過程中檢測到。
根據(jù)本發(fā)明的另一個優(yōu)選實施例,通過生成哈希值并將它們與入 侵檢測的預計值進行比較,來執(zhí)行入侵檢測。
通過控制程序生成并傳送給保護裝置的消息可將CRC (循環(huán)冗余校驗)或其它哈希算法用于消息數(shù)據(jù)完整性。消息也可由公開/私有密鑰 算法進行簽署,以便由保護裝置認證控制程序。監(jiān)視器程序在作為與 控制程序進行通信的獨立進程安裝時,可使用確保與控制程序發(fā)生通 信時的數(shù)據(jù)完整性和消息真實性的相同方法。為此,監(jiān)視器程序可具 有與安全引擎的直接鏈接,以便運行安全算法。
在優(yōu)選實施例中,假定安全引擎在TPM (可信平臺模塊)所控制的 密封存儲器區(qū)域的未來平臺中,以便提供用于運行安全性相關功能調(diào) 用的高級防篡改。密封存儲器將是為受限程序運行所保留的專用RAM
限。嵌入受保護平臺的TPM提供向程序指定密封存儲器的標準化方法。 如以上方法所述,保護裝置可從控制程序接收通知來自入侵程序
代碼的攻擊的狀態(tài)的消息,以及其上的裝置認證該消息并檢驗數(shù)據(jù)完
整性。在另一個步驟中,裝置可按照嵌入裝置的入^:實施策略來中斷
與控制程序的通信。
在圖3a、圖3b、圖3c所示的筒圖中,入侵防范系統(tǒng)的主要系統(tǒng)
組件的優(yōu)選實施例和布置的一部分將^f皮示出并通過其相應功能來表
示o
體系結(jié)構(gòu)概覽描述
圖3a示出入侵檢測系統(tǒng)的基本系統(tǒng)功能,該系統(tǒng)包括控制程序、 保護裝置、受保護的應用、安全引擎和監(jiān)視器程序。
計算機系統(tǒng)的平臺經(jīng)由電接口 (即USB接口)與保護裝置進行通 信。控制程序通過控制消息、經(jīng)由計算機系統(tǒng)的操作系統(tǒng)(OS)與保護 裝置進行通信。如果由保護裝置接收到入侵的消息,則將在裝置禁用 控制功能中評估該消息,并且在遇到指明匹配入侵檢測時將禁止裝置 進行進一步通信,例如向控制程序提供解密或者可訪問數(shù)據(jù)。
嵌入到控制程序中,監(jiān)視器程序可對于在受保護的軟件的控制之 外運行的外部應用程序運行監(jiān)視功能。作為第一個任務,如果從入侵防范的觀點可能需要其它程序的程序監(jiān)控,則它非限制性地通過跟蹤 和記錄程序的運行來進行受保護的應用的監(jiān)視功能。然后,收集的數(shù) 據(jù)將^皮傳遞^^監(jiān)視器程序,并經(jīng)由控制程序傳遞給保護裝置。
受保護的應用使用與受到保護的應用的安全部分等效的安全引擎
SE的API。功能調(diào)用通過過濾器,并且可進一步路由到包含應用所需 的相關內(nèi)核功能的OS。所有其它調(diào)用與安全引擎內(nèi)部的特定功能相關, 例如充當對受保護的應用的程序屏蔽的保護層的解包。
圖3b示出嵌入安全引擎環(huán)境的控制程序和監(jiān)視器程序。 作為另 一個實施例,控制程序和監(jiān)^L器程序?qū)⑶度氚踩姝h(huán)境。 控制程序與僅在一個進程空間內(nèi)部運行的監(jiān); 見器程序和安全部分進行 通信。在本發(fā)明的一個方面,這對于使用如上所述的TPM的可信計算 環(huán)境中的受保護的應用的便攜性以及高級程序完整性的實現(xiàn)是有利 的。另外,保護應用的API可得到筒化,同時支持監(jiān)視應用和安全功 能調(diào)用的功能。
在這里未示出的另 一種情況下,監(jiān)視和控制程序可成為操作系統(tǒng) (OS)的內(nèi)核功能,并且可由安全引擎調(diào)用。不同的OS可需要系統(tǒng)功能 到所支持平臺的不同優(yōu)選才直入。
圖3c示出功能塊與所包含的遠程入侵保護服務之間的邏輯鏈接。 在描述功能單元之間的邏輯鏈接的簡圖中,遠程服務功能表示為 例如通過因特網(wǎng)通信來提供與保護裝置的連通性。這個功能可以是許 可證頒發(fā)者的已建立服務的補充服務功能,用于提供保護裝置的許可 證容器之一中存儲的許可證并且容許對受保護的應用的使用權(quán)限。雖 然對于軟件和內(nèi)容的許可證管理具有完全控制,但是許可證頒發(fā)者 (licensor)可能希望監(jiān)視和控制已經(jīng)對受保護系統(tǒng)發(fā)生的攻擊,而不 管它是適當位置上的許可證系統(tǒng)(例如EP118477 Bl中所述的DRM系 統(tǒng),通過引用將它包含在本申請中)還是保持為不受入侵攻擊的特定受 保護的應用。
根據(jù)本發(fā)明,在主-從功能中與主計算機系統(tǒng)配合操作的保護裝置可作為附加功能而具有在移動情況下其能發(fā)生時自發(fā)存儲和分析作為 對于多個平臺的收集數(shù)據(jù)所采集的入侵事件的能力。又按照調(diào)查威脅 級別的能力,入侵防范實施才莫塊可禁用與控制程序的進一步通信,并 且可有選擇地廢除數(shù)據(jù)的進一步使用或者遭受違反安全性。所記錄的 調(diào)試進程的行為模式(例如包含攻擊的方法和頻率)可由實施模塊進行 分析,并且可引起禁用保護裝置。
作為一個示例,裝置還可識別TPM的存在,并且因而由于以下事 實而可允許不太復雜地應用不同的威脅;漠型安全性可^t建立,并且 能夠以比更易于運行入侵代碼的開放式不安全系統(tǒng)更高的基本等級來 實施。下載到保護裝置中的保護策略數(shù)據(jù)可按照通過入侵防范服務所 規(guī)定的實施策略來控制用于執(zhí)行分析的入侵防范實施模塊。通過驗證 經(jīng)由分析法庭數(shù)據(jù)所提供的入侵事件的屬性,證據(jù)可《I起識別入侵的 類型以及威脅級別的分類。因此,保護裝置可無需遠程系統(tǒng)的協(xié)助而 關閉(按照它的嵌入實施防范模塊的入侵防范策略)單個應用。
如上所述,該功能可理解為無需通過中央撤消服務的外部干預而 使專用應用到期的部分裝置撤消。作為入侵防范系統(tǒng)的組成部分的保 護裝置對于已知DRM系統(tǒng)中用于內(nèi)容保護的方法有影響,使它成為中 央服務的要求,以便通過撤消對應密鑰撤消裝置或內(nèi)容來保持系統(tǒng)完 整性。但是,如果大量保護裝置淡出市場,則可能適當?shù)氖窃谥醒朐铝?務收集法庭數(shù)據(jù),并且根據(jù)對于單個裝置或多個裝置的撤消的顧客數(shù) 據(jù)和威脅分析來決定中央策略。適當?shù)南⒈簧刹挠糜诿總€單 獨保護裝置的已授權(quán)重新激活或撤消的遠程入侵防范服務發(fā)送。
系統(tǒng)能夠按照策略規(guī)則集合靈活響應入侵事件。策略規(guī)則由遠程 入侵防范服務漆于因特網(wǎng))提供(參見圖3c),并且可在許可證的例程 聯(lián)絡或時間更新時被更新。策略規(guī)則的部分也可以是許可證容器的通 用運行時系統(tǒng)的組成部分(監(jiān)視器程序、控制程序、內(nèi)核驅(qū)動程序)。 這個運行時系統(tǒng)的更新也可更新該策略。更新響應新發(fā)現(xiàn)的威脅情況。
按照策略規(guī)則,可用入侵檢測方法(現(xiàn)有技術(shù)或者如權(quán)利要求書所述)^皮使用以及分類。按照策略,確定攻擊等級并確定響應。響應可以
是具有不同持續(xù)性的鎖定
-無(完全沒有鎖定,忽略攻擊) -暫時(例如5分鐘,減緩自動攻擊) -永久
并且可影響系統(tǒng)的不同部分 -許可證 -許可證容器 -保護裝置
系統(tǒng)部分的影響最終引起鎖定受保護的軟件(的運行)。法庭數(shù)據(jù) (forensic data)的本地記錄和以后的傳輸也通過策略來配置。
在本發(fā)明的范圍內(nèi),術(shù)語"受保護的軟件"是受保護的應用或計 算機軟件應用程序的同義詞,它由提供許可證容器(可以是保護裝置的
用的許可證容器或保護裝置進行保護。這又稱作正常許可的受保護的 軟件的授權(quán)使用。受保護的軟件也是受保護的程序代碼,它至少在其 有效部分經(jīng)過加密,以便防止未保護環(huán)境中的程序運行,以及防止例 如調(diào)試器等入侵程序或入侵軟件在程序運行時的入侵。
本發(fā)明的范圍之內(nèi)的受保護的軟件可包括安全引擎和/或控制程 序和/或監(jiān)視器程序。
安全引擎是軟件組件,它提供作為獨立組件對主機側(cè)有影響的密 碼功能,以便與參與系統(tǒng)的入侵保護的其它所涉及組件進行通信。這 些其它的所涉及組件至少包括許可證容器。
一方面,安全引擎通過計算機系統(tǒng)的給定硬件平臺的0S/內(nèi)核與 保護裝置或許可證容器進行通信,以便訪問許可證條件、密鑰或其它 許可證參數(shù),從而允許運行受保護的應用。例如,這可通過對應用程 序的受保護部分進行解密或者通過對于來自程序運行的所謂程序保護 屏蔽的封裝應用進行解包來實現(xiàn)。在另一個鏈路中,安全引擎可與控制程序進行通信,以便交換通過控制程序提供給監(jiān)視器程序的參數(shù)。 在另一個實施例中,安全引擎還可包括監(jiān)^L器程序、控制程序和安全 部分。
控制程序本身是控制許可證容器或保護裝置的訪問的程序模塊。 控制程序功能可以是通用保護控制程序的 一部分。它可建立許可證容 器與控制軟件之間的通信鏈路。它還可提供入侵保護的監(jiān)視功能。
術(shù)語"保護機制"是檢測入侵程序的特定方法或者方法的組合, 它嘗試保護受保護的應用程序或者受保護的軟件。保護機制分別向監(jiān) 視器程序、向安全引擎或者向許可證容器、保護裝置發(fā)信號通知入4曼 事件。
在本發(fā)明的范圍內(nèi),監(jiān)視器程序為監(jiān)控和記錄入侵程序所引起的 威脅(例如攻擊)提供監(jiān)視功能。監(jiān)視功能可嵌入其它程序,例如嵌入 監(jiān)視器模塊。監(jiān)視器程序使用入侵檢測機制,它可生成描述入侵事件 的目標屬性,例如所謂的入侵檢測標準。換言之,監(jiān)視程序使用監(jiān)視 組件來監(jiān)視其它程序或計算機事件。
此外,換言之,入侵防范系統(tǒng)是由例如保護硬件裝置或許可證容 器等保護組件以及例如控制程序、監(jiān)視器程序和/或安全引擎以及相互 進行通信并且與保護裝置或許可證容器進行通信的后端和軟件系統(tǒng)等 軟件組件的布置組成的系統(tǒng)。它們通常防止應用程序受到入4曼程序的 入侵。后端系統(tǒng)還可包括遠程策略服務器,它提供遠程入侵防范服務 以便影響或控制單個保護裝置或許可證容器的行為。在這個上下文中, 詞語"行為"包括對許可證容器或保護裝置的訪問、鎖定或限制訪問 和/或其中存儲的信息的刪除。
本發(fā)明的另 一個方面涉及通過使用系統(tǒng)組件為計算機系統(tǒng)上的受 保護的計算機軟件提供入侵檢測的系統(tǒng),并且其中的保護裝置適合于 并且設置成連接到計算機系統(tǒng)。計算機系統(tǒng)至少包括監(jiān)視器程序、控 制程序和受保護的軟件。
監(jiān)視器程序通過包含來自受保護的軟件(受保護的應用程序)的審計信息的消息與控制程序進行通信,以便在計算機系統(tǒng)上運行程序。 控制程序具有用于與連接到計算機系統(tǒng)的保護裝置進行通信的功能, 其中保護裝置接收來自因特網(wǎng)的遠程入侵保護服務提供商服務器的入 侵防范規(guī)范。入侵防范規(guī)范規(guī)定要從監(jiān)視過程期間由監(jiān)視器程序生成 的可能目標屬性集合中記錄的至少一個目標屬性。
入侵防范規(guī)范還規(guī)定監(jiān)視過程期間觸發(fā)記錄至少一個目標屬性的 至少 一個監(jiān)視標準。監(jiān)視器程序適合于并且配置成響應檢測到至少一 個監(jiān)視標準而記錄至少一個目標屬性,以及監(jiān)視器程序運行(被執(zhí)行), 以便通過響應檢測到至少一個監(jiān)視標準而記錄至少一個目標屬性來產(chǎn) 生入侵日志。此外,出于入侵檢測的目的,檢查入侵日志以檢測模式, 例如鎖定受保護的軟件或保護裝置。
權(quán)利要求
1. 一種用于通過檢測入侵程序的攻擊來保護計算機軟件的方法,所述入侵程序干擾在具有處理器和至少一個處理器存儲器的計算機系統(tǒng)上的所述受保護的軟件的運行,-其中要保護的所述計算機軟件與許可證容器進行通信,所述許可證容器包含用于使用和運行所述受保護的計算機軟件的許可證并且包含至少一個密碼密鑰,-其中所述許可證容器為所述受保護的軟件提供許可證和密碼密鑰以保護其使用及其完整性,以及-其中所述受保護的計算機軟件至少部分經(jīng)過加密,并使用關聯(lián)密碼密鑰對所述受保護的軟件進行解密以便運行,包括以下步驟-在運行所述受保護的軟件期間,分析所述受保護的軟件的行為和/或所述計算機系統(tǒng)上的所述受保護的軟件的運行環(huán)境,以及搜索入侵或入侵程序的模式,-檢測運行所述受保護的軟件期間對所述受保護的軟件的入侵,其中所述入侵程序使用監(jiān)視組件來獲得未經(jīng)授權(quán)的訪問,-創(chuàng)建關于檢測到攻擊的信號。
2. 如權(quán)利要求l所述的方法,其特征在于,所述受保護的軟件包 括應用程序的原始軟件代碼和附加代碼或特殊操作碼、安全引擎和/ 或控制程序代碼。
3. 如權(quán)利要求2所述的方法,其特征在于,分析所述受保護的軟 件的行為包括分析所述受保護的軟件中的特殊操作碼的運行,和/或 分析特殊程序部分或者所述受保護的軟件代碼的部分的運行,和/或測量用于運行所述受保護的軟件的定時并且評估測量的結(jié)果。
4. 如權(quán)利要求1至3中的任一項所述的方法,還包括以下步驟 通過在所述受保護的軟件中運行任意命令、采用預先定義的特殊值來鎖定所述許可證容器。
5. 如權(quán)利要求4所述的方法,其特征在于,所述任意命令是鎖定 所述許可證容器的特殊加密操作。
6. 如權(quán)利要求4所述的方法,其特征在于,通過將計數(shù)器設置成 預定值、優(yōu)選地為零,或者通過刪除所述許可證容器中的必要密碼密 鑰,來執(zhí)行所述許可證容器的鎖定。
7. 如以上權(quán)利要求中的任一項所述的方法,其特征在于,分析所 述受保護的軟件的行為包括分析應用程序接口 (API)的運行,并且將頭 部運行的次數(shù)與尾部運行的次數(shù)進行比較。
8. 如權(quán)利要求2至7中的任一項所述的方法,其中,所述受保護 的軟件中的所述附加代碼是僅在入^j!i視程序引起的干^#式的情況 下才運行的誘斜碼,其特征在于,檢測所述誘倂碼的運行。
9. 如權(quán)利要求8所述的方法,其中,在所述受保護的軟件的導入 地址表(IAT)的未使用部分中引用所述誘斜碼。
10. 如權(quán)利要求8所述的方法,其特征在于,所述誘斜碼是所述 受保護的軟件中從不在無干擾操作條件下運行的部分。
11. 如以上權(quán)利要求中的任一項所述的方法,其特征在于,保護 裝置連接到包括所述許可證容器的所述計算機系統(tǒng)的接口 。
12. 如權(quán)利要求8和11所述的方法,其特征在于,所述誘斜碼使 用特殊-沒計的API調(diào)用來鎖定所述保護裝置。
13. 如權(quán)利要求ll所述的方法,其特征在于,在檢測到入侵軟件 的攻擊之后,法庭數(shù)據(jù)被創(chuàng)建以便用于記住入侵事件,并且所述法庭 數(shù)據(jù)優(yōu)選地存儲在所述保護裝置中。
14. 如權(quán)利要求13所述的方法,其特征在于,所述法庭數(shù)據(jù)存儲 在所述保護裝置的受保護存儲器中。
15. 如權(quán)利要求13或14所述的方法,其特征在于,所述法庭數(shù)據(jù)以加密形式存儲。
16. 如權(quán)利要求13至15中的任一項所述的方法,其特征在于, 所述法庭數(shù)據(jù)存儲在所述保護裝置的僅可一次性寫入的存儲器區(qū)域 中。
17. 如權(quán)利要求13至16中的任一項所述的方法,其特征在于, 所述法庭數(shù)據(jù)^皮集中并且^皮評估,以便檢測全局片莫式。
18. 如權(quán)利要求13至17中的任一項所述的方法,其特征在于, 將所述法庭數(shù)據(jù)發(fā)送給管理所述許可證和所述許可證容器中包含的所 述密碼密鑰的許可證頒發(fā)者或中央實例,發(fā)送所述法庭數(shù)據(jù)以便由所 述許可證頒發(fā)者或所述中央實例收集,以便在以后最終對所述保護裝置解鎖。
19. 如權(quán)利要求3所述的方法,其特征在于,測量用于運行所述 受保護的軟件的定時的步驟包括評估處理器異常的定時。
20. 如權(quán)利要求3所述的方法,其特征在于,測量用于運行所述 受保護的軟件的定時的步驟包括校驗整體時鐘一致性。
21. 如權(quán)利要求2或3所迷的方法,其特征在于,分析所述受保的已授權(quán)線程或者由入侵程序所創(chuàng)建的未經(jīng)授權(quán)的線程。
22. 如權(quán)利要求21所述的方法,其特征在于,使用TLS過程(線 程本地存儲過程)來發(fā)現(xiàn)未經(jīng)授權(quán)的線程。
23. 如權(quán)利要求21所述的方法,其特征在于,通過監(jiān)視API系統(tǒng) 調(diào)用的運行來發(fā)現(xiàn)未經(jīng)授權(quán)的線程。
24. 如權(quán)利要求1所述的方法,其中,分析所述計算機系統(tǒng)上的 所述受保護的軟件的所述運行環(huán)境以便識別入侵程序的步驟包括檢查 所述計算機系統(tǒng)上的其它進程以便檢測預定才莫式。
25. 如權(quán)利要求24所述的方法,其特征在于,檢查窗口和類參數(shù) 或進程以及文件名,以便檢測入侵程序的預定模式。
26. 如權(quán)利要求24所述的方法,其特征在于,部分或完整地檢查所述計算機系統(tǒng)上的其它進程的進程存儲器。
27. 如權(quán)利要求4至6中的任一項所述的方法,其中,連接到所 述計算機系統(tǒng)的接口的保護裝置包括至少一個許可證容器,其特征在 于,并非鎖定整個保護裝置,而是僅鎖定分配^^檢測到被入侵的所述 受保護的軟件的所述許可證容器。
28. 如權(quán)利要求4至6或27中的任一項所述的方法,其中,連接到所述計算機系統(tǒng)的接口的保護裝置包括至少一個許可證容器,并且 所述計算機系統(tǒng)配置和設置成與遠程時間戳服務器進行通信,其特征在于,在需要所述計算機系統(tǒng)與所述時間戳服務器之間的 通信以便繼續(xù)進行所述保護裝置的操作時,鎖定所述保護裝置。
29. 如權(quán)利要求13所述的方法,其特征在于,向入侵防范服務的 遠程服務器傳送所述法庭數(shù)據(jù),以及使用從入侵防范服務的所述遠程 服務器發(fā)送的特殊命令或代碼對鎖定的許可證容器進行解鎖。
30. —種通過使用系統(tǒng)組件為計算機系統(tǒng)上的受保護的計算機軟 件提供入侵檢測的系統(tǒng),包括監(jiān)視器程序,通過包含來自所述受保護的應用程序的審計信息的 消息與控制程序進行通信,以便在所述計算機系統(tǒng)上運行程序,所述控制程序,具有用于與連接到所述計算機系統(tǒng)的保護裝置進 行通信的功能,并且所述保護裝置接收來自遠程入侵保護服務提供商 的入侵防范規(guī)范,其中,-所述入侵防范規(guī)范規(guī)定要從監(jiān)視過程期間由所述監(jiān)視器程序生 成的可能目標屬性集合中記錄的至少一個目標屬性;以及-所述入侵防范規(guī)范還規(guī)定所述監(jiān)視過程期間觸發(fā)記錄至少一個 目標屬性的至少一個監(jiān)視標準;-所述監(jiān)視器程序適合于并且配置成響應檢測到所述至少一個監(jiān) 視標準而記錄所述至少一個目標屬性,以及所述監(jiān)視器程序^皮運行以 便通過響應檢測到所述至少一個監(jiān)視標準而記錄所述至少一個目標屬性來產(chǎn)生入侵日志;以及-出于入侵檢測的目的,檢查所述入侵日志以檢測模式。
全文摘要
通過檢測入侵程序的攻擊來保護計算機軟件的方法,該入侵程序干擾具有處理器和至少一個處理器存儲器的計算機系統(tǒng)上的所述受保護的軟件的運行,其中要保護的計算機軟件與包含使用和運行受保護的計算機軟件的許可證并且包含至少一個密碼密鑰的許可證容器進行通信,其中許可證容器為受保護的軟件提供許可證和密碼密鑰以保護其使用及其完整性,以及其中受保護的計算機軟件至少部分經(jīng)過加密,并且使用關聯(lián)密碼密鑰對所述受保護的軟件進行解密以便運行,該方法包括以下步驟在運行受保護的軟件期間,分析受保護的軟件的行為和/或計算機系統(tǒng)上的受保護的軟件的運行環(huán)境,并搜索入侵或入侵程序的模式,檢測受保護的軟件的運行期間對受保護的軟件的入侵,其中入侵程序使用監(jiān)視組件來獲得未經(jīng)授權(quán)的訪問,以及創(chuàng)建有關檢測到攻擊的信號。
文檔編號G06F21/14GK101473333SQ200780022604
公開日2009年7月1日 申請日期2007年6月9日 優(yōu)先權(quán)日2006年6月21日
發(fā)明者M·巴克海特, O·溫曾里德, P·威克曼, R·庫格勒 申請人:威步系統(tǒng)股份公司