首页> 中国专利> 用于在系统管理程序环境中进行内核ROOTKIT保护的系统和方法

用于在系统管理程序环境中进行内核ROOTKIT保护的系统和方法

摘要

用于在系统管理程序环境中进行ROOTKIT保护的系统和方法包括用于创建具有与系统管理程序环境中的来宾操作系统的每一个来宾内核页相对应的条目的软白名单的模块,其中每个条目是对应的来宾内核页的重复页,当进程试图访问来宾内核页时生成页错误,以及将该进程重定向到对应的重复页。如果页错误是数据页错误,则该方法包括修复页错误,并将对应于来宾内核页的页表条目标记为非可执行的和可写入的。如果页错误是指令页错误,则该方法包括将对应于来宾内核页的页表条目标记为只读。通过改变系统管理程序的阴影页表中的机器页帧号以指向对应的重复页,来重新定向。

著录项

  • 公开/公告号CN103858129A

    专利类型发明专利

  • 公开/公告日2014-06-11

    原文格式PDF

  • 申请/专利权人 迈克菲股份有限公司;

    申请/专利号CN201280050169.7

  • 申请日2012-09-15

  • 分类号G06F21/10(20130101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人高见

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 00:20:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-16

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F21/10 变更前: 变更后: 申请日:20120915

    专利权人的姓名或者名称、地址的变更

  • 2016-10-19

    授权

    授权

  • 2014-07-09

    实质审查的生效 IPC(主分类):G06F21/10 申请日:20120915

    实质审查的生效

  • 2014-06-11

    公开

    公开

说明书

技术领域

本发明一般涉及计算机网络领域,更具体而言,涉及用于在系统管理程序(hypervisor)环境中进行内核rootkit保护的系统和方法。

背景

计算机网络安全领域在当今社会变得越来越重要并复杂化。为几乎每一企业或组织配置了计算机网络环境,通常带有多个互连的计算机(例如,最终用户计算机、膝上型计算机、服务器、打印设备等等)。此外,云服务提供商(及运行多个应用程序和操作系统的其他组织)可以使用系统管理程序技术来同时在主机设备上运行各种不同的来宾(guest)操作系统。系统管理程序是允许多个操作系统同时在主机计算机上运行的计算机软件/硬件平台虚拟化软件。安全威胁会在系统管理程序环境的外部和内部产生。系统管理程序环境中的这些威胁会给IT管理员带来进一步的挑战。

附图简述

为提供对本发明以及其特征和优点的比较完整的理解,将参考与附图一起进行的下面的描述,其中,相同参考编号表示相同部件,其中:

图1是示出了根据示例实施例的用于在系统管理程序环境中进行内核rootkit保护的系统的组件的简化框图;以及

图2是可以与本发明的实施例相关联的示例操作步骤的简化流程图。

示例实施例的详细描述

概览

在示例实施例中,系统和方法包括用于创建具有对应于系统管理程序环境中的来宾操作系统的每一个来宾内核页的条目的软白名单的模块,其中,每一个条目都是对应的来宾内核页的重复页,当一进程试图访问来宾内核页时生成页错误,以及将该进程重定向到对应于来宾内核页的重复页。如果页错误是数据页错误,则该方法包括修复页错误,并将对应于来宾内核页的页表条目标记为非可执行的和可写入的。如果页错误是指令页错误,则该方法包括将对应于来宾内核页的页表条目标记为只读。

在示例实施例中,重新定向进程包括将来宾内核页的虚拟地址指向对应于来宾内核页的重复页的机器页帧号。其他实施例包括在系统管理程序的阴影页表中将每一个来宾内核页的页表条目标记为NOT_PRESENT(不_存在)。其他实施例可以包括在域创建过程中在系统管理程序中设置锁合(lockdown)特征比特,以启用rootkit保护。

在某些实施例中,在来宾OS在引导时加载内核组件之后创建软白名单。可以通过漫步(walk)系统管理程序的阴影页表并将每一个来宾内核页的虚拟地址映射到对应的重复页的机器页帧号来创建软白名单。在又一些其他实施例中如果,如果来宾OS没有加载至少某些内核组件,则该方法包括将每一个来宾内核页的虚拟基地址映射到对应的重复页的机器页帧号及其他特征。

示例实施例

图1是示出了用于在系统管理程序环境中进行内核rootkit保护的系统10的示例实现的简化框图。如此处所使用的,“系统管理程序”是可使一个或多个操作系统(OS)(被称为来宾OS)在主机设备(例如,计算机)上同时运行的硬件虚拟化实体。虚拟化可使来宾OS在隔离的虚拟环境(通常被称为虚拟机,或来宾)中未修改地运行,在那里,再现了主机设备的物理特征和行为。更具体而言,来宾可以表示配备有虚拟硬件(处理器、存储器、磁盘、网络接口等等)的隔离的,虚拟环境。根据图1中所示出的实施例,系统10包括向来宾14提供虚拟化环境的系统管理程序12。可以在本发明的广泛的范围内在系统管理程序12上主存任意数量的来宾。为便于说明,在图1中象征地示出了单一来宾。

系统管理程序12控制并管理被分配供来宾14使用的主机设备(未示出)的硬件16。来宾14可以在系统管理程序12上运行来宾OS18。来宾OS18可以支持一个或多个应用程序20(此处以单数作为应用程序20来引用应用程序中的一个)。如此处所使用的,术语“应用程序”从广义来讲用于一般地指代任何软件文件、库模块、函数、子例程、二进制、指令集、代码块,或包括可以被计算机理解和处理(有或者没有协助,例如,编译,解释等等))的指令的其他类似的操作单元。

系统管理程序12可以管理应用程序20对诸如处理器22和机器存储器24之类的底层硬件16的访问。如此处所使用的,“机器存储器”是指对系统管理程序12可见的、作为在主机设备上可用的存储器元件。来宾OS18可以将访问来宾物理存储器28的来宾虚拟存储器26呈现给应用程序20。如此处所使用的,术语“来宾虚拟存储器”是指对在来宾14内部运行的应用程序20可见的基本上连续的虚拟地址空间。地址空间是指离散地址的范围,每一个离散地址都可以对应于应用程序(例如,应用程序20)可以存储数据并在以后检索数据的存储器位置(即,地址)。如此处所使用的,术语“来宾物理存储器”是指对来宾OS18可见的虚拟存储器。

来宾物理存储器28可以在操作过程中创建内核页30。当来宾OS将其来宾内核加载到存储器中时,来宾内核被分成诸个页(例如,来宾内核页30),其中某些页包含内核指令,而其他页包含内核数据。每一个页,包括来宾内核页30中的每一个,都通常是标准大小(例如,4kB),并与地址(例如,来宾虚拟地址)相关联。来宾OS18通过页表将每一个页的虚拟地址都映射到对应的“物理”地址。虽然来宾存储器(例如,来宾虚拟存储器26和来宾物理存储器28)是虚拟的,但是,来宾OS18假设来宾物理存储器28是真正的或“物理的”。然而,来宾物理存储器(例如,来宾物理存储器28)只是被系统管理程序12用来维持到(真正的)主机物理地址(也叫做机器地址)的正确的映射的抽象。

页表是来宾OS18用来存储虚拟地址和“物理”地址之间的映射的数据结构。页表包含若干个页表条目(PTE),每一个PTE都将虚拟地址映射到对应的“物理”地址(例如,从来宾虚拟地址到来宾物理地址或从来宾物理地址到机器地址)。PTE包括“物理”地址(例如,来宾物理地址或机器地址)及与合适的存储器元件(例如,来宾物理存储器28或机器存储器24)中的页相关的其他信息,诸如是否存在页,页是只读的还是读/写的等等。

对于当前正在执行的进程,阴影页表32可以被系统管理程序12用来将来宾物理存储器28映射到机器存储器24。“进程”是应用程序的其指令正在被执行的实例(或其一部分)。阴影页表32包括对应于来宾内核页30的页表条目(PTE)34。PTE34中的每一个都包括机器地址及与被加载到机器存储器24的相应内核页相关的其他信息。根据示例实施例,PTE34可以在阴影页表32中标记为NOT_PRESENT。

系统管理程序12中的rootkit保护模块36可以针对来宾OS18中的对应的来宾内核页30,在系统管理程序12中创建重复的页38。当进程试图访问来宾内核页30时,页错误处理程序40可以有条件地允许或拒绝对合适的来宾内核页30的访问或执行。在系统管理程序12上运行的域0(DOM0)42可以具有访问物理硬件16以及与在系统上运行的其他来宾进行交互的特殊权限。DOM042可以具有用于控制系统管理程序12中的rootkit保护模块36的某些锁合特征的锁合模块44。

为了示出系统10的技术,理解可能存在于诸如如图1所示的系统之类的给定系统中的活动和安全关切是十分重要的。下面基础信息可以被视为可以适当地说明本发明的基础。这样的信息仅为解释起见提供的,相应地,不应该以任何方式理解为限制本发明的广泛的范围以及其潜在的应用。

典型的计算体系结构支持特权级别的四个环(编号0到3),以保护系统代码以及数据被较低特权的代码免于被无意地或恶意地改写。环0是最高特权级别,而环3是最低的。OS可以针对不同的进程使用不同的特权级别。例如,Windows OS针对进程和数据安全性使用两个特权级别(环0和3)。诸如Internet Explorer和Microsoft Word以及若干个Windows服务(例如,服务控制管理器(Service Control Manager)、本地系统安全认证(Local System Security Authority)、Winlogon(Win登录)、会话管理器(Session Manager),以及RPC服务器(RPC Server)等等)之类的应用程序的代码在环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保护的一种方法中,基于硬件虚拟化的哈佛(Harvard)体系结构被用来保护商用OS内核遭受内核rootkit攻击。此方法基于指令获取的页级别的重定向,这偏离了以前的执行指令级别的重定向的努力。该方法中的另一种技术允许通过仅重新定向内核指令获取,来启用模式敏感的重定向。然而,此方法要求每一个来宾中的代理,从而增加了基础结构开销。该方法还修改可执行的以及可链接的格式(ELF)加载器(在LinuxOS中),以帮助rootkit保护;这样的对OS的修改是麻烦的。此外,此方法还使用转换后援缓冲器(TLB)高速缓存操纵来在代码和数据页表之间切换,这会难以实现。

图1概述的系统管理程序环境中的用于内核rootkit保护的系统可以解决这些问题等等。本发明的实施例试图大大地改善现有的技术的能力,以允许更稳健的解决方案。在示例实施例中,系统10的组件可以在系统管理程序12内部创建来宾内核页30的软白名单,例如,重复页38。软白名单(即,重复页38)中的每一个条目是对应的来宾内核页的重复页。来宾内核代码可以从重复页38中执行,即使在来宾OS18被引导之后修改了来宾内核页30。类似地,没有新的代码可以被允许执行,因为对应的页将不会存在于初始白名单(即,重复页38)中。阴影页表32中的NOT_PRESENT比特可以被用来截取对系统管理程序12的访问。可以将PTE标记为可写入或可执行的(在最初将它们标记为NOT_PRESENT之后)(例如,确保最小页错误,以取得更好的性能)。

可以在来宾OS18完全引导并加载其内核组件(例如,进程调度程序、存储器管理器、文件系统等等)之后,创建重复页38。如此处所使用的,术语“引导”是指引导序列,这是当通电时计算机执行的初始操作集合。在一示例实施例中,可以仅在引导时创建重复页38,以便不能执行任何新页(因为所有执行都通过重复页被路由)。此外,当创建新内核页时,它被默认地标记为NOT_PRESENT。此后,系统10的组件可以确保现有的内核页中的任何变化(包括在引导之后添加新页或修改现有的页)都不被允许执行。在示例实现中,系统10可以防止零时间(day-zero)威胁,因为它基于白名单。系统10可以由公共云基础结构提供商和使用私有云的公司来实现。系统10可以提供安全的透明层。解决方案可以对不经常改变他们的基础OS配置,而是改变存储在它中的数据的顾客(例如,web主存服务提供商)有用。

转向系统管理程序环境中的存储器管理,来宾OS(例如,来宾OS18)将来宾虚拟存储器(例如,来宾虚拟存储器26)中的虚拟地址空间布局提供到应用程序(例如,应用程序20)。来宾虚拟存储器的地址空间可以被分成能够被应用程序(例如,应用程序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维护的任何页表都可以具有由系统管理程序12生成和维护的对应的阴影页表(例如,阴影页表32)。来宾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是在裸的硬件上运行并提供在同一个硬件上同时运行OS的多个实例的能力的Xen元件。典型的Xen设置可以涉及在多个OS之下运行的Xen,其中,应用程序在与一组来宾(例如,来宾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(VM退出)过渡相关联)。在106,可以在系统管理程序12中设置域特定的数据结构中的锁合特征比特。在108,可以启动系统管理程序虚拟机(HVM)(即,来宾14)。在110,来宾OS18可以为来宾内核页30创建页表条目(PTE),带有到系统管理程序12的VMEXIT。在112,rootkit保护模块36可在阴影页表32中为来宾内核页30创建PTE34。在114,rootkit保护模块36可以在由系统管理程序12维护的阴影页表32中将PTE34标记为NOT_PRESENT。因此,对访问其PTE34被标记的来宾内核页30的任何尝试会导致页错误。另外,在116,此操作可以连同与处理器22相关联的虚拟机指令(VMRUN(VM运行))一起提供。

如果启用了rootkit保护(例如,来宾OS18引导并加载其内核组件),则来宾内核页30中的某些可能不被使用,如此,对于它们,将不会有页错误。为了捕捉这样的页,在118,页错误处理程序40可以漫步系统管理程序12中的阴影页表32,并为来宾内核页30的每一个页创建重复页,并保持对应的虚拟地址到重复页的机器页帧号(MFN)的映射。MFN是指机器存储器24中为对应的虚拟地址分配的页编号。在示例实施例中,这些活动可以在引导完成之后执行一次,随后,系统10可以被视为锁合。如果rootkit保护未启用(例如,来宾OS18没有引导并加载其内核组件),则页错误处理程序40可以为来宾14的内核中的每一个页创建重复页,并保持对应的虚拟基地址(对应于将存储内核页的第一字节的虚拟地址)到重复页的MFN的映射。

在120,来宾OS14中的应用程序20中的进程可能试图访问来宾内核页30。在122,试图访问来宾内核页30会导致页错误(因为对应于来宾内核页30的PTE34被标记为NOT_PRESENT)。当在122遇到页错误时,在124就页错误是指令页错误还是数据页错误作出判断。如果页错误是数据页错误,则页错误处理程序40可以在126通过指向原始物理页并将对应的PTE标记为NX(不执行)和可写入,来永久地修复页错误(例如,允许未来访问/执行)。在128,应用程序20可以被允许访问阴影页表32,过程在130结束。这可以确保对访问数据的尝试不会导致页错误,但是对执行代码的尝试却会导致页错误,以使得控制被传递到系统管理程序12。

如果124中的判断是页错误是指令错误,则可以在131中判断对应的重复页是否存在于重复页38中。如果存在重复页,则页错误处理程序40可以通过在132中将错误虚拟地址指向对应于重复页38的MFN(在阴影页表32中),永久地修复页错误,并将页标记为只读,以使得对页的任何写入都会导致错误。此操作可能会导致在创建重复页38时存在的代码被执行。另一方面,如果对应的重复页在重复页38中不存在,则页错误处理程序40可以在133阻止页的执行。如此,不可以执行新的或修改过的代码。对代码的任何修改都可能会在来宾内核页30中发生,且对修改过的来宾内核页30的任何执行都可能来自系统管理程序的重复页38。在128中,阴影页表32可以被应用程序20访问(但是,此时,可以读取重复页36,代替来宾内核页30),过程可以在130结束。

可以在各种位置(例如,在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)、电可擦可编程序只读存储器(EEPROM))或包括数字逻辑、软件、代码、电子指令,或其任何合适的组合的ASIC。

在某些示例实现中,此处概述的内核rootkit保护功能可以通过编码在一个或多个有形的,非瞬时的介质中的逻辑(例如,在专用集成电路(ASIC)中所提供的嵌入的逻辑、数字信号处理器(DSP)指令、要由处理器执行的软件(潜在地包括目标代码以及源代码),或其他类似的机器,等等)来实现。在这些实例中的某些中,存储器元件(如图所示)可以存储用于此处所描述的操作的数据。这包括存储器元件能够存储被执行以实现本说明书中所描述的活动的软件、逻辑、代码或处理器指令。在各种实施例中,这些元件中的某些或全部包括可以协调、管理,或以其他方式协作以便实现此处概述的操作的软件(或交替软件)。这些元件中的一个或多个可以包括任何合适的算法、硬件、软件、组件、模块、接口,或促进其操作的对象。

请注意,对于此处所提供的很多示例,可以以两个、三个、四个,或更多网络元件以及模块来描述交互。然而,这只是为了清楚起见,并且只作为示例。应该理解,可以以任何合适的方式来合并系统。与类似的设计替代方案一起,可以以各种可能的配置组合图1的所示出的组件、模块,以及元件中的任何一个,所有的这些都在本说明书的宽的范围内。在某些情况下,可以通过只引用数量有限的元件或组件,更容易地描述给定流程集的功能中的一个或多个,应该理解,图1的系统(以及其原理)是可轻松地扩展的,并可以接纳大量的组件,以及更复杂的布局和配置。相应地,所提供的示例不应该限制范围或抑制系统10的广泛的原理,因为潜在地应用于无数其他体系结构。

还应该指出,参考前面的图形所描述的操作仅示出了可以由系统执行的某些可能的情况。这些操作中的某些可以在合适的情况下删除,或者可以在不偏离所讨论的概念的范围的情况下,显著地修改或改变这些步骤。另外,还可以显著地改变这些操作的时间,仍实现在本发明中讲述的结果。前面的操作流程是作为示例和讨论而提供的。由系统提供相当大的灵活性,因为在不偏离所讨论的概念的原理的情况下,可以提供任何合适的布局、时序、配置,以及定时机制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号