CN103907098B - 用于管理程序环境中的关键地址空间保护的系统和方法 - Google Patents

用于管理程序环境中的关键地址空间保护的系统和方法 Download PDF

Info

Publication number
CN103907098B
CN103907098B CN201280053614.5A CN201280053614A CN103907098B CN 103907098 B CN103907098 B CN 103907098B CN 201280053614 A CN201280053614 A CN 201280053614A CN 103907098 B CN103907098 B CN 103907098B
Authority
CN
China
Prior art keywords
client
management program
access
cas
page
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
CN201280053614.5A
Other languages
English (en)
Other versions
CN103907098A (zh
Inventor
R.布哈塔查尔杰
N.芒贾尔
B.辛格
P.辛格
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
Mai Kefei Co
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 Mai Kefei Co filed Critical Mai Kefei Co
Publication of CN103907098A publication Critical patent/CN103907098A/zh
Application granted granted Critical
Publication of CN103907098B publication Critical patent/CN103907098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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
    • 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
    • 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/45587Isolation or security of virtual machine instances

Landscapes

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

Abstract

一个实施例中的系统和方法包括用于检测对客户操作系统(OS)(其已经实现管理程序环境中的地址空间布局随机化)的关键地址空间(CAS)的访问尝试,识别尝试访问的进程,以及在不准许该进程访问CAS时采取动作的模块。动作能够从下列项选取:向管理程序的管理控制台报告该访问,向客户OS提供推荐,以及在客户OS内自动采取动作。其它实施例包括通过促使客户OS中的页错误,从与CAS对应的客户虚拟地址解析客户物理地址,并且将机器地址映射到客户物理地址,来识别与CAS对应的机器地址。

Description

用于管理程序环境中的关键地址空间保护的系统和方法
技术领域
一般来说,本公开涉及计算机网络领域,以及更具体来说,涉及用于管理程序环境中的关键地址空间保护的系统和方法。
背景技术
计算机网络安全性的领域在当今社会已经变得越来越重要和复杂。计算机网络环境配置用于几乎每一个企业或组织,其中通常具有多个互连的计算机(例如最终用户计算机、膝上型计算机、服务器、打印装置等)。此外,云服务提供商(以及运行多个应用和操作系统的其它组织)可使用管理程序技术在主机装置上并发地运行各种不同的客户操作系统。管理程序是计算机软件/硬件平台虚拟化软件,其允许多个操作系统并发地运行于主计算机上。安全性威胁能够源于管理程序环境的外部和内部。管理程序环境中的这些威胁能够给IT管理员带来进一步挑战。
附图说明
为了提供对本公开及其特征和优点的更完整理解,参照结合附图进行的以下描述,其中相似参考标号表示相似部件,其中:
图1是示出按照一个示例实施例、用于管理程序环境中的关键地址空间保护的系统的组件的简化框图;
图2是示出按照一个示例实施例的系统的附加细节的简化框图;以及
图3是示出可与本公开的实施例关联的示例操作步骤的简化流程图。
具体实施方式
概述
一个实施例中的系统和方法包括用于检测对客户操作系统(OS)(其实现管理程序环境中的地址空间布局随机化(ASLR))的关键地址空间(CAS)的访问尝试,识别尝试访问的进程,以及在不准许该动作时采取至少一个动作的模块。动作可以是下列一个或多个:向管理程序的管理控制台报告该访问,向客户OS提供推荐,并且在客户OS内自动采取动作。向管理程序的管理控制台报告访问包括将客户OS的状态标记为受感染。向客户OS提供推荐包括推荐将该进程列入黑名单、直到它由安全工具来扫描并且列入白名单,和/或对该进程运行防病毒。在客户OS内采取动作包括在客户OS中运行防病毒程序,和/或关闭客户OS或保存客户OS的状态以供离线扫描。
更具体实施例包括通过在管理程序的影子页表中为与CAS对应的页生成页表条目(PTE)并且将PTE标记成使得访问尝试引起页错误,来检测访问尝试。尝试访问的进程可通过读取该进程对应的CR3寄存器来识别。
其它实施例包括使用策略来验证访问尝试,策略包括:如果该进程从存储器元件的可写区域执行,则拒绝该访问,而如果该进程从存储器元件的只读区域执行,则准许该访问。其它示例实施例包括通过促使客户OS中的页错误,从与CAS对应的客户虚拟地址解析客户物理地址,并且将机器地址映射到客户物理地址和其它特征,来识别与CAS对应的机器地址。
示例实施例
图1是示出用于管理程序环境中的关键地址空间保护的系统10的示例实现的简化框图。如本文所使用的“管理程序”是一种硬件虚拟化实体,其允许称作“客户OS”的一个或多个操作系统(OS)在主机装置(例如计算机)上并发地运行。在一个示例实施例中,管理程序能够直接运行于主机装置的硬件上,以控制硬件以及管理客户OS。在一个备选实施例中,管理程序能够在常规OS环境(例如Linux OS)内作为支持运行于更高层的一个或多个客户OS的软件层来运行。虚拟化允许客户OS在其中再现主机装置的物理特性和行为的隔离虚拟环境(通常称作虚拟机或客户)上未经修改地运行。更具体来说,客户能够表示配备有虚拟硬件(处理器、存储器、盘、网络接口等)的隔离虚拟环境。按照图1所示的实施例,系统10包括管理程序12,其向客户14提供虚拟化环境。在本公开的广义范围之内,可在管理程序12上接管任何数量的客户。为了便于说明,图1中代表性地示出单个客户。
管理程序12控制和管理被分配以供客户14使用的主机装置(未示出)的硬件16。客户14可在管理程序12上运行客户OS 18。客户OS 18可支持一个或多个应用20。管理程序12可管理一个或多个应用20(本文中以单数称作应用20,以表示应用之一)对诸如处理器22和机器存储器24之类的基础硬件16的访问。如本文所使用的“机器存储器”表示一种存储器元件,它对于管理程序12如在主机装置上可用的那样是可见的。客户OS 18可向应用20提供客户虚拟存储器26,其访问客户物理存储器28。如本文所使用的“客户虚拟存储器”表示实质上连续的虚拟地址空间,该空间对于客户14内部运行的应用20是可见的。地址空间表示离散地址的范围,每个离散地址可对应于应用(例如应用20)能够存储数据以及以后检索数据的存储器位置(即,地址)。“客户物理存储器”表示对于客户OS 18是可见的虚拟存储器。
客户14包括虚拟控制寄存器、即CR3寄存器30,其指向应用20的进程的页表的开始。进程是应用(或者其一部分)的实例,其指令被执行。客户OS 18中的应用20可由多个进程组成。各进程能够具有其自己(唯一)的进程地址空间。各进程地址空间具有对应的页表。页表是由客户OS 18用来存储虚拟地址与物理地址之间的映射的数据结构。例如,CR3寄存器30可唯一地识别尝试访问客户OS 18中称作关键地址空间(CAS)(其包括系统库(例如kernel32.dll))的被保护存储区的进程。
客户OS 18包括代理32(作为客户镜像的一部分),其与管理程序12中的hyperCASP模块34进行通信。hyperCASP模块34也可与客户物理存储器28、CR3寄存器30和机器存储器24进行通信。hyperCASP模块34可通过俘获对CAS的访问尝试,并且检查管理程序环境内部、访问尝试发生的上下文,来保护客户14免受潜在恶意软件攻击。
管理程序12可使用管理控制台36来管理。管理控制台36可提供管理管理程序12上的客户14的统一接口。管理控制台36可提供让管理员配置管理程序12(包括存储、控制客户行为的方面以及建立虚拟网络)的部件。在一个示例实施例中,管理控制台36可提供让管理员查看客户14的状态(包括它是否被恶意软件和/或其它不希望的应用攻击)的接口。
按照本公开的实施例,系统10的组件可检测对客户OS 18的CAS的访问尝试,识别执行访问尝试的进程,确定是否准许该访问,以及如果不准许该访问,则采取一个或多个保护动作,诸如向管理控制台36报告访问尝试、向客户OS 18提供推荐以及在客户OS 18内自动采取动作等。
为了说明系统10的技术,重要的是理解可存在于给定系统、例如图1所示系统中的活动和安全性问题。以下基本信息可被看作是可正确说明本公开的基础。这种信息完全是仅为了说明而提供,并且因此决不应当被理解为限制本公开的广义范围及其潜在应用。
在管理物理存储器的一种方法中,存储器可分为覆盖存储器地址的连续范围的块或页。每个块或页被给予包括存储器是只读、读/写还是只写的属性。当应用或库(包括动态链接库、例如kernel32.dll)加载到存储器时,对应代码指令加载到只读存储器中,并且数据加载到可写存储器中。因此,代码指令可从只读存储器来读取和执行。一些存储器、例如包含可执行代码(例如指令)的存储器通常是只读存储器;操作系统可以不允许进程对其可执行代码改写数据。相反,能够对包含数据的(非恶意软件)页进行写入,但是尝试将那个存储器作为指令来执行可能失败。
但是,恶意代码可配置成加载或注入数据中,并且可配置成从可写存储器而不是如预期那样从只读存储器执行。在可写存储器空间中运行的代码的检测可以是关于代码是恶意的指示。例如,使组网中使用的缓冲器溢出,以注入恶意代码。接收具有来自非置信主机的数据的服务请求的万维网服务器能够受请求中嵌入并且通过使万维网服务器的缓冲器溢出所加载的恶意代码感染。通过缓冲器溢出(或者通过其它不适当技术)所加载的恶意代码的突出特性在于,代码加载到可写的存储器(并且从其中执行)。
在计算机安全性中,可执行空间保护能够用来将某些存储器区域(例如栈和堆存储器)标记为不可执行,使得执行这些区域中的机器代码的尝试能够引起异常或页错误。页错误是当程序访问在虚拟存储器(例如管理程序环境中的客户虚拟存储器)中映射、但是没有在物理存储器(例如,管理程序环境中的机器存储器)中加载的页时的陷阱。这种方式帮助防止某些缓冲器溢出攻击、特别是注入和执行代码的那些攻击取得成功。这些攻击依靠既可写又可执行的存储器的某个部分、通常是栈。检测恶意代码的执行的一种方法是检查每一个处理器指令从其中执行的存储器属性。但是,这种方式可要求大处理开销来检查每一个所执行指令的存储器属性,从而使计算机性能降级。
防止恶意软件执行的另一种技术是通过控制对CAS的访问。CAS保护(CASP)通过俘获对CAS的访问尝试,并且检查访问尝试从其中发生的上下文,来防止缓冲器溢出和栈溢出攻击。例如,大多数恶意软件执行kernel32.dll的查找以供函数解析(例如导出函数)。Kernel32.dll是中央模块,其包含操作系统的核心进程,诸如存储器管理、输入/输出操作、中断等。因此,CASP技术能够通过俘获对kernel32.dll的访问尝试,来防止诸如缓冲器溢出和栈溢出攻击之类的攻击。
地址空间布局随机化(ASLR)是可用于通过使攻击者更难以预测目标地址来防止安全性攻击的另一种技术。ASLR在操作系统引导时将可执行镜像(即,采取处理器可执行的格式的程序代码的单元,例如采取DLL格式或EXE格式的文件)移入随机位置,从而使得更难以利用代码可预测地操作。ASLR的意图是保护物理存储器免于病毒和其它恶意软件。通过ASLR,OS(例如管理程序环境中的客户OS 18)随机排列关键数据区的位置,包括库的位置、进程的虚拟地址空间中的堆和栈。在没有使用ASLR的情况下,攻击可能使用进程的地址空间(例如特定库函数)中的已知位置的硬编码地址来执行其功能。
在一个示例中,当应用创建堆时,OS的堆管理器在进程地址空间中的随机位置创建那个堆,以帮助降低基于堆的缓冲器溢出利用的成功机会。在另一个示例中,当线程在进程中开始时,OS(例如客户OS 18)将线程的栈移动到进程地址空间中的随机位置,以帮助降低基于栈的缓冲器溢出利用的成功机会。在又一个示例中,ASLR可使程序的每次执行产生不同的存储器空间布局,这使动态加载库(DLL)每次被加载到不同位置中。许多恶意软件攻击依靠程序员准确识别特定进程或系统函数在存储器中驻留的位置的能力。通过ASLR,地址位置经过随机化,从而使得恶意软件代码更难以成功执行。
例如,在Windows Vista OS中,当加载已经选择参与ASLR的可执行镜像时,OS使用每次重新引导从256个值的范围中选择一次的随机全局镜像偏移量。共同加载到进程中的可执行镜像,包括EXE和DLL,以这个偏移量一个接一个地加载。当执行其可执行镜像对ASLR已经标记的程序时,通过随机地放置线程栈和进程堆,对进程的存储器布局进一步随机化。栈地址首先从32个可能位置的范围来选择。一旦已经放置栈,则对初始栈指针进一步随机化某个随机量(例如从IA32系统上的16384个可能值其中之一所选择)。一旦已经选择栈地址,则选择进程堆。从32个不同位置的范围来分配每个堆。第一堆的位置选择成避免先前放置的栈,以及必须分配随后的每个堆以避免先前到达的堆。在Windows Vista中,诸如进程环境块、栈和堆位置之类的一些地址空间布局参数每次程序执行选择一次。诸如程序代码的位置、数据段和库之类的其它参数仅在重新引导之间发生变化。
在管理程序环境中,攻击的影响可比非虚拟化环境中更加严重。一个受感染客户可感染主机装置上的所有其它客户。例如,攻击者能够通过感染客户来获得对硬件的管理员特权,并且能够通过管理程序环境从一个客户移动到另一个客户。在管理程序接管数千客户的情况下,这种客户-客户攻击可能具有灾难性结果。
来看与管理程序中如何配置虚拟存储器系统关联的一些初步信息,当运行客户时,管理程序为客户创建毗连可寻址存储器空间。这个存储器空间具有与客户虚拟存储器相同的性质。这允许管理程序同时运行多个虚拟机,同时防止各虚拟机的存储器被他人访问。因此,从客户内部运行的应用的角度来看,管理程序添加额外等级的地址转换,其将客户物理地址映射到机器地址。客户OS与管理程序之间的通信经由可建立客户物理地址中的参数的超级调用发生,以及管理程序可对参数进行解码,将客户物理地址映射到机器地址,并且执行所请求动作。
客户物理存储器(例如客户物理存储器28)只是由管理程序(例如管理程序12)用于保持到主机物理地址(又称作机器地址)的正确映射的抽象。影子页表由管理程序(例如管理程序12)用来将客户物理存储器(例如客户物理存储器28)映射到机器存储器(例如机器存储器24)。通常,不保证客户页表所指向的任何页存在于机器存储器中。管理程序(例如管理程序12)配置成每次存在由客户OS(例如客户OS 18)访问不存在页的尝试时启用页错误。在触发页错误时,管理程序中的页错误处理程序促进将适当页(例如从盘)加载到机器存储器中,并且更新管理程序的影子页表以反映变化。引起页错误的指令的执行在页已经加载到机器存储器中并且分页表适当地指向正确页时恢复。管理程序的分页表反映哪些页实际上(即,物理上)在机器存储器中加载,而客户分页表只是虚拟的。
来看进程存储器管理,在许多处理器(不一定运行管理程序)中,称作CR3寄存器的控制寄存器(例如CR3寄存器30)包含当前页表(称作页目录)的根(即,开始)的物理地址。在管理程序环境中,客户中的CR3寄存器可经过虚拟化,并且可指向当前客户页表的根的客户物理地址。物理处理器(例如处理器22)使用另一个CR3寄存器(未示出)而不是客户CR3寄存器(例如CR3寄存器30)来对机器存储器24寻址。处理器的CR3寄存器指向管理程序的页目录而不是客户页目录。相比之下,客户CR3寄存器(例如CR3寄存器30)指向客户页目录,其指向客户页表。因此,通过客户CR3寄存器-客户页目录-客户页表-影子页表-物理页的序列把虚拟客户地址转换成机器地址,能够执行当前指令。
客户CR3寄存器30的内容由客户OS(例如客户OS 18)的内核来更新成指向由当前执行的进程所使用的适当页表。因此,客户OS(例如客户OS 18)通过改变客户CR3寄存器(例如CR3寄存器30)的值,在进程之间切换。在虚拟机(例如客户14)中,管理程序(例如管理程序12)拦截对CR3寄存器(例如CR3寄存器30)的任何访问,并且由此确定将要从机器存储器24取出的、用于当前执行的进程的页。
回到恶意软件保护技术,管理程序中的弱点可破坏ASLR的效能。例如,管理程序中的已知弱点使机器存储器的原本不可访问的部分可用于对客户OS中运行的应用的读/写访问。恶意软件可能利用这个弱点来获得对机器存储器的控制,而不管ASLR。虽然CASP能够在管理程序环境中的客户OS(例如客户OS 18)内部实现,但是客户OS中的CASP无法防止管理程序中的弱点。此外,基于管理程序的实现能够提供OS不可知解决方案。在这种解决方案中存在对最终用户的价值,因为安全性软件无需在各客户内部单独安装。攻击客户的恶意软件忘了管理程序内部运行的这个安全性层。采用由客户OS所实现的ASLR来实现管理程序中的CASP的过程中的难题之一在于,管理程序可能不知道要保护的关键地址,因为CAS在每次应用加载或者存在客户操作系统的重新引导时在客户物理存储器内由ASLR来随机化。另一个难题是唯一识别攻击源于的客户进程上下文以使得可采取适当保护动作。
通过图1所概述的用于管理程序环境中的关键地址空间保护的系统能够解决这些问题等。本公开的实施例寻求极大地改进现有技术的能力,以允许更健壮的解决方案。在示例实施例中,系统10的组件可检测对管理程序环境中的客户OS 18的CAS的访问,其中客户OS 18实现ASLR,识别请求访问的进程,确定是否准许该访问,以及如果不准许该访问,则采取一个或多个保护动作。
如图1所示,hyperCASP模块34可与代理32进行通信,以便识别与CAS的客户物理地址对应的机器地址。代理32可通过特意从CAS地址进行读取来在客户OS 18中促使页错误,并且从客户虚拟地址来解析客户物理地址。例如,页错误可使管理程序12拦截页错误事件,以及代理32可检查客户页表,以确定对应客户虚拟地址的客户物理地址。在另一个示例中,管理程序12中的页错误处理程序可监测客户物理页的映射,并且可响应页错误而建立到机器页的对应映射(例如通过俘获对客户页表的访问)。
代理32可将CAS客户物理地址传递给hyperCASP模块34,模块34可将机器地址映射到对应客户物理地址。因此,hyperCASP模块34识别待保护的机器地址。管理程序12中的页错误处理程序可使那些页的条目指向机器存储器24中的对应页。在一个示例实施例中,代理32可使用双向通信信道,来将CAS地址传递给hyperCASP模块34。通过保护与客户虚拟存储器28中的CAS对应的机器存储器24中的地址空间,管理程序12能够防止从客户OS 18中的恶意软件攻击、例如尝试访问CAS的恶意软件。
按照本公开的实施例,hyperCASP模块34可通过在管理程序的影子页表中为与CAS对应的页生成页表条目(PTE),来检测对CAS的访问尝试,在PTE中将页标记为NOT_PRESENT,使得基本上每一次访问尝试引起页错误。页错误将控制传递给管理程序12,使得管理程序12能够识别访问CAS的进程。
在一个示例实施例中,hyperCASP模块34可读取CR3寄存器30,以识别尝试访问CAS的进程。一般来说,使用影子页表的管理程序(例如管理程序12)(例如使用硬件支持、例如扩展页表/嵌套页表(EPT/NPT)所实现和所加速的影子页表)可俘获CR3寄存器访问,以便客户14的正常操作。因此,对CR3寄存器30的变更可由hyperCASP模块34来俘获,以便唯一地识别运行于客户14中、访问CAS的进程。CR3寄存器30能够通过保持当前任务的客户页表的根,来识别进程。例如,恶意软件进程可尝试执行任务。任务具有上下文,其是对任务唯一的寄存器和值的集合。一种这样的寄存器是CR3寄存器30,其包含恶意软件进程的页目录的地址。每当客户OS 18内存在CAS访问时,hyperCASP模块34可通过查看(进程的)当前执行的可应用指令的页保护位,来检查它是否为攻击(例如缓冲器/栈溢出)。
hyperCASP模块34可使用策略,诸如在访问来自存储器元件(例如客户虚拟存储器)的可写区域时拒绝访问的策略以及在访问来自存储器元件的只读区域时准许访问的策略,来确定是否准许访问。例如,如果PTE表明对客户OS 18中的CAS的访问来自设置了写入位的客户14中的PTE,并且策略指示不准许写入位的这种状态,则该访问可能是非法的,因为它可能是对进程的栈或堆的恶意软件攻击的结果。在一个示例实施例中,hyperCASP模块34可使用相同位(例如写入位)状态值来允许绕过针对假阳性的保护校验以允许合法访问。
hyperCASP模块34可采取各种保护动作来防止恶意软件代码的执行。在一个示例实施例中,hyperCASP模块34可向管理控制台36报告访问尝试。管理员能够获得运行于系统10中(或者一组系统中,这取决于环境)的一个或多个客户(例如客户14)的视图,以及hyperCASP模块34可使标志被设置,以标记任何受感染客户的状态。在另一个示例实施例中,hyperCASP模块34可向客户OS 18提供推荐,以将该进程列入黑名单,直到它由防病毒或者另一种安全工具来扫描和标记为清洁(例如列入白名单)。在又一个示例实施例中,hyperCASP模块34可使代理32在客户OS 18内自动采取动作,例如,在检测到客户OS 18内的攻击时运行防病毒(自动发起),或者关闭受影响客户/保存受影响客户的状态以供离线扫描等。
来看图2,图2是示出按照一个示例实施例的系统的附加细节的简化框图。实现对CASP的基于管理程序的解决方案的过程中的一个难题是识别与CAS(例如kernel32.dll)对应的机器地址。CAS的地址可使用两级分页(一个在客户14中,另一个在管理程序12中)来解析。
处理器22访问存储器地址,以便取指令或者当它执行应用20时取并且保存数据。在虚拟存储器系统、例如客户OS 18中,所有地址均是客户虚拟地址(GVA),而不是客户物理地址(GPA)。虚拟地址由客户OS 18基于一组客户页表中保存的信息来转换为物理地址。客户页表将进程的客户虚拟页映射为存储器中的客户物理页。管理程序12维护与各客户页表对应的影子页表。每个页表(包括客户页表和影子页表)包括PTE的列表。当客户OS 18启动进程时,它为CAS创建PTE连同其它PTE条目;对应地,管理程序12也更新其影子页表。
在图2中示出一组示例的地址空间。假定进程X(例如在应用20中)在客户OS 18中运行并且具有客户虚拟地址空间38,其映射到客户OS 18中的对应客户物理地址空间40。各地址空间可分为用户空间和CAS(例如内核空间)。为了举例以及易于说明,客户虚拟地址空间38中的CAS示为CAS 60。客户物理地址空间40映射为机器地址空间42。例如,客户虚拟地址空间38中的GVA 44可映射到客户物理地址空间40中的对应GPA 46,客户物理地址空间40又可映射到机器地址空间42中的机器地址(MA)48。这些映射中的每个通过对应页表中的适当PTE来保护。例如,GVA 44可通过客户页表50中的PTE来映射到GPA 46。管理程序12可创建影子页表51,以将GPA 46映射到MA 48。影子页表51可包含格式与客户页表50中PTE的格式相似的PTE。
在图2中以分解视图示出影子页表51的示例PTE 51a。PTE 51a包括页的物理页地址52(例如MA 48)、存在位54、写入位56和读取位58。hyperCASP模块34可使用存在位54、写入位56和读取位58中的信息来确定CAS是否被恶意软件访问。从存在位54的状态,hyperCASP模块34能够确定与特定地址对应的页是否存在。在一个示例中,假定为100的GPA46转化成为5000的MA 48。hyperCASP模块34会查看与5000对应的PTE,并且通过读取存在位54来查看进程是否有权访问MA 48。如果该进程有权访问,则存在位54会设置为1。如果存在位54设置为0(即,页标记为NOT_PRESENT),指示该页不存在,则可出现页错误。然后,控制(由处理器22)转到管理程序12以修复错误。在另一个示例中,访问CAS的代码指令可以让读取位58置位,以及写入位56可以不置位,从而指示指令为只读(但不可写),并且因此被准许有权访问。
当应用20在客户OS 18中运行时,客户虚拟存储器26中的CAS 60的地址可以不一定是管理程序12已知的,因为CAS 60的地址可由客户OS 18使用ASLR来随机化以获得安全性。当客户14启动时,代理32可促使客户OS 18内部的错误,并且对其进行解析,使得从GVA(例如GVA 44)到与CAS 60(例如kernel32.dll)对应的GPA(例如GPA 46)建立映射。代理32可俘获对CAS 60的第一访问尝试(例如通过在用于CAS 60的PTE中将存在位设置为0(即,将页标记为NOT_PRESENT)),使得可俘获每一个后续访问。俘获对CAS 60的第一访问尝试可确保对CAS 60的进一步访问能够引起页错误,因为如果对于对应GVA(例如GVA 44)设立存在位(或者设置为1),则处理器22对于对GVA(例如GVA 44)的附加访问尝试将不会引起任何错误。
代理32可使用双向通信信道将CAS 60的地址传递给hyperCASP模块34。与CAS 60对应的GVA(例如GVA 44)可使用客户页表50来转化成GPA(例如GPA 46),并且使用影子页表51来转化为MA(例如MA 48)。这时,管理程序12已经识别MA(例如MA 48),以使用CASP方法来防止攻击。hyperCASP模块34可在影子页表51中为与CAS 60对应的页生成PTE(例如PTE51a)。hyperCASP模块34可在PTE中将页标记为NOT_PRESENT(例如通过将存在位54设置为0),以指示对CAS 60的访问引起页错误62。在通过页错误62检测到对CAS 60的访问时,控制(通过hyperCASP模块34)转到管理程序12,管理程序12可检查它是否为攻击(缓冲器/栈溢出)。在一个示例实施例中,hyperCASP模块34可运行一个或多个校验(例如预定的一组校验),以查看访问是否来自被准许进程。管理程序12在没有客户OS 18的知识的情况下可透明地检查客户OS 18内的活动。
为了确定哪一个进程正攻击CAS 60,hyperCASP模块34可使用CR3寄存器30。通常,管理程序12不知道客户OS 18内部运行的任务。在一个示例实施例中,进程X中的恶意软件64可驻留在客户虚拟地址空间38中,并且可尝试访问CAS 60(例如kernel32.dll)。对CAS60的访问可引起页错误62。由客户OS 18中的进程(例如进程X)所运行的各任务可与对应CR3寄存器30关联,其中CR3寄存器30包括唯一对应于正执行该任务的进程的任务上下文。CR3寄存器30可指向客户页表50的开始。hyperCASP模块34可读取CR3寄存器30,并且确定进程X正访问CAS 60。
hyperCASP模块34可使用策略来验证访问尝试,策略包括在访问来自存储器元件的可写区域(例如客户虚拟地址空间38)时拒绝访问,以及在访问来自存储器元件的只读区域时准许访问。在一个示例实施例中,hyperCASP模块34可读取与当前执行的指令对应的影子页表51中的PTE 51a。因为恶意软件通常驻留在用户空间(而不是内核空间)中,所以PTE51a的写入位56可被置位,从而指示指令不是只读的并且因此可能是非法的(例如,指示对进程X的栈或堆的攻击)。
一旦hyperCASP模块34识别攻击,它可执行一个或多个保护动作。例如,如果管理程序12正运行多个客户,则hyperCASP模块34可对管理控制台36将客户的状态标记为受感染。作为替代或补充,hyperCASP模块34可向代理32发送一个或多个消息,以使客户14离线(例如关闭)或者启动防病毒(例如,将特定进程以及标记的一个或多个主机确定为目标以便清除),和/或通知客户OS 18关于受感染的进程。在一个示例实施例中,推荐可包括将进程列入黑名单,直到它由防病毒或者另一个安全工具(例如用于测试和/或修复计算机软件和/或硬件中的弱点的程序)来扫描并且标记为清洁的(即,列入白名单)。
来看图3,图3是示出可与本公开的实施例关联的示例操作步骤的简化流程图。当激活hyperCASP模块34和代理32时,操作100在102开始。在104,代理32通过特意从CAS地址读取,来促使客户OS 18中的页错误62。在106,代理32解析与CAS 60对应的GPA(例如GPA46)。在108,GPA(例如GPA 46)使用影子页表51来映射到对应MA(例如MA 48)。在110,对MA(例如MA 48)的访问尝试由hyperCASP模块34例如通过在影子页表51的PTE(例如PTE 51a)中将与CAS 60对应的页标记为NOT_PRESENT来监测。
例如,对CAS 60的任何访问尝试可在112中检测,因为对CAS 60的访问尝试引起页错误62。如果没有检测到访问尝试(例如没有生成页错误),则该进程可返回到110中的监测。但是,当检测到访问尝试时,控制以页错误62的形式转到管理程序12。在114,尝试访问的进程可例如使用CR3寄存器30来识别。hyperCASP模块34可读取CR3寄存器30,以识别与尝试访问的进程对应的客户页表50。在116,访问尝试可使用策略来验证。示例策略可指示对于对CAS 60的有效访问,没有将写入位56置位。如果如在118所确定的,策略不准许访问,则可指示攻击。
作为响应,hyperCASP模块34可采取一个或多个保护动作,例如,在120向管理控制台36报告访问;或者在122在客户OS 18内自动采取动作(例如使代理32在客户OS 18中自动发起防病毒;使客户14离线/关闭;保存客户OS 18的状态以供离线扫描等);或者在124向客户OS 18提供推荐(例如,将进程列入黑名单、对进程运行防病毒等)。可对受感染进程所使用的其它资源(例如网络套接字/文件句柄等)采取类似动作。如果如在118所确定的,策略准许访问,则操作可在126结束。
用于保护地址空间(以及阻止危险代码被执行)的软件能够在各种位置(例如在hyperCASP模块34内)提供。在一个示例实现中,这个软件常驻于寻求保护以防止安全性攻击(或者防止可写存储区的不希望或者未经授权的操纵)的计算机中。在更详细配置中,这个软件具体常驻于管理程序的安全层,其可包括图1所示的组件(或者以其它方式与所述组件接口)。在又一些实施例中,软件可从万维网服务器来接收或下载(例如,在对于分离的装置、分离的虚拟机、管理程序、服务器等购买单独最终用户许可证的上下文中),以便提供这个地址空间保护。
在其它示例中,关键地址空间保护功能可涉及专有元件(例如作为防病毒解决方案的一部分),其可在这些所述元件中(或者其附近)提供,或者在任何其它装置、服务器、网络设备、控制台、防火墙、交换机、信息技术(IT)装置等中提供,或者作为补充解决方案(例如结合防火墙)来提供,或者在网络中的某个位置来预配置。如本说明书中所使用的术语“计算机”意在涵盖在安全环境中可操作以影响或处理电子信息的这些可能元件(VMM、管理程序、Xen装置、虚拟装置、网络设备、路由器、交换机、网关、处理器、服务器、负荷平衡器、防火墙或者任何其它适当装置、组件、元件或对象)。此外,这个计算机可包括促进其操作的任何适当的硬件、软件、组件、模块、接口或者对象。这可包含允许关键地址空间的有效保护的适当算法和通信协议。另外,关键地址空间保护功能能够按照任何适当方式来结合。按照类似设计备选方案,各个附图的所示模块和组件的任一个可按照各种可能配置组合。显然,其全部处于本说明书的广义范围之内。
这些元件(例如计算机、服务器、网络设备、防火墙、管理程序、任何其它类型的虚拟元件等)中的任一个可包括处理器,处理器能够执行软件或算法,以执行如本说明书中所述的关键地址空间保护活动。另外,这些元件(例如计算机、服务器、网络设备、防火墙、管理程序、任何其它类型的虚拟元件等)中的每个能够包括存储器元件(随机存取存储器(RAM)、ROM、EPROM、EEPROM、ASIC等)、软件、硬件,或者在适当的情况下并且基于特定需要在任何其它适当组件、装置、元件或对象中。在系统10中被跟踪、发送、接收或存储的信息可基于特定需要和实现而在任何数据库、寄存器、表、高速缓存、队列、控制列表或者存储结构中提供,其全部可在任何适当时帧中引用。
这些元件和/或模块能够相互协作,以便与如本文所述的管理程序环境中的关键地址空间保护结合执行活动。在其它实施例中,这些特征可在这些元件的外部提供、包含在其它装置中以实现这些预期功能性、或者按照任何适当方式来结合。例如,与各种元件关联的有些处理器可被去除或者以其它方式来合并,使得单个处理器和单个存储器位置负责某些活动。在一般意义上,附图所示的布置在其表示中可以是更加逻辑的,而物理架构可包括这些元件的各种置换、组合和/或混合。
本文所述的存储器项的任一个(例如客户页表50、影子页表51、机器存储器24、客户虚拟存储器26、客户物理存储器28、客户虚拟地址空间38、客户物理地址空间40、机器地址空间42等)应当被理解为涵盖在广义术语“存储器元件”内。类似地,本说明书中所述的潜在处理元件、模块和机器中的任一个应当被理解为涵盖在广义术语“处理器”内。计算机、网络设备、虚拟元件等中的每个还能够包括适当接口,以用于在安全环境中接收、传送和/或以其它方式传递数据或信息。
处理器能够执行与数据关联的任何类型的指令,以便实现本说明书中详述的操作。在一个示例中,处理器(如附图所示)可将元件或产品(例如数据)从一种状态或东西变换成另一种状态或东西。在另一个示例中,本文所述的活动可采用固定逻辑或者可编程逻辑(例如由处理器执行的软件/计算机指令)来实现,以及本文所述的元件可能是某种类型的可编程处理器、可编程数字逻辑(例如现场可编程门阵列(FPGA)、可擦可编程只读存储器(EPROM)、电可擦可编程ROM(EEPROM))或者包括数字逻辑、软件、代码、电子指令或者它们的任何适当组合的ASIC。
在某些示例实现中,本文概述的地址空间保护功能可由在一个或多个有形非暂时介质中编码的逻辑(例如,专用集成电路(ASIC)中提供的嵌入式逻辑、数字信号处理器(DSP)指令、将要由处理器或其它类似机器执行的软件(可能包含对象代码和源代码)等)来实现。在这些实例中的有些实例中,存储器元件(如附图所示)能够存储用于本文所述操作的数据。这包括能够存储被执行以完成本说明书中所述活动的软件、逻辑、代码或处理器指令的存储器元件。
在各种实施例中,这些元件中的部分或全部包括软件(或者往复式软件),其能够协调、管理或者以其它方式协作,以便实现如本文概述的操作。这些元件中的一个或多个可包括促进其操作的任何适当算法、硬件、软件、组件、模块、接口或者对象。注意,对于本文所提供的许多示例,可根据两个、三个、四个或者更多网络元件和模块来描述交互。但是,这仅为了清楚起见和举例而进行。应当理解,系统能够按照任何适当方式来结合。按照类似设计备选方案,图1的所示模块、组件和元件中的任一个可按照各种可能配置组合,其全部显然是在本说明书的广义范围之内。在某些情况下,通过仅引用有限数量的元件或组件,可以更易于描述给定的一组流程的功能性的一个或多个。应当理解,图1(及其教导)的系统是可容易缩放的,并且能够接纳大量组件以及更复杂/尖端的布置和配置。因此,所提供的示例不应当限制如潜在地适用于无数其它架构的系统10的范围或者约束其广义教导。
重要的是还要注意,参照前面附图所述的操作仅示出可由系统执行或者在系统内执行的可能情况中的一些。这些操作中的一些可适当地删除或消除,或者这些步骤可经过相当大的修改或改变,而没有背离所述概念的范围。另外,这些操作的定时可相当大地改变,并且仍然实现本公开所讲述的结果。为了示例和论述而提供了前面的操作流程。系统提供充分灵活性,因为可提供任何适当的布置、时序、配置和定时机制,而没有背离所述概念的教导。

Claims (21)

1.一种用于计算机的方法,包括:
检测对包括管理程序的管理程序环境中的客户操作系统(OS)的关键地址空间(CAS)的访问尝试,其中所述客户OS实现地址空间布局随机化(ASLR);
识别执行所述访问尝试的进程;以及
如果不准许所述进程访问所述CAS,则采取动作,
其中,识别执行所述访问尝试的所述进程包括:读取与所述进程对应的CR3寄存器。
2.如权利要求1所述的方法,其中,所述动作从下列项中选取:
向所述管理程序的管理控制台报告所述访问尝试;
向所述客户OS提供推荐;以及
在所述客户OS内自动采取动作。
3.如权利要求2所述的方法,其中,向所述管理程序的管理控制台报告所述访问尝试包括:将所述客户OS的状态标记为受感染。
4.如权利要求2所述的方法,其中,向所述客户OS提供推荐包括下列至少一个:
推荐将所述进程列入黑名单,直到它由安全工具来扫描并且列入白名单;或者
对所述进程运行防病毒。
5.如权利要求2所述的方法,其中,在所述客户OS内采取动作包括下列至少一个:
在所述客户OS中运行防病毒程序;或者
关闭所述客户OS或保存所述客户OS的状态以供离线扫描。
6.如权利要求1-5中的任一项所述的方法,还包括使用策略来验证所述访问尝试,所述策略包括:
如果所述进程从存储器元件的可写区域执行,则拒绝所述访问;以及
如果所述进程从所述存储器元件的只读区域执行,则准许所述访问。
7.如权利要求1-5中的任一项所述的方法,还包括:
识别与所述CAS对应的机器地址,识别所述机器地址包括:
促使所述客户OS中的页错误;
从与所述CAS对应的客户虚拟地址来解析客户物理地址;以及
将所述机器地址映射到所述客户物理地址。
8.如权利要求1-5中的任一项所述的方法,其中,检测所述访问尝试包括:
在所述管理程序的影子页表中为对应于所述CAS的页生成页表条目(PTE);
标记所述PTE,使得所述访问尝试引起页错误。
9.一种用于计算机的设备,包括:
配置成存储数据的存储器元件;以及
可操作以执行与所述数据关联的指令的计算处理器;
管理程序;以及
驻留在客户操作系统(OS)中的代理,使得所述设备配置用于:
检测对包括所述管理程序的管理程序环境中的客户OS的关键地址空间(CAS)的访问尝试,其中所述客户OS实现地址空间布局随机化(ASLR);
识别执行所述访问尝试的进程;以及
如果不准许所述进程访问所述CAS,则采取动作,
其中,识别执行所述访问尝试的所述进程包括:读取与所述进程对应的CR3寄存器。
10.如权利要求9所述的设备,其中,所述动作从下列项中选取:
向所述管理程序的管理控制台报告所述访问尝试;
向所述客户OS提供推荐;以及
在所述客户OS内自动采取动作。
11.如权利要求10所述的设备,其中,向所述管理程序的管理控制台报告所述访问尝试包括:将所述客户OS的状态标记为受感染。
12.如权利要求10所述的设备,其中,向所述客户OS提供推荐包括下列至少一个:
推荐将所述进程列入黑名单,直到它由安全工具来扫描并且列入白名单;或者
对所述进程运行防病毒。
13.如权利要求10所述的设备,其中,在所述客户OS内采取动作包括下列至少一个:
在所述客户OS中运行防病毒程序;或者
关闭所述客户OS或保存所述客户OS的状态以供离线扫描。
14.如权利要求9-13中的任一项所述的设备,其中,所述设备还配置用于:
使用策略来验证所述访问尝试,所述策略包括:
如果所述进程从存储器元件的可写区域执行,则拒绝所述访问;以及
如果所述进程从所述存储器元件的只读区域执行,则准许所述访问。
15.如权利要求9-13中的任一项所述的设备,其中,所述设备还配置用于:
识别与所述CAS对应的机器地址,所述识别包括:
促使所述客户OS中的页错误;
从与所述CAS对应的客户虚拟地址来解析客户物理地址;以及
将所述机器地址映射到所述客户物理地址。
16.如权利要求9-13中的任一项所述的设备,其中,检测所述访问尝试包括:
在所述管理程序的影子页表中为对应于所述CAS的页生成页表条目(PTE);
标记所述PTE,使得所述访问尝试引起页错误。
17.一种用于计算机的设备,包括:
用于检测对包括管理程序的管理程序环境中的客户操作系统(OS)的关键地址空间(CAS)的访问尝试的部件,其中所述客户OS实现地址空间布局随机化(ASLR);
用于识别执行所述访问尝试的进程的部件;以及
用于如果不准许所述进程访问所述CAS则采取动作的部件,
其中,用于识别执行所述访问尝试的所述进程的部件包括:用于读取与所述进程对应的CR3寄存器的部件。
18.如权利要求17所述的设备,其中,所述动作从下列项中选取:
向所述管理程序的管理控制台报告所述访问尝试;
向所述客户OS提供推荐;以及
在所述客户OS内自动采取动作。
19.如权利要求18所述的设备,其中,向所述管理程序的管理控制台报告所述访问尝试包括:将所述客户OS的状态标记为受感染。
20.如权利要求18所述的设备,其中,向所述客户OS提供推荐包括下列至少一个:
推荐将所述进程列入黑名单,直到它由安全工具来扫描并且列入白名单;或者
对所述进程运行防病毒。
21.如权利要求18所述的设备,其中,在所述客户OS内采取动作包括下列至少一个:
在所述客户OS中运行防病毒程序;或者
关闭所述客户OS或保存所述客户OS的状态以供离线扫描。
CN201280053614.5A 2011-10-11 2012-09-15 用于管理程序环境中的关键地址空间保护的系统和方法 Active CN103907098B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/271102 2011-10-11
US13/271,102 US8694738B2 (en) 2011-10-11 2011-10-11 System and method for critical address space protection in a hypervisor environment
PCT/US2012/055674 WO2013055502A1 (en) 2011-10-11 2012-09-15 System and method for critical address space protection in a hypervisor environment

Publications (2)

Publication Number Publication Date
CN103907098A CN103907098A (zh) 2014-07-02
CN103907098B true CN103907098B (zh) 2018-05-08

Family

ID=48042866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280053614.5A Active CN103907098B (zh) 2011-10-11 2012-09-15 用于管理程序环境中的关键地址空间保护的系统和方法

Country Status (5)

Country Link
US (1) US8694738B2 (zh)
EP (1) EP2766847A4 (zh)
JP (1) JP5763278B2 (zh)
CN (1) CN103907098B (zh)
WO (1) WO2013055502A1 (zh)

Families Citing this family (74)

* 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
KR101701515B1 (ko) * 2010-11-16 2017-02-01 삼성전자주식회사 메모리 접근 정보를 추적하기 위한 장치 및 방법
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
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit 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
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US9069598B2 (en) * 2012-01-06 2015-06-30 International Business Machines Corporation Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core
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 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ обнаружения вредоносного программного обеспечения в ядре операционной системы
CN102750477B (zh) * 2012-06-11 2014-03-19 腾讯科技(深圳)有限公司 控制终端关闭的方法和系统
US9223962B1 (en) 2012-07-03 2015-12-29 Bromium, Inc. Micro-virtual machine forensics and detection
US10607007B2 (en) 2012-07-03 2020-03-31 Hewlett-Packard Development Company, L.P. Micro-virtual machine forensics and detection
US9275223B2 (en) * 2012-10-19 2016-03-01 Mcafee, Inc. Real-time module protection
US9922192B1 (en) 2012-12-07 2018-03-20 Bromium, Inc. Micro-virtual machine forensics and detection
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
US8868908B2 (en) * 2013-03-08 2014-10-21 Dark Matter Labs, Inc. Total hypervisor encryptor
US20140325689A1 (en) * 2013-04-26 2014-10-30 Tencent Technology (Shenzhen) Company Limited Shutdown verification method and device
US9507727B2 (en) * 2013-07-17 2016-11-29 Bitdefender IPR Management Ltd. Page fault injection in virtual machines
US9147070B2 (en) * 2013-08-12 2015-09-29 Cisco Technology, Inc. Binary translation and randomization system for application security
EP3061030A4 (en) 2013-10-24 2017-04-19 McAfee, Inc. Agent assisted malicious application blocking in a network environment
US10747563B2 (en) * 2014-03-17 2020-08-18 Vmware, Inc. Optimizing memory sharing in a virtualized computer system with address space layout randomization (ASLR) enabled in guest operating systems wherein said ASLR is enable during initialization of a virtual machine, in a group, when no other virtual machines are active in said group
US9760712B2 (en) * 2014-05-23 2017-09-12 Vmware, Inc. Application whitelisting using user identification
US9792222B2 (en) * 2014-06-27 2017-10-17 Intel Corporation Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure
US9672354B2 (en) 2014-08-18 2017-06-06 Bitdefender IPR Management Ltd. Systems and methods for exposing a result of a current processor instruction upon exiting a virtual machine
US20160077981A1 (en) * 2014-09-12 2016-03-17 Advanced Micro Devices, Inc. Method and Apparatus for Efficient User-Level IO in a Virtualized System
US10311227B2 (en) 2014-09-30 2019-06-04 Apple Inc. Obfuscation of an address space layout randomization mapping in a data processing system
US10311228B2 (en) 2014-09-30 2019-06-04 Apple Inc. Using a fine-grained address space layout randomization to mitigate potential security exploits
US10528735B2 (en) 2014-11-17 2020-01-07 Morphisec Information Security 2014 Ltd. Malicious code protection for computer systems based on process modification
US9659170B2 (en) * 2015-01-02 2017-05-23 Senteon LLC Securing data on untrusted devices
US9189630B1 (en) 2015-01-21 2015-11-17 AO Kaspersky Lab Systems and methods for active operating system kernel protection
JP6645011B2 (ja) * 2015-01-27 2020-02-12 日本電気株式会社 仮想化システム、サーバ、端末、仮想化方法、及びそのためのプログラム
CA2982867A1 (en) * 2015-04-07 2016-10-13 RunSafe Security, Inc. System and method of obfuscation through binary and memory diversity
US9727359B2 (en) * 2015-04-27 2017-08-08 Red Hat Israel, Ltd. Virtual machine function based sub-page base address register access for peripheral component interconnect device assignment
US9710393B2 (en) * 2015-06-25 2017-07-18 Intel Corporation Dynamic page table edit control
US10075296B2 (en) * 2015-07-02 2018-09-11 Intel Corporation Loading and virtualizing cryptographic keys
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US10191858B2 (en) 2015-11-25 2019-01-29 Red Hat Israel, Ltd. Virtual machine memory lock-down
WO2017137804A1 (en) 2016-02-11 2017-08-17 Morphisec Information Security Ltd. Automated classification of exploits based on runtime environmental features
US10013554B2 (en) * 2016-03-31 2018-07-03 Qualcomm Incorporated Time varying address space layout randomization
US10019583B2 (en) * 2016-04-01 2018-07-10 Samsung Electronics Co., Ltd. Method and apparatus for performing protected walk-based shadow paging using multiple stages of page tables
GB2549511B (en) * 2016-04-20 2019-02-13 Advanced Risc Mach Ltd An apparatus and method for performing operations on capability metadata
US10621340B2 (en) 2016-09-01 2020-04-14 Intel Corporation Hybrid hypervisor-assisted security model
US10043013B1 (en) * 2016-09-09 2018-08-07 Symantec Corporation Systems and methods for detecting gadgets on computing devices
US10049214B2 (en) * 2016-09-13 2018-08-14 Symantec Corporation Systems and methods for detecting malicious processes on computing devices
US10228963B2 (en) 2016-12-19 2019-03-12 Red Hat, Inc. Efficient hypervisor reporting
US10489308B2 (en) * 2017-06-29 2019-11-26 Intel Corporation Mitigating attacks on kernel address space layout randomization
US11188367B2 (en) * 2017-08-21 2021-11-30 Nicira Inc. Guest operating system physical memory page protection using hypervisor
WO2019055628A1 (en) * 2017-09-15 2019-03-21 Iron Mountain Incorporated PROTECTION AND RECOVERY OF SECURE DATA
US11210222B2 (en) * 2018-01-23 2021-12-28 Vmware, Inc. Non-unified cache coherency maintenance for virtual machines
CN108830078B (zh) * 2018-05-09 2022-04-19 中国船舶重工集团公司第七一四研究所 一种针对工控设备的恶意代码发现方法
US11150929B2 (en) 2018-05-29 2021-10-19 Red Hat, Inc. Enhanced memory management for virtual machines
KR102186221B1 (ko) * 2018-11-29 2020-12-03 한국전자통신연구원 하드웨어 기반의 임베디드 시스템의 주소 공간 레이아웃 랜덤화 방법 및 이를 위한 장치
US11061829B2 (en) * 2019-04-09 2021-07-13 Red Hat, Inc. Prefetch support with address space randomization
CN110430209B (zh) * 2019-08-13 2021-12-14 中科天御(苏州)科技有限公司 一种基于动态多样化的工控系统安全防御方法及装置
US11573910B2 (en) * 2019-08-22 2023-02-07 Intel Corporation Apparatus, system and method to define memory information leak zones in a computing system
KR20220007300A (ko) * 2020-07-10 2022-01-18 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11947465B2 (en) * 2020-10-13 2024-04-02 International Business Machines Corporation Buffer overflow trapping

Family Cites Families (236)

* 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
WO2001069439A1 (en) 2000-03-17 2001-09-20 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
EP1307988B1 (en) 2000-08-04 2004-04-21 Xtradyne Technologies Aktiengesellschaft Method and system for session based authorization and access control for networked application objects
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
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
US6715050B2 (en) 2001-05-31 2004-03-30 Oracle International Corporation Storage access keys
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
JP4522705B2 (ja) 2001-12-13 2010-08-11 独立行政法人科学技術振興機構 ソフトウェア安全実行システム
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
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
US20030221190A1 (en) 2002-05-22 2003-11-27 Sun Microsystems, Inc. System and method for performing patch installation on multiple devices
US7823148B2 (en) 2002-05-22 2010-10-26 Oracle America, Inc. System and method for performing patch installation via a graphical user interface
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
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
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
WO2005099342A2 (en) 2004-04-19 2005-10-27 Securewave S.A. A generic framework for runtime interception and execution control of interpreted languages
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
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
WO2006101549A2 (en) 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US8479193B2 (en) 2004-12-17 2013-07-02 Intel Corporation Method, apparatus and system for enhancing the usability of virtual machines
US7765544B2 (en) 2004-12-17 2010-07-27 Intel Corporation Method, apparatus and system for improving security in a virtual machine host
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
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
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
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
US8185724B2 (en) 2006-03-03 2012-05-22 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
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
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
US7849507B1 (en) 2006-04-29 2010-12-07 Ironport Systems, Inc. Apparatus for filtering server responses
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
US8365294B2 (en) 2006-06-30 2013-01-29 Intel Corporation Hardware platform authentication and multi-platform validation
US8468526B2 (en) 2006-06-30 2013-06-18 Intel Corporation Concurrent thread execution using user-level asynchronous signaling
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
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
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
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
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
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 株式会社日立製作所 管理装置及び管理方法
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
US8146147B2 (en) 2008-03-27 2012-03-27 Juniper Networks, Inc. Combined firewalls
US8321931B2 (en) 2008-03-31 2012-11-27 Intel Corporation Method and apparatus for sequential hypervisor invocation
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
US9141381B2 (en) 2008-10-27 2015-09-22 Vmware, Inc. Version control environment for virtual machines
US8060722B2 (en) 2009-03-27 2011-11-15 Vmware, Inc. Hardware assistance for shadow page table coherence with guest page mappings
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
US9552497B2 (en) 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
TW201137660A (en) * 2009-12-23 2011-11-01 Ibm Method and system for protecting an operating system against unauthorized modification
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
CN102770846B (zh) 2010-12-21 2016-08-31 松下电器(美国)知识产权公司 虚拟计算机系统控制装置及虚拟计算机系统控制方法
US20120179874A1 (en) 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
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
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit 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
US9256552B2 (en) * 2011-11-21 2016-02-09 Cisco Technology, Inc. Selective access to executable memory

Also Published As

Publication number Publication date
EP2766847A1 (en) 2014-08-20
US8694738B2 (en) 2014-04-08
WO2013055502A1 (en) 2013-04-18
EP2766847A4 (en) 2015-07-15
US20130091318A1 (en) 2013-04-11
JP5763278B2 (ja) 2015-08-12
JP2014528623A (ja) 2014-10-27
CN103907098A (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN103907098B (zh) 用于管理程序环境中的关键地址空间保护的系统和方法
US10447728B1 (en) Technique for protecting guest processes using a layered virtualization architecture
JP5819535B2 (ja) ハイパーバイザ環境でカーネル・ルートキットから保護するシステムおよび方法
US9747172B2 (en) Selective access to executable memory
CN105393255B (zh) 用于虚拟机中的恶意软件检测的过程评估
CN103907101B (zh) 用于管理器环境中的内核rootkit防护的系统和方法
CN107977573B (zh) 用于安全的盘访问控制的方法和系统
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
RU2723668C1 (ru) Фильтрация событий для приложений безопасности виртуальных машин
US20210124824A1 (en) Securing secret data embedded in code against compromised interrupt and exception handlers
US9063899B2 (en) Security in virtualized computer programs
CN110383256B (zh) 一种内核完整性保护方法及装置
Li et al. Crossline: Breaking" security-by-crash" based memory isolation in amd sev
EP2691851A1 (en) Method and apparatus for transparently instrumenting an application program
CN111400702A (zh) 一种虚拟化的操作系统内核保护方法
CN110058921B (zh) 客户虚拟机内存动态隔离和监控方法及系统
CN108920253B (zh) 一种无代理的虚拟机监控系统和监控方法
Wang et al. {SafeHidden}: An Efficient and Secure Information Hiding Technique Using Re-randomization
Silberman et al. A comparison of buffer overflow prevention implementations and weaknesses
Xuan et al. Toward revealing kernel malware behavior in virtual execution environments
US20230097604A1 (en) Memory layout randomization systems and methods for defeating translation lookaside buffer (tlb) poisoning attacks
Park et al. Libmpk: software abstraction for Intel memory protection keys
WO2018235858A1 (ja) 情報処理監視装置、情報処理監視方法、プログラム、記録媒体及び情報処理装置
Sun et al. Kernel code integrity protection based on a virtualized memory architecture
Enomoto et al. FlushBlocker: Lightweight mitigating mechanism for CPU cache flush instruction based attacks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: McAfee limited liability company

Address before: American California

Patentee before: Mai Kefei company