CN103907101B - 用于管理器环境中的内核rootkit防护的系统和方法 - Google Patents

用于管理器环境中的内核rootkit防护的系统和方法 Download PDF

Info

Publication number
CN103907101B
CN103907101B CN201280053257.2A CN201280053257A CN103907101B CN 103907101 B CN103907101 B CN 103907101B CN 201280053257 A CN201280053257 A CN 201280053257A CN 103907101 B CN103907101 B CN 103907101B
Authority
CN
China
Prior art keywords
page
client computer
kernel
entry
white list
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.)
Active
Application number
CN201280053257.2A
Other languages
English (en)
Other versions
CN103907101A (zh
Inventor
A·丹格
P·莫欣德尔
V·斯里瓦斯塔瓦
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.)
McAfee LLC
Original Assignee
McAfee LLC
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 McAfee LLC filed Critical McAfee LLC
Publication of CN103907101A publication Critical patent/CN103907101A/zh
Application granted granted Critical
Publication of CN103907101B publication Critical patent/CN103907101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

一个实施例中的系统和方法包括:用于创建软白名单的模块,其中该软白名单具有与管理器环境中的客户机操作系统里的每一个客户机内核页相对应的条目;当针对客户机内核页进行访问尝试时,产生页错误;如果该客户机内核页与软白名单中的条目里的一个相对应,则修复该页错误,以便允许访问和执行;如果该客户机内核页不与软白名单中的条目里的任何一个相对应,则拒绝执行。如果该页错误是指令页错误,并且该客户机内核页与软白名单中的条目里的一个相对应,则该方法包括:将该客户机内核页标记成只读的和可执行的。所述软白名单包括:与每一个客户机内核页的虚拟地址相对应的机器页面号的散列。

Description

用于管理器环境中的内核ROOTKIT防护的系统和方法
技术领域
概括地说,本公开内容涉及计算机网络领域,具体地说,及用于管理器(hypervisor)环境中的内核ROOTKIT防护的系统和方法。
背景技术
计算机网络安全领域在今日社会已变得日益地重要和复杂。事实上每一个企业或者组织都配置有计算机网络环境,其通常具有多个相互连接的计算机(例如,终端用户计算机、膝上型计算机、服务器、打印设备等等)。此外,云服务提供商(和运行多个应用和操作系统的其它组织)可以使用管理器技术在一个主机设备(host device)上同时地运行各种不同的客户机(guest)操作系统。管理器是允许在一个主机计算机上同时地运行多个操作系统的计算机软件/硬件平台虚拟化软件。在管理器环境中,可能外部地或内部地引起安全威胁。管理器环境下的这些威胁,可能向IT管理员呈现进一步的挑战。
附图说明
为了提供本公开内容及其特征和优点的更全面理解,结合附图来参照下面的描述,其中相同的附图标记表示相同的部件,其中:
图1是示出了根据一个示例性实施例用于管理器环境中的内核rootkit防护的系统的组件的简化框图;以及
图2是示出了可以与本公开内容的实施例相关联的示例性操作步骤的简化流程图。
示例性实施例的具体实施方式
概述
一个实施例中的系统和方法包括:用于创建软白名单的模块,其中该软白名单具有与管理器环境中的客户机操作系统里的每一个客户机内核页相对应的条目;当针对客户机内核页进行访问尝试时,产生页错误;如果该客户机内核页与软白名单中的条目里的一个相对应,则修复该页错误,以便允许进行访问和执行;以及如果该客户机内核页不与软白名单中的条目里的任何一个相对应时,则拒绝进行执行。在示例性实施例中,该软白名单包括与每一个客户机内核页的虚拟地址相对应的机器页面号的散列。
其它示例性实施例包括:如果所述页错误是指令页错误,并且所述客户机内核页与所述软白名单中的条目里的一个相对应,则将所述客户机内核页标记成只读和可执行。如果所述页错误是数据页错误,并且所述客户机内核页不与所述软白名单中的条目里的任何一个相对应,则该方法包括:修复所述页错误;以及将所述客户机内核页标记成不可执行。
更具体的实施例包括:在管理器的影子页表中将与每一个客户机内核页相对应的页表条目标记成NOT_PRESENT(不存在)。在其它示例性实施例中,该方法包括通过下面操作来拒绝执行:使所述客户机OS无限地循环、在所述客户机OS中注入异常、或者修复所述页错误、以及将所述影子页表中的相应PTE指向制作的页而不是所述客户机内核页。所述制作的页可以包括导致所述客户机OS崩溃或者导致无害地执行的一组无操作(NOP)指令的代码。
在其它示例性实施例中,在所述客户机OS在启动时实质上已经装载了所有其内核组件之后,执行创建软白名单。如果所述客户机OS实质上没有装载所有其内核组件,每一个客户机内核页可以来自于分页池范围或者非分页池范围。另一个实施例包括:在域创建期间,在所述管理器中设置锁定特征比特,以使能rootkit防护和其它特征。
示例性实施例
图1的简化框图示出了用于管理器环境中的内核rootkit防护的系统10的示例性实现。如本申请所使用的,“管理器”是允许一个或多个操作系统(OS)(其称为“客户机OS”)在主机设备(例如,计算机)上同时地运行的硬件虚拟实体。虚拟化允许客户机OS在隔离的虚拟环境(其通常称为虚拟机或者客户机)上不修改地运行,在隔离的虚拟环境中对主机设备的物理特性和行为进行复制。具体而言,一个客户机可以表示装备有虚拟硬件(处理器、存储器、磁盘、网络接口等等)的隔离的虚拟环境。根据图1中所描绘的实施例,系统10包括管理器12,其向客户机14提供虚拟环境。在本公开内容的广泛的范围之内,可以有任意数量的客户机驻留在管理器12上。为了便于解释,在图1中只表示性地描绘了单一客户机。
管理器12对主机设备(没有示出)的被分配由客户机14使用的硬件16进行控制和管理。在管理器12上,客户机14可以运行客户机OS18。客户机OS18可以支持一个或多个应用20(本申请中用单数称为应用20,以指代应用中的一个)。如本申请所使用的,以广泛的含义来使用术语“应用”,以便一般地指代任何软件文件、库模块、函数、子例行程序、二进制文件、指令集、代码块、或者其它类似的操作单元,其中所述其它类似的操作单元包括:在具有辅助或者不具有辅助(例如,编译、解释等等)的基础上,能被计算机理解和处理的指令。
管理器12可以管理应用20针对底层硬件16(例如,处理器22和机器存储器24)的访问。如本申请所使用的,“机器存储器”指代管理器12可见的、如在主机设备上可用的存储器单元。客户机OS18可以向应用20呈现客户机虚拟存储器26,其访问客户机物理存储器28。如本申请所使用的,术语“客户机虚拟存储器”指代在客户机14中运行的应用20可见的基本连续虚拟地址空间。地址空间指代离散地址的范围,每一个离散地址可以对应于一个存储器单元(即,地址),应用(例如,应用20)可以在该存储器单元处存储数据,并稍后获取数据。如本申请所使用的,术语“客户机物理存储器”指代客户机OS18可见的虚拟存储器。
客户机物理存储器28可以在操作期间创建内核页30。当客户机OS将其客户机内核装载到内存中时,该客户机内核被划分成页(例如,客户机内核页30),其中一些页包含内核指令,其它页包含内核数据。每一个页(其包括客户机内核页30中的每一个在内)通常具有标准大小(例如,4kB),并与一个地址(例如,客户机虚拟地址)相关联。客户机OS18通过页表,将每一个页的虚拟地址映射到相应的“物理”地址。虽然客户机存储器(例如,客户机虚拟存储器26和客户机物理存储器28)是虚拟的,但客户机OS18假定客户机物理存储器28是真实的或者“物理的”。但是,客户机物理存储器(例如,客户机物理存储器28)仅仅是管理器12为了维持针对(真实)主机物理地址(其还称为机器地址)的正确映射所使用的抽象。
页表是客户机OS18为了存储虚拟地址和“物理”地址之间的映射而使用的数据结构。页表包含若干页表条目(PTE),每一个PTE将一个虚拟地址映射到相应的“物理”地址(例如,从客户机虚拟地址映射到客户机物理地址或者从客户机物理地址映射到机器地址)。PTE包括:与适当的存储器元件(例如,客户机物理存储器28或者机器存储器24)中的页有关的“物理”地址(例如,客户机物理地址或者机器地址)和其它信息,例如,该页是否存在、该页是只读的还是读/写的等等。
针对当前执行的进程,管理器12可以使用影子页表32,将客户机物理存储器28映射到机器存储器24。“进程”是指令正被执行的应用(或者其一部分)的实例。影子页表32包括与客户机内核页30相对应的页表条目(PTE)34。PTE34中的每一个包括:与装载到机器存储器24中的相应内核页有关的机器地址和其它信息。根据一个示例性实施例,可以在影子页表32中将PTE34标记成NOT_PRESENT(不存在)。在示例性实施例中,每当在客户机OS18中创建任何新的内核页时,就可以缺省地将影子页表32中的相应PTE34标记成NOT_PRESENT。
管理器12中的rootkit防护模块36可以将与客户机内核页30的虚拟地址相对应的机器页面号(MFN)添加到散列(hash)36中。在一个示例性实现中,MFN指代在机器存储器24中为相应的虚拟地址分配的页号。页错误处理机40可以有条件地允许或者拒绝对于适当的客户机内核页30的访问或者执行。在管理器12上运行的域0(DOM0)42具有访问物理硬件16以及与在该系统上运行的其它客户机进行交互的特权。DOM042可以具有锁定模块44,用于控制管理器12中的rootkit防护模块36的某些锁定特征。
为了描绘系统10的技术的目的,重要的是理解可能在给定的系统(例如,图1中所示出的系统)中出现的动作和安全问题。可以将下面的基本信息视作为用于对本公开内容进行适当地解释的基础。认真地提供这样的信息仅仅是为了解释的目的,因此,这样的信息无论如何不应被解释为限制本公开内容及其潜在应用的广泛范围。
典型的计算体系结构支持4环(编号为0到3)的特权层级,以便保护系统代码和数据不被低级特权代码无意或者恶意覆盖。环0是最高特权层级,而环3是最低特权层级。OS可以针对不同的进程使用不同的特权层级。例如,Windows OS针对进程和数据安全,使用两个特权层级(环0和3)。用于诸如互联网浏览器和微软Word之类的应用和很多Windows服务(例如,服务控制管理器、本地系统安全权限、Winlogon、会话管理器和RPC服务器等等)的代码在环3中运行。
内核级代码在环0中运行,并在设备驱动器和内核组件(例如,针对虚拟存储器、高速缓存、输入/输出、对象、即插即用、硬件抽象层、图形子系统、文件系统和网络协议实现的管理器)。内核将应用连接到计算设备的硬件。通常,内核包括可以根据OS进行变化的若干组件。例如,Linux OS可以包括诸如下面的组件:低级驱动器(例如,负责中央处理单元(CPU)、存储器管理单元(MMU)和板上设备初始化的特定于架构的驱动器);进程调度器(例如,负责将CPU时间切片公平地分配到不同的进程的组件);存储器管理器(例如,负责向不同的进程分配存储器和共享存储器的组件);文件系统(例如,对底层文件系统进行抽象以便向用户呈现统一文件系统接口的组件);网络接口(例如,提供针对不同的联网设备的访问和控制的组件);设备驱动器(例如,高级驱动器)等等。应用通常使用系统函数调用(例如,Win32API调用)来与内核进行通信。
Rootkit改变(应用中的进程的)正常执行路径的流程,以使其秘密行动成功实施。Rootkit是这样一种软件:其实现针对设备的持续的特权访问,同时通过破坏标准OS功能来有效地隐藏它的存在。Rootkit通常修改系统函数调用所返回的数据,以便隐藏它们的二进制文件、进程和注册表条目。根据rootkit在什么地方运行以及它们挂钩在系统中的什么区域,通常可以将rootkit分类成两种类型中的一种:用户模式的rootkit和内核rootkit。由于用户模式的rootkit以用户模式特权执行,因此其相对容易地进行检测和修复。另一方面,内核rootkit以系统特权执行,这使得检测和修复它们更具有挑战性。内核rootkit通常通过安装内核模式设备驱动器,将它们的代码装载(即,注入)到内核地址空间。例如,可以通过使用内核模块将内核代码注入到运行的内核,或者通过向一块未使用的内核存储器写入新代码,或者通过插入内核模块文件等等,来安装内核rootkit。一旦传输机制到位,内核rootkit就可以破坏一个进程的正常执行路径的流程。
内核rootkit是桌面安全中的显著挑战。内核rootkit可以发起各种攻击,例如,打开系统后门、偷窃隐私信息、关闭安全措施以及执行其它恶意应用。一般情况下,攻击者在第一次获得根级访问之后,通过使用已知的漏洞或者通过获得密码(例如,借由通过社交工程破解加密),在计算机上安装内核rootkit。一旦内核rootkit被安装了,其就允许攻击者通过绕开正常的认证和授权机制来掩盖正在进行的入侵并维持针对该计算机的特权访问。内核rootkit可能是难于检测的,这是由于内核rootkit可能能够破坏旨在发现它的软件。检测方法包括使用替代的、信任的操作系统;基于行为的方法;签名扫描;差别扫描;以及存储器转储分析。删除可能是复杂的,或者实际上是不可能的,特别是在内核rootkit驻留在内核之中的情况下更是如此。
在管理器环境下,攻击的影响可能是很严重的。一个受感染的客户机可能感染该主机设备上的所有其它客户机。例如,攻击者可以通过感染一个客户机来获得硬件上的管理员特权,并且通过管理器环境从一个客户机移到另一个客户机。在管理器拥有成千个客户机的情形下,这种客户机到客户机攻击可能具有灾难性的结果。
管理器环境给出了用于在无需驻留于客户机的防护软件的情况下,提供内核rootkit防护的机会。客户机在虚拟化主机设备中的管理器之上运行。传统的内核rootkit防护机制可以安装到在管理器上运行的客户机的每一个实例上;但是,这些方法在存储器、运行时间性能和管理方面导致了显著开销。理想情况下,内核rootkit防护机制应该位于(其正在保护的)内核之外,这在非虚拟化环境下可能是不可能的。此外,在云(虚拟化)环境下运行客户机的客户可能喜欢云服务提供商透明地提供内核rootkit防护。
在内核rootkit防护的一种方法中,可以使用散列函数来计算磁盘上的代码库的数字签名。该散列函数创建消息摘要,消息摘要是针对任意的数据块计算的使得对该数据的改变也改变散列值的固定大小比特串。通过以定期的时间间隔重新计算磁盘上的代码库的消息摘要,并将其与受信任的指纹列表进行比较,可以检测和监测到系统的改变。但是,当前方法只检查自从代码的发布者上一次发布以来,该代码是否被修改过。此外,内核rootkit可以通过从存储器进行装载,而不是在磁盘上进行修改,来破坏该过程。其它rootkit防护解决方案可以是基于商业OS的。需要能够提供无代理保护的用于虚拟化环境的软件。
图1所描绘的用于管理器环境中的内核rootkit防护的系统,可以解决这些问题以及其它。本公开内容的实施例寻求大幅地提高现有技术的能力,以便允许更健壮的解决方案。在示例性实施例中,系统10的组件可以在管理器12之中,创建客户机内核页30的软白名单(例如,散列38)。该软白名单包括与客户机OS18中的每一个客户机内核页30相对应的条目。在示例性实施例中,该软白名单旨在包括批准的客户机内核页的列表,其中所述批准的客户机内核页中的每一个通过例如相应的机器页面号(MFN)、而不是整个页内容的校验和来表示。在示例性实施例中,该软白名单(即,散列38)包括与客户机内核页30相对应的MFN的散列。
根据一个示例性实施例,可以在客户机OS18已经引导并且已经装载了其内核组件(例如,进程调度器、存储器管理器、文件系统等等)之后,创建该软白名单。如本申请所使用的,术语“引导”指代引导序列,其是当打开电源时计算机执行的一组初始操作。其后,系统10可以确保不执行来自于不存在于该软白名单中的任何新内核页的代码。根据另一个示例性实施例,可以在客户机OS18已经引导,并已经装载了其内核组件之前,创建该软白名单。内核页30可以处于分页池和非分页池之中(这是由于所有的内核驱动器都装载在这些页之中)。可以将分页池和非分页池范围之内的每一个错误虚拟地址的页起始地址存储在管理器12中的散列表(例如,散列38)里。
例如,系统10可以防护零日威胁,这是因为其是基于白名单的。在示例性实施例中,系统10可以由公有云基础设施提供商和使用私有云的公司来实现。系统10可以提供透明的安全层。对于不频繁地改变其基本OS配置而只是改变在基本OS配置上存储的数据的客户(例如,web主机服务提供商)来说,该解决方案可能是特别有用的。
转到管理器环境下的存储器管理,客户机OS(例如,客户机OS18)向应用(例如,应用20)提供客户机虚拟存储器(例如,客户机虚拟存储器26)中的虚拟地址空间布局。可以将客户机虚拟存储器的地址空间划分成用户空间(其中用户空间是应用(例如,应用20)可访问的)和系统空间(其中系统空间包括引导驱动器、进程页表、系统高速缓存、分页池和非分页池等等)。通常,系统页的地址位置是硬编码的(或者是先验已知的)。例如,可以将4GB的客户机虚拟存储器分割成3GB的用户空间(其地址范围从0xBFFFFFFF到0x00000000)和系统空间(其地址范围从0xFFFFFFFF到0xC0000000)。
客户机OS通过页表来处理虚拟地址到物理地址的映射。虽然虚拟地址空间(例如,客户机虚拟存储器26)通常是连续的,但是这些地址可能被映射到物理地址空间(例如,客户机物理存储器28)中的非连续块。将虚拟到物理映射信息放置在称为页表条目(PTE)的结构的页表中。PTE的格式可以随着OS发生变化,例如,Linux OS可以指定一种格式,而Windows XP OS可以指定另一种格式。一般地,PTE通常包含一个位来指示PTE所引用的页是否存在(或者有效)。例如,当一个进程开始装载到机器存储器(例如,机器存储器24)中时,客户机OS假定页装载到客户机物理存储器(例如,客户机物理存储器28)中,并生成相应的页表。将针对被装载到机器存储器的页的存在位设置为0(其指示NOT_PRESENT),直到将所有页都装载到存储器中为止。一旦装载了所有页,则可以将针对这些页的存在位在各自的PTE中设置为1(其指示PRESENT)。在装载期间,如果尝试访问被标记为NOT_PRESENT的页,则可以产生页错误。
在示例性实施例中,客户机14所维持的任何页表可以具有相应的影子页表(例如,影子页表32),其是由管理器12来生成和维持的。客户机OS18无权访问影子页表32。在引导时,客户机OS18可以将其内核从计算机的硬盘装载到存储器中(例如,以客户机内核页30的形式)。Rootkit防护模块36可以在影子页表32中将与客户机内核页30相对应的PTE34标记成NOT_PRESENT。在一个示例中,rootkit防护模块36可以通过读取页的虚拟地址,来确定该页是客户机内核页30中的一个。如果该虚拟地址位于特定的范围(例如,预定的范围)之内,则该页可以是客户机内核页30中的一个,并且相应的PTE34可以被标记成NOT_PRESENT。
当发生页错误时,控制从执行引起该页错误的指令的处理器(例如,处理器22)转移到管理器(例如,管理器12)。管理器的页错误处理机(例如,页错误处理机40)可以确定指令指针和出错地址,例如以便判断该页错误是指令页错误还是数据页错误。例如,如果指令指针(即,指向处理器接下来将尝试执行的存储器地址的指针)指向出错地址,则该页错误是指令页错误。
转到图1的基础设施,管理器12可以运行客户机OS的多个实例。管理器12可以是服务器、防火墙、防病毒解决方案或者更一般地是计算机的一部分。在一个示例性实现中,管理器12是Xen单元,Xen单元在裸硬件上运行并提供在相同的硬件上同时地运行OS的多个实例的能力。典型的Xen设置可以涉及Xen在多个OS之下运行,其中应用位于与一组客户机(例如客户机14)相关联的OS之上。该完整的配置可以在服务器(或者某个其它网络设施)中提供。在一个示例性实施例中,客户机14可能正在运行与DOM042相关联的OS。应当注意,Xen实现仅仅表示本公开内容可以应用的一个可能示例。任意数量的其它管理器可以类似地从本申请所讨论的广泛教导中受益。
用于管理管理器12的控制工具可以在DOM042上运行。DOM042可以提供统一的接口,来在管理器12上管理客户机(例如,客户机14)。DOM042可以提供一种供管理员配置管理器12的方式,包括:管理存储、控制客户机行为的方面、建立虚拟网络、配置管理器和一个或多个客户机、以及对客户机进行创建、删除、关闭、引导等等。例如,这种类型的设置在服务器运行Xen、Xen进而拥有客户机的多个实例的数据中心中可以是流行的。DOM042可以包括修改的Linux内核,并且可以具有用于访问物理I/O资源、以及与在该系统上运行的其它虚拟机进行交互的特殊权利。通常,DOM042是在系统引导时所发起的第一域,并且其可以用于创建和配置所有其它常规的客户机(例如,客户机14)。管理器环境可能要求DOM042在其它客户机能够被启动之前进行运行。
转到图2,图2的简化流程图示出了可以与本公开内容的实施例相关联的示例性操作步骤。操作100可以开始于102,此时激活DOM042。在104,锁定模块44可以使能域创建期间的锁定功能(其与从客户机上下文到管理器上下文的VMEXIT转换相关联)。在106,可以在管理器12中,设置特定于域的数据结构中的锁定功能比特。在108,可以启动管理器虚拟机(HVM)(即,客户机14)。在110,在VMEXIT到管理器12的情况下,客户机OS18可以创建针对客户机内核页30的页表条目(PTE)。在112,rootkit防护模块36可以在影子页表32中,创建针对客户机内核页30的PTE34。在114,rootkit防护模块36可以在由管理器12所维持的影子页表32中,将客户机内核页30标记成NOT_PRESENT。此外,在116,可以连同与处理器22相关联的虚拟机指令(VMRUN)一起来提供该操作。
如果已经使能了rootkit防护(例如,客户机OS18已经引导并装载了其内核组件),则页错误处理机40可以执行诸如下面的动作:遍历管理器12中的影子页表32,以及向散列38添加虚拟地址(例如,其与先前没有访问的页相对应)。在一个示例性实施例中,在客户机18完成引导之后,这些动作发生一次,随后系统10可以视作为被锁定。
在120,客户机OS14中的应用20可以尝试访问客户机内核页30。尝试访问客户机内核页30,可能造成122中的页错误(这是由于客户机内核页30已被标记成NOT_PRESENT)。应当注意,如果没有使能rootkit防护(例如,客户机OS18尚未引导和装载其内核组件),并且如果页错误位于分页池范围和非分页池范围之外,则页错误处理机40可以简单地修复该页错误,并将针对每一个出错虚拟地址(例如,在分页池范围和非分页池范围中)的页起始地址存储在散列38中。可以允许对位于分页池和非分页池范围之外的这些地址进行访问,这是由于通常将内核驱动器装载在分页池范围和非分页池范围之内。
当在122中遭遇到页错误时,在124中,判断该页错误是指令页错误还是数据页错误。如果该页错误是数据页错误,则搜索软白名单(即散列38)以查找与出错虚拟地址相对应的MFN散列。如果在散列38中存在该出错虚拟地址的MFN,则与该页错误相关联的页是合法的。因此,在126,页错误处理机40可以永久地修复该页错误,以便允许该页的未来访问/执行。另一方面,如果在散列38中不存在与该出错虚拟地址相对应的MFN,则该内核页是新的,并且向其进行写入的任何尝试可能包括代码或数据。因此,在126,页错误处理机40可以永久地修复该页错误,将该页标记成NX(不执行)。这可以确保发生最少的页错误,同时防止任何新的内核页被访问或者执行。其它页可以继续是可读/写的(在不存在任何页错误的情况下),直到尝试执行该页为止。在128,可以允许应用20访问影子页表32,并且该过程结束于130。
如果在124中确定该页错误是指令错误,则页错误处理机40可以在132中检查在散列38中是否存在针对该出错虚拟地址的MFN。如果存在,则在134中页错误处理机40可以永久地修复该页错误(例如,允许未来访问/执行),并将该页标记成只读,删除任何NX并允许访问/执行。如果在散列38中不存在该页,则其可能意味着该页是新内核页,并且在136中,页错误处理机40可以拒绝执行。可以以下面几种方式来实现拒绝执行:(i)不修复页错误,造成客户机14中的出错线程无限地循环;(ii)不修复页错误,并在客户机14中注入异常。该异常可以被出错进程捕获。如果该进程不处理该异常,则其可以被杀掉;(iii)可以修复页错误,但可以使与该出错页相关联的影子PTE34指向制作的页而不是期望的页。该制作的页可以配置有造成客户机14崩溃,或者造成将无害地执行无操作被执行(NOP)指令的代码。其它示例是时客户机14“蓝屏”、插入造成优雅地退出的伪页等等。该过程可以在138处结束。
可以在各个位置处(例如,在rootkit防护模块36中),提供用于内核rootkit防护(以及禁止执行危险代码)的软件。在一个示例性实现中,该软件驻留在寻求被保护以防止安全攻击(或者防止不想要的、或者未授权的对可写入存储区域的操作)的计算机中。在更详细的配置中,该软件专门驻留在管理器的安全层中,其可以包括图1所描述的组件(或者与它们进行交互)。在其它实施例中,可以从web服务器接收或者下载软件(例如,在针对单独的设备、单独的虚拟机、客户机、管理器、服务器等等,购买单独的终端用户许可的背景下),以便提供该内核rootkit防护。
在其它示例中,内核rootkit防护功能可以涉及专有单元(例如,作为防病毒解决方案的一部分),其中这些专有单元可以在这些标识的单元中提供(或者接近这些标识的单元),或者在任何其它设备、服务器、网络设施、控制台、防火墙、交换机、信息技术(IT)设备等等中提供,或者被提供成互补解决方案(例如,结合防火墙),或者在网络中的某个地方进行设置。如本说明书中所使用的,术语‘计算机’意味着涵盖:用于在安全环境下,影响或者处理电子信息的这些可能单元(VMM、管理器、Xen设备、虚拟设备、网络设备、路由器、交换机、网关、处理器、服务器、负载平衡器、防火墙或者任何其它适当的设备、组件、单元或对象)。此外,这种计算机可以包括:有助于实现其操作的任何适当硬件、软件、组件、模块、接口或者对象。这可以包括:允许有效的防护内核rootkit的适当算法和通信协议。此外,可以以任何适当的方式,对内核rootkit防护功能进行合并。沿着类似的设计替换方案,可以以各种可能的配置,对各个附图中的所描绘模块和组件里的任何一个进行组合:所有这些都清晰地落入本说明书的广泛范围之内。
这些单元(例如,计算机、服务器、网络设施、防火墙、管理器、任何其它类型的虚拟单元等等)中的任何一个,可以包括能够执行软件或者算法以便执行如本说明书所讨论的内核rootkit防护动作的处理器。另外,在适当时病基于特定的需求,这些单元(例如,计算机、服务器、网络设施、防火墙、管理器、任何其它类型的虚拟单元等等)中的每一个,可以包括存储器单元(随机存取存储器(RAM)、ROM、EPROM、EEPROM、ASIC等等)、软件、硬件,或者位于任何其它适当的组件、设备、单元或者对象中。基于特定的需求和实现,可以在任何数据库、寄存器、表、高速缓存、队列、控制列表或者存储结构中提供在系统10中被跟踪、发送、接收或者存储的信息,所有这些可以用任何适当的时间表来引用。
这些单元和/或模块可以彼此之间进行协作,以便结合管理器环境中的内核rootkit防护来执行这些动作,如本申请所讨论的。在其它实施例中,可以将这些特征提供在这些单元之外,包括在其它设备中以实现这些意图的功能,或者以任何适当的方式进行合并。例如,可以删除或者合并与各个单元相关联的处理器中的一些,使得单一处理器和单一存储单元负责某些动作。通常来讲,附图中所描述的排列就其表示性来说是更加具有逻辑性的,而物理体系结构可以包括这些单元的各种置换、组合和/或混合。
本申请所讨论的存储器术语中的任何一个(例如,客户机内核页30、影子页表32、机器存储器24、客户机虚拟存储器26、客户机物理存储器28、散列38等等),应当被解释成涵盖在广义术语‘存储器单元’之内。类似地,在本说明书中所描述的潜在处理单元、模块和机器中的任何一个,应当被解释成涵盖在广义术语‘处理器’之内。计算机、网络设施、虚拟单元等等中的每一个也可以包括:用于在管理器环境中接收、发送和/或传输数据或者信息的适当接口。
处理器可以执行与数据相关联的任何类型的指令,以实现本申请在该说明书中所详细描述的操作。在一个示例中,处理器(如附图中所示出的)可以将一个单元或者物品(例如,数据)从一种状态或者事物转换成另一种状态或者事物。在另一个示例中,本申请所概述的动作可以用固定逻辑或者可编程逻辑(例如,由处理器执行的软件/计算机指令)来实现,并且本申请所标识的单元可以是某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA))、可擦除可编程只读存储器(EPROM)、电可擦除可编程ROM(EEPROM)或者包括数字逻辑、软件、代码、电子指令或者其任意组合的ASIC。
在某些示例性实现中,本申请所概述的内核rootkit防护功能可以通过在一个或多个有形、非临时性介质中编码的逻辑(例如,在专用集成电路(ASIC)、数字信号处理器(DSP)指令、将由处理器或者其它类似机器执行的软件(其潜在地包含目标代码和源代码)等等中提供的嵌入式逻辑)来实现。在这些实例中的一些中,存储器单元(如附图中所示)可以存储用于本申请所描述的操作的数据。这包括能够存储软件、逻辑、代码或者处理器指令的存储器单元,其中这些软件、逻辑、代码或者处理器指令被执行以实现本说明书中所描述的动作。在各个实施例中,这些单元中的一些或者全部包括:能够协调、管理或者协作以便实现如本申请所概述的操作的软件(或者往复式软件)。这些单元中的一个或多个可以包括有助于实现其操作的任何适当的算法、硬件、软件、组件、模块、接口或者对象。
应当注意,在本申请提供的众多示例中,通过两个、三个、四个或者更多的网络单元和模块来描述交互。但是,这只是用于清楚说明和举例说明目的。应当理解的是,可以以任何适当的方式对系统进行合并。沿着类似的设计替换方案,可以将图1中的所描绘的模块、组件和单元中的任何一个以各种可能的配置进行组合,所有这些都清晰地落入本说明书的广泛范围之内。在某些情况下,通过仅仅引用有限数量的单元或者组件,来描述一组给定的流程的功能中的一个或多个是更容易的。应当理解的是,图1的系统(以及其教导)可容易地扩展,并且能适应很大数量的组件以及更复杂/高深的排列和配置。因此,所提供的示例不应当限制系统10的范围,或者约束系统10的广义教导,这是因为这些示例可以潜在地应用于各种其它架构。
同样重要的是要注意,参照前述的附图所描述的操作仅仅描绘了可以由该系统执行、或者在该系统中执行的可能场景中的一些。在适当时,可以对这些操作中的一些进行删除或者去除,或者可以对这些步骤进行相当的修改或者改变,而不脱离所讨论的构思的范围。此外,可以对这些操作的时序进行相当的改变,但仍然获得本公开内容中所教示的结果。提供前述的操作流程,只是用于举例和讨论目的。本系统所提供的实质的灵活性在于:可以在不脱离所讨论的构思的教导的基础上,提供任何适当的排列、年表、配置和定时机制。

Claims (23)

1.一种用于管理器环境中的内核rootkit防护的方法,包括:
创建软白名单,所述软白名单具有与管理器环境中的客户机操作系统OS中的每一个客户机内核页相对应的条目,所述管理器环境包括管理器;
当针对客户机内核页进行访问尝试时,产生页错误;
如果所述客户机内核页与所述软白名单中的所述条目中的一个条目相对应,则修复所述页错误,以便允许访问和执行;以及
如果所述客户机内核页不与所述软白名单中的所述条目中的任何一个条目相对应,则拒绝执行。
2.根据权利要求1所述的方法,还包括:
如果所述页错误是指令页错误,并且所述客户机内核页与所述软白名单中的所述条目中的一个条目相对应,则将所述客户机内核页标记成只读的和可执行的。
3.根据权利要求1所述的方法,还包括:
如果所述页错误是数据页错误,并且所述客户机内核页不与所述软白名单中的所述条目中的任何一个条目相对应,则:
修复所述页错误;以及
将所述客户机内核页标记成不可执行的。
4.根据权利要求1所述的方法,其中,创建所述软白名单包括:将与每一个客户机内核页的虚拟地址相对应的机器页面号MFN添加到散列中。
5.根据权利要求1所述的方法,还包括:
在所述管理器的影子页表中,将与每一个客户机内核页相对应的页表条目PTE标记成NOT_PRESENT。
6.根据权利要求1所述的方法,其中,拒绝执行包括以下中的一个:
使所述客户机OS无限地循环;
在所述客户机OS中注入异常;或者
修复所述页错误,并将所述影子页表中的相应页表条目PTE指向制作的页而不是所述客户机内核页,其中,所述制作的页包括代码,所述代码使所述客户机OS崩溃或者引起一组无害地执行的无操作NOP指令。
7.根据权利要求1所述的方法,其中,创建所述软白名单是在所述客户机OS在引导时已经装载了其所有内核组件之后执行的。
8.根据权利要求1所述的方法,其中,创建所述软白名单是在所述客户机OS已经装载了其所有内核组件之前执行的,并且每一个客户机内核页来自于分页池范围或者非分页池范围。
9.根据权利要求1所述的方法,还包括:
在域创建期间,在所述管理器中设置锁定功能位,以使能rootkit防护。
10.一种用于管理器环境中的内核rootkit防护的装置,包括:
存储器;和
处理器;以及
管理器,使得所述装置被配置为:
创建软白名单,所述软白名单具有与管理器环境中的客户机操作系统OS中的每一个客户机内核页相对应的条目,所述管理器环境包括管理器;
当针对客户机内核页进行访问尝试时,产生页错误;
如果所述客户机内核页与所述软白名单中的所述条目中的一个条目相对应,则修复所述页错误,以便允许访问和执行;以及
如果所述客户机内核页不与所述软白名单中的所述条目中的任何一个条目相对应,则拒绝执行。
11.根据权利要求10所述的装置,其中,所述装置还被配置为:
如果所述页错误是指令页错误,并且所述客户机内核页与所述软白名单中的所述条目中的一个条目相对应,则将所述客户机内核页标记成只读的和可执行的。
12.根据权利要求10所述的装置,其中,所述装置还被配置为:
如果所述页错误是数据页错误,并且所述客户机内核页不与所述软白名单中的所述条目中的任何一个条目相对应,则:
修复所述页错误;以及
将所述客户机内核页标记成不可执行的。
13.根据权利要求10所述的装置,其中,创建所述软白名单包括:将与每一个客户机内核页的虚拟地址相对应的机器页面号MFN添加到散列中。
14.根据权利要求10所述的装置,其中,拒绝执行包括以下中的一个:
使所述客户机OS无限地循环;
在所述客户机OS中注入异常;或者
修复所述页错误,并将所述管理器的影子页表中的相应页表条目PTE指向制作的页而不是所述客户机内核页,其中,所述制作的页包括代码,所述代码使所述客户机OS崩溃或者引起一组无害地执行的无操作NOP指令。
15.一种用于管理器环境中的内核rootkit防护的装置,包括:
用于创建软白名单的模块,所述软白名单具有与管理器环境中的客户机操作系统OS中的每一个客户机内核页相对应的条目,所述管理器环境包括管理器;
用于当针对客户机内核页进行访问尝试时,产生页错误的模块;
用于如果所述客户机内核页与所述软白名单中的所述条目中的一个条目相对应,则修复所述页错误,以便允许访问和执行的模块;以及
用于如果所述客户机内核页不与所述软白名单中的所述条目中的任何一个条目相对应,则拒绝执行的模块。
16.根据权利要求15所述的装置,还包括:
用于如果所述页错误是指令页错误,并且所述客户机内核页与所述软白名单中的所述条目中的一个条目相对应,则将所述客户机内核页标记成只读的和可执行的模块。
17.根据权利要求15所述的装置,还包括:
用于如果所述页错误是数据页错误,并且所述客户机内核页不与所述软白名单中的所述条目中的任何一个条目相对应,则:
修复所述页错误;以及
将所述客户机内核页标记成不可执行的模块。
18.根据权利要求15所述的装置,其中,用于创建所述软白名单的模块包括:用于将与每一个客户机内核页的虚拟地址相对应的机器页面号MFN添加到散列中的模块。
19.根据权利要求15所述的装置,还包括:
用于在所述管理器的影子页表中,将与每一个客户机内核页相对应的页表条目PTE标记成NOT_PRESENT的模块。
20.根据权利要求15所述的装置,其中,拒绝执行包括以下中的一个:
使所述客户机OS无限地循环;
在所述客户机OS中注入异常;或者
修复所述页错误,并将所述影子页表中的相应页表条目PTE指向制作的页而不是所述客户机内核页,其中,所述制作的页包括代码,所述代码使所述客户机OS崩溃或者引起一组无害地执行的无操作NOP指令。
21.根据权利要求15所述的装置,其中,创建所述软白名单是在所述客户机OS在引导时已经装载了其所有内核组件之后执行的。
22.根据权利要求15所述的装置,其中,创建所述软白名单是在所述客户机OS已经装载了其所有内核组件之前执行的,并且每一个客户机内核页来自于分页池范围或者非分页池范围。
23.根据权利要求15所述的装置,还包括:
用于在域创建期间,在所述管理器中设置锁定功能位,以使能rootkit防护的模块。
CN201280053257.2A 2011-10-13 2012-09-14 用于管理器环境中的内核rootkit防护的系统和方法 Active CN103907101B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/272,830 US8973144B2 (en) 2011-10-13 2011-10-13 System and method for kernel rootkit protection in a hypervisor environment
US13/272,830 2011-10-13
PCT/US2012/055660 WO2013055498A1 (en) 2011-10-13 2012-09-14 System and method for kernel rootkit protection in a hypervisor environment

Publications (2)

Publication Number Publication Date
CN103907101A CN103907101A (zh) 2014-07-02
CN103907101B true CN103907101B (zh) 2017-02-15

Family

ID=48082282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280053257.2A Active CN103907101B (zh) 2011-10-13 2012-09-14 用于管理器环境中的内核rootkit防护的系统和方法

Country Status (5)

Country Link
US (2) US8973144B2 (zh)
EP (1) EP2766843B1 (zh)
JP (2) JP5909829B2 (zh)
CN (1) CN103907101B (zh)
WO (1) WO2013055498A1 (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US7856661B1 (en) 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US8701189B2 (en) 2008-01-31 2014-04-15 Mcafee, Inc. Method of and system for computer system denial-of-service protection
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US8381284B2 (en) 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US9552497B2 (en) * 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US8694738B2 (en) 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
WO2013101155A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Direct ring 3 submission of processing jobs to adjunct processors
RU2510074C2 (ru) * 2012-02-24 2014-03-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ проверки исполняемого кода перед его выполнением
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
RU2510075C2 (ru) * 2012-04-11 2014-03-20 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ обнаружения вредоносного программного обеспечения в ядре операционной системы
US9754105B1 (en) * 2012-09-25 2017-09-05 Malwarebytes Corporation Preventing the successful exploitation of software application vulnerability for malicious purposes
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
US9208103B2 (en) * 2013-09-26 2015-12-08 Cavium, Inc. Translation bypass in multi-stage address translation
US9645941B2 (en) 2013-09-26 2017-05-09 Cavium, Inc. Collapsed address translation with multiple page sizes
WO2015060857A1 (en) 2013-10-24 2015-04-30 Mcafee, Inc. Agent assisted malicious application blocking in a network environment
CN103793651B (zh) * 2014-02-22 2016-05-25 西安电子科技大学 基于Xen虚拟化的内核完整性检测方法
US9760712B2 (en) * 2014-05-23 2017-09-12 Vmware, Inc. Application whitelisting using user identification
KR101609124B1 (ko) * 2014-07-07 2016-04-20 주식회사 윈스 모바일 네트워크 환경에서 행위기반 분석 서비스 제공 방법 및 장치
US9696933B2 (en) 2014-08-15 2017-07-04 International Business Machines Corporation Virtual machine manager initiated page-in of kernel pages
US9609005B2 (en) * 2014-09-25 2017-03-28 Mcafee, Inc. Cross-view malware detection
US10241817B2 (en) 2014-11-25 2019-03-26 Red Hat Israel, Ltd. Paravirtualized access for device assignment by bar extension
US9952890B2 (en) * 2016-02-29 2018-04-24 Red Hat Israel, Ltd. Kernel state data collection in a protected kernel environment
CN107066311B (zh) * 2017-03-20 2020-11-20 中国科学院软件研究所 一种内核数据访问控制方法与系统
CN107563224B (zh) * 2017-09-04 2020-07-28 浪潮集团有限公司 一种多用户物理隔离方法及装置
TWI682323B (zh) * 2017-11-24 2020-01-11 財團法人工業技術研究院 伺服器及其設定方法
CN109445847B (zh) * 2018-07-09 2021-09-17 北京东土科技股份有限公司 工业服务器微内核架构实现方法
CN112906008B (zh) * 2018-11-15 2023-07-25 百度在线网络技术(北京)有限公司 内核漏洞修复方法、装置、服务器及系统
CN110737888B (zh) * 2019-09-12 2022-09-20 北京理工大学 虚拟化平台操作系统内核数据攻击行为检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147843A (zh) * 2011-05-16 2011-08-10 湖南大学 一种基于内核不变量保护的rootkit入侵检测和系统恢复方法
US8015388B1 (en) * 2006-08-04 2011-09-06 Vmware, Inc. Bypassing guest page table walk for shadow page table entries not present in guest page table

Family Cites Families (278)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4982430A (en) 1985-04-24 1991-01-01 General Instrument Corporation Bootstrap channel security arrangement for communication network
US4688169A (en) 1985-05-30 1987-08-18 Joshi Bhagirath S Computer software security system
US5155847A (en) 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5560008A (en) 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
CA2010591C (en) 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
US5222134A (en) 1990-11-07 1993-06-22 Tau Systems Corporation Secure system for activating personal computer software at remote locations
US5390314A (en) 1992-10-09 1995-02-14 American Airlines, Inc. Method and apparatus for developing scripts that access mainframe resources that can be executed on various computer systems having different interface languages without modification
US5339261A (en) 1992-10-22 1994-08-16 Base 10 Systems, Inc. System for operating application software in a safety critical environment
US5584009A (en) 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
JP3042341B2 (ja) 1994-11-30 2000-05-15 日本電気株式会社 クラスタ結合型マルチプロセッサシステムにおけるローカル入出力制御方法
US6282712B1 (en) 1995-03-10 2001-08-28 Microsoft Corporation Automatic software installation on heterogeneous networked computer systems
US5699513A (en) 1995-03-31 1997-12-16 Motorola, Inc. Method for secure network access via message intercept
US5787427A (en) 1996-01-03 1998-07-28 International Business Machines Corporation Information handling system, method, and article of manufacture for efficient object security processing by grouping objects sharing common control access policies
US5842017A (en) 1996-01-29 1998-11-24 Digital Equipment Corporation Method and apparatus for forming a translation unit
US5907709A (en) 1996-02-08 1999-05-25 Inprise Corporation Development system with methods for detecting invalid use and management of resources and memory at runtime
US5907708A (en) 1996-06-03 1999-05-25 Sun Microsystems, Inc. System and method for facilitating avoidance of an exception of a predetermined type in a digital computer system by providing fix-up code for an instruction in response to detection of an exception condition resulting from execution thereof
US5787177A (en) 1996-08-01 1998-07-28 Harris Corporation Integrated network security access control system
US5926832A (en) 1996-09-26 1999-07-20 Transmeta Corporation Method and apparatus for aliasing memory data in an advanced microprocessor
US5991881A (en) 1996-11-08 1999-11-23 Harris Corporation Network surveillance system
US5987611A (en) 1996-12-31 1999-11-16 Zone Labs, Inc. System and methodology for managing internet access on a per application basis for client computers connected to the internet
US6141698A (en) 1997-01-29 2000-10-31 Network Commerce Inc. Method and system for injecting new code into existing application code
US6587877B1 (en) 1997-03-25 2003-07-01 Lucent Technologies Inc. Management of time and expense when communicating between a host and a communication network
US6192475B1 (en) 1997-03-31 2001-02-20 David R. Wallace System and method for cloaking software
US6167522A (en) 1997-04-01 2000-12-26 Sun Microsystems, Inc. Method and apparatus for providing security for servers executing application programs received via a network
US6356957B2 (en) 1997-04-03 2002-03-12 Hewlett-Packard Company Method for emulating native object oriented foundation classes on a target object oriented programming system using a template library
US6073142A (en) 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US6275938B1 (en) 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
US6192401B1 (en) 1997-10-21 2001-02-20 Sun Microsystems, Inc. System and method for determining cluster membership in a heterogeneous distributed system
US6393465B2 (en) 1997-11-25 2002-05-21 Nixmail Corporation Junk electronic mail detector and eliminator
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6795966B1 (en) 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6442686B1 (en) 1998-07-02 2002-08-27 Networks Associates Technology, Inc. System and methodology for messaging server-based management and enforcement of crypto policies
US6338149B1 (en) 1998-07-31 2002-01-08 Westinghouse Electric Company Llc Change monitoring system for a computer system
US6546425B1 (en) 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
JP3753873B2 (ja) 1998-11-11 2006-03-08 株式会社島津製作所 分光光度計
US6969352B2 (en) 1999-06-22 2005-11-29 Teratech Corporation Ultrasound probe with integrated electronics
US6453468B1 (en) 1999-06-30 2002-09-17 B-Hub, Inc. Methods for improving reliability while upgrading software programs in a clustered computer system
US6567857B1 (en) 1999-07-29 2003-05-20 Sun Microsystems, Inc. Method and apparatus for dynamic proxy insertion in network traffic flow
US6256773B1 (en) 1999-08-31 2001-07-03 Accenture Llp System, method and article of manufacture for configuration management in a development architecture framework
US6990591B1 (en) 1999-11-18 2006-01-24 Secureworks, Inc. Method and system for remotely configuring and monitoring a communication device
US6321267B1 (en) 1999-11-23 2001-11-20 Escom Corporation Method and apparatus for filtering junk email
US6662219B1 (en) 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource
US6460050B1 (en) 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6769008B1 (en) 2000-01-10 2004-07-27 Sun Microsystems, Inc. Method and apparatus for dynamically altering configurations of clustered computer systems
US7082456B2 (en) 2000-03-17 2006-07-25 Filesx Ltd. Accelerating responses to requests made by users to an internet
US6748534B1 (en) 2000-03-31 2004-06-08 Networks Associates, Inc. System and method for partitioned distributed scanning of a large dataset for viruses and other malware
CA2305078A1 (en) 2000-04-12 2001-10-12 Cloakware Corporation Tamper resistant software - mass data encoding
US7325127B2 (en) 2000-04-25 2008-01-29 Secure Data In Motion, Inc. Security server system
JP4700884B2 (ja) 2000-04-28 2011-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータのセキュリティ情報を管理するための方法およびシステム
US6769115B1 (en) 2000-05-01 2004-07-27 Emc Corporation Adaptive interface for a software development environment
US6847993B1 (en) 2000-05-31 2005-01-25 International Business Machines Corporation Method, system and program products for managing cluster configurations
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US6611925B1 (en) 2000-06-13 2003-08-26 Networks Associates Technology, Inc. Single point of entry/origination item scanning within an enterprise or workgroup
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US8204999B2 (en) 2000-07-10 2012-06-19 Oracle International Corporation Query string processing
US7093239B1 (en) 2000-07-14 2006-08-15 Internet Security Systems, Inc. Computer immune system and method for detecting unwanted code in a computer system
US7350204B2 (en) 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
DE60102934T2 (de) 2000-08-04 2005-03-10 Xtradyne Technologies Ag Verfahren und system für sitzungsbasierte berechtigung und zugangskontrolle für vernetzte anwendungsobjekte
US7707305B2 (en) 2000-10-17 2010-04-27 Cisco Technology, Inc. Methods and apparatus for protecting against overload conditions on nodes of a distributed network
US7146305B2 (en) 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US6930985B1 (en) 2000-10-26 2005-08-16 Extreme Networks, Inc. Method and apparatus for management of configuration in a network
US6834301B1 (en) 2000-11-08 2004-12-21 Networks Associates Technology, Inc. System and method for configuration, management, and monitoring of a computer network using inheritance
US6766334B1 (en) 2000-11-21 2004-07-20 Microsoft Corporation Project-based configuration management method and apparatus
US20020069367A1 (en) 2000-12-06 2002-06-06 Glen Tindal Network operating system data directory
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
JP2002244898A (ja) 2001-02-19 2002-08-30 Hitachi Ltd データベース管理プログラム及びデータベースシステム
US6918110B2 (en) 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US6715050B2 (en) 2001-05-31 2004-03-30 Oracle International Corporation Storage access keys
US6988101B2 (en) 2001-05-31 2006-01-17 International Business Machines Corporation Method, system, and computer program product for providing an extensible file system for accessing a foreign file system from a local data processing system
US6988124B2 (en) 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7290266B2 (en) 2001-06-14 2007-10-30 Cisco Technology, Inc. Access control by a real-time stateful reference monitor with a state collection training mode and a lockdown mode for detecting predetermined patterns of events indicative of requests for operating system resources resulting in a decision to allow or block activity identified in a sequence of events based on a rule set defining a processing policy
US7065767B2 (en) 2001-06-29 2006-06-20 Intel Corporation Managed hosting server auditing and change tracking
US7069330B1 (en) 2001-07-05 2006-06-27 Mcafee, Inc. Control of interaction between client computer applications and network resources
US20030023736A1 (en) 2001-07-12 2003-01-30 Kurt Abkemeier Method and system for filtering messages
US20030014667A1 (en) * 2001-07-16 2003-01-16 Andrei Kolichtchak Buffer overflow attack detection and suppression
US6877088B2 (en) 2001-08-08 2005-04-05 Sun Microsystems, Inc. Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition
US7007302B1 (en) 2001-08-31 2006-02-28 Mcafee, Inc. Efficient management and blocking of malicious code and hacking attempts in a network environment
US7010796B1 (en) 2001-09-28 2006-03-07 Emc Corporation Methods and apparatus providing remote operation of an application programming interface
US7177267B2 (en) 2001-11-09 2007-02-13 Adc Dsl Systems, Inc. Hardware monitoring and configuration management
US7346781B2 (en) 2001-12-06 2008-03-18 Mcafee, Inc. Initiating execution of a computer program from an encrypted version of a computer program
US7159036B2 (en) 2001-12-10 2007-01-02 Mcafee, Inc. Updating data from a source computer to groups of destination computers
US7039949B2 (en) 2001-12-10 2006-05-02 Brian Ross Cartmell Method and system for blocking unwanted communications
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
CA2469633C (en) 2001-12-13 2011-06-14 Japan Science And Technology Agency Software safety execution system
US7398389B2 (en) 2001-12-20 2008-07-08 Coretrace Corporation Kernel-based network security infrastructure
JP3906356B2 (ja) 2001-12-27 2007-04-18 独立行政法人情報通信研究機構 構文解析方法及び装置
US7743415B2 (en) 2002-01-31 2010-06-22 Riverbed Technology, Inc. Denial of service attacks characterization
US20030167399A1 (en) 2002-03-01 2003-09-04 Yves Audebert Method and system for performing post issuance configuration and data changes to a personal security device using a communications pipe
US6941449B2 (en) 2002-03-04 2005-09-06 Hewlett-Packard Development Company, L.P. Method and apparatus for performing critical tasks using speculative operations
US7600021B2 (en) 2002-04-03 2009-10-06 Microsoft Corporation Delta replication of source files and packages across networked resources
US7043616B1 (en) * 2002-04-18 2006-05-09 Advanced Micro Devices, Inc. Method of controlling access to model specific registers of a microprocessor
AU2003231070A1 (en) * 2002-04-18 2003-11-03 Advanced Micro Devices Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US20070253430A1 (en) 2002-04-23 2007-11-01 Minami John S Gigabit Ethernet Adapter
US7370360B2 (en) 2002-05-13 2008-05-06 International Business Machines Corporation Computer immune system and method for detecting unwanted code in a P-code or partially compiled native-code program executing within a virtual machine
US7823148B2 (en) 2002-05-22 2010-10-26 Oracle America, Inc. System and method for performing patch installation via a graphical user interface
US20030221190A1 (en) 2002-05-22 2003-11-27 Sun Microsystems, Inc. System and method for performing patch installation on multiple devices
US7024404B1 (en) 2002-05-28 2006-04-04 The State University Rutgers Retrieval and display of data objects using a cross-group ranking metric
US7512977B2 (en) 2003-06-11 2009-03-31 Symantec Corporation Intrustion protection system utilizing layers
US7823203B2 (en) 2002-06-17 2010-10-26 At&T Intellectual Property Ii, L.P. Method and device for detecting computer network intrusions
US7139916B2 (en) 2002-06-28 2006-11-21 Ebay, Inc. Method and system for monitoring user interaction with a computer
US8924484B2 (en) 2002-07-16 2014-12-30 Sonicwall, Inc. Active e-mail filter with challenge-response
US7522906B2 (en) 2002-08-09 2009-04-21 Wavelink Corporation Mobile unit configuration management for WLANs
US7624347B2 (en) 2002-09-17 2009-11-24 At&T Intellectual Property I, L.P. System and method for forwarding full header information in email messages
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US7546333B2 (en) 2002-10-23 2009-06-09 Netapp, Inc. Methods and systems for predictive change management for access paths in networks
US7353501B2 (en) 2002-11-18 2008-04-01 Microsoft Corporation Generic wrapper scheme
US7865931B1 (en) 2002-11-25 2011-01-04 Accenture Global Services Limited Universal authorization and access control security measure for applications
US20040143749A1 (en) 2003-01-16 2004-07-22 Platformlogic, Inc. Behavior-based host-based intrusion prevention system
US20040167906A1 (en) 2003-02-25 2004-08-26 Smith Randolph C. System consolidation tool and method for patching multiple servers
US7024548B1 (en) 2003-03-10 2006-04-04 Cisco Technology, Inc. Methods and apparatus for auditing and tracking changes to an existing configuration of a computerized device
US7529754B2 (en) 2003-03-14 2009-05-05 Websense, Inc. System and method of monitoring and controlling application files
JPWO2004095285A1 (ja) 2003-03-28 2006-07-13 松下電器産業株式会社 記録媒体およびこれを用いる記録装置並びに再生装置
US7607010B2 (en) 2003-04-12 2009-10-20 Deep Nines, Inc. System and method for network edge data protection
US20050108516A1 (en) 2003-04-17 2005-05-19 Robert Balzer By-pass and tampering protection for application wrappers
US20040230963A1 (en) 2003-05-12 2004-11-18 Rothman Michael A. Method for updating firmware in an operating system agnostic manner
DE10324189A1 (de) 2003-05-28 2004-12-16 Robert Bosch Gmbh Verfahren zur Steuerung des Zugriffs auf eine Ressource einer Applikation in einer Datenverarbeitungseinrichtung
US7657599B2 (en) 2003-05-29 2010-02-02 Mindshare Design, Inc. Systems and methods for automatically updating electronic mail access lists
US20050108562A1 (en) 2003-06-18 2005-05-19 Khazan Roger I. Technique for detecting executable malicious code using a combination of static and dynamic analyses
US7283517B2 (en) 2003-07-22 2007-10-16 Innomedia Pte Stand alone multi-media terminal adapter with network address translation and port partitioning
US7886093B1 (en) 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
US8539063B1 (en) 2003-08-29 2013-09-17 Mcafee, Inc. Method and system for containment of networked application client software by explicit human input
US7464408B1 (en) 2003-08-29 2008-12-09 Solidcore Systems, Inc. Damage containment by translation
US20050114672A1 (en) 2003-11-20 2005-05-26 Encryptx Corporation Data rights management of digital information in a portable software permission wrapper
US7600219B2 (en) 2003-12-10 2009-10-06 Sap Ag Method and system to monitor software interface updates and assess backward compatibility
US7546594B2 (en) 2003-12-15 2009-06-09 Microsoft Corporation System and method for updating installation components using an installation component delta patch in a networked environment
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US7272654B1 (en) 2004-03-04 2007-09-18 Sandbox Networks, Inc. Virtualizing network-attached-storage (NAS) with a compact table that stores lossy hashes of file names and parent handles rather than full names
US7783735B1 (en) 2004-03-22 2010-08-24 Mcafee, Inc. Containment of network communication
US8074276B1 (en) 2004-04-19 2011-12-06 Parallels Holdings, Ltd. Method and system for administration of security services within a virtual execution environment (VEE) infrastructure
US8060924B2 (en) 2004-04-19 2011-11-15 Lumension Security, Inc. On-line centralized and local authorization of executable files
US20060004875A1 (en) 2004-05-11 2006-01-05 Microsoft Corporation CMDB schema
US7890946B2 (en) 2004-05-11 2011-02-15 Microsoft Corporation Efficient patching
US7818377B2 (en) 2004-05-24 2010-10-19 Microsoft Corporation Extended message rule architecture
WO2005117466A2 (en) 2004-05-24 2005-12-08 Computer Associates Think, Inc. Wireless manager and method for managing wireless devices
US7506170B2 (en) 2004-05-28 2009-03-17 Microsoft Corporation Method for secure access to multiple secure networks
US20050273858A1 (en) 2004-06-07 2005-12-08 Erez Zadok Stackable file systems and methods thereof
JP4341517B2 (ja) 2004-06-21 2009-10-07 日本電気株式会社 セキュリティポリシー管理システム、セキュリティポリシー管理方法およびプログラム
US20050289538A1 (en) 2004-06-23 2005-12-29 International Business Machines Corporation Deploying an application software on a virtual deployment target
US7203864B2 (en) 2004-06-25 2007-04-10 Hewlett-Packard Development Company, L.P. Method and system for clustering computers into peer groups and comparing individual computers to their peers
US7908653B2 (en) 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
US7640543B2 (en) * 2004-06-30 2009-12-29 Intel Corporation Memory isolation and virtualization among virtual machines
US20060015501A1 (en) 2004-07-19 2006-01-19 International Business Machines Corporation System, method and program product to determine a time interval at which to check conditions to permit access to a file
US7937455B2 (en) 2004-07-28 2011-05-03 Oracle International Corporation Methods and systems for modifying nodes in a cluster environment
US7703090B2 (en) 2004-08-31 2010-04-20 Microsoft Corporation Patch un-installation
US7873955B1 (en) 2004-09-07 2011-01-18 Mcafee, Inc. Solidifying the executable software set of a computer
US20060080656A1 (en) 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US9329905B2 (en) 2004-10-15 2016-05-03 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
US7765538B2 (en) 2004-10-29 2010-07-27 Hewlett-Packard Development Company, L.P. Method and apparatus for determining which program patches to recommend for installation
US20060101277A1 (en) 2004-11-10 2006-05-11 Meenan Patrick A Detecting and remedying unauthorized computer programs
US7290114B2 (en) * 2004-11-17 2007-10-30 Intel Corporation Sharing data in a user virtual address range with a kernel virtual address range
WO2006101549A2 (en) 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US7765544B2 (en) 2004-12-17 2010-07-27 Intel Corporation Method, apparatus and system for improving security in a virtual machine host
US8479193B2 (en) 2004-12-17 2013-07-02 Intel Corporation Method, apparatus and system for enhancing the usability of virtual machines
US7607170B2 (en) 2004-12-22 2009-10-20 Radware Ltd. Stateful attack protection
US7302558B2 (en) 2005-01-25 2007-11-27 Goldman Sachs & Co. Systems and methods to facilitate the creation and configuration management of computing systems
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US8056138B2 (en) 2005-02-26 2011-11-08 International Business Machines Corporation System, method, and service for detecting improper manipulation of an application
US7836504B2 (en) 2005-03-01 2010-11-16 Microsoft Corporation On-access scan of memory for malware
US7685635B2 (en) 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
TW200707417A (en) 2005-03-18 2007-02-16 Sony Corp Reproducing apparatus, reproducing method, program, program storage medium, data delivery system, data structure, and manufacturing method of recording medium
US7552479B1 (en) 2005-03-22 2009-06-23 Symantec Corporation Detecting shellcode that modifies IAT entries
US7770151B2 (en) 2005-04-07 2010-08-03 International Business Machines Corporation Automatic generation of solution deployment descriptors
US8590044B2 (en) 2005-04-14 2013-11-19 International Business Machines Corporation Selective virus scanning system and method
US7349931B2 (en) 2005-04-14 2008-03-25 Webroot Software, Inc. System and method for scanning obfuscated files for pestware
US7603552B1 (en) 2005-05-04 2009-10-13 Mcafee, Inc. Piracy prevention using unique module translation
US7363463B2 (en) 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US8181240B2 (en) 2005-06-14 2012-05-15 Cisco Technology, Inc. Method and apparatus for preventing DOS attacks on trunk interfaces
WO2006137057A2 (en) 2005-06-21 2006-12-28 Onigma Ltd. A method and a system for providing comprehensive protection against leakage of sensitive information assets using host based agents, content- meta-data and rules-based policies
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US7739721B2 (en) 2005-07-11 2010-06-15 Microsoft Corporation Per-user and system granular audit policy implementation
US7856661B1 (en) 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US7962616B2 (en) 2005-08-11 2011-06-14 Micro Focus (Us), Inc. Real-time activity monitoring and reporting
US8327353B2 (en) 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US7340574B2 (en) 2005-08-30 2008-03-04 Rockwell Automation Technologies, Inc. Method and apparatus for synchronizing an industrial controller with a redundant controller
US20070074199A1 (en) 2005-09-27 2007-03-29 Sebastian Schoenberg Method and apparatus for delivering microcode updates through virtual machine operations
US8572371B2 (en) * 2005-10-05 2013-10-29 Ca, Inc. Discovery of kernel rootkits with memory scan
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US7725737B2 (en) 2005-10-14 2010-05-25 Check Point Software Technologies, Inc. System and methodology providing secure workspace environment
US20070169079A1 (en) 2005-11-08 2007-07-19 Microsoft Corporation Software update management
US7836303B2 (en) 2005-12-09 2010-11-16 University Of Washington Web browser operating system
US7856538B2 (en) 2005-12-12 2010-12-21 Systex, Inc. Methods, systems and computer readable medium for detecting memory overflow conditions
US20070143851A1 (en) 2005-12-21 2007-06-21 Fiberlink Method and systems for controlling access to computing resources based on known security vulnerabilities
KR100772863B1 (ko) 2006-01-13 2007-11-02 삼성전자주식회사 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
WO2007099273A1 (en) 2006-03-03 2007-09-07 Arm Limited Monitoring values of signals within an integrated circuit
US8621433B2 (en) 2006-03-20 2013-12-31 Microsoft Corporation Managing version information for software components
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US7734842B2 (en) 2006-03-28 2010-06-08 International Business Machines Corporation Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages
US7752233B2 (en) 2006-03-29 2010-07-06 Massachusetts Institute Of Technology Techniques for clustering a set of objects
US7870387B1 (en) 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8015563B2 (en) 2006-04-14 2011-09-06 Microsoft Corporation Managing virtual machines with system-wide policies
US7966659B1 (en) 2006-04-18 2011-06-21 Rockwell Automation Technologies, Inc. Distributed learn mode for configuring a firewall, security authority, intrusion detection/prevention devices, and the like
US8352930B1 (en) 2006-04-24 2013-01-08 Mcafee, Inc. Software modification by group to minimize breakage
US8458673B2 (en) 2006-04-26 2013-06-04 Flexera Software Llc Computer-implemented method and system for binding digital rights management executable code to a software application
US7849502B1 (en) 2006-04-29 2010-12-07 Ironport Systems, Inc. Apparatus for monitoring network traffic
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US8291409B2 (en) 2006-05-22 2012-10-16 Microsoft Corporation Updating virtual machine with patch on host that does not have network access
US7761912B2 (en) 2006-06-06 2010-07-20 Microsoft Corporation Reputation driven firewall
US7809704B2 (en) 2006-06-15 2010-10-05 Microsoft Corporation Combining spectral and probabilistic clustering
US8176501B2 (en) 2006-06-23 2012-05-08 Dell Products L.P. Enabling efficient input/output (I/O) virtualization
US20070300215A1 (en) 2006-06-26 2007-12-27 Bardsley Jeffrey S Methods, systems, and computer program products for obtaining and utilizing a score indicative of an overall performance effect of a software update on a software host
US8468526B2 (en) 2006-06-30 2013-06-18 Intel Corporation Concurrent thread execution using user-level asynchronous signaling
US8365294B2 (en) 2006-06-30 2013-01-29 Intel Corporation Hardware platform authentication and multi-platform validation
US8572721B2 (en) 2006-08-03 2013-10-29 Citrix Systems, Inc. Methods and systems for routing packets in a VPN-client-to-VPN-client connection via an SSL/VPN network appliance
US8161475B2 (en) 2006-09-29 2012-04-17 Microsoft Corporation Automatic load and balancing for virtual machines to meet resource requirements
US9697019B1 (en) 2006-10-17 2017-07-04 Manageiq, Inc. Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine
US7689817B2 (en) 2006-11-16 2010-03-30 Intel Corporation Methods and apparatus for defeating malware
US8336046B2 (en) 2006-12-29 2012-12-18 Intel Corporation Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
US7996836B1 (en) 2006-12-29 2011-08-09 Symantec Corporation Using a hypervisor to provide computer security
US8381209B2 (en) 2007-01-03 2013-02-19 International Business Machines Corporation Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US8276201B2 (en) 2007-03-22 2012-09-25 International Business Machines Corporation Integrity protection in data processing systems
US8561061B2 (en) * 2007-05-14 2013-10-15 Vmware, Inc. Adaptive dynamic selection and application of multiple virtualization techniques
US7930327B2 (en) 2007-05-21 2011-04-19 International Business Machines Corporation Method and apparatus for obtaining the absolute path name of an open file system object from its file descriptor
US20080301770A1 (en) 2007-05-31 2008-12-04 Kinder Nathan G Identity based virtual machine selector
US20090007100A1 (en) 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
US8763115B2 (en) 2007-08-08 2014-06-24 Vmware, Inc. Impeding progress of malicious guest software
WO2009032710A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Filing system and method for data files stored in a distributed communications network
US8250641B2 (en) 2007-09-17 2012-08-21 Intel Corporation Method and apparatus for dynamic switching and real time security control on virtualized systems
US8621605B2 (en) * 2007-10-09 2013-12-31 International Business Machines Corporation Method for reducing the time to diagnose the cause of unexpected changes to system files
US8819676B2 (en) 2007-10-30 2014-08-26 Vmware, Inc. Transparent memory-mapped emulation of I/O calls
US8195931B1 (en) 2007-10-31 2012-06-05 Mcafee, Inc. Application change control
JP5238235B2 (ja) 2007-12-07 2013-07-17 株式会社日立製作所 管理装置及び管理方法
US7917724B2 (en) * 2007-12-28 2011-03-29 Intel Corporation Protection of user-level applications based on page table information
US8042190B2 (en) 2007-12-31 2011-10-18 Intel Corporation Pre-boot protected memory channel
US8701189B2 (en) * 2008-01-31 2014-04-15 Mcafee, Inc. Method of and system for computer system denial-of-service protection
US8336094B2 (en) 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
US8321931B2 (en) 2008-03-31 2012-11-27 Intel Corporation Method and apparatus for sequential hypervisor invocation
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US9009727B2 (en) * 2008-05-30 2015-04-14 Vmware, Inc. Virtualization with in-place translation
US8127086B2 (en) * 2008-06-06 2012-02-28 International Business Machines Corporation Transparent hypervisor pinning of critical memory areas in a shared memory partition data processing system
US8234655B2 (en) * 2008-07-29 2012-07-31 International Business Machines Corporation Detection of duplicate memory pages across guest operating systems on a shared host
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US8132091B2 (en) 2008-08-07 2012-03-06 Serge Nabutovsky Link exchange system and method
US8065714B2 (en) 2008-09-12 2011-11-22 Hytrust, Inc. Methods and systems for securely managing virtualization platform
US8200771B2 (en) * 2008-10-10 2012-06-12 International Business Machines Corporation Workload migration using on demand remote paging
US9141381B2 (en) 2008-10-27 2015-09-22 Vmware, Inc. Version control environment for virtual machines
US8544003B1 (en) 2008-12-11 2013-09-24 Mcafee, Inc. System and method for managing virtual machine configurations
US8060722B2 (en) 2009-03-27 2011-11-15 Vmware, Inc. Hardware assistance for shadow page table coherence with guest page mappings
US8312468B2 (en) * 2009-06-09 2012-11-13 Open Kernel Labs Methods and apparatus for fast context switching in a virtualized system
US8359422B2 (en) 2009-06-26 2013-01-22 Vmware, Inc. System and method to reduce trace faults in software MMU virtualization
US8381284B2 (en) 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8341627B2 (en) * 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8271450B2 (en) * 2009-10-01 2012-09-18 Vmware, Inc. Monitoring a data structure in a virtual machine and determining if memory pages containing the data structure are swapped into or out of guest physical memory
US9552497B2 (en) 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
TW201137660A (en) 2009-12-23 2011-11-01 Ibm Method and system for protecting an operating system against unauthorized modification
US8719543B2 (en) * 2009-12-29 2014-05-06 Advanced Micro Devices, Inc. Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices
KR101081907B1 (ko) * 2010-01-05 2011-11-09 성균관대학교산학협력단 가상화 장치
US8966623B2 (en) * 2010-03-08 2015-02-24 Vmware, Inc. Managing execution of a running-page in a virtual machine
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
GB2498142B (en) * 2010-09-22 2019-01-16 Ibm Data Distribution Apparatus
US20120110575A1 (en) * 2010-10-29 2012-05-03 Unisys Corp. Secure partitioning with shared input/output
US8898666B2 (en) 2010-12-21 2014-11-25 Panasonic Intellectual Property Corporation Of America Virtual machine system and virtual machine system control method for controlling program execution on a plurality of processors that have a plurality of privileged modes
US20120179874A1 (en) 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US20130247192A1 (en) 2011-03-01 2013-09-19 Sven Krasser System and method for botnet detection by comprehensive email behavioral analysis
US8566935B2 (en) * 2011-05-12 2013-10-22 At&T Intellectual Property I, L.P. Balancing malware rootkit detection with power consumption on mobile devices
US9111099B2 (en) * 2011-05-31 2015-08-18 Red Hat, Inc. Centralized kernel module loading
US8578080B2 (en) * 2011-07-01 2013-11-05 Intel Corporation Secure handling of interrupted events utilizing a virtual interrupt definition table
US8645967B2 (en) * 2011-08-30 2014-02-04 Microsoft Corporation Efficient secure data marshaling through at least one untrusted intermediate process
US8984478B2 (en) * 2011-10-03 2015-03-17 Cisco Technology, Inc. Reorganization of virtualized computer programs
US8694738B2 (en) * 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US9069586B2 (en) * 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9256552B2 (en) * 2011-11-21 2016-02-09 Cisco Technology, Inc. Selective access to executable memory
US9405570B2 (en) * 2011-12-30 2016-08-02 Intel Corporation Low latency virtual machine page table management
US8914458B2 (en) * 2012-09-27 2014-12-16 Mellanox Technologies Ltd. Look-ahead handling of page faults in I/O operations
US9639464B2 (en) * 2012-09-27 2017-05-02 Mellanox Technologies, Ltd. Application-assisted handling of page faults in I/O operations
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015388B1 (en) * 2006-08-04 2011-09-06 Vmware, Inc. Bypassing guest page table walk for shadow page table entries not present in guest page table
CN102147843A (zh) * 2011-05-16 2011-08-10 湖南大学 一种基于内核不变量保护的rootkit入侵检测和系统恢复方法

Also Published As

Publication number Publication date
EP2766843B1 (en) 2016-10-26
JP6142027B2 (ja) 2017-06-07
US9465700B2 (en) 2016-10-11
US8973144B2 (en) 2015-03-03
EP2766843A4 (en) 2015-07-08
US20150234718A1 (en) 2015-08-20
EP2766843A1 (en) 2014-08-20
US20130097355A1 (en) 2013-04-18
JP5909829B2 (ja) 2016-04-27
JP2014528621A (ja) 2014-10-27
CN103907101A (zh) 2014-07-02
WO2013055498A1 (en) 2013-04-18
JP2016129071A (ja) 2016-07-14

Similar Documents

Publication Publication Date Title
CN103907101B (zh) 用于管理器环境中的内核rootkit防护的系统和方法
US9989043B2 (en) System and method for processor-based security
CN103858129B (zh) 用于在系统管理程序环境中进行内核rootkit保护的系统和方法
Champagne et al. Scalable architectural support for trusted software
CN103907098B (zh) 用于管理程序环境中的关键地址空间保护的系统和方法
US8839450B2 (en) Secure vault service for software components within an execution environment
US8423747B2 (en) Copy equivalent protection using secure page flipping for software components within an execution environment
Litty et al. Manitou: a layer-below approach to fighting malware
Dewan et al. A hypervisor-based system for protecting software runtime memory and persistent storage.
Williams et al. CPU support for secure executables
Muñoz et al. A survey on the (in) security of trusted execution environments
Dubrulle et al. Blind hypervision to protect virtual machine privacy against hypervisor escape vulnerabilities
Kittel et al. Code validation for modern os kernels
Park et al. Libmpk: software abstraction for Intel memory protection keys
Zhang et al. iFlask: Isolate flask security system from dangerous execution environment by using ARM TrustZone
Tian et al. A policy‐centric approach to protecting OS kernel from vulnerable LKMs
Guanciale et al. SoK: Confidential quartet-Comparison of platforms for virtualization-based confidential computing
Kaplan Hardware VM Isolation in the Cloud: Enabling confidential computing with AMD SEV-SNP technology
Kuzuno et al. Protection Mechanism of Kernel Data Using Memory Protection Key
Eng HARDWARE AND HYPERVISOR TECHNOLOGIES FOR OPERATING SYSTEM AND APPLICATIONS SECURITY
Tarkhani et al. Enabling Lightweight Privilege Separation in Applications with MicroGuards
Kaplan Hardware VM Isolation in the Cloud
D'Cunha Exploring the integration of memory management and trusted computing
Svoboda et al. Analysis of security possibilities of platforms for 3D graphics
Werner Secure I/O with Intel SGX

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
CP03 Change of name, title or address

Address after: American California

Patentee after: McAfee limited liability company

Address before: American California

Patentee before: Mcafee Inc

CP03 Change of name, title or address