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

文档序号:9635177阅读:来源:国知局
器及何时从物理存储器交换出,但由于存储器自省引擎40 不驻留在物理存储器中,其不能够存取及/或保护此类数据。相反,在VM32内执行的AM 驱动器36通过迫使0S34加载相应页而可容易地存取从物理存储器交换出的页。AM驱动 器36可因此有效地列出由受保护过程使用/加载的所有模块,且确定VM32的虚拟化物理 存储器内的此类模块的大小及位置。
[0058] 在替代实施例中,替代于主动地检测受保护过程的启动(以上步骤312),存储器 自省引擎40可从AM驱动器36接收受保护过程的指示符,其中AM驱动器36可实际上检测 来自VM32内的受保护过程的启动。在此类实施例中,如上文所描述的步骤314不再为必 须的。在另一实施例中,在步骤316中,引擎40可实际上执行必要的计算以确定受保护过 程的存储器页的地址,而不是依赖于如上文所描述的AM驱动器36。
[0059] 在步骤318中,存储器自省引擎保护目标页不受非所要修改(例如,由试图破坏 VM32的恶意软件)的影响。所属领域中已知若干此类存储器保护机制。由管理程序30在 存储器自省引擎40发出请求时可使用数据结构(例如,EPT或NPT)来强制执行保护。例 如,管理程序30可通过修改相应页的EPT/NPT存取权限位而将目标存储器页设置为只读。 在一些实施例中,管理程序30可拦截写入分配给目标对象的存储器页的任何尝试,且重新 定向到存储器自省引擎40的相应尝试用于分析。下文关于图9将进一步详细描述步骤318 中的引擎40的操作。
[0060] 为将写入保护应用到目标页,步骤318可包括执行图6中所说明的种类的存储器 地址的转译:从由0S34针对受保护过程而建立的虚拟存储器空间一直到主机系统10的物 理存储器14,或从相应VM的虚拟化物理存储器空间到物理存储器14。根据步骤316中从 AM驱动器36接收的指示符,相应转译允许存储器自省引擎40确定实际物理存储器14中的 目标页的地址。此类转译可使用EPT/NPT机制,如关于图6所描述。
[0061] 在步骤320中,引擎40可检测受保护过程的终止。在一些实施例中,步骤320可 以类似于上文所描述的步骤312的方式进行。例如,步骤320可包括从内核功能(其经配 置以从VM32的作用过程列表移除过程)接收信号,由AM驱动器36通过挂钩(例如,将补 丁(例如,VMCALL指令)应用到相应功能,所述补丁重新定向到引擎40的执行)来修改相 应功能。可以此方式修改的示范性Windows功能为PspDeleteProcess。当引擎40检测到 受保护过程的终止时,步骤322例如通过指示管理程序30改变针对所述目标页的写入权限 将保护从相应目标页移除。
[0062] 图9说明由存储器自省引擎40执行以保护目标页(图8中的步骤318)的步骤序 列。在步骤332中,引擎40可拦截写入目标页的尝试;此类尝试可指示恶意意图,且可经 由管理程序30而被拦截,如上文所描述。在步骤334中,引擎40可识别执行所述尝试的过 程;相应过程将被称作攻击过程。在一些实施例中,为执行步骤334,引擎40可使用指令指 针寄存器(例如,x86系统上的EIP及/或RIP寄存器)的内容来识别执行所述尝试的处 理器指令(或其地址),及使用CR3寄存器的内容来识别相应指令所归属的过程。替代地, 引擎40可使用片段寄存器的内容(例如,x86处理器上的FS及GS寄存器)以根据某些内 核数据结构(其在每一次0S 34切换过程之间的执行时被修改)来识别攻击过程。
[0063] 在步骤336中,引擎40可制订攻击过程的过程评估指示符52d(参见例如图4)且 将指示符52d传输到过程评分模块38。示范性指示符52d可包括在步骤334中识别的攻击 过程的指示符(例如,过程ID),及由攻击过程尝试的且在步骤332中被拦截的动作的类型 的指示符(例如,写入受保护存储器页的尝试)。
[0064] -些上文所描述的方法及系统需要在VM32内执行的组件之间的通信(例如,数 据交换及/或消息接发),及在相应VM的外部执行的组件之间的通信(例如,数据交换及/ 或消息接发)。可使用虚拟化的技术领域中已知的任何方法执行此通信。例如,为将数据 从以内核模式执行的组件(例如,AM驱动器36)传输到存储器自省引擎40(参见例如图8 中的步骤316),一些实施例使用特权指令将处理器12的控制从VM32转移到管理程序30。 此类特权指令的实例为Intel平台上的VMCALL,其可用以向引擎40发信号表示正从VM32 内转移一些数据。被传输的实际数据可放置在驱动器36与引擎40之间共享的存储器的 预定区段中。为将数据从存储器自省引擎40传输到AM驱动器36 (参见例如图8中的步骤 314及图9中的步骤336),一些实施例使用中断注入机制以向驱动器36发信号表示正从相 应VM的外部传输数据。可(例如)通过上文所描述的共享存储器区段来转移实际数据。
[0065] 在一些实施例中,主机系统10可经配置以与远程安全服务器交换安全信息,例 如,关于恶意软件检测事件的细节。图10说明此示范性配置,其中多个主机系统l〇a到c经 由计算机网络26连接到安全服务器110。在示范性实施例中,主机系统10a到c为由公司 的雇员使用的个人计算机,而安全服务器110可包括由相应公司的网络管理员配置以监视 发生在系统l〇a到c上的恶意软件威胁或安全事件的计算机系统。在另一实施例中,例如, 在基础结构即服务(IAAS)系统(其中每一主机系统10a到c为托管数十或数百个虚拟机 的服务器)中,安全服务器110可包括计算机系统,所述计算机系统经配置以管理针对来自 中央位置的所有此类VM的反恶意软件操作。在另一实施例中,安全服务器110可包括计算 机系统,所述计算机系统由反恶意软件的提供商(例如,安全应用程序44的提供商等)配 置以接收关于在围绕网络26的各种系统上检测到的恶意软件的统计及/或行为数据。网 络26可包含广域网(例如,因特网),而网络26的部分可包含局域网(LAN)。
[0066] 图11展示在图10中所展示的实施例中的主机系统10与安全服务器110之间的 示范性数据交换。主机系统10可经配置以向服务器110发送安全报告80,且从服务器110 接收安全设置82的集合。在一些实施例中,安全报告80包括过程评估指示符及/或由在 主机系统10上执行的过程评估器确定的得分,及/或由过程评分模块38确定的累积得分 等等。安全报告80还可包括识别相应虚拟机及被评估过程的数据(例如,过程ID、名称、路 径、散列、版本信息或应用程序及/或过程的其它种类的标识符),以及将过程评估指示符/ 得分与VM及过程(针对所述过程而确定所述指示符)相关联的指示符。在一些实施例中, 报告80可进一步包括关于在主机系统10上执行的过程及/或应用程序的统计及/或行为 数据。系统10可经配置以在检测到恶意软件时及/或根据时间表(例如,每几分钟、每小 时等等)而发送报告80。
[0067] 在一些实施例中,安全设置82可包含过程评估器的操作参数(例如,图4中的过 滤器50a到c的参数),及/或过程评分模块38的参数。模块38的操作参数的实例为用于 确定被评估过程是否为恶意的阈值(参见图5中的步骤308及相关联的描述)。过程评估 器的示范性操作参数为指派到被评估过程(当所述被评估过程执行特定动作时)的恶意得 分的值。当相应过程写入磁盘文件时,被评估过程可接收〇. 1的恶意得分;且当被评估过程 修改Windows注册表值时,被评估过程可接收0. 7的恶意得分。
[0068] 在一些实施例中,服务器110运行优化算法来动态地调整此类参数以最大化恶意 软件检测性能,例如,在最小化误报的同时提高检测率。优化算法可接收关于在多个主机系 统10a到c上执行的各种过程的统计及/或行为数据(包含由各种过程评估器向过程评分 模块38报告的过程评估指示符/得分),且确定参数的最优值。所述值随后经由网络26被 传输到相应主机系统。在一些实施例中,为确定最优参数值,服务器110可使用已知为干净 (未受恶意软件的影响)的过程的集合来校准过程评分模块38及/或过程评估器50a到 c的操作。在示范性校准方案中,安全服务器110可指示主机系统10执行校准过程的集合 (已知为干净的),且发送回服务器110针对所述校准过程确定的过程评估指示符/得分的 集合。服务器110可随后确定针对相应虚拟机及/或主机系统定制的参数值。
[0069] 在另一实例中,安全设置82包括权重值的集合,由过程评分模块38使用所述权重 值的集合以根据从各种过程评估器接收的个别过程评估指示符来确定针对被评估过程的 累积恶意得分。在实施例中,其中累积得分为个别得分的加权总和或加权平均,且其中根据 不同恶意软件检测标准或方法(例如,当每一得分指示被评估过程是否执行特定恶意软件 指示行为时)来计算每一得分,与其它标准/方法相比较,改变个别得分的权重可有效地改 变相应标准或方法的相关性。恶意软件威胁通常以波的形式发生,其中世界范围内的大量 计算机系统在短时间间隔中受到相同恶意软件代理的影响。通过实时从多个主机系统接收 安全报告80,安全服务器110可保持与当前恶意软件威胁的更新,且可迅速地将最优安全 设置82传递到相应主机系统,设置82包含(例如)针对检测当前恶意软件威胁而优化的 得分权重的集合。
[0070] 以上所描述的示范性系统及方法允许保护主机系统(例如,计算机系统)不受恶 意软件(例如,病毒或rootkits)的攻击。常规反恶意软件系统通常以操作系统的处理器 特权级(例如,内核模式)执行。一些恶意软件(例如,rootkits)也可以0S的级操作,且 可因此使常规反恶意软件系统瘫痪且破坏计算机系统的安全性。相反,在本发明的一些实 施例中,管理程序以最高处理器特权级在计算机系统上执行,用虚拟机代替操作系统。根据 本发明的一些实施例而操作的反恶意软件系统包括以管理程序级在VM内执行的组件及在 VM外部执行的组件。因此可以与操作系统的处理器特权级相比较更高的处理器特权级进行 一些反恶意软件操作,其中在VM内执行的恶意软件不能够将其破坏。在一些实施例中,以 管理程序的级执行的单个存储器自省引擎可保护在相应计算机系统上同时执行的多个虚 拟机。
[0071] 在一些实施例中,存储器自省引擎的操作包含选择关键软件对象(例如,某些驱 动器、库、寄存器及页表等)的集合,且防止恶意修改此类对象。特定来说,一些实施例可因 此保护在VM内执行的反恶意软件组件不受恶意攻击。
[0072] 为保护此类对象,一些实施例可通过拦截写入分配到相应对象的存储器空间的尝 试来防止恶意修改,且阻止或重新定向所述尝试。其它实施例可通过将分配到相应对象的 存储器空间标记为只读来保护目标对象。在典型的硬件及软件配置中,存储器被划分成具 有连续地址的个别块(被称作页)。在支持虚拟化的系统中,页存取权限由管理程序(例 如)使用专用数据结构(例如,Intel平台上的扩展页表(EPT))来控制。因此(例如)通 过存储器自省引擎指示管理程序将含有归属于相应对象的数据的页的集合标记为只读可 实现保护目标对象的存储器空间。
[0073] 在一些实施例中,一些反恶意软件组件在受保护虚拟机内执行,与存储器自省引 擎合作以检测恶意软件。此类配置通过桥接通过虚拟化而产生的语义鸿沟可实质上简化恶 意软件检测。在典型的软件配置中,以用户模式执行的恶意软件检测组件可获取关于被评 估过程的行为的丰富信息,而大部分此信息对以内核级执行的组件或在相应VM外部执行 的组件来说不是容易获得的。例如,当被评估过程尝试从因特网下载文件时,用户模式过 程评估器
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1