CN101436237A - 用于将软件组件列入白名单的方法和系统 - Google Patents

用于将软件组件列入白名单的方法和系统 Download PDF

Info

Publication number
CN101436237A
CN101436237A CNA2008101738898A CN200810173889A CN101436237A CN 101436237 A CN101436237 A CN 101436237A CN A2008101738898 A CNA2008101738898 A CN A2008101738898A CN 200810173889 A CN200810173889 A CN 200810173889A CN 101436237 A CN101436237 A CN 101436237A
Authority
CN
China
Prior art keywords
operating environment
information
component software
assembly
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008101738898A
Other languages
English (en)
Other versions
CN101436237B (zh
Inventor
G·纳加休香
R·L·萨希塔
H·M·克霍斯拉维
S·格罗韦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101436237A publication Critical patent/CN101436237A/zh
Application granted granted Critical
Publication of CN101436237B publication Critical patent/CN101436237B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

公开了用于将软件组件列入白名单的方法和系统。在第一操作环境下,可收集与第一加载和运行软件组件有关的运行时信息。可将所收集的信息传递给在与第一操作环境分离的第二操作环境中进行操作的第二软件组件。所收集的运行时信息可与有关第一软件组件的已验证信息集进行比较。描述了其它实施例并要求其权利。

Description

用于将软件组件列入白名单的方法和系统
技术领域
本发明涉及用于将软件组件列入白名单的方法和系统。
背景技术
根工具包(root-kit)和恶意软件可避开在软件平台上进行操作的安全软件的检测。一旦被建立,根工具包可观测用户活动,屏蔽用户动作,并执行其它恶意或非期望的活动。测量个别软件实体可针对那个软件实体的完整性和存在校验,但是不可给出该软件实体未被屏蔽的保证。
发明内容
本发明提供一种方法,包括:运行在第一操作环境中加载的第一软件组件;收集所述第一操作环境中与所述第一软件组件有关的运行时信息;将所收集的运行时信息传递给第二操作环境中的第二软件组件,所述第二操作环境与所述第一操作环境分离;将所述所收集的运行时信息与有关所述第一软件组件的已验证信息集进行比较;以及如果所述所收集的运行时信息不匹配所述已验证信息集,则发送告警。
本发明还提供一种系统,包括:在第一操作环境中运行的第一软件组件;在所述第一操作环境中运行的第二软件组件,收集与所述第一软件组件有关的运行时信息,并传递所收集的运行时信息;以及在第二操作环境中运行的第三软件组件,所述第二操作环境与所述第一操作环境分离,所述第三组件接收所述所收集的运行时信息,并将所述所收集的运行时信息与有关所述第一软件组件的已验证信息集进行比较。
附图说明
在本说明书的结束部分特别指出作为本发明的主题并清楚地要求其权利。但是,通过结合附图参照以下详细描述,可透彻地了解关于本发明的操作的组织和方法及其目的、特征、优点,附图包括:
图1是根据本发明的实施例的计算平台的示意图示。
图2是根据本发明的实施例的计算平台上的白名单架构的代表图示。
图3是根据本发明的实施例、通过白名单服务所捕获的样本组件映像的数据结构的代表图示。
图4是根据本发明的实施例、用于将软件组件列入白名单的方法的流程图。
将理解,为了说明的简洁和清楚起见,图中所示的元件不一定精确地或者按比例绘制。例如,为了清楚起见,某些元件的尺寸可能相对于其它元件经过放大,或者若干物理组件包含在一个功能块或元件中。另外,在认为适当的情况下,参考标号可在附图中重复,以便指明对应或相似的元件。另外,可将附图所示的某些块组合成单个功能。
具体实施方式
在以下详细描述中,阐明大量具体细节,以便提供对本发明的透彻理解。但是,本领域的技术人员会理解,即使没有这些具体细节也可实施本发明。在其它情况下,没有详细描述众所周知的方法、过程、组件、和电路,以免影响使本发明不明确。
除非明确说明,否则从以下论述中,大家清楚地知道,在整个说明中,采用诸如“处理”、“计算”、“确定”或诸如此类的术语的论述表示计算机或计算系统或者类似的电子计算设备的动作和/或过程,其设备操纵表示为计算系统的寄存器和/或存储器中的例如电的物理量的数据和/或将其转换为类似地表示为计算系统的存储器、寄存器或者其它这种信息存储设备、传送或显示设备中的物理量的其它数据。另外,术语“多个”可在整个说明中用来描述两个或更多组件、设备、元件、参数和诸如此类。
本文所使用的术语“组件”可指可用于获得预期结果的编程逻辑及关联数据。术语“组件”可与“模块”或“代理”同义,并且可指可通过硬件或固件、或者通过可能具有入口和出口点、以例如C++、Intel架构64位(IA-64)可执行代码等编程语言编写的软件指令的集合来体现的编程逻辑。此外,组件可以是从其它组件或者从其本身可调用的,和/或可响应检测事件或中断而被调用。例如,组件可以是由一个或多个处理器运行的软件包、模块或代理。
本发明的实施例可提供用于将操作系统环境中的软件组件列入白名单的方法和系统。在一个实施例中,在第一操作环境下,可收集与第一加载和运行软件组件有关的运行时信息。可将所收集的信息传递给在与第一操作环境分离的第二操作环境中进行操作的第二软件组件。所收集的运行时信息可与有关第一软件组件的已验证信息集进行比较。
现在参照图1的根据本发明的实施例、能够实现或运行白名单操作软件组件的计算平台100的示意图示。在一些实施例中,计算平台100可包括或者可以是例如个人计算机(PC)、台式计算机、移动计算机、膝上型计算机、笔记本电脑、终端、工作站、服务器计算机、个人数字助理(PDA)设备、网络设备或者能够容纳运行环境104的其它适当的计算设备。
虽然本发明并不局限于这个方面,但是,计算平台100可包括例如运行环境104、管理模块116和平台硬件118,平台硬件118可包括例如处理器120、网络接口控制器(NIC)124、存储设备128和/或存储器132。计算平台100还可与网络140连接,以便与外部计算平台和其它设备进行通信。网络140可以是局域网(LAN)、城域网(MAN)、广域网(WAN)或者具有两个或更多网络节点之间的通信链路的其它相似网络。
在一些实施例中,运行环境104可容纳运行操作系统(OS)108。OS 108可以是配置成运行和控制运行环境104中的例如软件组件112的其它组件的一般操作的软件组件。在一些情况下,运行环境104可提供其中组件可进行操作的虚拟运行环境。备选地,运行环境104可以是非虚拟的。
在一些实施例中,软件组件112可以是特权级组件,例如内核组件。内核组件可以是或者包括例如加载器、调度器、存储管理器等的服务;例如网卡、通用串行总线(USB)接口、磁盘驱动器等的扩展/驱动;或者例如监测代码运行的入侵检测器的服务-驱动的混合体。
管理模块116可仲裁对于例如一个或多个处理器120、NIC 124、存储设备128和/或存储器132等的硬件或其它资源的一般组件访问。在一些实施例中,管理模块116的功能可按照OS 108是否虚拟化而改变。
处理器120可以是或者包括例如中央处理器(CPU)、数字信号处理器(DSP)、微处理器、控制器、芯片、微芯片或者任何适当的通用或专用处理器或控制器。在一些实施例中,例如,处理器120可运行编程指令或者执行可用于计算平台100上的组件的操作的计算操作。
存储设备128可包括集成和/或外围存储设备,例如磁盘及关联驱动器、USB存储设备、闪速存储器、只读存储器(ROM)、非易失性半导体设备或者存储将用于平台100上的组件的运行的固有内容的其它适当的存储设备。在一些实施例中,存储设备128可以是物理上作为平台100的组成部分的存储资源,或者可以是平台100可访问的但必须是平台100的组成部分。例如,存储设备128可由平台100通过网络140、经由网络控制器124进行访问。
存储器132可包括例如一个或多个存储器,诸如随机存取存储器(RAM)、ROM、动态RAM(DRAM)、同步DRAM(SDRAM)、闪速存储器、易失性存储器、非易失性存储器、缓冲存储器、缓冲区、短期存储器单元、长期存储器单元或者用于存储例如OS 108和/或软件组件112等的数据和/或组件的其它适当存储器单元。在一些实施例中,存储器132可将其中存储的内容组织进入多组存储位置。如果OS 108经过虚拟化,则可以是固定和/或可变大小的这些所组织的组可有助于虚拟存储器管理。备选地,如果OS 108未虚拟化,则存储器132可具有不同的组织结构。
现在参照图2,它示出根据本发明的实施例的计算平台200上的白名单架构。本文所使用的“列入白名单”例如可表示检验软件元件(例如一段代码、组件、模块、代理、脚本等)例如避开恶意软件或其它破坏的安全运行或使用的过程。在一些实施例中,计算平台200可与平台100相似并且基本上是可互换的。此外,以下描述的元件可与上述相似命名的元件类似并且基本上是可互换的,反过来也是一样。
计算平台200可包括用于管理操作环境206、平台硬件208和二进制映像存储设备210的管理模块204。管理模块204或者管理模块204的部分可独立于操作环境206而运行,可独立于操作环境206运行代码,并且可与操作环境206安全地分离。在一些实施例中,管理模块204可向操作运行环境206提供或者表示平台硬件208的多个抽象和/或视图,例如一个或多个处理器220、NIC 224、存储设备228和/或存储器232,这是已知的。此外,在一些实施例中,管理模块204可包括操作运行环境,它能运行例如固件中的指令,并且可以是例如管理引擎。在这些情况下,操作环境206可以是例如原始的、常规的或遗留的、如未虚拟化的OS环境。备选地,管理模块204可以是虚拟机监测器(VMM),并且操作环境206可以是例如虚拟机(VM)或客户OS。在这些情况下,管理模块204可管理对硬件208的VM访问。管理模块204可在软件(例如作为由一个或多个控制器或处理器运行的单机程序和/或主机操作系统的组件)、硬件、固件和/或它们的任何组合中来实现。
管理模块204可包括用于检验在操作环境206中进行操作的组件的完整性或者验证其特征的测量管理器(IMM)212。为了检验操作组件的完整性,IMM 212可将例如组件214的加载和例如授权的预期的服务与例如可在例如二进制映像存储设备210中的盘上(on-disk)存储的操作组件的记录的映像进行比较。存储映像可包含与组件有关的信息,包括例如代码、数据段、外部符号表和重定位信息。还可包含与组件有关的其它信息。IMM 212可从二进制映像存储设备210所存储的映像中生成或提取关于服务的完整性证明。完整性证明可以是例如关于在运行时(例如在运行期间)组件的有效或合法版本应当如何在存储器中出现的概述或列表。在一些实施例中,完整性证明可在生成期间被签署(sign)以免任何篡改或未经授权的修改,并且由此可包括关于服务的已验证信息集,例如代码和数据段信息、重定位信息、符号表信息以及检验证明本身的完整性的其它信息。可依靠这个完整性证明来验证组件214在存储器(如存储器232)中的映像。
在操作环境206被虚拟化的一些实施例中,虚拟化技术完整性服务(VTIS)组件(未示出)还可存在于管理模块204中。VTIS组件可保护管理模块204中的存储器中包含作为操作环境206的如组件214的当前运行组件的组成部分的完整性检验代码或数据的页面。为了使保护数据与操作环境206分离,VTIS组件可具有对完整性检验代码或数据的独占访问权。在一些实施例中,在操作环境206中运行的组件或模块可以能够在加载或者其它这种事件时由VTIS组件登记,例如进行完整性检验。
在操作环境206被虚拟化的情况下,IMM 212可在例如管理模块204的VMM中运行。备选地,IMM212可在操作环境206中运行。对于其中IMM 212在操作环境206中运行的情况,IM M212可由管理模块204保护,以确保两个或更多操作环境206所使用的物理地址空间没有重叠。此外,IMM 212还可在启动时向管理模块204的VTIS组件登记,并且可由VTIS组件进行验证。
在操作环境206未虚拟化的情况下,IMM 212可在作为管理引擎的组成部分的固件中来实现。
操作环境206可包括在操作环境206中运行的一个或多个组件,例如组件214、内核目录服务(KDS)216和白名单管理器(WLM)218。还可包括其它组件。组件214可以是或者包括在操作环境206中运行的任何软件组件,例如内核服务、模块或驱动。例如根工具包等恶意软件可渗入操作环境206,并且例如可修改组件214,使组件214的正确运行转向(例如设置钩子程序(hook)),或者甚至尝试作为操作环境206的有效组件进行操作。通过对操作环境206的已知组件验证、校验或列入白名单,并验证这些组件之间以及与计算平台206上的其它实体之间的交互,本发明的实施例可保护如计算平台200的计算平台。
KDS 216可以是或者包括组件、例如在虚拟机的客户OS或OS中运行的代理或服务,并且可以能够列出当前在操作环境206中运行的组件或服务、如组件214。在一些实施例中,KDS 216例如可作为环路-0(ring-0)服务来运行。
WLM 218可以是或者包括在虚拟机的客户OS或OS中运行的组件,它能够收集与单个OS服务或代理(如组件214)对其它OS服务或代理进行的外部引用有关的所有信息。在一些实施例中,WLM 218和IMM212可组合成单个模块,但是可使用其它功能组件。收集与单个OS服务或代理进行的外部引用有关的所有信息在本文中又可称作捕获组件的映像。WLM 218可通过参考二进制映像存储设备210中存储的组件214的映像的导入表结构,来确定要收集什么信息。导入表结构可以是或者包括例如由组件导出的到入口点的导入函数地址的列表。WLM 218还可引用其它存储映像数据。
为了确定哪些组件可在操作环境206中运行,WLM 218可经由缓冲区或共享存储器与KDS 216进行通信。共享存储器可以是管理模块204中的存储空间。对于其中操作环境206被虚拟化(如VM)的实施例,共享存储器可由VTIS组件来缓冲和保护。对于其中操作环境没有虚拟化的实施例,共享存储器可被缓冲,并且是经由例如主机嵌入式控制器接口(HECI)或者管理引擎的其它接口等硬件接口可访问的,这是已知的。
现在参照图3,它示出可由WLM218捕获的示例组件映像的数据结构300的代表图示。图3示出可捕获的组件312的列表310。本文所使用的组件312可以与图2的组件214相同或者基本上相似。对于各组件312,列表310可包含其中包括例如组件名称、存储器中的基址、完整性证明名称、导入列表322和导出列表332(如导出哈希表)的信息。还可包含与组件312有关的其它信息。导入列表322可以是或者包括例如地址、引用或者指向组件312所使用的地址的指针的列表。还可包含其它信息。导出列表332可以是或者包括例如地址、引用或者指向组件312所使用的地址的指针的列表。还可包含其它信息。
使用KDS 216提供的信息,WLM 218和IMM 212可结合操作以便通过将组件的记录的映像及对应数据与从先前存储的引用提取的证明比较,来检验一个或多个操作组件214的完整性。在一些实施例中,在KDS 216和WLM 218的登记和/或检验之后,检验可包括例如三个阶段。在第一阶段,组件214的代码和数据段可与完整性证明进行比较,并且可存储导入和导出指针地址上的状态数据。在第二阶段,这个已存储状态数据可与完整性证明中的导入和导出指针进行比较。如果组件通过了第二阶段,则组件的中断处理程序可与也通过了检验的第二阶段的其它组件或模块的位置进行比较。如果检验的全部三个阶段都成功,则可检验组件的完整性。如果不成功,则可将告警发送给例如远程IT控制台。
现在参照图4,它示出根据本发明的实施例,用于对例如组件214或者其它此类组件或模块的软件组件进行验证、校验或列入白名单的方法的流程图。该方法的实施例可由例如图1的计算平台100或者能够容纳运行环境104的其它适当的计算设备来使用或者实现。该方法的实施例还可使用图2的白名单架构以及图3的通过白名单服务所捕获的组件的映像的数据结构或其它适当数据结构。
如操作402所示,如IMM 212的IMM可开始运行。在一些实施例中,如管理模块204的管理模块也可正在操作。对于其中管理模块204是VMM的情况,IMM 212可从管理模块204中进行操作并由管理模块204进行保护。备选地,IMM 212可作为客户OS(例如操作环境206)的组成部分进行操作,并且可向管理模块204的VTIS组件登记以便在加载时进行保护。对于其中管理模块不是VMM的情况,IMM 216可存在于芯片组的管理模块固件中,并且可执行属于如KDS 216的KDS的所有功能。
在操作404,KDS和WLM(如KDS 216和WLM 218)可向IMM 212登记。在操作406,WLM 218可建立共享存储器通信信道以便与KDS 216进行通信。共享存储器信道可取决于操作环境206是否虚拟化。对于其中操作环境206被虚拟化的情况,共享存储器可以是如管理模块204的VMM中的VTIS保护位置。对于其它实施例,共享存储器可以是经由例如HECI接口可访问的,并且可被缓冲。也可使用被保护而不由操作环境206中运行的组件使用的其它共享存储器信道。
KDS 216可使用共享存储器信道向WLM 218传递运行时信息,例如与诸如模块、内核服务或代理之类的当前在操作环境206中运行的一个或多个组件有关的虚拟基址(操作408)。还可包含其它运行时信息。
一旦WLM 218具有所有模块的列表,则在操作410,它可收集与这些模块的一个或多个有关的运行时信息和/或记录这些模块的一个或多个的映像如操作快照的映像,以便进行检验。记录的映像可包括代码和数据段、外部符号表和重定位信息以及其它适当的数据。在一些实施例中,数据可包括例如导入列表322的导入列表以及例如导出哈希表332的导出表。还可包含其它信息。在一些实施例中,通过从例如二进制映像存储设备(如二进制映像存储设备210)所存储的二进制文件中加载模块的盘上映像,WLM 218可确定应当记录哪些引用。也可使用用于盘上映像的其它存储设备。例如,映像可存储在通过如网络140的网络与计算平台100连接的其它存储设备或者外部硬盘驱动器上。
在操作412,WLM 218可调用IMM 216来检验模块的代码和静态数据段的完整性。在一些实施例中,IMM 216可使用二进制映像存储设备210中存储的模块的盘上映像来创建被检验模块的完整性证明。备选地,完整性证明可存储在例如网络140上的另一个位置、如服务器上。IMM 216可使用这个证明来与操作410中所记录的模块的映像或所收集的运行时信息进行比较以便进行检验。作为操作412的一部分,IMM 216还可检验模块的依赖模块(例如其它模块)的代码和数据段。可存储导入地址表(IAT)和导出表(ET)中的条目的测量值以便用于其它操作。
如果所有测试段成功地通过了这个初始完整性测试(操作414),则该方法可继续进行第二检验操作。在操作416,IMM 216可检验模块与其依赖模块之间的链接(如函数指针)是否有效。在一些实施例中,IMM 216可将操作410中所收集的ET和IAT条目值与来自证明和其它数据的导入查询表(ILT)进行比较。通过获得导入或导出条目的地址,并检验所计算的运行时地址(如基址加上相对虚拟地址(RVA))落入被检验模块的线性地址空间,可确定这些导出和导入值,如偏移值。可比较ILT中的所有条目及其对应的ET条目。也可执行确定IAT中的条目是否匹配从ILT所计算的运行时地址的校验。这个检验操作可帮助确保该组件未被根工具包设置钩子程序。
如果操作416的检验成功(操作418),则可执行第三检验、即操作420。在操作420中,中断处理程序条目(如指针)可与操作416中所计算的代码的检验段(如检验模块或组件)的存储位置进行比较,以便检验其有效性。IMM 216可从中断描述符表(IDT)中读取条目,中断描述符表(IDT)可以是作为操作环境206的组成部分的数据结构,并且可由被检验模块用于存储运行被检测模块期间可能发生中断或异常时所需的指针。IDT条目可指向操作环境206中可在中断期间被调用的一个或多个其它加载模块或其它运行组件。在一些实施例中,在操作环境206中运行的部分或全部模块可由例如在操作420之前操作416的操作进行检验。在这些情况下,指向已经通过操作416所检验的模块的IDT指针可认为是有效指针。
如果检验了所有模块中断处理程序(操作422),则模块可被认为已经通过了完整性检验测试(操作424)。但是,如果在操作414、418和422的一个或多个,模块没有分别通过操作412、416和420的检验测试,则模块完整性可能被损害(操作426),例如根工具包或其它恶意软件可能正影响操作环境206中的正确操作。在这些情况下,可发送告警,或者可采取其它适当的响应动作。
操作406-426可对于在操作环境206中进行操作的各组件或模块重复进行,以便确保操作环境206的安全性是完整的。对于随后可能加载的其它组件,可在加载或其它此类事件时对于新组件或所有组件来运行这些操作。此外,还可响应例如系统重新引导、IDT的变化等的其它触发事件而重复进行操作406-426。
可使用其它操作或者操作序列。此外,可使用其它数量或类型的完整性或检验校验。
虽然针对有限数量的实施例描述了本发明,但是将理解,可对本发明进行许多改变、修改和其它应用。本发明的实施例可包括计算机可读介质,例如存储器、磁盘驱动器或USB或者其它闪速存储器,其中包含在由处理器或控制器运行时执行本文公开的方法的指令。本发明的实施例还可包括用于执行本文的操作的其它系统。这类系统可集成所述的元件,或者可包括实现相同目标的备选组件。本领域的技术人员会理解,所附权利要求旨在涵盖属于本发明的实质的所有这类修改和变更。

Claims (15)

1.一种方法,包括:
运行在第一操作环境中加载的第一软件组件;
收集所述第一操作环境中与所述第一软件组件有关的运行时信息;
将所收集的运行时信息传递给第二操作环境中的第二软件组件,所述第二操作环境与所述第一操作环境分离;
将所述所收集的运行时信息与有关所述第一软件组件的已验证信息集进行比较;以及
如果所述所收集的运行时信息不匹配所述已验证信息集,则发送告警。
2.如权利要求1所述的方法,其中,所述所收集的信息包括以下一个或多个:代码、数据、外部符号表和重定位信息。
3.如权利要求2所述的方法,包括:
存储关于所述第一软件组件的导入地址表和导出指针的状态数据集;以及
将所述状态数据与有关所述第一软件组件的已验证信息集进行比较。
4.如权利要求3所述的方法,包括:
从存储设备中读取已验证中断处理程序条目集;
检验所记录的中断处理程序条目集指向已验证的导入和导出偏移。
5.如权利要求1所述的方法,包括:检验所述第一软件组件的一个或多个依赖软件组件。
6.如权利要求1所述的方法,其中,所述第一操作环境被虚拟化,并且所述第二操作环境是虚拟机管理器。
7.如权利要求1所述的方法,其中,所述第一操作环境是未虚拟化的操作系统。
8.如权利要求1所述的方法,其中,传递所述所收集的运行时信息包括经由所述第二操作环境中的共享存储器来传递所述所收集的运行时信息。
9.一种系统,包括:
在第一操作环境中运行的第一软件组件;
在所述第一操作环境中运行的第二软件组件,收集与所述第一软件组件有关的运行时信息,并传递所收集的运行时信息;以及
在第二操作环境中运行的第三软件组件,所述第二操作环境与所述第一操作环境分离,所述第三组件接收所述所收集的运行时信息,并将所述所收集的运行时信息与有关所述第一软件组件的已验证信息集进行比较。
10.如权利要求9所述的系统,其中,所述所收集的信息包括以下一个或多个:代码、数据、外部符号表和重定位信息。
11.如权利要求10所述的系统,其中:
所述第二软件组件存储关于所述第一软件组件的导入地址表和导出指针的状态数据集;以及
所述第三软件组件将所述状态数据与有关所述第一软件组件的已验证信息集进行比较。
12.如权利要求11所述的系统,其中:
所述第三软件组件从存储设备中读取已验证中断处理程序条目集;以及检验所记录的中断处理程序条目集指向已验证的导入和导出偏移。
13.如权利要求9所述的系统,其中:
所述第三软件组件检验所述第一软件组件的一个或多个依赖软件组件。
14.如权利要求9所述的系统,其中,所述第一操作环境被虚拟化。
15.如权利要求9所述的系统,其中,所述第一软件组件经由所述第二操作环境中的共享存储器来传递所述所收集的运行时信息。
CN2008101738898A 2007-11-13 2008-11-13 用于将软件组件列入白名单的方法和系统 Expired - Fee Related CN101436237B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/984001 2007-11-13
US11/984,001 US8099718B2 (en) 2007-11-13 2007-11-13 Method and system for whitelisting software components

Publications (2)

Publication Number Publication Date
CN101436237A true CN101436237A (zh) 2009-05-20
CN101436237B CN101436237B (zh) 2011-11-30

Family

ID=40342208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101738898A Expired - Fee Related CN101436237B (zh) 2007-11-13 2008-11-13 用于将软件组件列入白名单的方法和系统

Country Status (4)

Country Link
US (2) US8099718B2 (zh)
EP (1) EP2063377B1 (zh)
JP (1) JP4901842B2 (zh)
CN (1) CN101436237B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841672A (zh) * 2012-07-10 2012-12-26 上海果壳电子有限公司 一种休眠拦截方法及系统

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8763115B2 (en) * 2007-08-08 2014-06-24 Vmware, Inc. Impeding progress of malicious guest software
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8051432B2 (en) * 2008-11-14 2011-11-01 Novell, Inc. Techniques for establishing virtual devices
US8776027B2 (en) * 2009-03-06 2014-07-08 Microsoft Corporation Extracting and collecting platform use data
US8776028B1 (en) * 2009-04-04 2014-07-08 Parallels IP Holdings GmbH Virtual execution environment for software delivery and feedback
EP2254070A1 (en) * 2009-05-18 2010-11-24 Nxp B.V. Secure execution of native code
US20120036569A1 (en) * 2010-04-05 2012-02-09 Andrew Cottrell Securing portable executable modules
CN102469450B (zh) * 2010-11-08 2014-06-04 中国移动通信集团广东有限公司 一种手机病毒特征的识别方法及装置
US8656494B2 (en) 2012-02-28 2014-02-18 Kaspersky Lab, Zao System and method for optimization of antivirus processing of disk files
US9817951B2 (en) * 2012-04-06 2017-11-14 Comcast Cable Communications, Llc System and method for analyzing a device
US8793661B1 (en) * 2012-04-27 2014-07-29 Google Inc. Programmer specified conditions for raising exceptions and handling errors detected within programming code
CN103634366A (zh) * 2012-08-27 2014-03-12 北京千橡网景科技发展有限公司 用于识别网络机器人的方法和设备
US8930914B2 (en) * 2013-02-07 2015-01-06 International Business Machines Corporation System and method for documenting application executions
US9043758B2 (en) 2013-03-15 2015-05-26 International Business Machines Corporation System for generating readable and meaningful descriptions of stream processing source code
CN105468976B (zh) * 2015-12-08 2019-11-12 北京元心科技有限公司 一种基于容器的多系统的入侵监控方法和装置
US10592669B2 (en) 2016-06-23 2020-03-17 Vmware, Inc. Secure booting of computer system
US10242196B2 (en) * 2016-07-29 2019-03-26 Vmware, Inc. Secure booting of computer system
US9977725B2 (en) * 2016-08-26 2018-05-22 Cisco Technology, Inc. Automatic classification and parallel processing of untested code in a protected runtime environment
US10956615B2 (en) 2017-02-17 2021-03-23 Microsoft Technology Licensing, Llc Securely defining operating system composition without multiple authoring
US11151273B2 (en) 2018-10-08 2021-10-19 Microsoft Technology Licensing, Llc Controlling installation of unauthorized drivers on a computer system
US11080416B2 (en) 2018-10-08 2021-08-03 Microsoft Technology Licensing, Llc Protecting selected disks on a computer system
JP7380251B2 (ja) 2020-01-27 2023-11-15 株式会社Ihi 仮想マシンにおけるデータ改ざんの監視方法及び装置

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
DE69132300T2 (de) * 1990-03-12 2000-11-30 Hewlett Packard Co Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
EP0510244A1 (en) * 1991-04-22 1992-10-28 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
US5312673A (en) * 1992-07-28 1994-05-17 Bradford Industries, Inc. Adhesive system for athletic lettering and the like
US5379400A (en) * 1992-08-07 1995-01-03 International Business Machines Corp. Method and system for determining memory refresh rate
EP0721621B1 (en) * 1993-09-30 2002-01-30 Apple Computer, Inc. System for decentralized backing store control of virtual memory in a computer
US5634043A (en) * 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
US5687370A (en) * 1995-01-31 1997-11-11 Next Software, Inc. Transparent local and distributed memory management system
US5854916A (en) * 1995-09-28 1998-12-29 Symantec Corporation State-based cache for antivirus software
FR2744818B1 (fr) * 1996-02-12 1998-03-27 Bull Sa Procede de verification de la conservation de l'integrite d'une requete emise sans protection par un client vers un serveur au moyen de l'integrite de la reponse
US6542919B1 (en) * 1996-03-22 2003-04-01 Koninklijke Philips Electronics N.V. Operating system for use with protection domains in a single address space
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US5991881A (en) * 1996-11-08 1999-11-23 Harris Corporation Network surveillance system
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
US6360244B1 (en) 1997-04-11 2002-03-19 Fujitsu Limited System and method for multi-level memory domain protection
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6163834A (en) * 1998-01-07 2000-12-19 Tandem Computers Incorporated Two level address translation and memory registration system and method
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6321276B1 (en) * 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
JP4763866B2 (ja) * 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
WO2000034871A1 (fr) * 1998-12-07 2000-06-15 Sony Corporation Ordinateur, support enregistre comportant un programme de verification de la validite des adresses et procede de verification de la validite des adresses
US6732220B2 (en) 1999-02-17 2004-05-04 Elbrus International Method for emulating hardware features of a foreign architecture in a host operating system environment
WO2001001262A1 (fr) * 1999-06-24 2001-01-04 Fujitsu Limited Controleur de peripherique et systeme d'entree/sortie
US7650504B2 (en) 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US6751737B1 (en) * 1999-10-07 2004-06-15 Advanced Micro Devices Multiple protected mode execution environments using multiple register sets and meta-protected instructions
CN1460208A (zh) 1999-10-25 2003-12-03 凤凰技术有限公司 使用主叫用户地址的安全软件smi调度
US6738882B1 (en) * 1999-11-30 2004-05-18 Hewlett-Packard Development Company, L.P. Concurrent multi-processor memory testing beyond 32-bit addresses
US6658515B1 (en) * 2000-01-25 2003-12-02 Dell Usa, L.P. Background execution of universal serial bus transactions
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US6553438B1 (en) * 2000-04-24 2003-04-22 Intel Corporation Methods and system for message resource pool with asynchronous and synchronous modes of operation
US6931540B1 (en) * 2000-05-31 2005-08-16 Networks Associates Technology, Inc. System, method and computer program product for selecting virus detection actions based on a process by which files are being accessed
US6751720B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6954861B2 (en) * 2000-07-14 2005-10-11 America Online, Inc. Identifying unauthorized communication systems based on their memory contents
WO2002023331A2 (en) 2000-09-14 2002-03-21 Sun Microsystems, Inc. Remote incremental program binary compatibility verification using api definitions
US6487643B1 (en) * 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6996551B2 (en) * 2000-12-18 2006-02-07 International Business Machines Corporation Apparata, articles and methods for discovering partially periodic event patterns
US6567897B2 (en) * 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US6684305B1 (en) * 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US7328453B2 (en) * 2001-05-09 2008-02-05 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US7478394B1 (en) * 2001-06-04 2009-01-13 Hewlett-Packard Development Company, L.P. Context-corrupting context switching
US6671791B1 (en) * 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US7093118B2 (en) 2001-06-27 2006-08-15 Intel Corporation System and method for external bus device support
US6920534B2 (en) 2001-06-29 2005-07-19 Intel Corporation Virtual-port memory and virtual-porting
US8001594B2 (en) 2001-07-30 2011-08-16 Ipass, Inc. Monitoring computer network security enforcement
US6685567B2 (en) * 2001-08-08 2004-02-03 Igt Process verification
US6883116B2 (en) 2001-09-27 2005-04-19 International Business Machines Corporation Method and apparatus for verifying hardware implementation of a processor architecture in a logically partitioned data processing system
US7062650B2 (en) 2001-09-28 2006-06-13 Intel Corporation System and method for verifying integrity of system with multiple components
JP4023654B2 (ja) * 2001-09-28 2007-12-19 日立ソフトウエアエンジニアリング株式会社 アプリケーションの監視方法およびプログラム
US6823433B1 (en) * 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security
US6850994B2 (en) 2001-11-16 2005-02-01 Microsoft Corporation Method for determining status of a computer device and detecting device behavior in response to a status request
US20030101381A1 (en) 2001-11-29 2003-05-29 Nikolay Mateev System and method for virus checking software
US6804741B2 (en) 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
JP2003281071A (ja) 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US7127548B2 (en) 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
JP2003330365A (ja) 2002-05-09 2003-11-19 Toshiba Corp コンテンツ配布/受信方法
JP2004013607A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd ファイル監視装置
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
JP2004013608A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd プログラムの実行および転送の制御
JP4582682B2 (ja) * 2002-07-08 2010-11-17 株式会社日立製作所 セキュリティウォールシステム
US6922766B2 (en) 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7107497B2 (en) 2002-09-30 2006-09-12 Sun Microsystems, Inc. Method and system for event publication and subscription with an event channel from user level and kernel level
US7028229B2 (en) * 2002-09-30 2006-04-11 Sun Microsystems, Inc. Kernel event subscription and publication system and method
FR2849226B1 (fr) * 2002-12-20 2005-12-02 Oberthur Card Syst Sa Procede et dispositif de securisation de l'execution d'un programme informatique.
US7111200B2 (en) 2003-04-17 2006-09-19 International Business Machines Corporation Apparatus and method for debugging a logical partition
US20040226009A1 (en) 2003-05-09 2004-11-11 International Business Machines Corporation System and method for software application task abstraction
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
US7010630B2 (en) * 2003-06-30 2006-03-07 International Business Machines Corporation Communicating to system management in a data processing system
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US7542026B2 (en) * 2003-11-03 2009-06-02 International Business Machines Corporation Apparatus method and system for improved feedback of pointing device event processing
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US20050138417A1 (en) * 2003-12-19 2005-06-23 Mcnerney Shaun C. Trusted network access control system and method
US7225325B2 (en) * 2003-12-30 2007-05-29 International Business Machines Corporation Customizing a computer system by using stored configuration parameters in a configuration mechanism
US7831838B2 (en) 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US20050213768A1 (en) * 2004-03-24 2005-09-29 Durham David M Shared cryptographic key in networks with an embedded agent
US7653727B2 (en) 2004-03-24 2010-01-26 Intel Corporation Cooperative embedded agents
US7558966B2 (en) * 2004-06-09 2009-07-07 Intel Corporation Notifying remote administrator of platform integrity determination
US7594124B2 (en) * 2004-06-09 2009-09-22 Intel Corporation Cross validation of data using multiple subsystems
US7802250B2 (en) 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
US20050289311A1 (en) 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US7644287B2 (en) 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7281102B1 (en) * 2004-08-12 2007-10-09 Vmware, Inc. Restricting memory access to protect data when sharing a common address space
US20060047955A1 (en) * 2004-08-30 2006-03-02 Axalto Inc. Application code integrity check during virtual machine runtime
US7571474B2 (en) * 2004-12-30 2009-08-04 Intel Corporation System security event notification aggregation and non-repudiation
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
JP4913353B2 (ja) * 2005-03-25 2012-04-11 株式会社エヌ・ティ・ティ・ドコモ ソフトウェア動作モデル化装置及びソフトウェア動作監視装置
US7739517B2 (en) * 2005-03-31 2010-06-15 Intel Corporation Hardware-based authentication of a software program
US7603484B2 (en) * 2005-04-21 2009-10-13 Microsoft Corporation Protocol for communication with a user-mode device driver
US20060294596A1 (en) * 2005-06-27 2006-12-28 Priya Govindarajan Methods, systems, and apparatus to detect unauthorized resource accesses
US20070006307A1 (en) 2005-06-30 2007-01-04 Hahn Scott D Systems, apparatuses and methods for a host software presence check from an isolated partition
US20070006175A1 (en) 2005-06-30 2007-01-04 David Durham Intra-partitioning of software components within an execution environment
US7761674B2 (en) * 2005-12-30 2010-07-20 Intel Corporation Identifier associated with memory locations for managing memory accesses
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US7669242B2 (en) 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US20070005935A1 (en) 2005-06-30 2007-01-04 Khosravi Hormuzd M Method and apparatus for securing and validating paged memory system
US20070008175A1 (en) * 2005-07-06 2007-01-11 Duane Johnson Siren detection notification alarm
US8079080B2 (en) * 2005-10-21 2011-12-13 Mathew R. Syrowik Method, system and computer program product for detecting security threats in a computer network
JP4762693B2 (ja) * 2005-11-22 2011-08-31 株式会社日立製作所 ファイルサーバ、ファイルサーバのログ管理システム及びファイルサーバのログ管理方法
JP2007128537A (ja) * 2006-12-18 2007-05-24 Macrovision Corp 動的に接続可能な実行イメージの真正性検証システム及び方法
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841672A (zh) * 2012-07-10 2012-12-26 上海果壳电子有限公司 一种休眠拦截方法及系统
CN102841672B (zh) * 2012-07-10 2016-03-16 上海果壳电子有限公司 一种休眠拦截方法及系统

Also Published As

Publication number Publication date
US20090125885A1 (en) 2009-05-14
JP4901842B2 (ja) 2012-03-21
EP2063377B1 (en) 2016-12-21
US8099718B2 (en) 2012-01-17
US20120144482A1 (en) 2012-06-07
CN101436237B (zh) 2011-11-30
JP2009140485A (ja) 2009-06-25
EP2063377A1 (en) 2009-05-27
US8434067B2 (en) 2013-04-30

Similar Documents

Publication Publication Date Title
CN101436237B (zh) 用于将软件组件列入白名单的方法和系统
EP3674954B1 (en) Security control method and computer system
CN101515316B (zh) 一种可信计算终端及可信计算方法
CN106682497B (zh) 在管理程序模式下安全执行代码的系统和方法
Graziano et al. Hypervisor memory forensics
CN103460179A (zh) 用于透明地对应用程序进行插桩的方法和设备
US10380336B2 (en) Information-processing device, information-processing method, and recording medium that block intrusion of malicious program to kernel
Reeves et al. Intrusion detection for resource-constrained embedded control systems in the power grid
Guri et al. JoKER: Trusted detection of kernel rootkits in android devices via JTAG interface
CN107408176A (zh) 恶意对象的执行剖析检测
CN103793651B (zh) 基于Xen虚拟化的内核完整性检测方法
US10339284B2 (en) Measurement method, electronic device, and measurement system
Srivastava et al. Logical acquisition and analysis of data from android mobile devices
CN106650434B (zh) 一种基于io序列的虚拟机异常行为检测方法与系统
Zhou et al. Hardware-based on-line intrusion detection via system call routine fingerprinting
Wei et al. Modeling the runtime integrity of cloud servers: a scoped invariant perspective
Zhong et al. A virtualization based monitoring system for mini-intrusive live forensics
Zhu et al. Static analysis based invariant detection for commodity operating systems
Klemperer et al. High-performance memory snapshotting for real-time, consistent, hypervisor-based monitors
Ibdah et al. Dark firmware: a systematic approach to exploring application security risks in the presence of untrusted firmware
Jia et al. Performing trusted computing actively using isolated security processor
CN108197464A (zh) 一种面向云环境的环境敏感型恶意软件分析检测方法和系统
Lee et al. Physical memory collection and analysis in smart grid embedded system
Zhan et al. SAVM: A practical secure external approach for automated in‐VM management
KR102549124B1 (ko) 난독화 된 vbscript를 탐지하고 복호화하기 위한 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111130

Termination date: 20191113