入侵检测的方法和系统的利记博彩app

文档序号:6455224阅读:291来源:国知局
专利名称:入侵检测的方法和系统的利记博彩app
技术领域
和背景
本发明涉及用于通过检测入4曼程序的攻击来保护所迷计算机软件 的方法和系统,该入侵程序干扰在具有处理器和至少一个处理器存储 器的计算机系统上的受保护的软件的运行。
现有技术/
背景技术
描述了保护服务器-客户机网络环境以防止服务器系统^l外部客 户机访问的许多攻击防范系统。通常在服务器侧存在分析来自外部客 户机送往服务器的业务所调用的访问过程和行为的监视进程。对于典
型行为才莫式的比较允许或不允许该访问。例如,Alcatel的申请 US2005273855描述了这样一种系统,其中在申请中没有具体描述(并 且不是那个申请的发明的組成部分的)专用攻击防范装置^f呆存访问控 制功能用于允许或阻止对服务器系统的访问权的黑名单。要求攻击防 范装置向服务器的访问限制功能发送命令,以便管理对系统的可访问 性。
另 一种现有技术(Oioo, US4932054)描述了在插入计算机的通信端 口的软件保护硬件装置中结合的过滤器組件。该装置选择从通信端口 发出的、从用于保护应用程序的控制软件的命令中产生的比特或者比 特组合。过滤器组件选择与产生用于激活保护装置中的功能的过滤器 組件的输出的参考码匹配的"伪装预定控制代码"的比特。
发明描述
本发明的一个目的是提供用于检测对计算机系统上的应用软件的 入4曼的方法。该方法应当可靠地监视入侵的这类企图,并且应当极为有效。
此目的通过具有权利要求1所述的特征的方法以及具有权利要求
30所述的特征的系统来实现。在从属子权利要求中定义如权利要求1 所述的本发明方法的其它发展和特殊实施例。
根据本发明的用于保护计算机软件的方法检测入侵程序的攻击, 该入侵程序干扰在具有处理器和至少一个处理器存储器的计算机系统 上的受保护的软件的运行(execution)。受保护的软件包括通过嵌入附 加代码进行修改的受保护的程序、特别是应用程序。例如,受保护的 專欠件可包括集成到受保护的4欠件中的控制程序和/或安全引擎和/或监 视器程序。
根据本发明,将要保护的计算机软件(受保护的软件)与许可证容 器进行通信,许可证容器包含使用受保护的计算机软件的许可证,并 且包含至少一个密码密钥。许可证容器为受保护的软件提供许可证和 密码密钥以保护其使用及其完整性。
受保护的计算机软件至少部分经过加密,并使用关联密码密钥对 所述受保护的软件进行解密以便运行。关联密码密钥或密钥是包含在 许可证容器中并且与受保护的软件一起和/或为受保护的软件生成的 密钥,以便限制和控制软件的使用以及对受保护的计算机软件的至少 部分加密部分进行解密。
根据本发明的方法包括以下步骤
在运行受保护的软件期间,分析软件的行为和/或计算机系统上的 受保护的软件的运行环境。此外,在这个运行期间,搜索入侵程序或 入侵的模式。在另一个步骤中,根据受保护的软件的行为的分析或者 根据计算机系统上的运行环境的分析,来检测进入受保护的软件的入 侵。入侵程序使用监视组件或监视器程序来获得对受保护的软件的未 经授权的访问。在检测到入侵或试图入侵时,创建信号。信号可以是 标志等,它由受保护的软件、控制程序、监视器程序、安全部分和/ 或计算机系统进行处理以便进行进一步处理。在本发明的范围中,受保护的软件的行为包括在运行受保护的软 件期间和/或之后的受保护的软件的反应。如果入侵程序尝试渗入受保 护的软件,则应用的反应、计算机系统的计算机软件的处理器容量的 使用、用于运行受保护的软件的完整程序或者特殊程序或代码部分的
整体定时(overall timing)可能偏离。此外,术语"行为"还包括到 处理器或处理器存储器中的特殊逻辑地址的链接。
如上所述,计算机系统或主计算机包括安全装置、通常是用于软 件保护或软件实现许可证容器的加密锁(dongle),提供用于检测和识 别来自运行于同 一个主计算机的本地入侵程序的攻击的攻击检测功能 以及其它安全功能。
入侵软件可通过本地方式和/或通过来自与本地主计算机进行通 信的远程连网计算机或服务器的远程访问来引入。入侵软件可用于攻 击和分析软件保护系统所保护的计算机软件,如WIBU-P6专利 EP118477 Bl所述。
可以是保护硬件组件、可以是可分离安全加密锁或者软件许可证 容器的许可证容器(以下称作一般术语"许可证容器")为单站计算机 或连网计算机提供许可证访问参数,以便对主机应用软件进行解锁, 但这不是进行限制。除了软件之外,々某体内容或者任何类型的数据也 可通过这种许可证容器来保护。术语"软件"在此只是一个示例。在 以下"保护目标"部分给出更准确的定义。
对于避开通过客户机程序向受保护的应用程序所提供的已安装保 护机制,许多方法被使用并且是已知的。本发明所提出及所述的概念 是检测和防止通常分解运行于计算机主机系统上的进程并且避开为目 标应用程序所提供的保护机制的不同攻击方法的对策。
各种攻击的方法与检测和防范机制的对策可能同样多。本发明概 念提出新方法及其组合来检测和分析入侵事件,以及将它们报告^f呆 护系统,以便组织防御措施。
本发明用于实施例如EP 1184771 Bl中提出的用于保护软件、多媒体内容或者任何类型的数据文件的许可证系统。充当许可证容器的 保护装置经由主计算机接口和一組消息与控制软件进行通信,以便保 护目标应用软件的使用和完整性。标准的应用软件经过加密,并且需 要许可证及关联的解密密钥来对应用软件进行解密以便程序运行。入 〃f曼软件可攻击这种进程,并且例如可侵入保护硬件与控制软件之间的 通信链路,以便允许运行应用程序。未经授权使用(例如为了伪造而使 用调试器工具)的监视软件组件引起的任何入侵事件将^皮尽早发现。另 外,在入侵应用对运行时的受保护的应用程序进行任何千扰时,伪造 数据或指令的入侵应用程序将被检测并用于防止破坏受保护的程序代 码的完整性或者可表示单进程的运行的预定代码段的序列的运行。
将通过阻挡许可证容器与;f企查入侵的控制丰欠件组件、又称作控制 程序(或者控制程序才莫块)之间的通信链路来保护访问限制组件的完整 性。在防入侵方案之中,CodeMeter Developers Guide的手册(第89 页)中描述的一种已知方法提供控制程序(CodeMeter. exe)扫描系统中 例如用户沖莫式调试器、内核调试器、又称作"IDE"调试器的综合开发 环境调试器等不同类型的调试程序的存在的能力。在启动受保护的应 用程序之前,例如,控制程序的控制才莫块向保护装置(CodeMeter)生成 消息,使得与软件保护控制软件的通信链路被阻挡。使用计数器描述 成用于使许可证的使用次数递减。将单元计数器用于入侵检测允许在 取消建立使用控制系统之前发生一个以上入侵检测事件。这留待对于 控制系统建立的策略来实施阻挠所检测的入侵的措施。
本发明的一个目的是使用更复杂的方法以便在攻击或入^f曼期间隐 藏攻击防范措施变为活动的位置和时间。这不会在激活攻击防范过程 期间为入侵者或入侵软件留下痕迹或线索。
与许可证容器进行通信的控制程序模块或功能可以是具有并不局 限于入侵防范和许可证访问管理的许多功能的整个保护控制程序的组 成部分。控制程序还可以是操作系统(0S)的内核驱动程序的外部组成 部分,或者可嵌入应用程序或者受保护的软件本身。本发明所述的方法包括用于检测入侵软件的各种检测机制,并且 包括防止硬件装置与控制程序进一步通信以及揭示例如分别用于应用 程序的受保护的软件的解密的状态信息、密码密钥或秘密密钥等的任 何通信协议参数的各种措施。
在本发明方法的 一个优选实施例中,受保护的软件的行为的分析 包括例如受保护的软件中嵌入的特殊操作码的分析和运行或者特殊程 序部分或受保护的软件代码中的部分的分析和运行。此外,受保护的 软件的行为的分析还包括测量用于运行受保护的软件的定时并且评估 测量的结果。例如,如果例如调试器等入侵软件运行受保护的软件, 则运行完整软件或者软件的部分的时间比没有任何入侵的无干扰情况 下的运行持续更长。
分析这类特殊操作码或特殊程序部分的运行的一个示例可以是诱 何码的运行。下面更详细地描述这种情况。
在接收到指明入侵检测的消息时在硬件装置内部进行的计数器测
量也可通过使用不同方法来改变,以便防止通信协议的重构或重i丈。
基础技术的基本描述 保护目标
本发明用于实施关于计算机系统的许可证信息。这种许可证 (license)—方面可以是运行某个程序的许可,而另一方面可以是查看 或使用某个内容的许可。内容本身的保护通过能够对内容解密的特殊 修改查看器(或者使用内容的其它部件)来实现。另一方面,受保护的 程序不仅在普通意义上是可执行的(例如原始窗口二进制),而且还可 在各个方面扩展到脚本。最明显的示例是Java和".NET"程序,它们 目前公认是程序但也全部是其它类型的脚本。随着计算机发展为越来 越功能的强大,"原始程序"与"便携脚本"之间的差异日渐转弱。 保护这些种类的知识产权时使用的机制完全相同。因此将保护目标命 名为"受保护的应用"或"受保护的软件",而不管它是狭窄意义的程序还是脚本或数字内容。 保护思路
通过将特殊代码插入受保护的程序(或者在纯内容的情况下的"查
看器")来实施保护。这个插入代码称作"安全引擎(SE)",并嵌入到 被插入程序的所谓"安全部分"(本文中参照附图对它进行说明)。一 些安全服务是可与受保护的应用分离并且常驻外部"控制程序"的这 些安全服务的更通用部分(如图3a、 3b、 3c所示)。由于功能性可在不 同部分(安全引擎-控制程序)之间移动,受保护的应用的单元、安全引 擎和控制程序将被当作单个单元并被称作"受保护的软件"(参见图 3b、 3c)。
保护技术
典型程序由不同部分組成。这里的术语取自众所周知的窗口系统, 但是大部分也用于其它系统(脚本或其它平台)。
从图2可以理解,程序由包含用于加栽程序以及标识不同部分的 某种元信息的头部组成。代码部分包含大多数可执行代码。这个代码 可根据需要修改和修正。取决于平台,改变和修正该代码或多或少是 困难的。数据部分包含应用所使用的二进制数据。资源部分最常见于 GUI应用程序。从应用本身以及从操作系统进行访问。在保护进程中 添加安全部分。它包括对可执行代码进行解密的重要部分,并且与许 可证容器或控制程序进行通信。可执行代码与操作系统之间的连接通 过导入地址表(IAT)来进行。当启动受保护的软件时,操作系统在这里 将指针设置到操作系统的功能(API)(参见图la、图lb)。保护机制可 使用这个表来截取这些功能调用。当截取调用时,通常首先运行头部, 然后运行API,最后运行尾部(参见图2)。
A) 将使用检测入侵(或攻击)的下列方法
技术领域
本发明方法的一个有利实施例分别将"诱斜码(bait code)"插入 受保护的软件的程序代码或者原始应用程序代码。"诱斜码"在本发明的条件下理解为特定程序代码,它表现为作 为应用程序代码的组成部分(或者作为控制对保护装置的访问的控制 程序的组成部分)但没有应用程序本身的含义或用途、并且实际上在应 用程序的常规运行期间没有运行的常规程序代码。对于入侵程序,没 有深入了解整个应用程序就不可能提供充分的分析来区分诱斜码和常 规应用程序代码以及从其中建立用于避免诱斜码所表示的这类"程序 运行陷阱"的优选策略。例如,仅在出现调试或跟踪事件时,诱辨码 才引起设置标记或指针以指明已经通过例如调试进程运行了诱饼码。 这种事件可被解释为并且发信号通知为出现入侵检测事件。诱辨码可 分散于不同的程序位置,并且并非每一个诱斜码均可用于发信号通知 入侵检测事件。在另一种情况下,诱斜码在解密和可执行代码的部分 之间保持为被加密。这种加密代码可有利地用于(应用程序的)核心部 分,其中这类部分中的诱斜码的解密很可能发生并引起及早发现该事 件。在启动(诱饰码的)解密进程时,将发信号通知入侵检测,参见图
l(a)。
使用诱斜码的另 一种情况是在导入地址表(IAT)的未使用区域中 生成指针条目。这类"静止条目(dead entry)"的运行也将触发入侵 事件,参见图l(b)。
本发明方法的另一个优选实施例包括检测釆用API包装器 (wrapper)的部分代码运行。
在程序运行期间,包装的API用来访问通过该进程步进时遇到的 运行的后续代码序列的功能 一种可能性是插入头部-API-尾部。
只有该进程的完整运行才防止入侵4企测,同时通过代码序列来实 施API功能调用。
但是,在大多数情况下对受保护的应用程序的攻击期间,仅运行 头部部分。不使用尾部将引起检测程序运行中的例外行为,并且引起 发信号通知入侵事件(参见图2的步骤)。
该方法的另 一种优选形式涉及通过进程监#见来4全测异常。假定与应用程序(或控制程序)分离并且作为独立进程运行的监视 程序(监视器程序)用来跟踪应用程序运行的常规过程。在应用该方法 的 一种情况中,执行应用程序的专用程序段的定义序列的定时条件由 监视器程序记录,然后进行对照分析,以便对表示应用程序的"无干 扰"运行的数据建立才莫板。这种方法可适用于可能不是实时操作系统 的标准操作系统环境,其中程序运行的定时条件在进程运行的严#"定 时条件下保持为非常稳定并且是可再现的。在入侵的情况下,例如在 运行诱饰码的同时,程序运行的定时条件可开始改变,因而可指明预 定定时条件的限制下的异常程序运行。作为监视器^^莫块的组成部分的 概率分析功能可判定入侵检测符合检测标准、如对于代码序列的部分 所允许的最坏定时条件。为了建立这类定时模式,监视器模块可使用 从运行程序代码的预定部分发生的处理器运行周期的测量。
在建立和运行监视功能的另一种情况中,调试器本身的调试器接 口可结合到监视器模块中。根据集成到监视器模块的调试器接口的实 现,必须考虑保护系统内部其它位置上实现的任何反调试(与调试器检 测的对应入4曼机制相比)。
本发明方法的又一个优选实施例包括高级调试器检测。
当调试器用于监^f见应用程序时,定时条件也可改变。在这种类似 情况下,控制程序的监视功能能够发现程序序列的非预计定时才莫式。
监视功能也可以是os的特定内核驱动程序的组成部分,或者可以是应
用程序本身的组成部分。
本发明的又一个优选实施例包括通过识别定时^f莫式的高级调试器
;险测方法,可描述如下
一个示例是通过处理器异常、如无效操作或访问冲突来检测程序 运行中的定时异常。另一个示例^J^见和^^测普通代码运行中的定时 异常,与使用监视器模块所述的相似。
中断点(即,将中断程序运行的程序地址的位置)的设置也影响监 视器程序显而易见的定时。在相关性的已确定代码部分、即对于维护受保护数据和应用程序 代码的完整性是关键的代码部分所设置的中断点引起可用以检测通过 调试器的存在的入侵的运行定时^t式。不同的调试器可具有可用以通 过监视器模块来识别它们的典型定时模式。
另一个程序功能可基于例如在控制程序与许可证容器或保护装置 之间的通信链路上的预计中断点设定。通过调试器的中断点的设置可 通过预定地址位置中的预先定义值设定来检测。虽然在关键程序段中 的中断点设定的预计位置上运行程序代码,但是,监视功能将预期预 先定义值条目,因而将停止或避开关键程序代码的进一步运行,以防 止其它调试步骤。
在监视器程序扫描专用调试器在净皮运行时通常占用的地址空间的 同时应用另 一种方法。所监视的这类存储器模式可与在其上监视器进 程通过存在某种类型的调试器来分析遇到的威胁级别的典型存储器模 板进行比较。这可使监视器程序分别生成或者不生成许可证容器或保 护装置的入侵消息。例如,如果调试器功能嵌入控制才莫块中,则遇到 的存储器模式不是用于直观而是用于预计监视目的。在这种情况下, 监视器程序忽略调试功能的存在。
本发明的另 一个优选实施例包括主动提供线程的检测。
线程作为共享相同资源的子进程而发生。在运行受保护的程序的 过程中,多个线程定期使用单个主进程的相同状态信息,并且它们共
享地址空间和其它资源、如文件I/O。在检测到主动提供线程时发信 号通知入侵。
这可通过不同措施来实现
a) 用于创建线程以便获得有效线程的列表的API的监视 监视器模块提供用于监控在常规API功能调用之下运行的线程的
功能,并且维护容许线程的列表。如果从外部进程创建主动提供威胁, 则监视器模块将检测这个线程,并且发信号通知主动提供线程的入侵。
b) 使用"TLS"代码创建线程的监视线程本地存储装置(TLS)是保留的并且来自OS指定的存储区,其 中线程将公用存储装置用于配合操作和数据共享。因此,所有线程运 行定义的"TLS代码"以便将它们的本地数据初始化。这个代码可用 于监视所有线程以及在原始进程空间中尚未创建、将由监视识别和发 信号通知的主动提供线程的创建。
c) "未经授权的线程"的API调用的检测
使用由头部、API和尾部组成的包装的API从进程空间外部创建 的未经授权的线程还将由监视器模块来检测,并且使监视器模块发信 号通知入〗曼检测。
B) 在检测到攻击或入侵时采取的措施
(通过控制程序)与控制模块配合工作并进行通信以便接收关于入 侵检测的信息、即可以是包含这种信息的消息的保护装置将^L阻止通 过控制程序进一步进行访问,或者^皮置于不同状态(等待状态),取决 于实施策略并且与所检测的入侵类型相关。入侵检测机制可嵌入控制 程序(1),可以是受保护的软件或者受保护的应用程序本身(2)的组成 部分,可以是独立监视器程序(3)的组成部分,或者可以是OS内核驱 动程序(4)的嵌入功能或程序代码。
进一步访问的拒绝可影响许可证容器中保持的受保护许可证单元 计数器、例如保密程序或密码密钥或内容加密密钥等受保护数据以及 将与控制程序共享的其它类型的受保护数据的访问。
例如,在采取加密锁或USB记忆棒形式的硬件保护装置的情况下, 可通过在接收所检测攻击的信号之后设置标志来引起保护装置、包括 例如许可证容器的装置的锁定。保护装置的禁用还可通过令使用计数 器递减或者设置可逆或可不可逆的入慢j企测标志禁用装置通信来实 现,还可通过清除内部存储的秘密密钥或密码密钥来实现。
在接收来自控制程序的已确定入侵检测消息时,可激活删除密钥 的机制。与保护装置的通信仍然可与控制程序继续进行,但将拒绝访 问用于在已经检测到特定攻击的主机侧运行解密进程的关键密钥的请求。
可通过使用包含与特殊但不可区分的参数配合使用的共用API的 覆盖锁定机制来实现保护装置的禁用。
在这种情况下,当常用API用于功能调用时可选择用于保护的路 径,并且调用的参数可以不识别为例外,例如密码操作的返回值、特 定文本或者存储的动作。在接收标记为入侵检测参数的这类不可区别 参数时,将调用保护装置的锁定或者"告警"机制的激活。
禁用或锁定保护装置的另 一种可能性是根据解密操作的结果进4亍 锁定。
在应用程序的不同位置以及在控制程序的位置,可调用(即通过调 用包装的API功能)用于密钥或参数的解密的密码功能,其中这种解密 操作的返回值可引起对于与预定值的比较操作的结果发送信号通知入 侵检测。在这类加密值已经传送给装置之后,这种比较可在保护装置 的唯一控制下执行。
作为一个示例
原始代码的修改可用于禁用标准分析方法。例如,API调用的修 改可使程序调用安全引擎,并且在加密之前对于从控制程序所接收的 加密输入参数进行解密时,获得返回值。控制程序传送给保护装置的 返回值可开始进一步处理返回值,例如与保护装置内部的预定值进行 简单匹配和比较。作为一个示例,原始代码的修改可通过运行"静止" 诱斜码来引起。
C) 法庭证据(forensic evidence)的收集
在检测到攻击时,保护系统可收集法庭证据,以便实现以后针对 攻击者的合法步骤。法庭数据设计成以后识别攻击者或者至少识别他 的计算机。因此,法庭数据可包含以下数据但不限于这种数据
-计算机的硬件标识等 -网络卡的硬件地址
-例如处理器、主板、硬盘、图形卡等的不同计算机组件的序列号
-不同计算机组件的版本和制造商数据 -计算机的软件标识等 -巻序列号
垂os许可证号 -用户标识等 -邮件地址
-用户名
为了收集入侵的进一步证据,可应用以下方式或步骤
a) 禁用硬件以便阻止其它攻击,以及激发原始许可证以联络许 可证颁发者,以便恢复许可证。
在检测到保护装置被禁用时,被许可人将申请恢复对许可证和内 容的丟失访问权。这将允许许可证颁发者收集用于跟踪记录以及建立 将许可证恢复到被禁用保护装置的策略的数据。
在许可证颁发者判定时,装置功能性或者装置功能性的一部分可 在恢复单个或多个许可证访问功能时重新建立。许可证颁发者可自行 集中所收集的数据,或者可改为将数据传递给中央实例(入侵防范服 务),以生成当前威胁情况的全局观点。在评估这些集中数据时,可生 成用于锁定保护装置的新响应策略。这些策略通过例如中央时间服务 器或者通过许可证颁发者在许可证和软件更新过程中集中分发。在本 发明的范围内,术语"被许可人"和"许可证颁发者"不仅指合法实 体,而且还包括所使用的计算机、计算机系统或服务器。这种情况下 的许可证颁发者通常远离祐L许可软件存储在其中并且将被运行、通过 许可证密钥或密码密钥保护的计算机。许可证颁发者包括其中存储了 与被许可软件或应用程序有关的信息、许可证信息、许可证密钥和/ 或密码密钥的服务器。
b) 防改写保护的"一次性写入"存储器中的证据的收集 在将时间戳记日期和时间用于所记录的各入^曼的同时检测到这种事件之后,可将所检测的入侵写入或记录到一次性写入存储器中。
许可证颁发者可定期访问保护装置以收集法庭证据的数据。通过 将装置禁用命令发送给控制程序,其中控制程序将这种命令传递给装 置本身,许可证颁发者可根据它自己的入侵检测策略来撤消许可证。 假定许可证容器或保护装置能够充当使多个许可证颁发者对保护装置 的用户许可其相应的受保护的软件或应用程序的保护装置。因此,可 能发生一个以上应用程序由相同保护装置来保护的情况。根据在保护 装置之下运行的应用程序的类型,多于一种类型的入侵可发生并且可 被检测。这意味着,特定入侵检测机制可应用于一种类型的应用,而 在另一种类型的应用中,它不可应用。因此,可需要在禁用装置之前 按照所使用并且最终在一段时间受到不同类型的入侵攻击的不同类型 的受保护的应用程序来记录或审计保护装置内部的法庭跟踪的入侵事 件。
许可证的撤消过程、例如删除密钥访问或者拒绝对存储秘密的访 问、或者阻挡与装置的通信可以仅导向和限制到许可证颁发者拥有的 并且已经同意给予^皮许可人的特定许可证的集合。在记忆棒保存多个 许可证颁发者的许可证时,单个许可证颁发者的撤消策略将通过以下
方式来设置某个汰要)等级的违反安全性的入侵事件不会影响其它 许可证颁发者保持的并且由单个许可证颁发者控制和负责的许可证。 可以想到,其它受保护的应用与保护装置仍然是可一起操作的,只要 入侵没有被导向例如控制模块本身所控制的通用安全防范并且不是所 有受保护的应用必要的。可以理解,撤消机制可以是可缩放的,并且 被分类为单个应用撤消事件或者可扩展到整个装置撤消。
本发明的又一个方面是覆盖对于多台计算机平台的法庭跟踪,因 为该装置是便携的,并且可在受到不同的入侵威胁的多台计算机上使 用。又一种情况可意味着,基于不同操作系统的不同计算机用于相同 的受保护的应用。因此,根据所遇到的多个环境的方面的法庭跟踪可 需要审计根据上述方面的保护装置内部的入侵。通过实施嵌入到装置的入侵防范策略,入侵事件的信息的收集可 更适合于在禁用装置之前的特定数量的事件。在保护装置内部的安全 存储位置存储收集的审计的另一个优点是通过安全传输向许可证颁发 者的服务、向因特网的远程入侵防范服务提供审计数据。作为用于备 份许可证参数的恢复文件的组成部分,传送的审计数据可用于以后在 策略服务器中的各种用途的评估。在一个方面,数据例如可用于按照
入^:防范M^务的策略主动重新启用^皮禁用的保护装置。在另 一个方面, 使服务分析从多个保护装置审计的多个入侵事件的上下文中的法庭数 据可以是有利的。
作为另 一个方面,可存在对于激活时间和到期时间所设置的时间 参数,其中在装置内部可在规定周期中监视入侵事件。在记录可净艮告 至少单个入侵事件的审计(audit)时,装置可请求用于与事件关联的时 间戳。保护装置可在控制程序的支持下向远程入侵防范服务传送法庭 数据。
另外,下面根据附图所示的示范实施例更详细地说明本发明。通 过描述和附图,本发明的其它特征、形式、方面和优点将变得非常明 显。本文提供的特殊性可单独或者结合使用以创建本发明的优选实施 例。附图包括


图1示出基于嵌入诱何码的入侵检测的示意图2示出具有嵌入安全部分的受保护的软件的视图3示出受保护的软件相对于计算机系统的操作系统的不同配置。
按照图l(a)的示例,诱斜码可部署在包括定义为安全部分(在控
制程序中)的区域的不同代码部分的可执行代码中。IAT(指针)寻址方
案提供针对操作系统的安全部分和API调用中的诱斜码的使用的一个
示例。"指针"代码(到诱斜,的链接)使程序跳转到安全部分。通过
监视和分析安全部分的专用位置的诱斜码的运行,控制程序可发信号 通知对保护装置的入侵的情况。作为OS的调用时的分隔符出现的、在此标记为"0"的未使用IAT 条目、例如"Kernel32"或"User32"可用于指向代码部分中包含的 "静止"诱斜码以便运行。然后,控制程序或监视器程序可才艮告从未 使用IAT条目位置所调用的诱斜码的此类运行,作为发生的入侵事件 的指示。
图2示出受保护的应用中的程序流的一般方案,以便示出未保护 应用与受保护的应用之间的差别。
1. 在程序头部中是到应用的OriginalEntryPoint (0EP)的链才妄, 这是操作系统开始运行的点。当保护程序时,将这个值修改成指向安 全部分。
2. 从0EP向上运行该代码。
3. 在许多点将存在对操作系统功能的"调用"。
4. 指向被调用功能的指针由操作系统设置在所谓的导入地址表 (IAT)中。当保护应用时,这些指针重定向到安全部分。
5. 在安全部分,运行预计功能的执行之前的头部。这个头部可能 进行某种反调试器校验(check)。
6. 在头部之后,调用原始功能(API)。
7. 在该功能(function)之后,在安全部分内部运行尾部,清除已 分配的程序栈并且可能进行更多反调试器校验。尾部使程序运行直接 返回受保护的应用。
8. 对于未保护应用,IAT直接指向操作系统。对于受保护的应用, 在IAT中可能还存在一些指针,它们没有重定向到安全部分,因为每 一次重定向对于整体性能具有显著影响。
通过仅运行包装API的头部,入^f曼事件将由控制程序在进一步程 序运行的过程中检测到。
根据本发明的另一个优选实施例,通过生成哈希值并将它们与入 侵检测的预计值进行比较,来执行入侵检测。
通过控制程序生成并传送给保护装置的消息可将CRC (循环冗余校验)或其它哈希算法用于消息数据完整性。消息也可由公开/私有密钥 算法进行签署,以便由保护装置认证控制程序。监视器程序在作为与 控制程序进行通信的独立进程安装时,可使用确保与控制程序发生通 信时的数据完整性和消息真实性的相同方法。为此,监视器程序可具 有与安全引擎的直接链接,以便运行安全算法。
在优选实施例中,假定安全引擎在TPM (可信平台模块)所控制的 密封存储器区域的未来平台中,以便提供用于运行安全性相关功能调 用的高级防篡改。密封存储器将是为受限程序运行所保留的专用RAM
限。嵌入受保护平台的TPM提供向程序指定密封存储器的标准化方法。 如以上方法所述,保护装置可从控制程序接收通知来自入侵程序
代码的攻击的状态的消息,以及其上的装置认证该消息并检验数据完
整性。在另一个步骤中,装置可按照嵌入装置的入^:实施策略来中断
与控制程序的通信。
在图3a、图3b、图3c所示的筒图中,入侵防范系统的主要系统
组件的优选实施例和布置的一部分将^f皮示出并通过其相应功能来表
示o
体系结构概览描述
图3a示出入侵检测系统的基本系统功能,该系统包括控制程序、 保护装置、受保护的应用、安全引擎和监视器程序。
计算机系统的平台经由电接口 (即USB接口)与保护装置进行通 信。控制程序通过控制消息、经由计算机系统的操作系统(OS)与保护 装置进行通信。如果由保护装置接收到入侵的消息,则将在装置禁用 控制功能中评估该消息,并且在遇到指明匹配入侵检测时将禁止装置 进行进一步通信,例如向控制程序提供解密或者可访问数据。
嵌入到控制程序中,监视器程序可对于在受保护的软件的控制之 外运行的外部应用程序运行监视功能。作为第一个任务,如果从入侵防范的观点可能需要其它程序的程序监控,则它非限制性地通过跟踪 和记录程序的运行来进行受保护的应用的监视功能。然后,收集的数 据将^皮传递^^监视器程序,并经由控制程序传递给保护装置。
受保护的应用使用与受到保护的应用的安全部分等效的安全引擎
SE的API。功能调用通过过滤器,并且可进一步路由到包含应用所需 的相关内核功能的OS。所有其它调用与安全引擎内部的特定功能相关, 例如充当对受保护的应用的程序屏蔽的保护层的解包。
图3b示出嵌入安全引擎环境的控制程序和监视器程序。 作为另 一个实施例,控制程序和监^L器程序将嵌入安全引擎环境。 控制程序与仅在一个进程空间内部运行的监; 见器程序和安全部分进行 通信。在本发明的一个方面,这对于使用如上所述的TPM的可信计算 环境中的受保护的应用的便携性以及高级程序完整性的实现是有利 的。另外,保护应用的API可得到筒化,同时支持监视应用和安全功 能调用的功能。
在这里未示出的另 一种情况下,监视和控制程序可成为操作系统 (OS)的内核功能,并且可由安全引擎调用。不同的OS可需要系统功能 到所支持平台的不同优选才直入。
图3c示出功能块与所包含的远程入侵保护服务之间的逻辑链接。 在描述功能单元之间的逻辑链接的简图中,远程服务功能表示为 例如通过因特网通信来提供与保护装置的连通性。这个功能可以是许 可证颁发者的已建立服务的补充服务功能,用于提供保护装置的许可 证容器之一中存储的许可证并且容许对受保护的应用的使用权限。虽 然对于软件和内容的许可证管理具有完全控制,但是许可证颁发者 (licensor)可能希望监视和控制已经对受保护系统发生的攻击,而不 管它是适当位置上的许可证系统(例如EP118477 Bl中所述的DRM系 统,通过引用将它包含在本申请中)还是保持为不受入侵攻击的特定受 保护的应用。
根据本发明,在主-从功能中与主计算机系统配合操作的保护装置可作为附加功能而具有在移动情况下其能发生时自发存储和分析作为 对于多个平台的收集数据所采集的入侵事件的能力。又按照调查威胁 级别的能力,入侵防范实施才莫块可禁用与控制程序的进一步通信,并 且可有选择地废除数据的进一步使用或者遭受违反安全性。所记录的 调试进程的行为模式(例如包含攻击的方法和频率)可由实施模块进行 分析,并且可引起禁用保护装置。
作为一个示例,装置还可识别TPM的存在,并且因而由于以下事 实而可允许不太复杂地应用不同的威胁;漠型安全性可^t建立,并且 能够以比更易于运行入侵代码的开放式不安全系统更高的基本等级来 实施。下载到保护装置中的保护策略数据可按照通过入侵防范服务所 规定的实施策略来控制用于执行分析的入侵防范实施模块。通过验证 经由分析法庭数据所提供的入侵事件的属性,证据可《I起识别入侵的 类型以及威胁级别的分类。因此,保护装置可无需远程系统的协助而 关闭(按照它的嵌入实施防范模块的入侵防范策略)单个应用。
如上所述,该功能可理解为无需通过中央撤消服务的外部干预而 使专用应用到期的部分装置撤消。作为入侵防范系统的组成部分的保 护装置对于已知DRM系统中用于内容保护的方法有影响,使它成为中 央服务的要求,以便通过撤消对应密钥撤消装置或内容来保持系统完 整性。但是,如果大量保护装置淡出市场,则可能适当的是在中央月良 务收集法庭数据,并且根据对于单个装置或多个装置的撤消的顾客数 据和威胁分析来决定中央策略。适当的消息将被生成并从用于每个单 独保护装置的已授权重新激活或撤消的远程入侵防范服务发送。
系统能够按照策略规则集合灵活响应入侵事件。策略规则由远程 入侵防范服务漆于因特网)提供(参见图3c),并且可在许可证的例程 联络或时间更新时被更新。策略规则的部分也可以是许可证容器的通 用运行时系统的组成部分(监视器程序、控制程序、内核驱动程序)。 这个运行时系统的更新也可更新该策略。更新响应新发现的威胁情况。
按照策略规则,可用入侵检测方法(现有技术或者如权利要求书所述)^皮使用以及分类。按照策略,确定攻击等级并确定响应。响应可以
是具有不同持续性的锁定
-无(完全没有锁定,忽略攻击) -暂时(例如5分钟,减緩自动攻击) -永久
并且可影响系统的不同部分 -许可证 -许可证容器 -保护装置
系统部分的影响最终引起锁定受保护的软件(的运行)。法庭数据 (forensic data)的本地记录和以后的传输也通过策略来配置。
在本发明的范围内,术语"受保护的软件"是受保护的应用或计 算机软件应用程序的同义词,它由提供许可证容器(可以是保护装置的
用的许可证容器或保护装置进行保护。这又称作正常许可的受保护的 软件的授权使用。受保护的软件也是受保护的程序代码,它至少在其 有效部分经过加密,以便防止未保护环境中的程序运行,以及防止例 如调试器等入侵程序或入侵软件在程序运行时的入侵。
本发明的范围之内的受保护的软件可包括安全引擎和/或控制程 序和/或监视器程序。
安全引擎是软件组件,它提供作为独立组件对主机侧有影响的密 码功能,以便与参与系统的入侵保护的其它所涉及组件进行通信。这 些其它的所涉及组件至少包括许可证容器。
一方面,安全引擎通过计算机系统的给定硬件平台的0S/内核与 保护装置或许可证容器进行通信,以便访问许可证条件、密钥或其它 许可证参数,从而允许运行受保护的应用。例如,这可通过对应用程 序的受保护部分进行解密或者通过对于来自程序运行的所谓程序保护 屏蔽的封装应用进行解包来实现。在另一个链路中,安全引擎可与控制程序进行通信,以便交换通过控制程序提供给监视器程序的参数。 在另一个实施例中,安全引擎还可包括监^L器程序、控制程序和安全 部分。
控制程序本身是控制许可证容器或保护装置的访问的程序模块。 控制程序功能可以是通用保护控制程序的 一部分。它可建立许可证容 器与控制软件之间的通信链路。它还可提供入侵保护的监视功能。
术语"保护机制"是检测入侵程序的特定方法或者方法的組合, 它尝试保护受保护的应用程序或者受保护的软件。保护机制分别向监 视器程序、向安全引擎或者向许可证容器、保护装置发信号通知入4曼 事件。
在本发明的范围内,监视器程序为监控和记录入侵程序所引起的 威胁(例如攻击)提供监视功能。监视功能可嵌入其它程序,例如嵌入 监视器模块。监视器程序使用入侵检测机制,它可生成描述入侵事件 的目标属性,例如所谓的入侵检测标准。换言之,监视程序使用监视 组件来监视其它程序或计算机事件。
此外,换言之,入侵防范系统是由例如保护硬件装置或许可证容 器等保护組件以及例如控制程序、监视器程序和/或安全引擎以及相互 进行通信并且与保护装置或许可证容器进行通信的后端和软件系统等 软件组件的布置组成的系统。它们通常防止应用程序受到入4曼程序的 入侵。后端系统还可包括远程策略服务器,它提供远程入侵防范服务 以便影响或控制单个保护装置或许可证容器的行为。在这个上下文中, 词语"行为"包括对许可证容器或保护装置的访问、锁定或限制访问 和/或其中存储的信息的删除。
本发明的另 一个方面涉及通过使用系统组件为计算机系统上的受 保护的计算机软件提供入侵检测的系统,并且其中的保护装置适合于 并且设置成连接到计算机系统。计算机系统至少包括监视器程序、控 制程序和受保护的软件。
监视器程序通过包含来自受保护的软件(受保护的应用程序)的审计信息的消息与控制程序进行通信,以便在计算机系统上运行程序。 控制程序具有用于与连接到计算机系统的保护装置进行通信的功能, 其中保护装置接收来自因特网的远程入侵保护服务提供商服务器的入 侵防范规范。入侵防范规范规定要从监视过程期间由监视器程序生成 的可能目标属性集合中记录的至少一个目标属性。
入侵防范规范还规定监视过程期间触发记录至少一个目标属性的 至少 一个监视标准。监视器程序适合于并且配置成响应检测到至少一 个监视标准而记录至少一个目标属性,以及监视器程序运行(被执行), 以便通过响应检测到至少一个监视标准而记录至少一个目标属性来产 生入侵日志。此外,出于入侵检测的目的,检查入侵日志以检测模式, 例如锁定受保护的软件或保护装置。
权利要求
1. 一种用于通过检测入侵程序的攻击来保护计算机软件的方法,所述入侵程序干扰在具有处理器和至少一个处理器存储器的计算机系统上的所述受保护的软件的运行,-其中要保护的所述计算机软件与许可证容器进行通信,所述许可证容器包含用于使用和运行所述受保护的计算机软件的许可证并且包含至少一个密码密钥,-其中所述许可证容器为所述受保护的软件提供许可证和密码密钥以保护其使用及其完整性,以及-其中所述受保护的计算机软件至少部分经过加密,并使用关联密码密钥对所述受保护的软件进行解密以便运行,包括以下步骤-在运行所述受保护的软件期间,分析所述受保护的软件的行为和/或所述计算机系统上的所述受保护的软件的运行环境,以及搜索入侵或入侵程序的模式,-检测运行所述受保护的软件期间对所述受保护的软件的入侵,其中所述入侵程序使用监视组件来获得未经授权的访问,-创建关于检测到攻击的信号。
2. 如权利要求l所述的方法,其特征在于,所述受保护的软件包 括应用程序的原始软件代码和附加代码或特殊操作码、安全引擎和/ 或控制程序代码。
3. 如权利要求2所述的方法,其特征在于,分析所述受保护的软 件的行为包括分析所述受保护的软件中的特殊操作码的运行,和/或 分析特殊程序部分或者所述受保护的软件代码的部分的运行,和/或测量用于运行所述受保护的软件的定时并且评估测量的结果。
4. 如权利要求1至3中的任一项所述的方法,还包括以下步骤 通过在所述受保护的软件中运行任意命令、采用预先定义的特殊值来锁定所述许可证容器。
5. 如权利要求4所述的方法,其特征在于,所述任意命令是锁定 所述许可证容器的特殊加密操作。
6. 如权利要求4所述的方法,其特征在于,通过将计数器设置成 预定值、优选地为零,或者通过删除所述许可证容器中的必要密码密 钥,来执行所述许可证容器的锁定。
7. 如以上权利要求中的任一项所述的方法,其特征在于,分析所 述受保护的软件的行为包括分析应用程序接口 (API)的运行,并且将头 部运行的次数与尾部运行的次数进行比较。
8. 如权利要求2至7中的任一项所述的方法,其中,所述受保护 的软件中的所述附加代码是仅在入^j!i视程序引起的干^#式的情况 下才运行的诱斜码,其特征在于,检测所述诱倂码的运行。
9. 如权利要求8所述的方法,其中,在所述受保护的软件的导入 地址表(IAT)的未使用部分中引用所述诱斜码。
10. 如权利要求8所述的方法,其特征在于,所述诱斜码是所述 受保护的软件中从不在无干扰操作条件下运行的部分。
11. 如以上权利要求中的任一项所述的方法,其特征在于,保护 装置连接到包括所述许可证容器的所述计算机系统的接口 。
12. 如权利要求8和11所述的方法,其特征在于,所述诱斜码使 用特殊-没计的API调用来锁定所述保护装置。
13. 如权利要求ll所述的方法,其特征在于,在检测到入侵软件 的攻击之后,法庭数据被创建以便用于记住入侵事件,并且所述法庭 数据优选地存储在所述保护装置中。
14. 如权利要求13所述的方法,其特征在于,所述法庭数据存储 在所述保护装置的受保护存储器中。
15. 如权利要求13或14所述的方法,其特征在于,所述法庭数据以加密形式存储。
16. 如权利要求13至15中的任一项所述的方法,其特征在于, 所述法庭数据存储在所述保护装置的仅可一次性写入的存储器区域 中。
17. 如权利要求13至16中的任一项所述的方法,其特征在于, 所述法庭数据^皮集中并且^皮评估,以便检测全局片莫式。
18. 如权利要求13至17中的任一项所述的方法,其特征在于, 将所述法庭数据发送给管理所述许可证和所述许可证容器中包含的所 述密码密钥的许可证颁发者或中央实例,发送所述法庭数据以便由所 述许可证颁发者或所述中央实例收集,以便在以后最终对所述保护装置解锁。
19. 如权利要求3所述的方法,其特征在于,测量用于运行所述 受保护的软件的定时的步骤包括评估处理器异常的定时。
20. 如权利要求3所述的方法,其特征在于,测量用于运行所述 受保护的软件的定时的步骤包括校验整体时钟一致性。
21. 如权利要求2或3所迷的方法,其特征在于,分析所述受保的已授权线程或者由入侵程序所创建的未经授权的线程。
22. 如权利要求21所述的方法,其特征在于,使用TLS过程(线 程本地存储过程)来发现未经授权的线程。
23. 如权利要求21所述的方法,其特征在于,通过监视API系统 调用的运行来发现未经授权的线程。
24. 如权利要求1所述的方法,其中,分析所述计算机系统上的 所述受保护的软件的所述运行环境以便识别入侵程序的步骤包括检查 所述计算机系统上的其它进程以便检测预定才莫式。
25. 如权利要求24所述的方法,其特征在于,检查窗口和类参数 或进程以及文件名,以便检测入侵程序的预定模式。
26. 如权利要求24所述的方法,其特征在于,部分或完整地检查所述计算机系统上的其它进程的进程存储器。
27. 如权利要求4至6中的任一项所述的方法,其中,连接到所 述计算机系统的接口的保护装置包括至少一个许可证容器,其特征在 于,并非锁定整个保护装置,而是仅锁定分配^^检测到被入侵的所述 受保护的软件的所述许可证容器。
28. 如权利要求4至6或27中的任一项所述的方法,其中,连接到所述计算机系统的接口的保护装置包括至少一个许可证容器,并且 所述计算机系统配置和设置成与远程时间戳服务器进行通信,其特征在于,在需要所述计算机系统与所述时间戳服务器之间的 通信以便继续进行所述保护装置的操作时,锁定所述保护装置。
29. 如权利要求13所述的方法,其特征在于,向入侵防范服务的 远程服务器传送所述法庭数据,以及使用从入侵防范服务的所述远程 服务器发送的特殊命令或代码对锁定的许可证容器进行解锁。
30. —种通过使用系统组件为计算机系统上的受保护的计算机软 件提供入侵检测的系统,包括监视器程序,通过包含来自所述受保护的应用程序的审计信息的 消息与控制程序进行通信,以便在所述计算机系统上运行程序,所述控制程序,具有用于与连接到所述计算机系统的保护装置进 行通信的功能,并且所述保护装置接收来自远程入侵保护服务提供商 的入侵防范规范,其中,-所述入侵防范规范规定要从监视过程期间由所述监视器程序生 成的可能目标属性集合中记录的至少一个目标属性;以及-所述入侵防范规范还规定所述监视过程期间触发记录至少一个 目标属性的至少一个监视标准;-所述监视器程序适合于并且配置成响应检测到所述至少一个监 视标准而记录所述至少一个目标属性,以及所述监视器程序^皮运行以 便通过响应检测到所述至少一个监视标准而记录所述至少一个目标属性来产生入侵日志;以及-出于入侵检测的目的,检查所述入侵日志以检测模式。
全文摘要
通过检测入侵程序的攻击来保护计算机软件的方法,该入侵程序干扰具有处理器和至少一个处理器存储器的计算机系统上的所述受保护的软件的运行,其中要保护的计算机软件与包含使用和运行受保护的计算机软件的许可证并且包含至少一个密码密钥的许可证容器进行通信,其中许可证容器为受保护的软件提供许可证和密码密钥以保护其使用及其完整性,以及其中受保护的计算机软件至少部分经过加密,并且使用关联密码密钥对所述受保护的软件进行解密以便运行,该方法包括以下步骤在运行受保护的软件期间,分析受保护的软件的行为和/或计算机系统上的受保护的软件的运行环境,并搜索入侵或入侵程序的模式,检测受保护的软件的运行期间对受保护的软件的入侵,其中入侵程序使用监视组件来获得未经授权的访问,以及创建有关检测到攻击的信号。
文档编号G06F21/14GK101473333SQ200780022604
公开日2009年7月1日 申请日期2007年6月9日 优先权日2006年6月21日
发明者M·巴克海特, O·温曾里德, P·威克曼, R·库格勒 申请人:威步系统股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1