用于虚拟机中的恶意软件检测的过程评估的制作方法_2

文档序号:9635177阅读:来源:国知局
一步将虚拟装置的集合指派到在主机系统10上操作的每一VM。因此,每一VM32a 到b如同其拥有其自己的物理装置的集合而操作,S卩,作为或多或少完整的计算机系统。流 行的管理程序的实例包含来自VMware公司(VMwareInc)的VMwarevSphere?,及开源Xen 管理程序(open-sourceXenhypervisor)等等。
[0026] 在一些实施例中,管理程序30包含存储器自省引擎40,其经配置以执行反恶意软 件操作,如下文进一步描述。引擎40可并入管理程序30中,或可作为与管理程序30不同 且独立于管理程序30的软件组件而被递送,但以与管理程序30实质上类似的处理器特权 级执行。单个引擎40可经配置以保护在主机系统10上执行的多个VM不受恶意软件的攻 击。
[0027]尽管为简单起见,图2仅展示两个VM32a到b,但主机系统10可同时执行大量 的(例如,几百个)VM,且此类VM的数目可在主机系统10的操作期间改变。在一些实施 例中,VM32a到b各自同时且独立于在主机系统10上运行的其它VM而分别执行客户操 作系统34a到b及/或软件应用程序42a到b、42c及44的集合。OS34a到b各自包括 向相应VM32a到b的(虚拟化)硬件提供接口的软件,且充当在相应0S上执行的软件 应用程序的主机。操作系统34a到b可包括任何广泛可用的操作系统,例如,Windows'?.、: MacOS?、Linux?、iOS?.或Android?等等。应用程序42a到c可包含文字处理、图像处 理、数据库、浏览器及电子通信应用程序等等。在以下描述中,据称在虚拟机的虚拟处理器 上执行的软件在相应虚拟机内执行。例如,在图2中,据称应用程序42b在VM32a内执行, 同时据称应用程序42c在VM32b内执行。相反,据称存储器自省引擎40在VM32a到b的 外部执行。
[0028] 在图2的实例中,安全应用程序44在客户OS34b上执行,应用程序44经配置以 结合存储器自省引擎40而执行反恶意软件(AM)操作(如下文所描述)以保护虚拟机32b 不受恶意软件的攻击。在一些实施例中,应用程序44的例子可在在主机系统10上操作的多 个VM中的每一者上执行,每一此例子经配置以与自省引擎40介接以保护相应虚拟机。安 全应用程序44可为独立程序,或可形成包括反恶意软件、反垃圾邮件及反间谍软件组件等 等的软件套件的部分。
[0029] 图3说明根据本发明的一些实施例的在主机系统10上执行的软件对象的阶层。 图3是从处理器特权级的角度来表示,在所属领域还被称作层或保护环。在一些实施例中, 每一此层或保护环的特征在于指令的集合,其允许执行在相应处理器特权级处执行的软件 对象。当软件对象尝试执行在相应特权级内不允许的指令时,所述尝试可触发处理器事 件,例如,异常、故障或虚拟机退出事件。在一些实施例中,特权级之间的切换可经由专用 指令的集合来实现。此类示范性指令包含SYSCALL/SYSENTER,其从用户级向内核级切换; SYSRET/SYSEXIT,其从内核级向用户级切换;VMCALL,其从用户级或内核级向根级切换;及 VMRESUME,其从根级向内核级或用户级切换。
[0030]在一些实施例中,管理程序30控制在最高特权级的处理器12(例如,支持虚拟化 的VMXrootonirncA:平台,且也被称作环-1或根模式),因此创建呈现为虚拟机32的硬件 虚拟化平台到在主机系统10上执行的其它软件。操作系统34(例如,图2中的OS34a到 b)在VM32的虚拟环境内执行,0S34具有与管理程序30相比较更少的处理器特权(例 如,Intel平台上的环0,或内核模式)。应用程序42d到e的集合以与0S34相比较更少 的处理器特权执行(例如,环3,或用户模式)。
[0031] 在一些实施例中,安全应用程序44的部分可在用户级处理器特权(即,与应用程 序42d到e相同的级)执行。例如,此类部分可包括图形用户接口,其通知用户在相应VM 上检测到的任何恶意软件或安全威胁,且从用户接收指示(例如)针对应用程序44的所要 配置选项的输入。在用户级执行的组件的另一实例为用户级处理评估器,如下文详细描述。 应用程序44的其它部分可在内核特权级执行。例如,应用程序44可安装反恶意软件驱动 器36及过程评分模块38,两者皆在内核模式中操作。示范性AM驱动器36向反恶意软件应 用程序44提供功能(例如)以扫描存储器是否有恶意软件签名及/或检测过程及/或在 0S34上执行的其它软件对象的恶意软件指示行为。
[0032] 在一些实施例中,过程评分模块38经配置以从多个软件组件接收过程评估数据, 针对被评估过程确定所述过程评估数据,并且根据相应数据来确定所述被评估过程是否为 恶意的。过程为计算机程序(例如,应用程序或操作系统的部分)的例子,且其特征在于具 有至少一个执行线程及由所述操作系统指派到所述至少一个执行线程的虚拟存储器的区 段,相应区段包括可执行代码。在一些实施例中,所述操作系统管理当前在主机系统10上 (或虚拟机32内(在虚拟化的情形中))执行的过程,此管理包含将虚拟存储器指派到每一 过程及针对执行而调度每一过程或其线程等等。
[0033] 图4展示接收多个过程评估指示符52a到d的示范性过程评分模块38,每一指示 符52a到d由过程评估器组件确定。在图4中,此评估组件包含用户级过程评估器50a、内 核级过程评估器50b及系统调用评估器50c等等。评估器50a到c可由反恶意程序驱动器 36建立或形成反恶意程序驱动器36的部分。每一此评估器可独立于其它评估器而执行, 且各自可确定被评估过程的多个不同过程评估指示符。下文将进一步详细描述评估器50a到c的操作。在一些实施例中,一些过程评估指示符(例如,图4中的指示符52a到c)由 在VM32内执行的组件来确定,而其它过程评估指示符(例如,52d)由在VM32外部执行的 组件(例如,由存储器自省引擎40)来确定。
[0034] -些评估指示符可为恶意软件指示的(即,可指示被评估过程为恶意的)。一些 评估指示符自身可不为恶意软件指示的,但当其与其它评估指示符组合时可指示恶意。可 根据不同方法或标准来确定每一评估指示符52a到d。针对被评估过程确定的示范性过程 评估指示符可包含(例如)行为指示符,其指示被评估过程是否执行或尝试执行特定动作 (例如编辑VM32的系统寄存器密钥或写入归属于受保护软件对象的存储器页)。另一示范 性过程评估指示符可指示归属于被评估过程的存储器的区段是否含有恶意软件指示签名。 在一些实施例中,每一过程评估指示符52a到d包括过程识别指示符(例如,过程ID、标签 或散列索引),从而允许模块38识别过程(针对所述过程而确定相应指示符)。
[0035] 在一些实施例中,过程评估指示符可包括由相应过程评估器确定的数值得分,所 述得分指示相应过程的恶意程度。替代地,此类得分可由模块38根据过程评估指示符52a 到d来确定。恶意得分可为二进制(1/0、是/否),或可在连续范围的值中变化。可在一定 范围的值内变化的示范性恶意得分包括指示被评估过程为恶意的可能性的数字(例如,概 率);此得分可在(例如)〇与1之间或0%与100%之间变化。得分值可为行为特定的。举 例来说,被评估过程可在其创建磁盘文件时接收0. 2的恶意得分,且在其修改Windows注册 表值时接收〇. 7的恶意得分。
[0036] 图5展示根据本发明的一些实施例的由过程评分模块38执行的示范性步骤序列。 在步骤302中,模块38从可在VM32内(参见(例如)图4中的评估器50a到c)或在VM 32外(例如,存储器自省引擎40)操作的过程评估器接收过程评估指示符(例如,图4中的 指示符52a到d)。在步骤304中,模块38可识别过程(针对所述过程而确定相应过程评估 指示符)。在一些实施例中,过程评分模块38可保存从各种过程评估器接收的所有过程评 估指示符的每个过程记录;步骤304可进一步包括将步骤302中接收的指示符添加到相应 过程的记录。
[0037] 为确定被评估过程是否为恶意的,在步骤306中,过程评分模块38可通过组合针 对相应过程而确定的及从各种过程评估器接收的个别得分来确定累积得分。示范性累积得 分包括个别得分的加权总和及加权平均。在一些实施例中,累积得分可将针对被评估过程 而确定的过程评估指示符/得分与针对其它过程或软件对象而确定的过程评估指示符/得 分组合。例如,可将针对被评估过程而确定的得分与针对被评估过程的子过程而确定的得 分组合,及/或与针对被评估过程的母过程而确定的得分组合。
[0038] 在步骤308中,模块38可将累积得分与预定阈值相比较。当累积得分未超过所述 阈值时,模块38可返回上文所描述的步骤302。在一些实施例中,所述阈值可被设置成根据 从相应VM的用户接收(例如,通过由安全应用程序44公开的用户接口)的输入而确定的 值。阈值可反映相应用户的安全首选项。例如,当用户选择严密安全时,可将阈值设置成相 对较低的值;当用户优选更宽容的安全设置时,可将阈值设置成相对较高的值。在一些实施 例中,可从远程安全服务器接收阈值,如下文关于图10到11所描述。
[0039] 在一些实施例中,在步骤306到308中,过程评分模块38可确定多个累积得分,且 将每一累积得分与(可能不同的)阈值相比较。可根据过程评估指示符的不同子集来确定 每一此累积得分。在示范性实施例中,过程评估指示符的每一此集合可表示特定类别或类 型的恶意软件(例如,特洛伊木马、rootkits等等),从而允许模块38执行经检测的恶意软 件的分类。
[0040] 当累积得分超过阈值时,在步骤310中,模块38可决定被评估过程为恶意的,且可 采取反恶意软件动作。在一些实施例中,此反恶意软件动作可尤其包含终止被评估过程、隔 离被评估过程及移除或停用被评估过程的源(例如,文件或存储器的区段)。在一些实施例 中,反恶意软件动作可进一步包括提醒主机系统10的用户,及/或提醒系统管理员,例如, 通过将消息通过经由网络适配器22连接到主机系统10的计算机网络发送给系统管理员。 在一些实施例中,反恶意软件动作还可包括将安全报告发送到远程安全服务器,如下文关 于图10到11所描述。
[0041] 图3到4中所描绘的示范性过程评分模块38以0S处理器特权级(例如,内核模 式)在VM32内操作。在替代实施例中,过程评分模块38可以用户模式在VM32内执行, 或甚至以管理程序30的处理器特权级在VM32外部操作。
[0042] 在一些实施例中,自省引擎40以实质上与管理程序30相同的特权级执行,且经配 置以执行虚拟机(例如,VM32)的自省。VM的自省或在相应VM上执行的软件对象的自省 可包括:分析所述软件对象的行为,确定及/或存取此类软件对象的存储器地址,将某些过 程的存取限制到在此类地址处定位的存储器的内容,分析此内容,且确定相应软件对象的 过程评估指示符(例如,图4中的指示符52d)等等。在一些实施例中,作为自省引擎40的 目标的软件对象包括过程、指令流、寄存器及数据结构(例如,页表)以及相应VM的驱动器 对象等等。
[0043] 为从相应VM的外部执行VM32的自省,引擎40的一些实施例使用存储器映射结 构及处理器12的机制。虚拟机通常与虚拟化物理存储器(即,主机系统10的实际物理存 储器14的虚拟表示)一起操作。虚拟化物理存储器包括虚拟化地址的连续空间,具体到在 主机系统10上执行的每一客户VM,其中相应空间的部分映射到物理存储器14及/或物理 存储装置20内的地址。在经配置以支持虚
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1