实时模块保护的制作方法_2

文档序号:8449222阅读:来源:国知局
定文件的文件写入。SVMM安全代理216可监视输入和输出命令。如果SVMM安全代理216确定了比基于由0/S内安全代理219所看到的函数调用的列表而本应看到的写入更多的写入,则恶意软件可能在由操作系统所提供的功能之外秘密地写入到磁盘。
[0041]网络244可在用于通信的任何适当网络中实现,例如:因特网、内联网、广域网、局域网、回程网络(back-haul network)、点对点网络或其任意组合。保护服务器202可使用从在各种电子设备204运行上的各种安全代理218所提交的报告,通过应用流行程度和名声分析逻辑来进一步检测恶意软件。例如,可把在电子设备204上所识别的可疑行为综合到规则中,以供保护服务器202主动保护其他电子设备204。例如,可基于可疑驱动程序已被报告的次数确定这一规则。例如,具有窄或缓慢的散布模式的未知驱动程序可能与恶意软件有关。另一方面,具有宽泛和快速的分布的未知驱动程序可能与一些流行和广泛可用的应用程序有关。在另一示例中,这种检测到的驱动程序可已经被在另一电子设备上运行的安全软件确定为已经访问对主机恶意软件已知的网站。这种驱动程序可被确定为与恶意软件相关联。
[0042]SVMM 216可实现系统200的一些或全部安全虚拟机监视功能。SVMM216可被配置为截获对在电子设备上运行的一个或多个操作系统的系统资源(例如,寄存器、存储器或I/o设备)的访问。根据本
【发明内容】
的教导,可使用SVMM 216或被配置为保护电子设备204的其他任何虚拟机监视器来实现系统200的安全虚拟机监视功能。SVMM 216可被配置为在操作系统212代表其自身或代表通过操作系统212运行的应用程序210而尝试访问系统资源214的同时,控制和过滤由操作系统212采取的动作。SVMM 216可在电子设备204上的操作系统212之下运行,并且可具有对操作系统212和应用程序210或驱动程序211可用的一些或全部处理器资源的控制。应用程序210和驱动程序211中的每个均可由例如图1中的应用程序110和驱动程序111实现。应用程序210可包括适合在电子设备204上运行的任何应用程序。驱动程序211可包括适合在电子设备204上运行的任何驱动程序。使得可用于由SVMM 216控制的处理器资源可包括被指定为用于虚拟化的那些资源。在一个实施例中,SVMM 216可被配置为虚拟化系统资源214以供由操作系统212、应用程序210或驱动程序211访问。仅作为示例,这种系统资源214可包括输入-输出设备226、系统存储器228或处理器资源230。仅作为示例,处理器资源230可包括传统寄存器232、调试寄存器234、存储器片段(segmentat1n) 236、存储器分页238、中断240或标志242。I/O设备226可包括对诸如键盘、显示器、鼠标或网卡这样的设备的访问。此外,系统资源214可包括系统存储器228内的特定存储器地址或者系统存储器228内的特定存储器页。系统存储器228可包括物理存储器或虚拟存储器。传统寄存器232和调试寄存器232可包括数据寄存器和控制寄存器。处理器资源230还可包括高速缓存、处理内核、例外或特定的操作代码或操作代码的组合。
[0043]SVMM 216可被配置为捕获源自于操作系统212的访问系统资源214的操作的执行。SVMM 216可包括被配置为捕获对系统资源214的特定尝试访问的控制结构。可使用任何合适的控制结构。在一个实施例中,这种控制结构可包括虚拟机控制结构(“VMCS”) 221。SVMM 216可被配置为通过操纵VMCS 221内的标志来捕获这种执行。SVMM 216可被配置为捕获涉及访问系统资源214的操作系统212、应用程序210或驱动程序211的任何合适的操作。这种被捕获的操作可包括,例如:读取、写入和执行系统存储器228中的存储器的特定页;从处理器寄存器230加载值和向处理器寄存器230存储值;或从I/O设备226读取和向I/O设备226写入。任何这种操作可引起虚拟机退出(“VM Exit”),这可由SVMM 216捕获。SVMM216可被配置为捕获可由处理器208生成或由操作系统212的元件发起的中断240的生成。SVMM 216可被配置为通过捕获IN和OUT指令来捕获所尝试的从I/O设备226的读取和向I/o设备226的写入。SVMM可被配置为通过捕获对例如虚拟化技术引导的I/O (Virtualizat1n Technology Directed I/0,“VTd”)的机制的访问来捕获这种指令。VTd可根据处理器208而允许I/O设备虚拟化。通过访问VTd设施,SVMM安全代理217可被配置为确定由VTd连接的设备、确定来自操作系统212的元信息、I/O设备上的端口或其他合适的信息。SVMM安全代理217可被配置为控制或捕获这种虚拟化设备访问的操作。例如,SVMM安全代理217可被配置为确定I/O权限映射,I/O权限映射包含给予到可编程I/O端口的I/O分配。SVMM安全代理217可被配置为捕获可能由恶意软件做出的对这种权限映射的访问,或使用这种权限映射来确定操作系统212上的实体与I/O设备的请求的关系。
[0044]在一个实施例中,SVMM安全代理217可运行于SVMM 216中。在另一实施例中,SVMM安全代理217可运行在SVMM 216之外,但可通信地耦合到SVMM 216。在这种实施例中,SVMM安全代理217可运行在电子设备204的操作系统(例如,操作系统212)的层级以下。SVMM安全代理217可运行在与SVMM 216相同的层级和/或相同的优先级。SVMM安全代理217可被配置为处理由SVMM 216触发或捕获的事件。SVMM安全代理217可被配置为访问存储器228的内容或访问在操作系统212的层级以下的盘的内容,以便检查内容免受内核层级根程序病毒包的干扰。此外,SVMM安全代理217的一些操作可由SVMM 216实现,并且SVMM 216的一些操作可由SVMM安全代理217实现。
[0045]SVMM安全代理217可被配置为在将引起捕获或触发的动作方面来设置SVMM 216的操作。在一个实施例中,SVMM 216可被配置为将对所捕获的动作的检测传送给SVMM安全代理217。SVMM安全代理217可被配置为查询安全规则222来确定所捕获的动作是否指示恶意软件或恶意活动,并基于安全规则222可向SVMM 216提供关于随后采取何种动作的指示。这种随后的动作可包括允许所尝试的动作、不允许所尝试的动作或采取其他纠正步骤。
[0046]可通过由Ο/S内安全代理218所收集的信息来协调由SVMM 216和SVMM安全代理217对系统资源214的尝试访问和执行的捕获操作。Ο/S内安全代理218可被配置为把上下文提供给SVMM 216和SVMM安全代理217的捕获和处理操作。例如,特定的操作系统数据结构正常情况下仅由特定的应用程序或服务进行写入。Ο/S内安全代理218可确定当前在操作系统212上可见地运行的为何种应用程序或进程,并将该信息传送给SVMM安全代理217。如果特定的应用程序或服务未被列为可见地运行,则对数据结构的尝试写入可能来自未经授权的应用程序或进程。
[0047]Ο/S内安全代理218可被配置为经由超级调用与SVMM 216和/或SVMM安全代理217通信。超级调用可用定义了可被使用的可用请求及相关联的输入和输出参数的描述符表来实现。这种描述符表可定义对于Ο/S内安全代理218与SVMM 216和/或SVMM安全代理217进行通信的一个或多个可能的请求。这种描述符表还可定义对于这种请求的输入和输出参数在存储器中位于哪里。
[0048]Ο/S内安全代理218、SVMM安全代理217和保护服务器202可被配置为相互认证。安全代理212、SVMM安全代理217和保护服务器202中的每一个均可被配置为不继续相互通信,除非这些实体中的每个均经过认证。SVMM 216可被配置为在存储器206中定位0/S内安全代理218映像,并使用密码签名算法来验证存储器206中的Ο/S内安全代理218映像。保护服务器202、Ο/S内安全代理218和SVMM安全代理217之间的认证可采用任何合适的方法,包括密码散列和/或签名算法。在一个实施例中,这种认证可涉及私有密钥的交换。Ο/s内安全代理218可被配置为从保护服务器202接收密钥以验证SVMM安全代理217的实例。
[0049]Ο/S内安全代理218可具有与操作系统212的操作有关的上下文信息。Ο/S内安全代理218可被配置为与SVMM安全代理217通信以提供这种上下文信息。SVMM安全代理217可指示SVMM 216例如如何定义存储器的某些页或捕获哪些寄存器。
[0050]SVMM 216可被配置为捕获由SVMM安全代理217定义的对系统资源214的访问尝试。例如,为了捕获存储器访问,SVMM 216可被配置为捕获诸如读、写或执行的操作。为了捕获对处理器寄存器230的访问,SVMM 216可被指示以捕获包括加载、存储或读取寄存器值的操作。为了捕获I/O操作,I/O设备226、SVMM 216可被指示以捕获诸如对键盘、鼠标或其他外围设备的输入或输出的操作。以下各图中的SVMM安全代理217和/或其他操作系统下层安全代理,以及操作系统内安全代理联合可被配置用于为I/O操作确定目标I/O设备226的标识、要在I/O设备226上执行的目标操作以及要传输的数据。
[0051]SVMM安全代理217可被配置为确定上下文信息,例如操作系统212的什么实体已尝试访问电子设备204的资源,或者资源属于操作系统212的什么实体。SVMM安全代理217可被配置为通过任何合适的方法做出这种确定。在一个实施例中,SVMM安全代理217可被配置为从操作系统内安全代理218访问用于这种确定的上下文信息。在另一实施例中,SVMM安全代理217可被配置为直接地或间接地访问操作系统212的调用堆栈和/或处理器208的执行堆栈,以确定由操作系统212的不同进程或应用程序做出的调用顺序。执行指令指针可指向引起触发的指令,而执行堆栈指针和执行基址指针可指向堆栈帧。通过使执行基址指针穿过堆栈,可标识先前的函数调用,以为现在的操作提供上下文。这种堆栈可指示所尝试的操作以及源存储器位置。在又一实施例中,SVMM安全代理217可被配置为使用存储器映射并结合安全规则222来确定尝试是否是恶意的或指示恶意软件。例如,给定尝试访问的存储器位置,这种存储器映射可指示尝试访问资源的实体。例如,可在虚拟存储器页标识符和/或物理存储器地址中,定义这种存储器映射。在另一示例中,这种存储器映射可指示与所述尝试的目标的存储器位置相对应的实体。使用存储器映射,SVMM安全代理217可被配置为确定尝试访问的源和目标的标识或其实体所有者。可部分地由SVMM安全代理217或其他Ο/S下层安全代理,并结合操作系统内安全代理,通过监视系统的执行而创建存储器映射。SVMM安全代理217和/或其他操作系统下层安全代理,并结合操作系统内安全代理,可为给定的存储器页或物理地址确定这种位置是否属于特定的代码分段或数据分段;确定其属于哪些模块、进程、应用程序、映像或其他实体;或者确定其是否与用户模式或内核模式条目相关联。SVMM安全代理217和/或其他操作系统下层安全代理,并结合操作系统内安全代理,可为虚拟存储器和物理存储器的映射确定指示在电子设备204上运行的各种实体的标识、位置和权限的元数据。类似地,SVMM安全代理217和/或其他操作系统下层安全代理可使用大容量存储设备中的扇区的映射来确定这种实体的映像在大容量存储设备中的位置。结合操作系统内安全代理,SVMM安全代理217和/或其他操作系统下层安全代理,并结合操作系统内安全代理,可为给定的实体确定它们驻留于其上的扇区、文件、目录和卷。
[0052]SVMM安全代理217可被配置为如Ο/S内安全代理218、SVMM安全代理217和SVMM216的操作所要求的而分配存储器,例如系统存储器228。SVMM安全代理217可被配置为请求SVMM 216保护这种所分配的存储器免遭未经授权的读取和写入操作。SVMM 216可被配置为在创建存储器的保护之后初始化所分配的存储器,以消除恶意软件在由Ο/S内安全代理218分配存储器和由SVMM 216建立保护的时间之间添加恶意代码的机会。
[0053]SVMM安全代理217可被配置为与保护服务器202进行通信以安全地接收SVMM安全规则222。SVMM安全规则222可包括指令、逻辑、规则、共享库、函数、模块或用于指示SVMM216采用何种安全政策的任何其他合适的机制。SVMM安全代理217可被配置为向保护服务器202传输与来自电子设备204的可疑活动和检测到的恶意软件相关的信息。
[0054]Ο/S内安全代理218可被配置为与保护服务器202进行通信以接收Ο/S内安全规则220。Ο/S内安全规则220可包括指令、逻辑、规则、共享库、函数、模块或供Ο/S内安全代理218检测电子设备204上的恶意软件的任何其他合适的机制。Ο/S内安全代理218可被配置为向保护服务器202传输与电子设备204上的可疑活动和检测到的恶意软件相关的信息。
[0055]Ο/S内安全规则220和SVMM安全规则222均可包括用于保护电子设备204免受恶意软件感染、以及用于检测可能包括恶意软件的可疑活动的保护规则。Ο/s内安全代理安全规则可包含由Ο/s内安全代理218执行的并在Ο/S内安全代理218内部的规则。SVMM安全规则222可包含由SVMM216和/或SVMM安全代理217执行并在SVMM 216和/或SVMM安全代理217内部的规则。
[0056]SVMM安全规则222可被配置为向SVMM安全代理217提供具有如何观察和检测电子设备204的恶意软件感染的定义的信息。例如,SVMM安全规则222可包括来自实体(例如应用程序210或驱动程序211)的函数调用或行为的类型的分类,SVMM安全代理217可针对恶意软件的指示而监视所述函数调用或行为。作为另一示例,SVMM安全规则222可包括对SVMM安全代理217可如何处理这种触发的函数调用的定义,这包括使用什么参数、如何从这种调用中提取值、或者如何确证这种调用的操作。此外,SVMM安全规则222可包括用于SVMM安全代理217中的、关于如何监视诸如应用程序210或驱动程序211的电子设备中的实体的行为以及这种行为检测规则的例外的信息。作为又一示例,SVMM安全规则222可包括用于SVMM安全代理217的、关于如何阻止和修复通过这种行为检测规则检测到的恶意行为的信息。SVMM安全规则222可包括SVMM安全代理217应监视、收集什么数据并将其发送到保护服务器202的细节。
[0057]类似地,Ο/S内安全规则220可被配置为向Ο/S内安全代理218提供信息,这种信息具有如何观察和检测电子设备204的恶意软件感染以及如何将这种活动与SVMM安全代理217进行协调的定义。
[0058]SVMM安全规则222还可包括与SVMM 216将捕获哪些动作有关的规则。SVMM安全代理217可被配置为将这种规则应用到SVMM 216。例如,SVMM安全代理217可被配置为将要被捕获的函数的地址转换为存储器的可识别的虚拟或物理页、针对SVMM 216创建捕获对这样的页的执行、并且随后在捕获所述执行之后调用安全代理217的请求。SVMM安全代理217可被配置为通过其与SVMM 216的接口接收SVMM安全规则222。这种接口可包括基于超级调用的接口。SVMM安全代理217可被配置为通过相同的基于超级调用的接口而把任何得到的检测或报告推送给SVMM 216。
[0059]在一个实施例中,SVMM 216可被配置为处理触发的动作而无需查询SVMM安全代理217。在这样的实施例中,SVMM 216可被配置为安装在SVMM 216内进行处理的附加触发程序,所述触发程序可不被传送给SVMM安全代理217。这种附加触发程序可由SVMM安全规则222定义。在一个实施例中,SVMM安全规则222可为SVMM 216定义存储器页扫描规则。这种规则可包括恶意的且不应被允许驻留在存储器中的实体或修改的列表。这种规则还可包括被配置为包括专门允许存在于系统存储器228内的页的列表的白名单。在另一实施例中,SVMM安全规则222可向SVMM216定义存储器页访问规则。这种规则可包括对于允许或相反地禁止访问给定代码或数据页的代码页的定义。因此,SVMM安全规则222可被配置为指示SVMM 216作为存储器扫描器和/或控制对存储器页的访问。
[0060]SVMM 216可被配置为通过阻止对系统资源214中其各自的代码和数据页的未经授权的读取和写入来保护SVMM安全代理217、SVMM 216和Ο/S内安全代理218。例如,如果应用程序210或驱动程序211对系统存储器228、处理器寄存器230或I/O设备226的一部分作出请求(其将导致影响SVMM安全代理217、SVMM 216和Ο/S内安全代理218的完整性或操作)则SVMM 216可被配置为截获这种尝试请求,并且随后重新路由该请求、拒绝该请求或采取其他适当的动作。在另一示例中,SVMM 216可被配置为为存储器安全软件应用程序(例如,SVMM安全代理217本身或其他相应的或附属的程序)授权对系统存储器228、处理器寄存器230或I/O设备226的一部分的读取访问,该读取访问影响SVMM安全代理217、SVMM 216和Ο/S内安全代理218。这种授权可在SVMM安全规则222内定义,SVMM安全规则222可向SVMM 216定义如何处理对诸如系统存储器228的系统资源214的访问。在一个实施例中,SVMM安全规则222可包括可信安全程序的白名单,该白名单可包括SVMM安全代理217。
[0061]为了与保护服务器202通信,SVMM 216可包括受保护的网络接口 224。受保护的网络接口 224可被配置为在网络服务器(例如,保护服务器202)和电子设备204的元件(例如,SVMM 216或SVMM安全代理217)之间提供安全访问。SVMM 216可包括可实现受保护的网络接口 224的逻辑TCP/IP驱动程序或其他通信接口。保护服务器202可被配置为经由受保护的网络接口 224进行通信以指示SVMM 216或SVMM安全代理217更新其自身,并且提供保护规则,例如SVMM安全规则222或Ο/S内安全规则220。保护服务器202可被配置为递送用于特定电子设备204或特定SVMM 216的定制规则。这种定制可包括电子设备204上已经报告的恶意活动的类型以及电子设备204内的其他保护机制,例如抗病毒程序、防火墙或其他保护机制。在一个实施例中,保护服务器202可由(例如,在本地网络上的)电子设备204的管理员进行操作。在这种情况下,管理员可设置用于处理可疑行为的全局或个性化策略,这些策略可由从保护服务器202接收到的规则实现。SVMM 216可包括更新引擎,该更新引擎告知SVMM 216或SVMM安全代理217如何通过经由保护服务器202安全递送的新映像来更新自身。
[0062]Ο/S内安全规则220和SVMM安全规则222均可被配置为请求将电子设备204上所观察到的动作或操作的明细或者类别传送给保护服务器202。在那里,保护服务器可在允许该动作在电子设备204上进行之前检查和验证观察结果。保护服务器202可被配置为接受这种动作以便同步或异步地进行检查。在一个实施例中,Ο/S内安全代理218可被配置为将有问题的活动、代码或数据的片段或动作传送给SVMM 216以供保护服务器202进行验证。例如,Ο/S内安全代理218可通过检测在存储器内加载的未签名的驱动程序来检测恶意软件的可疑实例。SVMM 216可从Ο/S内安全代理218接收关于可疑软件的信息,并将其提供给保护服务器202。
[0063]SVMM安全规则222可被配置为允许或拒绝对电子设备的任何合适的系统资源的访问。这种可被监视的资源可取决于由处理器208所公开的资源。例如,在一个实施例中,SVMM安全规则222可被配置为允许SVMM216来限制对系统存储器228、I/O设备226和中断140的访问。可例如使用EPT或操作系统的页表而完成所限制的对系统存储器228的访问。这种限制可防止对诸如键盘、显示器或可移动磁盘的I/O设备的未经授权的访问。在另一实施例中,SVMM安全规则222可被配置为允许SVMM 216来限制对中断描述符表条目的访问,包括在处理器寄存器中的条目,例如中断240。在又一实施例中,SVMM安全规则222可被配置为允许SVMM 216监视扩展页表(“EPT”)或处理虚拟存储器(从客户操作系统的角度来看是真实存储器)到主机物理存储器的映射的任何其他机制的访问。权限的改变或EPT中的其它访问可触发VMCS中的事件。
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1