首页> 中国专利> 管理程序托管的虚拟机取证

管理程序托管的虚拟机取证

摘要

计算机系统从管理程序托管的虚拟化环境中的运行的虚拟机获取取证数据。计算机系统将取证分区作为额外的根虚拟机分区或子虚拟机分区来提供。取证分区包括取证服务应用程序接口,其被配置为瞄准一个或多个虚拟机,并且从在特定的子虚拟机分区中运行的所瞄准的虚拟机获取取证数据。所述取证服务应用程序接口被配置为经由管理程序托管的虚拟化环境所实现的一个或多个分区间通信机制(例如,分区间通信总线、超调用接口、或取证交换机)进行通信。可以将取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。

著录项

  • 公开/公告号CN106575243A

    专利类型发明专利

  • 公开/公告日2017-04-19

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN201580041265.9

  • 发明设计人 J·科克伦;

    申请日2015-07-29

  • 分类号G06F9/50;

  • 代理机构永新专利商标代理有限公司;

  • 代理人王英

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 01:53:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-04

    授权

    授权

  • 2017-05-17

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20150729

    实质审查的生效

  • 2017-04-19

    公开

    公开

说明书

背景技术

随着数据中心解决方案成为传统企业中主要的基于虚拟机的事件响应者,信息技术环境以及云服务提供商环境将在进行大规模取证获取和分析时面临巨大挑战。

传统的取证工具在主机等级工作,通常在用户模式下经由用户模式技术和应用程序接口(API)而从文件系统和存储器获取伪迹、或者在一些情况下从内核模式驱动程序或库(shim)获取伪迹。这些传统解决方案无法在大型数据中心环境中扩展,并且可能受到使用反取证功能和技术的更复杂的恶意软件的威胁和阻碍。

当在小型企业环境中执行安全调查和取证分析时,可以使用用于取证获取和分析的工具来逐个主机地进行分析。针对云服务的安全调查来执行取证分析可以涉及从数百个主机收集数据以供分析。在那些环境中单独地对每个主机进行取证获取或分析是不可能的。

一些传统的工具将代理加载在环境中的每个主机上,并且使用集中式控制器来访问代理以获取取证数据和伪迹。然而,将代理加载在每个主机上没有很好的扩展性。

此外,对所存储的数据的取证获取和分析不提供正在运行的虚拟机的实时存储器或当前状态。

发明内容

提供了以下的发明内容以用在以下的详细说明中进一步描述的简化的形式引入了概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用来限制所要求保护的主题的范围。

计算机系统从管理程序托管(hypervisor-hosted)的虚拟化环境中的运行的虚拟机获取取证数据。计算机系统将取证分区作为额外的根虚拟机分区或子虚拟机分区来提供。取证分区包括取证服务应用程序接口,其被配置为瞄准一个或多个虚拟机,并且从在特定的子虚拟机分区中运行的所瞄准的虚拟机获取取证数据。所述取证服务应用程序接口被配置为经由由管理程序托管的虚拟化环境所实现的一个或多个分区间通信机制(例如,分区间通信总线、超调用接口、或取证交换机)进行通信。可以将取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。

通过阅读以下详细描述并回顾附图,这些和其他特征和优点将是显而易见的。应当理解,前述简要说明、以下详细描述、和附图仅仅是说明性的,而不限制所要求保护的各种方面。

附图说明

图1示出了根据所描述主题的方面的示例性框架的实施例;

图2示出了根据所描述主题的方面的示例性框架的实施例;

图3示出了根据所描述主题的方面的示例性过程的实施例;

图4示出了可以实现所描述主题的方面的示例性操作环境的实施例。

具体实施方式

以下结合附图所提供的详细描述旨在作为对示例的描述,而不旨在表示可以构建或利用本示例的唯一形式。所述描述阐述了示例的功能和用于构建和操作所述示例的步骤的顺序。然而,可以由不同的示例实现相同或等同的功能和顺序。

对“一个实施例”、“一实施例”、“一示例实施例”、“一个实现”、“一实现”、“一个示例”、“一示例”等的引用指示所描述的实施例、实现、或示例可以包括特定的特征、结构、或特性,但每个实施例、实现、或示例不一定包括所述特定的特征、结构、或特性。此外,这样的短语不一定指的是相同的实施例、实现、或示例。此外,当结合实施例、实现、或示例来描述特定的特征、结构、或特性时,应当理解的是,可以结合其他实施例、实现、或示例(无论是否明确地描述)来实现这样的特征、结构、或特性。

阐述了多个具体的细节以便提供对所描述主题的一个或多个方面的彻底的理解。然而,应当理解的是,可以在没有这些具体细节的情况下实践这样的方面。尽管以框图形式示出了某些组件来描述一个或多个方面,但应当理解的是,由单个组件所执行的功能可以由多个组件来执行。类似地,单个组件可以被配置为执行被描述为由多个组件所执行的功能。

现在将参考附图更加详细地描述本主题公开的各种方面,其中,相同的附图标记通常指的是通篇中相同或对应的元件。附图和详细描述不旨在将所要求保护的主题限制为所描述的特定形式。相反,其意图是覆盖落入所要求保护的主题的精神和范围内的所有修改、等同物、和替代物。

图1示出了作为可以实现所描述的主题的方面的示例性框架的实施例的虚拟化框架100。应当理解的是,在各种实施例中,虚拟化框架100或其部分可以由各种计算设备来实现,并且可以由软件、硬件、固件、或其组合来实现。

在被配置为执行根据所描述主题的方面的各种步骤、方法、和/或功能的计算设备和/或计算机系统的上下文中描述虚拟化框架100的实现。应当理解的是,计算机系统可以由一个或多个计算设备来实现。还在被执行以执行根据所描述的主题的方面的步骤、方法、和/或功能的“计算机可执行指令”的上下文中描述了虚拟化框架100的实现。

概括而言,计算设备和/或计算机系统可以包括一个或多个处理器和存储设备(例如,存储器和磁盘驱动器)以及各种输入设备、输出设备、通信接口、和/或其他类型的设备。计算设备和/或计算机系统还可以包括硬件和软件的组合。可以理解的是,各种类型的计算机可读存储介质可以是计算设备和/或计算机系统的一部分。如在本文中所使用的,术语“计算机可读存储媒体”和“计算机可读存储介质”不意味着并明确地排除传播信号、调制数据信号、载波、或任何其他类型的瞬时性计算机可读介质。在各种实现中,计算设备和/或计算机系统可以包括被配置为执行计算机可执行指令的处理器以及存储被配置为执行根据所描述的主题的方面的各种步骤、方法、和/或功能的计算机可执行指令的计算机可读存储介质(例如,存储器和/或额外的硬件存储)。

可以以各种方式来实施和/或实现计算机可执行指令,例如通过计算机程序(例如,客户端程序和/或服务器程序)、软件应用(例如,客户端应用和/或服务器应用)、软件代码、应用代码、源代码、可执行文件、可执行组件、程序模块、例程、应用程序接口(API)、函数、方法、对象、属性、数据结构、数据类型等。计算机可执行指令可以存储在一个或多个计算机可读存储介质上,并且可以由一个或多个处理器、计算设备、和/或计算机系统来执行根据所描述的主题的方面的特定的任务或者实现根据所描述的主题的方面的特定的数据类型。

可以由计算设备(例如,服务器计算机)和/或计算机系统来实现虚拟化框架100。实现虚拟化框架100的服务器计算机可以包括支持硬件辅助虚拟化的一个或多个处理器。在一个实施例中,可以由来实现虚拟化框架100,其提供服务器虚拟化、实现本机管理程序、并且可以创建虚拟机。在其他实施例中,可以由诸如VMware、Oracle VirtualBox等之类的各种合适的虚拟化产品来实现虚拟化框架100。

可以在用于在孤立的执行环境中在一个物理主机服务器计算机上同时地运行多个虚拟服务器实例的服务器虚拟化上下文中实现虚拟化框架100。每个虚拟服务器可以像其是在共享的物理主机服务器上运行的唯一的服务器一样进行操作。

可以在用于在同一物理网络上同时地运行多个虚拟网络基础设施的网络虚拟化上下文中实现虚拟化框架100。每个虚拟网络可以像其是在共享的物理网络结构上运行的唯一的网络一样进行操作。

可以在云计算环境中实现虚拟化框架100。支持x64架构并实现虚拟化框架100的服务器计算机可以托管数百个虚拟机。可以将托管数百个虚拟机的服务器计算机部署为一千个或更多个虚拟机的聚类中的一个节点。可以将实现虚拟化框架100的服务器计算机部署在由云计算数据中心所托管的聚类中,所述云计算数据中心管理服务器计算机的计算和存储资源,并且将资源供给至在云计算环境中运行的应用。

实现虚拟化框架100的服务器计算机可以包括一个或多个操作系统。示例性操作系统包括但不限于:操作系统(例如,操作系统、AzureTM操作系统)、操作系统(例如,Chrome OSTM操作系统、或AndroidTM操作系统)、Apple操作系统(例如Mac或Apple>TM操作系统)、操作系统、开源操作系统、或者适合在计算设备、计算机系统、和/或基于处理器的设备或系统上运行的任何其他操作系统。可以理解的是,实现虚拟化框架100的服务器计算机可以将多个不同的操作系统作为客户操作系统来托管。

如图所示,虚拟化框架100包括管理程序110。当安装在计算设备(例如,服务器计算机)或计算机系统上时,管理程序110可以被配置为管理计算设备或计算机系统的底层硬件(例如,一个或多个处理器、存储器、磁盘、NIC等)。管理程序110可以以高特权模式(例如,环-1)运行。管理程序110可以控制和仲裁对底层硬件的访问。

管理程序110可以管理核心硬件设施(例如,逻辑处理器、本地高级可编程中断控制器(APIC)、系统计数器、系统物理地址空间(例如,RAM和设备存储器)、I/O空间、模型专用寄存器(MSR)空间等)以提供隔离的执行环境。管理程序110可以提供、支持、和管理被称为分区的隔离的执行环境。可以将每个分区实现为用于隔离由管理程序110所管理的处理器和存储器资源的抽象的容器或逻辑单元。可以给每个分区分配一组硬件资源(CPU、存储器、和设备)和虚拟资源。分区可以拥有或共享硬件资源。分区可以具有关于设备访问的策略。

分区可提供在其中执行客户操作系统的隔离的执行环境。由此,多个隔离的操作系统可以在共享的硬件平台上执行。分区可以包括根(例如,父)分区。根分区可以实现和运行诸如Server操作系统或其他合适的管理操作系统之类的管理操作系统。根分区可以包括提供对底层硬件设备的直接访问的虚拟化栈。

根分区或父分区可以操作以创建一个或多个子分区。每个子分区可以托管子客户操作系统。子客户操作系统可以是全功能操作系统或专用内核。子分区通常不能够访问底层物理硬件(例如,处理器、存储器、磁盘、NIC等)或者处理处理器中断。子分区可以在子分区私有的虚拟存储器地址区域中运行。可以利用硬件资源的虚拟视图来呈现子分区,并且对虚拟设备的请求可以被重新引导至根分区并且由该根分区来处理。

管理程序110可创建并运行虚拟机。子分区可以关联于和/或实现由管理程序110所创建的虚拟机。虚拟机可以将物理计算设备或计算机系统仿真为像物理机一样的执行程序的软件实现。虚拟机可以具有一个或多个虚拟处理器。虚拟机可以提供用于执行全功能操作系统的虚拟系统平台。分区可以实现用于访问经仿真的设备的虚拟化栈。逻辑系统可以映射至分区,并且逻辑设备可以映射至分区内的虚拟设备。

管理程序110可以实现和暴露超调用API 111或者分区可以用来访问管理程序110的其他类型的调用机制。从分区到管理程序110的调用被称为超调用。每个超调用可以定义一组输入和/或输出参数。超调用可以被配置为执行单个动作或执行多个动作。

可以由父分区或子分区将超调用发送至管理程序110。分区可以向管理程序110发送超调用以请求针对信息(例如,输出参数、统计数据、寄存器等)的动作和/或查询。根或父分区可以向管理程序110发送超调用以创建子分区。超调用API 111可以实现从分区到管理程序110的调用路径以及从管理程序110到调用分区的返回路径。

管理程序110可以提供和支持各种消息传送能力。可以由管理程序110将消息发送至分区。消息可以在分区之间发送。每个消息可以具有消息类型、源分区、和消息有效负载。管理程序110可以提供和支持作为消息和/或事件的分区间通信。来自分区的消息或事件可以通过管理程序110被路由以传递至另一个分区。

管理程序可以包括被配置为控制处理器中断和给处理器中断划分优先顺序的中断控制器112。中断控制器112可以允许管理程序110处理对处理器的中断并将中断重新引导至分区。可以例如由APIC或其他合适的中断控制器来实现中断控制器。

管理程序110可以包括用于创建、管理、和删除分区的分区管理器113。分区管理器113可以允许管理程序110响应于来自根分区或父分区的超调用而创建和初始化子分区。每个新创建的分区可以被分配有分区标识符,并且可以被分配有存储器和虚拟资源。

管理程序110可以包括用于管理存储器和由分区的访问的存储器管理器114。例如可以由存储器服务例程(MSR)或其他合适的存储器管理器来实现存储器管理器114。

管理程序110可以包括用于管理分配给每个客户操作系统的虚拟网络地址的地址管理器115。地址管理器115可以允许管理程序110执行用于将物理存储器地址映射至由分区所使用的虚拟地址空间的地址转换。

管理程序110可以包括被配置为对虚拟处理器在物理处理器上的运行进行调度的调度器116。调度器116可以基于由根或父分区所设置的策略而执行调度。

管理程序托管的虚拟化环境

管理程序110可以被配置为提供管理程序托管的虚拟化环境120。在各种实现中,管理程序托管的虚拟化环境120可以实现一个或多个虚拟化的分区。

管理程序托管的虚拟化环境120可以包括根虚拟机(VM)分区130或根VM、管理程序感知的子VM分区140或启发的子VM、以及非管理程序感知的子VM分区150或非启发的子VM。

根VM分区130可以包括用于与管理程序110进行通信的超调用接口(HCIF)131。HCIF 131可以调用超调用API 111以将超调用从根VM分区130发送至管理程序110。HCIF131可以由诸如Microsoft 管理程序接口库(WinHV)之类的包装器库(wrapperlibrary)来实现。HCIF 131在根VM分区130内运行,并提供用于使用标准调用惯例来调用超调用API 111和调用管理程序110的包装器接口或调用惯例(例如,高级C风格调用惯例)。根VM分区130可以充当父分区,并且使用HCIF 131来调用管理程序以创建子VM分区140、150。HCIF 131可以在内核模式中运行。

根VM分区130可以包括虚拟机总线(VMBus)132。VMBus 132可以被实现为针对根虚拟机分区130与管理程序托管的环境的其他管理程序感知的或启发的分区之间的分区间通信的通信信道。VMBus 132可以在内核模式中运行。

子VM分区140可以被实现为管理程序感知的或启发的子分区。子VM分区140可以包括用于调用超调用API 111以将超调用从子VM分区140发送至管理程序110的HCIF 141。HCIF 141可由诸如Microsoft 管理程序接口库(WinHV)之类的包装器库来实现。HCIF 141可以在内核模式中运行。

子VM分区140可以包括用于与根VM分区130和管理程序托管的环境的其他管理程序感知的或启发的分区进行通信的VMBus 142。VMBus142可以在内核模式中运行。应当理解的是,管理程序托管的虚拟化环境120可以包括许多启发的子分区,并且子VM分区140被示出为这样的启发的子分区中的一个的示例。

子VM分区150可以被实现为非管理程序感知的或非启发的子分区。子VM分区150可以包括用于与管理程序110进行通信的设备仿真组件151。设备仿真组件151可以在内核模式中运行。应当理解的是,管理程序托管的虚拟化环境120可以包括许多非启发的子分区,并且子VM分区150被示出为这样的非启发的子分区中的一个的示例。

根VM分区130可以包括虚拟化服务提供商和/或集成服务(VSP/IS)133。VSP/IS133可以处理来自管理程序感知的子分区的请求。子VM分区140可以包括虚拟化服务客户端和/或集成服务(VSC/IS)143。VSP/IS 133可通过VMBus 132、142向VSC/IS 143提供各种虚拟化服务以支持子VM分区140。VSC/IS 143可以消费来自VSP/IS 133的虚拟化服务。VCS/IS143可以包括用于允许子VM分区140经由VMBus 142与管理程序110、根VM分区130、和其他管理程序感知的分区进行通信的各种集成组件。VCS/IS 143和VSP/IS 133可以客户端-提供商的方式操作并且可以使用Windows Management Instrumentation(WMI)调用进行通信。VCS/IS 143和VSP/IS 133可以在内核模式中运行。

实现虚拟化框架100的物理计算机系统上的各种操作系统可以在管理程序110的顶层运行。根VM分区130可以实现和运行管理操作系统144,例如Server操作系统或其他合适的管理程序感知的父客户操作系统。子VM分区140可以将管理程序感知的操作系统(例如,OS或操作系统)作为客户操作系统144来实现和运行。子VM分区150可以将非管理程序感知的操作系统作为客户操作系统154来实现和运行。

根VM分区130可以包括被配置为管理子分区140、150中的虚拟机的状态的虚拟机管理服务(VMMS)组件135。VMMS 135可暴露例如由基于WMI的API 136所实现的API,以用于管理和控制虚拟机。根VM分区130可以包括为每个正在运行的虚拟机提供分别的工作者进程的虚拟机工作者进程(VMWP)组件137。工作者进程可从将虚拟机管理服务从根VM分区130提供至在子VM分区140、150中操作的子客户操作系统144、154。每个虚拟机可以具有在根VM分区130中运行,并实现用于保存状态、访问经仿真的设备、和控制虚拟机的工作者进程的代码。VMMS 135、WMI 136、和VMWP组件137可以在用户模式中运行。

根VM分区130可以包括各种驱动器,例如用于提供分区管理服务的虚拟化基础设施驱动器(VID)、用于管理与主机系统硬件的交互的独立硬件供应商(IHV)驱动器、以及其他驱动器。

子VM分区140可以实现使用客户操作系统144来运行的各种托管的应用145。子VM分区150可以实现使用客户操作系统154来运行的各种托管的应用155。

取证根VM

如在图1中所示,管理程序托管的虚拟化环境120包括管理程序托管的取证根VM分区160或取证根VM。取证根VM分区160可由管理程序110创建和/或启动。取证根VM分区160可以将取证根VM实现为用于取证和分析同时对管理程序110或根VM分区130产生极小的影响的专用VM。

取证根VM分区160可以被实现为特权VM分区,其性质类似于根VM分区130。取证根VM分区160可以是关于子VM分区140、150具有一定程度的特殊性或增强的特权的额外的根分区。例如,取证根VM分区160可以实现提供对物理计算机系统的底层硬件(例如,存储器)的直接访问的虚拟化栈,其中所述物理计算机系统实现虚拟化框架100。取证根VM分区160可以具有类似于根VM分区130的许多特性,但不会充当根VM分区130或根VM。由此,取证根VM分区160可以比子VM分区具有更多的特权,但是比根VM分区130具有更少的特权。

取证根VM分区160可以包括用于与管理程序110进行通信的HCIF 161。HCIF 161可以调用超调用API 111以将超调用从取证根VM分区160发送至管理程序110。HCIF 161可由诸如Microsoft管理程序接口库(WinHV)之类的包装器库来实现。HCIF 161在取证根VM分区160内运行、并提供用于使用标准调用惯例来调用超调用API 111和调用管理程序110的包装器接口或调用惯例(例如,高级C风格调用惯例)。HCIF 161可以在内核模式中运行。

取证根VM分区160可以包括用于在取证根VM分区160与包括根VM分区130和子VM分区140在内的管理程序托管的虚拟化环境120的其他管理程序感知的分区之间的分区间通信的VMBus 162。VMBus 162可以在内核模式中运行。取证根VM分区160可以实现和运行管理程序感知的客户操作系统164,例如Server操作系统或其他合适的管理程序感知的客户操作系统。

取证根VM分区160可以实现被允许经由VMBus 162和超调用API 111直接地访问托管的VM的特权VM。取证根VM分区160能够发送和接收通过管理程序110路由至目的地分区的消息和/或事件。

取证根VM分区160可以包括可以由取证工具170调用的取证服务API 163。在一个实现中,取证工具170可以在管理程序托管的虚拟化环境120的外部。在其他实现中,取证工具170可以安装或实现在取证根VM分区160内。取证工具170可以由经由取证服务API 163从正在运行的托管的VM收集数据的应用和/或自动化脚本(例如,PowerShell脚本)来实现。

取证工具170可以使用WMI、另一个API、和/或其他调用惯例来调用取证服务API 163。在各种实现中,取证工具170可以调用常见的和/或期望的接口,而不需要重写接口或调用机制。取证服务API 163可以从取证工具170接收针对文件系统访问、存储器访问、磁盘访问、网络访问、和/或PowerShell远程访问的系统调用,并且可以将这样的调用转换成由分区间通信机制所支持的消息和/或调用。

取证服务API 163可以被暴露给取证工具170,并且可以包括用于使用各种分区间通信机制从正在运行的管理程序托管的VM请求、接收、和/或暴露取证数据的功能。例如,取证服务API 163可以包括用于经由VMBus 162从正在运行的开放VM请求、接收、和/或暴露取证数据的功能。可以经由VMBus 162、142将调用从取证根VM分区160路由至目标的启发的VM。可以通过VMBus 162从VM接收和/或由VMBus 162暴露取证数据。

可以经由VMBus 162将取证服务API 163暴露给正在运行的启发的VM(例如,子VM分区140)。在一些实现中,启发的VM可以响应于请求、消息、和/或事件来调用取证服务API163以供应取证数据。

取证服务API 163可以包括用于使用VSC和/或集成服务从正在运行的启发的VM(例如,子VM分区140)请求、接收、和/或暴露取证数据的功能。启发的分区经由集成服务的安装来提供I/O和管理程序感知的内核,其可以包括利用VMBus的一个或多个VSC。由此,取证服务API 173可以使用VSC和/或集成服务从启发的VM请求、接收、和/或暴露取证数据。取证服务API 163可以通过使用WMI调用与正在运行的VM进行通信来请求、接收、和/或暴露取证数据。

取证服务API 163可以包括用于使用经由HCIF 161至管理程序110的超调用从正在运行的VM请求、接收、和/或暴露取证数据的功能。可以对管理程序110进行调用,并且可从管理程序110接收针对正在运行的VM的取证数据。取证服务API 163可以包括使用通过管理程序110而路由的消息和/或事件从正在运行的VM请求、接收、和/或暴露取证数据的功能。

在一些实现中,可以不同的方式来进行和接收调用和响应。可以使用一种机制来对请求取证数据进行调用,并且可以经由另一种机制来接收取证数据。可以通过一个接口来发送调用,并通过另一个接口来收集取证数据。可以将调用接口暴露为一种类型的接口(例如,网络接口),而将接收接口暴露为另一种类型的接口(例如,网络附接存储接口、PowerShell远程接口等)。

根VM分区130是高特权的。在一个实现中,根VM分区130支持进行调用的基础设施,但是取证工具170不直接访问根VM分区130。在一些实现中,可以通过根VM分区130来路由针对诸如来自取证根VM分区160的超调用(例如WinHv调用)和/或VMBus调用之类的取证数据的请求。

取证根VM分区160可以实现具有WMI功能和用于采用诸如网络、磁盘等之类的API的能力的虚拟机。取证工具170可以利用网络、磁盘、或其他API并且接入它们来进行其工作。暴露了取证根VM分区160中的VMBus 162,以使得可以使用VMBbus 162和/或WMI来进行调用以对目标进行取证调查。

取证工具170或调查者可以登录或者被引导至取证根VM分区160,并且可以被呈现有可以由取证工具170所调用的取证服务API 163。在管理程序等级对来自取证工具170的调用进行仲裁。取证数据是从目标主机获取的,并且被呈现回取证根VM分区160。例如,可以通过对取证根VM分区160进行调用来获得来自特定的主机的注册表存储单元(hive),其中所述取证根分区160从特定的主机获得数据并将其提供回取证工具170。

取证服务API 163可以包括用于允许取证工具170将一个或多个正在运行的托管的VM定为目标并选择各种类型的取证数据以供获取和/或分析的功能。可以由取证工具170请求和/或分析的取证伪迹的非限制性示例包括:主机/VM文件系统伪迹、主机/VM网络伪迹、主机/VM存储器伪迹、和主机/VM事件日志伪迹。

一个或多个目标主机/VM的取证分析可以需要从主机/VM的文件系统获得的信息的类型。该活动可以包括获取实际的数据以供更深度的分析以及直接经由VM接口的实际分析活动两者。获取和分析主机/VM文件系统伪迹的非限制性示例包括:主文件表(MFT)活动的获取和异常MFT活动的检测、文件时间的获取和可疑文件时间异常的检测、文件散列的获取和验证、自动启动可扩展点(ASEP)和自动运行的获取和分析、文件下载-打开-创建-删除信息的获取和分析、程序执行和使用信息的获取和分析、打包/熵分析、以及伪迹的堆栈等级/频率分析。

在主机/VM等级的网络分析可以涉及获取和分析主机/VM网络伪迹,其包括但不限于:地址解析协议(ARP)缓存数据的获取和分析、域名系统(DNS)缓存数据的获取和分析、网络连接数据的获取和分析、以及分组数据的捕获和分析。

主机/VM存储器分析为调查者提供了获取和分析关于操作系统和正在运行的进程的信息的能力。该能力可以涉及获取存储器数据以用于由取证工具170分析或者用于经由将取证接口163暴露给取证工具170而直接分析。获取和分析主机/VM存储器伪迹的非限制性示例包括:过程信息的获取和可疑过程的识别、动态链接库(DLL)过程和处理的获取和分析、代码注入行为的获取和分析、内核挂钩(例如,rootkit行为)的获取和分析、进程存储器转储和映射的获取和分析。

主机事件日志是针对用于确定主机/VM上的各种活动的取证分析的关键工具。可以从主机/VM或跨整个主机/VM群体而获取和分析事件日志源。获取和分析主机/VM事件日志伪迹的非限制性示例包括:经调度的任务日志的获取和分析、登录事件的获取和分析、帐户活动的获取和分析、系统策略改变的获取和分析、可疑服务和程序活动的获取和检测、事件时间线数据的获取和分析。

在利用有关用户的数据的实现中,为了用户隐私和信息保护的利益,这样的有关用户的数据的提供者和消费者可以采用各种机制。这样的机制可以包括但不限于:需要授权以监控、收集、或报告数据;使得用户能够选择加入和选择退出数据监控、收集、和报告;采用隐私规则以防止某些数据被监控、收集、或报告;提供将允许被监控、收集、或报告的敏感数据匿名、截断、或模糊的功能;采用数据保留策略来保护和清理数据;和/或用于保护用户隐私的其他合适的机制。

管理程序托管的取证交换机

如在图2中所示,管理程序托管的虚拟化环境120包括管理程序托管的取证子VM分区180或取证子VM。取证子VM分区180可以由管理程序110来创建和/或启动。取证子VM分区180可以将取证子VM实现为用于取证获取和分析同时对管理程序110或根VM分区130有极小的影响的专用VM。

在一个实现中,取证子VM分区180可以是在特权方面不特殊的额外的子VM分区。或者,取证子VM分区180可以被实现为特权的VM分区,其性质类似于取证根VM分区160。通常而言,取证子VM分区180将是能够使用管理程序支持的分区间通信机制和特征的启发的VM。

取证子VM分区180可以包括用于与管理程序110进行通信的HCIF 181。HCIF 181可以调用超调用API 111以将超调用从取证子VM分区180发送至管理程序110。HCIF 181可以由诸如Microsoft管理程序接口库(WinHV)之类的包装器库来实现。HCIF 181在取证子VM分区180内运行,并提供用于使用标准调用惯例来调用超调用API 111和调用管理程序110的包装器接口或调用惯例(例如,高级C风格调用惯例)。HCIF 181可以在内核模式中运行。

取证子VM分区180可以包括VMBus 182以用于在取证子VM分区180与包括根VM分区130和子VM分区140的管理程序托管的虚拟化环境120的其他管理程序感知的分区之间的分区间通信。VMBus 182可以在内核模式中运行。取证子VM分区180可以实现和运行管理程序感知的客户操作系统,例如Server操作系统或其他合适的管理程序感知客户操作系统。

取证子VM分区180可以实现允许经由VMBus 182和超调用API 111直接地访问托管的VM的VM。取证子VM分区180能够发送和接收通过管理程序110路由至目的地分区的消息和/或事件。取证子VM可以访问WMI、窗口API、网络、磁盘等。

取证子VM分区180可以包括可由取证工具185调用的取证服务API 183。在一个实现中,取证子VM分区180运行取证工具185。例如,调查者可以登记(sign up)取证子VM分区180并且安装取证工具185。在其他实现中,取证工具185可以在取证子VM分区180外部。取证工具185可以是由经由取证服务API 183从正在运行的托管的VM收集数据的应用和/或自动化脚本(例如,PowerShell脚本)来实现的。

根VM分区130是高特权的。在一个实现中,可以将对根VM分区130中的取证交换机138的访问限于取证子VM分区180中的取证工具185。可以通过根VM分区130来路由对诸如来自取证子VM分区180的超调用(例如WinHv调用)和/或VMBus调用之类的取证数据的请求。然而,在一些实现中,可以将取证交换机138暴露给管理程序托管的虚拟化环境120外部的取证工具(例如,取证工具170)。

取证工具185可以使用WMI、另一个API、和/或其他调用惯例来调用取证服务API 183。在各种实现中,取证工具185可以对常用的和/或期望的接口进行调用,而不需要重写接口或调用机制。取证服务API 183可以接收来自取证工具185的针对文件系统访问、存储器访问、磁盘访问、网络访问、和/或PowerShell远程访问的系统调用,并且可以将这样的调用转换成由分区间通信所支持的消息和/机制。当利用取证工具185进行请求以从一个或多个目标主机获取或暴露数据时,取证子VM分区180需要消耗。可以将取证数据以取证工具185能够消耗的格式来返回。

取证服务API 183可以被暴露给取证工具185,并且可以包括用于使用各种分区间通信机制从正在运行的管理程序托管的VM请求、接收、和/或暴露取证数据的功能。例如,取证服务API 183可以包括用于经由VMBus 182从正在运行的启发的VM请求、接收、和/或暴露取证数据的功能。可以经由VMBus 182、142将调用从取证子VM分区180路由至目标的启发的VM。可以通过VMBus 182从VM接收和/或暴露取证数据。

可以经由VMBus 182将取证服务API 183暴露给正在运行的启发的VM(例如,子VM分区140)。在一些实现中,启发的VM可以响应于请求、消息、和/或事件而调用取证服务API183以供应取证数据。

取证服务API 183可以包括用于使用VSC和/或集成服务从正在运行的启发的VM(例如,子VM分区140)请求、接收、和/或暴露取证数据的功能。启发的分区经由集成服务的安装来提供I/O和管理程序感知内核,其可以包括利用VMBus的一个或多个VSC。由此,取证服务API 183可以使用VSC和/或集成服务从启发的VM请求、接收、和/或暴露取证数据。取证服务API 183可以通过使用WMI调用与正在运行的VM进行通信来请求、接收、和/或暴露取证数据。

取证服务API 183可以包括用于使用经由HCIF 181至管理程序110的超调用从正在运行的VM请求、接收、和/或暴露取证数据的功能。可以对管理程序110进行调用,并且可从管理程序110接收针对正在运行的VM的取证数据。取证服务API 183可以包括使用通过管理程序110而路由的消息和/或事件从正在运行的VM请求、接收、和/或暴露取证数据的功能。

取证子VM分区180可以实现具有WMI功能和用于采用诸如网络、磁盘等之类的API的能力的虚拟机。取证工具185可以利用网络、磁盘、或其他API并且接入它们来进行其工作。暴露了取证根VM分区180中的VMBus 182,以使得可以使用VMBbus 182和/或WMI来进行调用以对目标进行取证调查。

如图所示,取证交换机138是在根VM分区130内实现的。取证交换机138可以对于取证子VM分区180是可访问的,并且能够访问在子VM分区140、150中运行的VM。取证工具185或其他服务可以与取证交换机138接合,并请求从VM获取和返回某些类型的取证伪迹以供存储或分析。取证交换机138可以是促进对不支持VMBus功能的非启发的子分区的访问的鲁棒的实现。

可以将取证交换机138作为根VM分区130中的不同的结构或库而内置在根VM分区130中。将取证交换机138暴露给取证服务API 183。取证交换机138可以经由代理、API、或取证工具185可以使用的另一种机制(磁盘、网络机制等)而将机制暴露给取证子VM分区180。取证服务API 183可以与取证交换机138接合。例如,取证交换机138可以将调用从取证服务API 183路由至目标VM,并且将取证数据提供回取证子VM分区180以供分析。

在各种实现中,可以将取证交换机或接口动态地添加至每个子VM/分区,以允许出于取证获取和分析的目的而访问子VM的必要的系统、存储器、网络、和磁盘资源。该机制支持管理程序“热插拔”能力。

如图所示,子VM分区140、150分别配备有取证接口148、158。取证交换机138被加载并且包括直接地映射至正在运行的VM的获取目标。经由取证服务API 183,获取目标对调查者是可用的。取证工具185可以经由取证服务183和取证接口148、158而将主机定为目标并获取取证数据。可以经由取证接口148、158而将调用响应返回至取证交换机138。取证交换机138可从主机/VM接收请求、收集取证数据,并且将取证数据发送回取证工具185。

在管理程序等级,取证交换机138可以是取证工具185的仲裁器。对取证交换机138的调用可以由VMBus调用、WMI调用、超调用(例如WinHv调用)、消息、事件、集成服务调用、虚拟化客户/供应商等来进行。WMI可以与取证工具185一起使用作为另一通信接口。超调用和VMBus可以用于VM通信。另外,消息、调用、事件、VSP/IS、VSC/IS、WIN API等可以用于分区间通信。可以将取证数据暴露为网络访问或API调用。

在一些实现中,取证交换机138可以结合VMBus 182来工作。例如,可以通过VMBus182、132进行从一个或多个VM请求取证数据的调用。对正在子VM分区140中运行的启发的VM的调用可以由取证交换机138通过VMBus 132、142而路由至取证接口148。来自正在子VM分区中运行的启发的VM的取证数据可以从取证接口148通过VMBus 142、132而路由至取证交换机138,并且可以从取证交换机138通过VMBus 132、182而路由至取证服务API 183。

在一些实现中,可以以不同的方式进行和接收调用和响应。可以使用一种机制来对请求取证数据进行调用,并且可以经由另一种机制来接收取证数据。可以通过一个接口来发送调用,并通过另一个接口来收集取证数据。可以将调用接口暴露为一种类型的接口(例如,网络接口),而将接收接口暴露为另一种类型的接口(例如,网络附接存储接口、PowerShell远程接口等)。在一些情况下,正在子VM分区148中运行的启发的VM可以从取证交换机138接收调用,并且通过经由VMBus 142、182公开和/或提供取证数据或者是通过管理程序110使用超调用(例如,消息、事件等)而不通过取证交换机138将取证数据路由回去来进行响应。

取证工具185或调查者可以登录或者被引导至取证子VM分区180,并且可以被呈现有可以由取证工具180调用的取证服务API 183。在管理程序等级对来自取证工具185的调用进行仲裁。取证数据是从目标主机获取的并被呈现回取证子VM分区180。

取证服务API 183可以包括用于允许取证工具185将一个或多个正在运行的托管的VM定为目标,并且选择各种类型的取证数据以用于获取和/或分析的功能。信息存在于目标主机上,并且取证调查者进行请求以收集和/或暴露取证数据。取证数据可以存在于或者被实例化在磁盘、注册表、存储器和/或其他数据结构中。如上所述,可由取证工具185请求和/或分析的取证伪迹的非限制性示例包括:主机/VM文件系统伪迹、主机/VM网络伪迹、主机/VM存储器伪迹、和主机/VM事件日志伪迹。

管理程序托管的取证分析和伪迹获取

提供了针对管理程序托管的取证分析的各种实现。一个实现提供专用取证根VM分区160。另一个实现提供管理程序托管的取证交换机138,其允许根VM和/或管理程序出于以从单个主机/VM到数千个主机/VM的可扩展的方式获取和分析主机伪迹的目的来访问子分区。应当理解的是,结合一个实现所描述的特定的特征、结构、或特性可以结合其他实现来实现。

基于管理程序的取证伪迹获取和分析可以利用和/或扩展当前管理程序架构的能力并且利用可用于管理程序与VM/子分区之间的通信的方法和API。例如,VMBus和其他技术允许与正在运行的VM主机接合,并且在主机运行时获取主机上的数据或分析主机上的数据。可以针对特定的特性的存在而对数千个主机进行检查。可以对所观察到的特性进行频率分析。这些机制可用于针对VM/分区或VM/分区的群体而进行各种主机和网络取证获取和分析活动。

事件响应者和安全分析师需要能够接入的可扩展的获取和分析解决方案,并且在管理程序等级从虚拟机获取主机/VM信息和伪迹,以允许更大规模的获取和分析,同时减轻复杂的恶意软件反取证和隐藏战术。

取证根VM分区160和/或取证交换机138可以用于在管理程序等级执行数据获取和取证分析,并且可以避免在每个主机上安装代理或加载工具的需要。取证交换机138具有向VM动态添加取证能力的优点,并且可以支持非启发的子VM分区。

可以将针对VM的取证分析作为服务来提供。在管理程序等级运行的服务可以与数百个正在运行的主机通信以获取取证数据。从规模分析的角度来说,可以针对可疑的网络链接而对数百个VM进行调查。可以对数百个VM进行调用以请求其网络连接列表。可跨主机来执行网络连接的频率分析以识别异常的连接。同样,可以对注册表内容进行调用并且可以对文件执行频率聚类分析以识别用于调查的候选者。

云服务提供商可利用该功能进行大规模的取证,这可以加速其安全事件调查。额外地,这些功能还能够提供将取证即服务(FaaS)作为选项向用户供应的能力。可以将取证数据的获取和分析作为云服务的一部分来供应。云服务提供商可提供取证服务作为分别的服务或附加组件。

可以将取证服务作为特征来供应以允许客户对云中的其托管的任何VM进行取证获取和分析。云计算环境提供商可以供应取证即服务,以使得客户可以在其自己的VM上进行其自己的取证分析。云服务提供商可以通过构建租户/客户自助服务接口来供应可扩展的取证获取和分析即服务。例如,集中式管理程序支持的取证交换机可以是对客户访问许可的。可替代地或额外地,可以将仅针对特定的客户的VM的自定义的取证交换机提供至FaaS客户。

示例性过程

参考图3,继续对前述附图进行参考,计算机实现的方法300被示出为根据所描述主题的方面的示例性过程的实施例。在各种实施例中,计算机实现的方法300或其部分可以由一个或多个计算设备、计算机系统、计算机可执行指令、软件、硬件、固件、或其组合来执行。例如,计算机实现的方法300可以由实现虚拟化框架100的计算机系统来执行。

在310处,计算机系统可以实现包括根分区和一个或多个子虚拟机分区的管理程序托管的虚拟化环境。例如,管理程序托管的虚拟化环境120可以被实现,并且包括根VM分区130和子VM分区140、150。

在320处,计算机系统可提供包括取证服务应用程序接口的取证分区。作为示例,取证根VM分区160可以被提供,并且包括取证服务API 163。作为另一个示例,取证子VM分区180可以被提供,并且包括取证服务API 183。

在330处,计算机系统可以在根VM分区中实现取证交换机。例如,取证交换机138可以被实现在根VM分区130中。取证交换机138可以将取证服务API 183互连至子VM分区140、150。启发的子VM分区140可以包括连接至取证交换机138的取证接口148。非启发的子VM分区150可以包括连接至取证交换机138的取证接口158。取证接口可以动态地添加至子虚拟机分区并连接至取证交换机138。

在340处,计算机系统可以将取证服务应用程序接口暴露给取证工具。作为示例,可以将取证服务API 163暴露给取证工具170。作为另一个示例,可以将取证服务API 183暴露给取证工具185。可以将取证服务API 163和/或取证服务API 183作为云取证服务的一部分来暴露。

在350处,计算机系统可以接收针对取证数据的请求。例如,取证服务API 163和/或取证服务API 183可以接收针对取证数据的请求。可从取证工具170或取证工具185接收针对取证数据的请求。针对取证数据的请求可以以在子VM分区中运行的一个或多个虚拟机为目标。

在360处,计算机系统可以经由分区间通信机制将针对取证数据的请求传送至目标虚拟机。作为示例,可通过由取证分区和正在运行目标虚拟机的特定的子虚拟机分区所实现的分区间总线(例如,VMBus)来传送针对取证数据的请求。作为另一个示例,可以使用由取证分区所实现的并且被配置为调用管理程序110的超调用API 111的超调用接口(例如,HCIF)、经由管理程序110将针对取证数据的请求传送至目标虚拟机。作为进一步的示例,可以通过由根VM分区130实现并且互连取证服务API 183与正在运行目标虚拟机的特定的子虚拟机分区的取证交换机138来传送针对取证数据的请求。

在370处,计算机系统可从一个或多个目标虚拟机获取取证数据。取证数据可以包括以下中的一个或多个:文件系统伪迹、网络伪迹、存储器伪迹、和事件日志伪迹。可以经由管理程序托管的虚拟化环境120所支持的一个或多个分区间通信机制来接收和/或暴露取证数据。

在380处,计算机系统可以输出所获取的取证数据。所获取的取证数据可以作为一个或多个交互式用户界面、网络文档和/或网络页面、作为可查看的电子文档、和/或作为打印的文档而被输出或呈现。当以交互式格式被提供时,输出可以包括用于导航至与不同的托管的虚拟机和针对每个托管的虚拟机的不同的取证伪迹相对应的部分的功能。输出可以包括或链接至与托管的虚拟机或取证伪迹有关的取证分析信息。可以将所获取的取证数据呈现在用户界面中,所述用户界面提供用于基于单个标准或标准的组合来对取证数据进行搜索、过滤、和/或排序的功能。

示例性操作环境

所描述的主题的各方面可以针对和/或由各种操作环境、计算机网络、平台、框架、计算机架构、和/或计算设备来实现。所描述的主题的方面可以由能够由一个或多个计算设备、计算机系统、和/或处理器执行的计算机可执行指令来实现。

在其最基本的配置中,计算设备和/或计算机系统可以包括至少一个处理单元(例如,单处理器单元、多处理器单元、单核单元、和/或多核单元)和存储器。根据计算机系统或计算设备的确切的配置和类型,由计算设备和/或计算机系统所实现的存储器可以是易失性的(例如,随机存取存储器(RAM))、非易失性的(例如,只读存储器(ROM)、闪速存储器等)、或其组合。

计算设备和/或计算机系统可以具有额外的特征和/或功能。例如,计算设备和/或计算机系统可以包括诸如额外的存储(例如,可移动的和/或不可移动的)之类的硬件,其包括但不限于:固态、磁性、光盘、或磁带。

计算设备和/或计算机系统通常可以包括或可访问多种计算机可读介质。例如,计算机可读介质可以实施用于由计算设备和/或计算机系统执行的计算机可执行指令。计算机可读介质可以是可以由计算设备和/或计算机系统访问的任何可用的介质,并且包括易失性和非易失性介质,以及可移动和不可移动介质。如本文中所使用的,术语“计算机可读介质”包括计算机可读存储介质和通信介质。

如在本文所使用的术语“计算机可读存储介质”包括用于存储诸如计算机可执行指令、数据结构、程序模块、或其他数据之类的信息的易失性和非易失性、可移动和不可移动的介质。计算机可读存储介质的示例包括但不限于:存储器存储,例如RAM、ROM、电可擦除程序只读存储器(EEPROM)、半导体存储器、动态存储器(例如,动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)等)、集成电路、固态驱动器、闪速存储器(例如,基于NAN的闪速存储器)、存储器芯片、记忆棒、拇指驱动器等;光学存储介质,例如蓝光盘、数字视频盘(DVD)、压缩盘(CD)、CD-ROM、盒式光盘等;磁存储介质,包括硬盘驱动器、软盘、软性盘、盒式磁带、磁带等;以及其他类型的计算机可读存储设备。可以理解的是,各种类型的计算机可读存储介质(例如,存储器和额外的硬件存储器)可以是计算设备和/或计算机系统的一部分。如在本文中所使用的,术语“计算机可读存储媒体”和“计算机可读存储介质”不意味着并且明确地排除了传播信号、经调制的数据信号、载波、或任何其他类型的瞬时性计算机可读介质。

通信介质通常实施计算机可执行指令、数据结构、程序模块或经调制的数据信号(例如,载波或其他传输机制)中的其他数据,并且包括任何信息传递介质。术语“经调制的数据信号”意指以将信息编码到信号中的方式来设置或改变其特性中的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、射频、红外、和其他无线介质之类的无线介质。

在各种实施例中,所描述的主题的方面可以由存储在一个或多个计算机可读介质上的计算机可执行指令来实现。可以使用任何各种类型的合适的编程和/或标记语言来实现计算机可执行指令,所述编程和/或标记语言例如:可扩展应用标记语言(XAML)、XML、XBLHTML、XHTML、XSLT、XMLHttpRequestObject、CSS、文档对象模型(DOM)、JavaScript、JavaScript对象符号(JSON)、Jscript、ECMAScript、Ajax、SilverlightTM、Visual(VB)、VBScript、PHP、ASP、Python、C、Objective-C、C++、C#/.net、和/或其他。

计算设备和/或计算机系统可以包括各种输入设备、输出设备、通信接口、和/或其他类型的设备。示例性输入设备包括但不限于:用户接口、键盘/小键盘、触摸屏、触摸板、笔、鼠标、轨迹球、遥控器、游戏控制器、相机、条形码读取器、麦克风或其他语音输入设备、视频输入设备、激光测距仪、运动感测设备、手势检测设备和/或其他类型的输入机制和/或设备。计算设备可以提供自然用户界面(NUI),其使得用户能够以“自然”的方式与计算设备进行交互,而不受诸如鼠标、键盘、遥控器等之类的输入设备所施加的人为约束。NUI技术的示例包括但不限于:语音和/或话音识别、触摸和/或触摸笔识别、使用加速度计、陀螺仪和/或、深度相机(例如,立体或飞行时间相机系统、红外相机系统、RGB相机系统、和/或其组合)对在屏幕上和临近屏幕的运动和/或手势识别、头部和眼部追踪、视线追踪、面部识别、3D显示、沉浸式增强现实和虚拟现实系统、使用电场感测电极(EEG及相关方法)来感测脑活动的技术、意图和/或目标理解、以及机器智能。

计算设备可以被配置为以根据实现的各种方式来接收和响应输入。可以以各种形式来呈现响应,所述形式包括例如:呈现用户界面,输出诸如图像、视频、多媒体对象、文档、和/或其他类型的对象之类的对象;输出文本响应;提供与响应性内容相关联的链接;输出计算机生成的语音响应或其他音频;或者响应的其他类型的视觉和/或音频呈现。示例性输出设备包括但不限于:显示器、投影仪、扬声器、打印机、和/或其他类型的输出机制和/或设备。

计算设备和/或计算机系统可以包括允许在其他计算设备和/或计算机系统之间进行通信的一个或多个通信接口。可以在各种计算设备和/或计算机系统之间的网络通信的上下文中使用通信接口。通信接口可以允许计算设备和/或计算机系统与其他设备、其他计算机系统、网络服务(例如,附属的网络服务、第三方网络服务、远程网络服务等)、网络服务应用、和/或信息源(例如,附属的信息源、第三方信息源、远程信息源等)进行通信。由此,可以在访问各种类型的资源、从各种类型的资源中获得数据、和/或与各种类型的资源协作的上下文中使用通信接口。

还可以在通过网络或网络的组合分配计算机可执行指令的上下文中使用通信接口。例如,可以利用远程计算机和存储设备来组合或分配计算机可执行指令。本地或终端计算机可以访问远程计算机或远程存储设备,并且下载计算机程序或计算机程序的一个或多个部分以供执行。还可以理解的是,可以通过在本地终端处执行一些指令以及在远程计算机处执行一些指令来分配计算机可执行指令的执行。

计算设备可由移动计算设备来实现,所述移动计算设备例如移动电话(例如,蜂窝电话、智能电话,例如电话、Apple iPhone、电话、实现AndroidTM操作系统的电话、实现操作系统的电话、或者实现移动操作系统的其他类型的电话)、平板计算机(例如,设备、AppleiPadTM,Samsung>Pro、或其他类型的平板设备)、膝上型计算机、笔记本计算机、上网本计算机、个人数字助理(PDA)、便携式媒体播放机、手持式游戏控制台、可穿戴计算设备(例如,智能手表、头戴式设备,包括诸如GlassTM之类的智能眼镜、可穿戴监视器等)、个人导航设备、车辆计算机(例如,车载导航系统)、相机、或其他类型的移动设备。

计算设备可以由固定的计算设备来实现,所述固定的计算设备例如:台式计算机、个人计算机、服务器计算机、娱乐系统设备、媒体播放机、媒体系统或控制台、视频游戏系统或控制台、多用途系统或控制台(例如,组合的多媒体和视频游戏系统或控制台,例如系统或控制台、系统或控制台、系统或控制台、或其他类型的多用途游戏系统或控制台)、机顶盒、家电(例如,电视、冰箱、烹饪家电等)、或其他类型的固定的计算设备。

计算设备还可以由其他类型的基于处理器的计算设备来实现,所述其他类型的基于处理器的计算设备包括:数字信号处理器、现场可编程门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SoC)、复杂可编程逻辑器件(CPLD)等。

计算设备可以包括和/或运行例如由计算设备的软件、固件、硬件、逻辑、和/或电路所实现的一个或多个计算机程序。计算机程序可以以各种方式被分配和/或安装在计算设备上。例如,计算机程序可以由原始设备制造商(OEM)预先安装在计算设备上、作为另一个计算机程序的安装的一部分而安装在计算设备上、从应用商店下载并安装在计算设备上、由系统管理员使用企业网络管理工具分配和/或安装、以及以根据实现的各种其他方式分配和/或安装。

由计算设备所实现的计算机程序可以包括一个或多个操作系统。示例性操作系统包括但不限于:操作系统(例如:操作系统)、操作系统(例如,Chrome OSTM操作系统或AndroidTM操作系统)、Apple操作系统(例如,Mac或Apple>TM操作系统)、开源操作系统、或者适用于在移动的、固定的、和/或基于处理器的计算设备上运行的任何其他操作系统。

由计算设备所实现的计算机程序可以包括一个或多个客户端应用。示例性客户端应用包括但不限于:网络浏览应用、通信应用(例如,电话应用、电子邮件应用、文本消息传送应用、即时消息传送应用、网络会议应用等)、媒体应用(例如,视频应用、电影服务应用、电视服务应用、音乐服务应用、电子书应用、照片应用等)、日历应用、文件共享应用、个人助理或其他类型的会话性应用、游戏应用、图形应用、购物应用、支付应用、社交媒体应用、社交网络应用、新闻应用、运动应用、天气应用、地图应用、导航应用、旅行应用、餐馆应用、娱乐应用、保健应用、生活方式应用、参考应用、财务应用、商业应用、教育应用、生产力应用(例如,文字处理应用、电子表格应用、幻灯片放映演示应用、笔记记录应用等)、安全应用、工具应用、实用应用、和/或任何其他类型的应用、应用程序、和/或适合于在移动的、固定的、和/或基于处理器的计算设备上运行的应用。

由计算设备所实现的计算机程序可以包括一个或多个服务器应用。示例性服务器应用包括但不限于:与上述各种类型的示例性客户端应用中的任意一个客户端应用相关联的一个或多个服务器托管的、基于云的、和/或在线应用;上述各种类型的示例性客户端应用中的任意一个客户端应用的一个或多个服务器托管的、基于云的、和/或在线的版本;被配置为提供网络服务、网站、网页、网络内容等的一个或多个应用;被配置为提供和/或访问信息源、数据存储、数据库、仓库等的一个或多个应用;和/或适合于在服务器计算机上运行的其他类型的应用、应用程序、和/或app。

计算机系统可以由诸如服务器计算机之类的计算设备来实现,或者由被配置为实现其中一个或多个适当地配置的计算设备执行一个或多个处理步骤的服务的多个计算设备来实现。计算机系统可以被实现为分布式计算系统,其中组件位于通过网络(例如,有线的和/或无线的)和/或其他形式的直接和/或间接连接而连接至彼此的不同的计算设备上。计算机系统还可以经由其中服务通过共享的数据中心来传递的基于云的架构(例如,公共、私有、或其组合)实现。例如,计算机系统可由提供共享的计算和存储资源的数据中心并且托管具有用于结合提供基于云的服务来执行不同的任务的各种角色的虚拟机的物理服务器来实现。示例性虚拟机角色可以包括但不限于:网络服务器、前端服务器、应用服务器、数据库服务器(例如,SQL服务器)、域控制器、域名服务器、目录服务器、和/或其他合适的机器角色。可以将计算机系统的一些组件设置在云内,而将其他组件设置在云外。

图4示出了作为实现所描述主题的方面的示例性操作环境的实施例的操作环境400。应当理解的是,在各种实施例中,操作环境400可以由客户端-服务器模型和/或架构以及由其他操作环境模型和/或架构来实现。

操作环境400包括可以实现所描述主题的方面的计算设备410。计算设备410包括处理器411和存储器412。计算设备410还包括额外的硬件存储413。应当理解的是,计算机可读存储介质包括存储器412和硬件存储413。

计算设备410包括输入设备414和输出设备415。输入设备414可以包括上述示例性输入设备中的一个或多个输入设备和/或其他类型的输入机制和/或设备。输出设备415可以包括上述示例性输出设备中的一个或多个输出设备和/或其他类型的输出机制和/或设备。

计算设备410包含允许计算设备410与其他计算设备和/或计算机系统进行通信的一个或多个通信接口416。通信接口416也可以在分配计算机可执行指令的上下文中使用。

计算设备410可以包括和/或运行例如由计算设备410的软件、固件、硬件、逻辑、和/或电路所实现的一个或多个计算机程序417。计算机程序417可以包括例如由上述的一个或多个示例性操作系统和/或适合于在计算设备410上运行的其他类型的操作系统所实现的操作系统418。计算机程序417可以包括例如由上述一个或多个示例性应用和/或适用于在计算设备410上运行的其他类型的应用所实现的一个或多个应用419。

计算机程序417可以经由一个或多个合适的接口(例如,API或其他数据连接)而被配置为与一个或多个资源进行通信和/或协作。资源的示例包括计算设备410的本地计算资源和/或远程计算资源,所述远程计算资源例如服务器托管的资源、基于云的资源、在线资源、远程数据存储、远程数据库、远程仓库、网络服务、网站、网页、网络内容、和/或其他类型的远程资源。

计算机程序417可以实现存储在诸如存储器412或硬件存储413之类的计算机可读存储介质中的计算机可执行指令。由计算机程序417所实现的计算机可执行指令可以被配置为结合操作系统418和应用419中的一个或多个进行工作、对操作系统418和应用419中的一个或多个进行支持和/或增强。由计算机程序417所实现的计算机可执行指令还可以被配置为提供一个或多个分别的和/或独立的服务。

计算设备410和/或计算机程序417可以实现和/或执行所描述的主题的各个方面。如图所示,计算设备410和/或计算机程序417可以包括虚拟化代码420。在各种实施例中,虚拟化代码420可以包括存储在计算机可读存储介质上并且被配置为实现所描述的主题的一个或多个方面的计算机可执行指令。作为示例而非限制,虚拟化代码420可以实现虚拟化框架100的一个或多个方面,和/或执行计算机实现的方法300的一个或多个方面。

操作环境400包括可以实现所描述的主题的方面的计算机系统430。计算机系统430可由诸如一个或多个服务器计算机之类的一个或多个计算设备来实现。计算机系统430包括处理器431和存储器432。计算机系统430还包括额外的硬件存储433。应当理解的是,计算机可读存储介质包括存储器432和硬件存储433。

计算机系统430包括输入设备434和输出设备435。输入设备434可以包括上述示例性输入设备中的一个或多个输入设备和/或其他类型的输入机制和/或设备。输出设备435可以包括上述示例性输出设备中的一个或多个输出设备和/或其他类型的输出机制和/或设备。

计算机系统430包含允许计算机系统430与各种计算设备(例如,计算设备410)和/或其他计算机系统进行通信的一个或多个通信接口436。通信接口436还可以在分配计算机可执行指令的上下文中使用。

计算机系统430可以包括和/或运行例如由计算机系统430的软件、固件、硬件、逻辑、和/或电路来实现的一个或多个计算机程序437。计算机程序437可以包括例如由上述的一个或多个示例性操作系统和/或适用于在计算机系统430上运行的其他类型的操作系统所实现的操作系统438。计算机程序437可以包括例如由上述一个或多个示例性应用和/或适用于在计算机系统430上运行的其他类型的应用所实现的一个或多个应用439。

计算机程序437可以经由一个或多个合适的接口(例如,API或其他数据连接)而被配置为与一个或多个资源进行通信和/或协作。资源的示例包括计算机系统430的本地计算资源和/或远程计算资源,例如服务器托管的资源、基于云的资源、在线资源、远程数据存储、远程数据库、远程仓库、网络服务、网站、网页、网络内容、和/或其他类型的远程资源。

计算机程序437可以实现存储在诸如存储器432或硬件存储433之类的计算机可读存储介质中的计算机可执行指令。由计算机程序437实现的计算机可执行指令可以被配置为结合操作系统438和应用439中的一个或多个进行工作、对操作系统438和应用439中的一个或多个进行支持和/或增强。由计算机程序437所实现的计算机可执行指令还可以被配置为提供一个或多个分别的和/或独立的服务。

计算机系统430和/或计算机程序437可以实现和/或执行所描述的主题的各个方面。如图所示,计算机系统430和/或计算机程序437可以包括虚拟化代码440。在各种实施例中,虚拟化代码440可以包括存储在计算机可读存储介质上并且被配置为实现所描述的主题的一个或多个方面的计算机可执行指令。作为示例而非限制,虚拟化代码440可以实现虚拟化框架100的一个或多个方面,和/或执行计算机实现的方法300的一个或多个方面。作为进一步的示例而非限制,计算机系统430可以是支持和实现虚拟化框架100的硬件层中的服务器计算机。

计算设备410和计算机系统430可以通过网络450进行通信,网络450可以由适用于在计算设备410与计算机系统430之间提供通信的任何类型的网络或网络的组合来实现。网络450可以包括例如但不限于:诸如因特网之类的WAN、LAN、电话网络、专用网络、公共网络、分组网络、电路交换网络、有线网络、和/或无线网络。计算设备410和计算机系统430可以通过使用各种通信协议和/或数据类型的网络450来进行通信。在通过网络450进行通信的上下文中,可以采用计算设备410的一个或多个通信接口416以及计算机系统430的一个或多个通信接口436。

计算设备410和/或计算机系统430可以通过网络450与存储系统460进行通信。可替代地或额外地,存储系统460可以与计算设备410和/或计算机系统430集成在一起。存储系统460可以代表根据所描述的主题的各种类型的存储。存储系统460可以使用数据库存储、云存储、表存储、块存储、文件存储、队列存储、和/或其他合适的类型的存储机制等来提供针对关系(例如,SQL)和/或非关系(例如,NO-SQL)数据的任何合适的类型的数据存储。存储系统460可以由诸如数据中心中的计算机聚类之类的一个或多个计算设备来实现、由虚拟机来实现,和/或作为基于云的存储服务来提供。

所支持的方面

在上文中结合附图提供的详细描述明确地描述和支持根据所描述的主题各个方面。作为说明而非限制,所支持的方面包括被配置为从正在运行的虚拟机获取取证数据的计算机系统,所述计算机系统包括:被配置为执行计算机可执行指令的处理器;以及存储计算机可执行指令的存储器,其被配置为:运行托管虚拟化环境的管理程序,所述虚拟化环境包括根虚拟机分区和一个或多个子虚拟机分区;提供包括取证服务应用程序接口的取证分区,所述取证服务应用程序接口被配置为将一个或多个虚拟机定为目标,并且经由由所述管理程序托管的所述虚拟化环境所支持的一个或多个分区间通信机制而从在特定的子虚拟机分区中运行的目标虚拟机获取取证数据;以及将所述取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。

所支持的方面包括前述计算机系统,其中,所述取证分区被实现为比所述一个或多个子虚拟机分区中的每个子虚拟机分区更具特权的额外的根分区,或者其中,所述取证分区被实现为额外的子虚拟机分区。

所支持的方面包括前述计算机系统中的任何一种计算机系统,其中,所述一个或多个分区间通信机制包括由所述取证分区和所述特定的子虚拟机分区所实现的分区间总线。

所支持的方面包括前述计算机系统中的任何一种计算机系统,其中,所述一个或多个分区间通信机制包括由所述取证分区实现并且被配置为调用所述管理程序的超调用应用程序接口的超调用接口。

所支持的方面包括前述计算机系统中的任何一种计算机系统,其中,所述一个或多个分区间通信机制包括由所述根虚拟机分区实现并且将所述取证服务应用程序接口与所述特定的子虚拟机分区互连的取证交换机。

所支持的方面包括前述计算机系统中的任何一种计算机系统,其中,所述存储器还存储计算机可执行指令,所述计算机可执行指令被配置为:动态地将取证接口添加至子虚拟机分区;并且将所述取证交换机连接至所述取证接口。

所支持的方面包括前述计算机系统中的任何一种计算机系统,其中,所述取证服务应用程序接口被配置为将来自所述取证工具的调用转换成由所述一个或多个分区间通信机制所支持的调用。

所支持的方面包括前述计算机系统中的任何一种计算机系统,其中,所述取证数据包括以下中的一个或多个:文件系统伪迹、网络伪迹、存储器伪迹、和事件日志伪迹。

所支持的方面包括装置、计算机可读存储介质、计算机实现的方法、和/或用于实现前述计算机系统或其部分中的任一个的单元。

所支持的方面包括由计算机系统执行以从正在运行的虚拟机获取取证数据的计算机实现的方法,所述计算机实现的方法包括:实现包括根虚拟机分区和一个或多个子虚拟机分区的管理程序托管的虚拟化环境;提供包括取证服务应用程序接口的取证分区,所述取证服务应用程序接口被配置为将一个或多个虚拟机定为目标,并且经由由所述管理程序托管的所述虚拟化环境所支持的一个或多个分区间通信机制而从在特定的子虚拟机分区中运行的目标虚拟机获取取证数据;以及将所述取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。

所支持的方面包括前述计算机实现的方法,其中,所述取证分区被实现比所述一个或多个子虚拟机分区中的每个子虚拟机分区更具特权的额外的根分区,或者其中,所述取证分区被实现为额外的子虚拟机分区。

所支持的方面包括前述计算机实现的方法中的任何一种计算机实现的方法,还包括:通过由所述取证分区和所述特定的子虚拟机分区实现的分区间总线而在所述取证服务应用和所述目标虚拟机之间传送针对取证数据的请求。

所支持的方面包括前述计算机实现的方法中的任何一种计算机实现的方法,还包括:使用超调用接口在所述取证服务应用和所述目标虚拟机之间传送针对取证数据的请求,所述超调用接口是由所述取证分区实现的,并且被配置为调用所述管理程序的超调用应用程序接口。

所支持的方面包括前述计算机实现的方法中的任何一种计算机实现的方法,还包括:通过取证交换机在所述取证服务应用和所述目标虚拟机之间传送针对取证数据的请求,所述取证交换机是由根虚拟机分区实现的,并且所述取证交换机将所述取证服务应用程序接口与所述特定的子虚拟机分区互连。

支持的方面包括任何前述计算机实现的方法,还包括:动态地将取证接口添加至子虚拟机分区;以及将所述取证交换机连接至所述取证接口。

支持的方面包括任何前述计算机实现的方法,其中,所述取证数据包括以下中的一个或多个:文件系统伪迹、网络伪迹、存储器伪迹、和事件日志伪迹。

所支持的方面包括系统、装置、计算机可读存储介质、和/或用于实现前述计算机系统或其部分中的任一个的单元。

所支持的方面包括存储计算机可执行指令的计算机可读存储介质,当由所述计算机系统执行时,所述计算机可执行指令使得所述计算机系统实现:包括根虚拟机分区和一个或多个子虚拟机分区的管理程序托管的虚拟化环境;以及包括取证服务应用程序接口的取证分区,所述取证服务应用程序接口被配置为将一个或多个虚拟机定为目标,并且经由由管理程序托管的虚拟化环境所支持的一个或多个分区间通信机制而从在特定的子虚拟机分区中运行的目标虚拟机获取取证数据,其中,将所述取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。

所支持的方面包括前述计算机可读存储介质,其中,所述一个或多个分区间通信机制包括以下中的至少一个:由所述取证分区和所述特定的子虚拟机分区所实现的分区间总线,以及由所述取证分区实现并且被配置为调用所述管理程序的超调用应用程序接口的超调用接口。

所支持的方面包括前述计算机可读存储介质中的任何一个计算机可读存储介质,其还存储计算机可执行指令,当由所述计算机系统执行时,所述计算机可执行指令使得所述计算机系统实现:在所述根虚拟机分区内的取证交换机,其中,所述取证交换机将所述取证服务应用程序接口与所述特定的子虚拟机分区互连。

所支持的方面包括装置、系统、计算机实现的方法、和/或用于实现前述计算机系统或其部分中的任一个的单元。

所支持的方面可以关于功耗、存储器、处理器周期、和/或其他计算上昂贵的资源在可扩展性、改进的效率、和/或节约方面提供各种便随的和/或技术优点。

结合附图在上文中所提供的详细描述旨在作为示例的描述,而不旨在表示可以在其中构建或利用本示例的仅有的形式。

应当理解的是,在本文中所描述的配置和/或方法本质上是示例性的,并且所描述的实施例、实现、和/或示例不应被认为是限制性意义,这是因为多种变型是可能的。在本文中所描述的具体的过程或方法可以表示任何数量的处理策略中的一个或多个处理策略。由此,所示出的和/或所描述的各种操作可以以所示处和/或所描述的顺序执行、以其他顺序执行、并行地执行、或被省略。同样,可以改变上述过程的顺序。

尽管已经用特定于结构特征和/或方法动作的语言描述了所述主题,但是应当理解的是,在所附权利要求中限定的主题不一定限于在上文中所描述的具体的特征或动作。相反,在上文中所描述的具体的特征和动作是作为实现权利要求的示例形式而呈现的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号