CN106575243B - 管理程序托管的虚拟机取证 - Google Patents

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

Info

Publication number
CN106575243B
CN106575243B CN201580041265.9A CN201580041265A CN106575243B CN 106575243 B CN106575243 B CN 106575243B CN 201580041265 A CN201580041265 A CN 201580041265A CN 106575243 B CN106575243 B CN 106575243B
Authority
CN
China
Prior art keywords
forensics
partition
virtual machine
hypervisor
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580041265.9A
Other languages
English (en)
Other versions
CN106575243A (zh
Inventor
J·科克伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106575243A publication Critical patent/CN106575243A/zh
Application granted granted Critical
Publication of CN106575243B publication Critical patent/CN106575243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

管理程序托管的虚拟机取证
背景技术
随着数据中心解决方案成为传统企业中主要的基于虚拟机的事件响应者,信息技术环境以及云服务提供商环境将在进行大规模取证获取和分析时面临巨大挑战。
传统的取证工具在主机等级工作,通常在用户模式下经由用户模式技术和应用程序接口(API)而从文件***和存储器获取伪迹、或者在一些情况下从内核模式驱动程序或库(shim)获取伪迹。这些传统解决方案无法在大型数据中心环境中扩展,并且可能受到使用反取证功能和技术的更复杂的恶意软件的威胁和阻碍。
当在小型企业环境中执行安全调查和取证分析时,可以使用用于取证获取和分析的工具来逐个主机地进行分析。针对云服务的安全调查来执行取证分析可以涉及从数百个主机收集数据以供分析。在那些环境中单独地对每个主机进行取证获取或分析是不可能的。
一些传统的工具将代理加载在环境中的每个主机上,并且使用集中式控制器来访问代理以获取取证数据和伪迹。然而,将代理加载在每个主机上没有很好的扩展性。
此外,对所存储的数据的取证获取和分析不提供正在运行的虚拟机的实时存储器或当前状态。
发明内容
提供了以下的发明内容以用在以下的详细说明中进一步描述的简化的形式引入了概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用来限制所要求保护的主题的范围。
计算机***从管理程序托管(hypervisor-hosted)的虚拟化环境中的运行的虚拟机获取取证数据。计算机***将取证分区作为额外的根虚拟机分区或子虚拟机分区来提供。取证分区包括取证服务应用程序接口,其被配置为瞄准一个或多个虚拟机,并且从在特定的子虚拟机分区中运行的所瞄准的虚拟机获取取证数据。所述取证服务应用程序接口被配置为经由由管理程序托管的虚拟化环境所实现的一个或多个分区间通信机制(例如,分区间通信总线、超调用接口、或取证交换机)进行通信。可以将取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。
通过阅读以下详细描述并回顾附图,这些和其他特征和优点将是显而易见的。应当理解,前述简要说明、以下详细描述、和附图仅仅是说明性的,而不限制所要求保护的各种方面。
附图说明
图1示出了根据所描述主题的方面的示例性框架的实施例;
图2示出了根据所描述主题的方面的示例性框架的实施例;
图3示出了根据所描述主题的方面的示例性过程的实施例;
图4示出了可以实现所描述主题的方面的示例性操作环境的实施例。
具体实施方式
以下结合附图所提供的详细描述旨在作为对示例的描述,而不旨在表示可以构建或利用本示例的唯一形式。所述描述阐述了示例的功能和用于构建和操作所述示例的步骤的顺序。然而,可以由不同的示例实现相同或等同的功能和顺序。
对“一个实施例”、“一实施例”、“一示例实施例”、“一个实现”、“一实现”、“一个示例”、“一示例”等的引用指示所描述的实施例、实现、或示例可以包括特定的特征、结构、或特性,但每个实施例、实现、或示例不一定包括所述特定的特征、结构、或特性。此外,这样的短语不一定指的是相同的实施例、实现、或示例。此外,当结合实施例、实现、或示例来描述特定的特征、结构、或特性时,应当理解的是,可以结合其他实施例、实现、或示例(无论是否明确地描述)来实现这样的特征、结构、或特性。
阐述了多个具体的细节以便提供对所描述主题的一个或多个方面的彻底的理解。然而,应当理解的是,可以在没有这些具体细节的情况下实践这样的方面。尽管以框图形式示出了某些组件来描述一个或多个方面,但应当理解的是,由单个组件所执行的功能可以由多个组件来执行。类似地,单个组件可以被配置为执行被描述为由多个组件所执行的功能。
现在将参考附图更加详细地描述本主题公开的各种方面,其中,相同的附图标记通常指的是通篇中相同或对应的元件。附图和详细描述不旨在将所要求保护的主题限制为所描述的特定形式。相反,其意图是覆盖落入所要求保护的主题的精神和范围内的所有修改、等同物、和替代物。
图1示出了作为可以实现所描述的主题的方面的示例性框架的实施例的虚拟化框架100。应当理解的是,在各种实施例中,虚拟化框架100或其部分可以由各种计算设备来实现,并且可以由软件、硬件、固件、或其组合来实现。
在被配置为执行根据所描述主题的方面的各种步骤、方法、和/或功能的计算设备和/或计算机***的上下文中描述虚拟化框架100的实现。应当理解的是,计算机***可以由一个或多个计算设备来实现。还在被执行以执行根据所描述的主题的方面的步骤、方法、和/或功能的“计算机可执行指令”的上下文中描述了虚拟化框架100的实现。
概括而言,计算设备和/或计算机***可以包括一个或多个处理器和存储设备(例如,存储器和磁盘驱动器)以及各种输入设备、输出设备、通信接口、和/或其他类型的设备。计算设备和/或计算机***还可以包括硬件和软件的组合。可以理解的是,各种类型的计算机可读存储介质可以是计算设备和/或计算机***的一部分。如在本文中所使用的,术语“计算机可读存储媒体”和“计算机可读存储介质”不意味着并明确地排除传播信号、调制数据信号、载波、或任何其他类型的瞬时性计算机可读介质。在各种实现中,计算设备和/或计算机***可以包括被配置为执行计算机可执行指令的处理器以及存储被配置为执行根据所描述的主题的方面的各种步骤、方法、和/或功能的计算机可执行指令的计算机可读存储介质(例如,存储器和/或额外的硬件存储)。
可以以各种方式来实施和/或实现计算机可执行指令,例如通过计算机程序(例如,客户端程序和/或服务器程序)、软件应用(例如,客户端应用和/或服务器应用)、软件代码、应用代码、源代码、可执行文件、可执行组件、程序模块、例程、应用程序接口(API)、函数、方法、对象、属性、数据结构、数据类型等。计算机可执行指令可以存储在一个或多个计算机可读存储介质上,并且可以由一个或多个处理器、计算设备、和/或计算机***来执行根据所描述的主题的方面的特定的任务或者实现根据所描述的主题的方面的特定的数据类型。
可以由计算设备(例如,服务器计算机)和/或计算机***来实现虚拟化框架100。实现虚拟化框架100的服务器计算机可以包括支持硬件辅助虚拟化的一个或多个处理器。在一个实施例中,可以由
Figure BDA0001218982360000041
来实现虚拟化框架100,其提供服务器虚拟化、实现本机管理程序、并且可以创建虚拟机。在其他实施例中,可以由诸如VMware、Oracle VirtualBox等之类的各种合适的虚拟化产品来实现虚拟化框架100。
可以在用于在孤立的执行环境中在一个物理主机服务器计算机上同时地运行多个虚拟服务器实例的服务器虚拟化上下文中实现虚拟化框架100。每个虚拟服务器可以像其是在共享的物理主机服务器上运行的唯一的服务器一样进行操作。
可以在用于在同一物理网络上同时地运行多个虚拟网络基础设施的网络虚拟化上下文中实现虚拟化框架100。每个虚拟网络可以像其是在共享的物理网络结构上运行的唯一的网络一样进行操作。
可以在云计算环境中实现虚拟化框架100。支持x64架构并实现虚拟化框架100的服务器计算机可以托管数百个虚拟机。可以将托管数百个虚拟机的服务器计算机部署为一千个或更多个虚拟机的聚类中的一个节点。可以将实现虚拟化框架100的服务器计算机部署在由云计算数据中心所托管的聚类中,所述云计算数据中心管理服务器计算机的计算和存储资源,并且将资源供给至在云计算环境中运行的应用。
实现虚拟化框架100的服务器计算机可以包括一个或多个操作***。示例性操作***包括但不限于:
Figure BDA0001218982360000042
操作***(例如,
Figure BDA0001218982360000043
Figure BDA0001218982360000044
操作***、
Figure BDA0001218982360000045
AzureTM操作***)、
Figure BDA0001218982360000046
操作***(例如,
Figure BDA0001218982360000047
Chrome OSTM操作***、或
Figure BDA0001218982360000048
AndroidTM操作***)、Apple操作***(例如Mac
Figure BDA0001218982360000049
或Apple iOSTM操作***)、
Figure BDA00012189823600000410
操作***、开源操作***、或者适合在计算设备、计算机***、和/或基于处理器的设备或***上运行的任何其他操作***。可以理解的是,实现虚拟化框架100的服务器计算机可以将多个不同的操作***作为客户操作***来托管。
如图所示,虚拟化框架100包括管理程序110。当安装在计算设备(例如,服务器计算机)或计算机***上时,管理程序110可以被配置为管理计算设备或计算机***的底层硬件(例如,一个或多个处理器、存储器、磁盘、NIC等)。管理程序110可以以高特权模式(例如,环-1)运行。管理程序110可以控制和仲裁对底层硬件的访问。
管理程序110可以管理核心硬件设施(例如,逻辑处理器、本地高级可编程中断控制器(APIC)、***计数器、***物理地址空间(例如,RAM和设备存储器)、I/O空间、模型专用寄存器(MSR)空间等)以提供隔离的执行环境。管理程序110可以提供、支持、和管理被称为分区的隔离的执行环境。可以将每个分区实现为用于隔离由管理程序110所管理的处理器和存储器资源的抽象的容器或逻辑单元。可以给每个分区分配一组硬件资源(CPU、存储器、和设备)和虚拟资源。分区可以拥有或共享硬件资源。分区可以具有关于设备访问的策略。
分区可提供在其中执行客户操作***的隔离的执行环境。由此,多个隔离的操作***可以在共享的硬件平台上执行。分区可以包括根(例如,父)分区。根分区可以实现和运行诸如
Figure BDA0001218982360000051
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
Figure BDA0001218982360000071
管理程序接口库(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
Figure BDA0001218982360000072
管理程序接口库(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,例如
Figure BDA0001218982360000081
Server操作***或其他合适的管理程序感知的父客户操作***。子VM分区140可以将管理程序感知的操作***(例如,
Figure BDA0001218982360000082
OS或
Figure BDA0001218982360000083
操作***)作为客户操作***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
Figure BDA0001218982360000101
管理程序接口库(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,例如
Figure BDA0001218982360000102
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、另一个
Figure BDA0001218982360000103
API、和/或其他调用惯例来调用取证服务API 163。在各种实现中,取证工具170可以调用常见的和/或期望的接口,而不需要重写接口或调用机制。取证服务API 163可以从取证工具170接收针对文件***访问、存储器访问、磁盘访问、网络访问、和/或PowerShell远程访问的
Figure BDA0001218982360000104
***调用,并且可以将这样的调用转换成由分区间通信机制所支持的消息和/或调用。
取证服务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功能和用于采用诸如网络、磁盘等之类的
Figure BDA0001218982360000111
API的能力的
Figure BDA0001218982360000112
虚拟机。取证工具170可以利用网络、磁盘、或其他
Figure BDA0001218982360000113
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将是能够使用管理程序支持的分区间通信机制和
Figure BDA0001218982360000131
特征的启发的VM。
取证子VM分区180可以包括用于与管理程序110进行通信的HCIF 181。HCIF 181可以调用超调用API 111以将超调用从取证子VM分区180发送至管理程序110。HCIF 181可以由诸如Microsoft
Figure BDA0001218982360000132
管理程序接口库(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可以实现和运行管理程序感知的客户操作***,例如
Figure BDA0001218982360000141
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、另一个
Figure BDA0001218982360000142
API、和/或其他调用惯例来调用取证服务API 183。在各种实现中,取证工具185可以对常用的和/或期望的接口进行调用,而不需要重写接口或调用机制。取证服务API 183可以接收来自取证工具185的针对文件***访问、存储器访问、磁盘访问、网络访问、和/或PowerShell远程访问的
Figure BDA0001218982360000154
***调用,并且可以将这样的调用转换成由分区间通信所支持的消息和/机制。当利用取证工具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功能和用于采用诸如网络、磁盘等之类的
Figure BDA0001218982360000151
API的能力的
Figure BDA0001218982360000152
虚拟机。取证工具185可以利用网络、磁盘、或其他
Figure BDA0001218982360000153
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等可以用于分区间通信。可以将取证数据暴露为网络访问或
Figure BDA0001218982360000161
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定为目标,并且选择各种类型的取证数据以用于获取和/或分析的功能。信息存在于目标主机上,并且取证调查者进行请求以收集和/或暴露取证数据。取证数据可以存在于或者被实例化在磁盘、注册表、存储器和/或其他
Figure BDA0001218982360000171
数据结构中。如上所述,可由取证工具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)、
Figure BDA0001218982360000221
JavaScript、JavaScript对象符号(JSON)、Jscript、ECMAScript、Ajax、
Figure BDA0001218982360000222
SilverlightTM、Visual
Figure BDA0001218982360000223
(VB)、VBScript、PHP、ASP、
Figure BDA0001218982360000224
Python、
Figure BDA0001218982360000225
C、Objective-C、C++、C#/.net、和/或其他。
计算设备和/或计算机***可以包括各种输入设备、输出设备、通信接口、和/或其他类型的设备。示例性输入设备包括但不限于:用户接口、键盘/小键盘、触摸屏、触摸板、笔、鼠标、轨迹球、遥控器、游戏控制器、相机、条形码读取器、麦克风或其他语音输入设备、视频输入设备、激光测距仪、运动感测设备、手势检测设备和/或其他类型的输入机制和/或设备。计算设备可以提供自然用户界面(NUI),其使得用户能够以“自然”的方式与计算设备进行交互,而不受诸如鼠标、键盘、遥控器等之类的输入设备所施加的人为约束。NUI技术的示例包括但不限于:语音和/或话音识别、触摸和/或触摸笔识别、使用加速度计、陀螺仪和/或、深度相机(例如,立体或飞行时间相机***、红外相机***、RGB相机***、和/或其组合)对在屏幕上和临近屏幕的运动和/或手势识别、头部和眼部追踪、视线追踪、面部识别、3D显示、沉浸式增强现实和虚拟现实***、使用电场感测电极(EEG及相关方法)来感测脑活动的技术、意图和/或目标理解、以及机器智能。
计算设备可以被配置为以根据实现的各种方式来接收和响应输入。可以以各种形式来呈现响应,所述形式包括例如:呈现用户界面,输出诸如图像、视频、多媒体对象、文档、和/或其他类型的对象之类的对象;输出文本响应;提供与响应性内容相关联的链接;输出计算机生成的语音响应或其他音频;或者响应的其他类型的视觉和/或音频呈现。示例性输出设备包括但不限于:显示器、投影仪、扬声器、打印机、和/或其他类型的输出机制和/或设备。
计算设备和/或计算机***可以包括允许在其他计算设备和/或计算机***之间进行通信的一个或多个通信接口。可以在各种计算设备和/或计算机***之间的网络通信的上下文中使用通信接口。通信接口可以允许计算设备和/或计算机***与其他设备、其他计算机***、网络服务(例如,附属的网络服务、第三方网络服务、远程网络服务等)、网络服务应用、和/或信息源(例如,附属的信息源、第三方信息源、远程信息源等)进行通信。由此,可以在访问各种类型的资源、从各种类型的资源中获得数据、和/或与各种类型的资源协作的上下文中使用通信接口。
还可以在通过网络或网络的组合分配计算机可执行指令的上下文中使用通信接口。例如,可以利用远程计算机和存储设备来组合或分配计算机可执行指令。本地或终端计算机可以访问远程计算机或远程存储设备,并且下载计算机程序或计算机程序的一个或多个部分以供执行。还可以理解的是,可以通过在本地终端处执行一些指令以及在远程计算机处执行一些指令来分配计算机可执行指令的执行。
计算设备可由移动计算设备来实现,所述移动计算设备例如移动电话(例如,蜂窝电话、智能电话,例如
Figure BDA0001218982360000231
电话、Apple iPhone、
Figure BDA0001218982360000232
电话、实现
Figure BDA0001218982360000233
AndroidTM操作***的电话、实现
Figure BDA0001218982360000234
操作***的电话、或者实现移动操作***的其他类型的电话)、平板计算机(例如,
Figure BDA0001218982360000235
设备、AppleiPadTM,Samsung Galaxy
Figure BDA0001218982360000236
Pro、或其他类型的平板设备)、膝上型计算机、笔记本计算机、上网本计算机、个人数字助理(PDA)、便携式媒体播放机、手持式游戏控制台、可穿戴计算设备(例如,智能手表、头戴式设备,包括诸如
Figure BDA0001218982360000241
GlassTM之类的智能眼镜、可穿戴监视器等)、个人导航设备、车辆计算机(例如,车载导航***)、相机、或其他类型的移动设备。
计算设备可以由固定的计算设备来实现,所述固定的计算设备例如:台式计算机、个人计算机、服务器计算机、娱乐***设备、媒体播放机、媒体***或控制台、视频游戏***或控制台、多用途***或控制台(例如,组合的多媒体和视频游戏***或控制台,例如
Figure BDA0001218982360000242
***或控制台、
Figure BDA0001218982360000243
***或控制台、
Figure BDA0001218982360000244
***或控制台、或其他类型的多用途游戏***或控制台)、机顶盒、家电(例如,电视、冰箱、烹饪家电等)、或其他类型的固定的计算设备。
计算设备还可以由其他类型的基于处理器的计算设备来实现,所述其他类型的基于处理器的计算设备包括:数字信号处理器、现场可编程门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上***(SoC)、复杂可编程逻辑器件(CPLD)等。
计算设备可以包括和/或运行例如由计算设备的软件、固件、硬件、逻辑、和/或电路所实现的一个或多个计算机程序。计算机程序可以以各种方式被分配和/或安装在计算设备上。例如,计算机程序可以由原始设备制造商(OEM)预先安装在计算设备上、作为另一个计算机程序的安装的一部分而安装在计算设备上、从应用商店下载并安装在计算设备上、由***管理员使用企业网络管理工具分配和/或安装、以及以根据实现的各种其他方式分配和/或安装。
由计算设备所实现的计算机程序可以包括一个或多个操作***。示例性操作***包括但不限于:
Figure BDA0001218982360000245
操作***(例如:
Figure BDA0001218982360000246
Figure BDA0001218982360000247
操作***)、
Figure BDA0001218982360000248
操作***(例如,
Figure BDA0001218982360000249
Chrome OSTM操作***或
Figure BDA00012189823600002410
AndroidTM操作***)、Apple操作***(例如,Mac
Figure BDA00012189823600002411
或Apple iOSTM操作***)、开源操作***、或者适用于在移动的、固定的、和/或基于处理器的计算设备上运行的任何其他操作***。
由计算设备所实现的计算机程序可以包括一个或多个客户端应用。示例性客户端应用包括但不限于:网络浏览应用、通信应用(例如,电话应用、电子邮件应用、文本消息传送应用、即时消息传送应用、网络会议应用等)、媒体应用(例如,视频应用、电影服务应用、电视服务应用、音乐服务应用、电子书应用、照片应用等)、日历应用、文件共享应用、个人助理或其他类型的会话性应用、游戏应用、图形应用、购物应用、支付应用、社交媒体应用、社交网络应用、新闻应用、运动应用、天气应用、地图应用、导航应用、旅行应用、餐馆应用、娱乐应用、保健应用、生活方式应用、参考应用、财务应用、商业应用、教育应用、生产力应用(例如,文字处理应用、电子表格应用、幻灯片放映演示应用、笔记记录应用等)、安全应用、工具应用、实用应用、和/或任何其他类型的应用、应用程序、和/或适合于在移动的、固定的、和/或基于处理器的计算设备上运行的应用。
由计算设备所实现的计算机程序可以包括一个或多个服务器应用。示例***器应用包括但不限于:与上述各种类型的示例性客户端应用中的任意一个客户端应用相关联的一个或多个服务器托管的、基于云的、和/或在线应用;上述各种类型的示例性客户端应用中的任意一个客户端应用的一个或多个服务器托管的、基于云的、和/或在线的版本;被配置为提供网络服务、网站、网页、网络内容等的一个或多个应用;被配置为提供和/或访问信息源、数据存储、数据库、仓库等的一个或多个应用;和/或适合于在服务器计算机上运行的其他类型的应用、应用程序、和/或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可以由诸如数据中心中的计算机聚类之类的一个或多个计算设备来实现、由虚拟机来实现,和/或作为基于云的存储服务来提供。
所支持的方面
在上文中结合附图提供的详细描述明确地描述和支持根据所描述的主题各个方面。作为说明而非限制,所支持的方面包括被配置为从正在运行的虚拟机获取取证数据的计算机***,所述计算机***包括:被配置为执行计算机可执行指令的处理器;以及存储计算机可执行指令的存储器,其被配置为:运行托管虚拟化环境的管理程序,所述虚拟化环境包括根虚拟机分区和一个或多个子虚拟机分区;提供包括取证服务应用程序接口的取证分区,所述取证服务应用程序接口被配置为将一个或多个虚拟机定为目标,并且经由由所述管理程序托管的所述虚拟化环境所支持的一个或多个分区间通信机制而从在特定的子虚拟机分区中运行的目标虚拟机获取取证数据;以及将所述取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。
所支持的方面包括前述计算机***,其中,所述取证分区被实现为比所述一个或多个子虚拟机分区中的每个子虚拟机分区更具特权的额外的根分区,或者其中,所述取证分区被实现为额外的子虚拟机分区。
所支持的方面包括前述计算机***中的任何一种计算机***,其中,所述一个或多个分区间通信机制包括由所述取证分区和所述特定的子虚拟机分区所实现的分区间总线。
所支持的方面包括前述计算机***中的任何一种计算机***,其中,所述一个或多个分区间通信机制包括由所述取证分区实现并且被配置为调用所述管理程序的超调用应用程序接口的超调用接口。
所支持的方面包括前述计算机***中的任何一种计算机***,其中,所述一个或多个分区间通信机制包括由所述根虚拟机分区实现并且将所述取证服务应用程序接口与所述特定的子虚拟机分区互连的取证交换机。
所支持的方面包括前述计算机***中的任何一种计算机***,其中,所述存储器还存储计算机可执行指令,所述计算机可执行指令被配置为:动态地将取证接口添加至子虚拟机分区;并且将所述取证交换机连接至所述取证接口。
所支持的方面包括前述计算机***中的任何一种计算机***,其中,所述取证服务应用程序接口被配置为将来自所述取证工具的调用转换成由所述一个或多个分区间通信机制所支持的调用。
所支持的方面包括前述计算机***中的任何一种计算机***,其中,所述取证数据包括以下中的一个或多个:文件***伪迹、网络伪迹、存储器伪迹、和事件日志伪迹。
所支持的方面包括装置、计算机可读存储介质、计算机实现的方法、和/或用于实现前述计算机***或其部分中的任一个的单元。
所支持的方面包括由计算机***执行以从正在运行的虚拟机获取取证数据的计算机实现的方法,所述计算机实现的方法包括:实现包括根虚拟机分区和一个或多个子虚拟机分区的管理程序托管的虚拟化环境;提供包括取证服务应用程序接口的取证分区,所述取证服务应用程序接口被配置为将一个或多个虚拟机定为目标,并且经由由所述管理程序托管的所述虚拟化环境所支持的一个或多个分区间通信机制而从在特定的子虚拟机分区中运行的目标虚拟机获取取证数据;以及将所述取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。
所支持的方面包括前述计算机实现的方法,其中,所述取证分区被实现比所述一个或多个子虚拟机分区中的每个子虚拟机分区更具特权的额外的根分区,或者其中,所述取证分区被实现为额外的子虚拟机分区。
所支持的方面包括前述计算机实现的方法中的任何一种计算机实现的方法,还包括:通过由所述取证分区和所述特定的子虚拟机分区实现的分区间总线而在所述取证服务应用和所述目标虚拟机之间传送针对取证数据的请求。
所支持的方面包括前述计算机实现的方法中的任何一种计算机实现的方法,还包括:使用超调用接口在所述取证服务应用和所述目标虚拟机之间传送针对取证数据的请求,所述超调用接口是由所述取证分区实现的,并且被配置为调用所述管理程序的超调用应用程序接口。
所支持的方面包括前述计算机实现的方法中的任何一种计算机实现的方法,还包括:通过取证交换机在所述取证服务应用和所述目标虚拟机之间传送针对取证数据的请求,所述取证交换机是由根虚拟机分区实现的,并且所述取证交换机将所述取证服务应用程序接口与所述特定的子虚拟机分区互连。
支持的方面包括任何前述计算机实现的方法,还包括:动态地将取证接口添加至子虚拟机分区;以及将所述取证交换机连接至所述取证接口。
支持的方面包括任何前述计算机实现的方法,其中,所述取证数据包括以下中的一个或多个:文件***伪迹、网络伪迹、存储器伪迹、和事件日志伪迹。
所支持的方面包括***、装置、计算机可读存储介质、和/或用于实现前述计算机***或其部分中的任一个的单元。
所支持的方面包括存储计算机可执行指令的计算机可读存储介质,当由所述计算机***执行时,所述计算机可执行指令使得所述计算机***实现:包括根虚拟机分区和一个或多个子虚拟机分区的管理程序托管的虚拟化环境;以及包括取证服务应用程序接口的取证分区,所述取证服务应用程序接口被配置为将一个或多个虚拟机定为目标,并且经由由管理程序托管的虚拟化环境所支持的一个或多个分区间通信机制而从在特定的子虚拟机分区中运行的目标虚拟机获取取证数据,其中,将所述取证服务应用程序接口作为基于云的取证服务的一部分而暴露给取证工具。
所支持的方面包括前述计算机可读存储介质,其中,所述一个或多个分区间通信机制包括以下中的至少一个:由所述取证分区和所述特定的子虚拟机分区所实现的分区间总线,以及由所述取证分区实现并且被配置为调用所述管理程序的超调用应用程序接口的超调用接口。
所支持的方面包括前述计算机可读存储介质中的任何一个计算机可读存储介质,其还存储计算机可执行指令,当由所述计算机***执行时,所述计算机可执行指令使得所述计算机***实现:在所述根虚拟机分区内的取证交换机,其中,所述取证交换机将所述取证服务应用程序接口与所述特定的子虚拟机分区互连。
所支持的方面包括装置、***、计算机实现的方法、和/或用于实现前述计算机***或其部分中的任一个的单元。
所支持的方面可以关于功耗、存储器、处理器周期、和/或其他计算上昂贵的资源在可扩展性、改进的效率、和/或节约方面提供各种便随的和/或技术优点。
结合附图在上文中所提供的详细描述旨在作为示例的描述,而不旨在表示可以在其中构建或利用本示例的仅有的形式。
应当理解的是,在本文中所描述的配置和/或方法本质上是示例性的,并且所描述的实施例、实现、和/或示例不应被认为是限制性意义,这是因为多种变型是可能的。在本文中所描述的具体的过程或方法可以表示任何数量的处理策略中的一个或多个处理策略。由此,所示出的和/或所描述的各种操作可以以所示处和/或所描述的顺序执行、以其他顺序执行、并行地执行、或被省略。同样,可以改变上述过程的顺序。
尽管已经用特定于结构特征和/或方法动作的语言描述了所述主题,但是应当理解的是,在所附权利要求中限定的主题不一定限于在上文中所描述的具体的特征或动作。相反,在上文中所描述的具体的特征和动作是作为实现权利要求的示例形式而呈现的。

Claims (10)

1.一种被配置为从正在运行的虚拟机获取取证数据的计算机***,所述计算机***包括:
被配置为执行计算机可执行指令的处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令被配置为:
运行托管虚拟化环境的管理程序,所述虚拟化环境包括根虚拟机分区、管理程序感知的启发的子虚拟机分区、非管理程序感知的非启发的子虚拟机分区和包括取证服务应用程序接口的取证分区,其中,所述取证服务应用程序接口被配置为:经由由所述虚拟化环境所支持的分区间通信机制而从在所述启发的子虚拟机分区中运行的第一虚拟机获取取证数据,以及经由取证交换机而从在所述非启发的子虚拟机分区中运行的第二虚拟机获取取证数据;以及
将所述取证服务应用程序接口暴露给取证工具。
2.根据权利要求1所述的计算机***,其中,所述分区间通信机制包括由所述取证分区和所述启发的子虚拟机分区所实现的分区间总线。
3.根据权利要求1所述的计算机***,其中,所述分区间通信机制包括由所述取证分区实现并且被配置为调用所述管理程序的超调用应用程序接口的超调用接口。
4.根据权利要求1所述的计算机***,其中,所述存储器还存储计算机可执行指令,所述计算机可执指令被配置为:
动态地将取证接口添加至所述非启发的子虚拟机分区;并且
将所述取证交换机连接至所述取证接口。
5.根据权利要求1所述的计算机***,其中,所述取证服务应用程序接口被配置为将来自所述取证工具的调用转换成由所述分区间通信机制所支持的调用。
6.根据权利要求1所述的计算机***,其中,所述取证数据包括以下中的一个或多个:文件***伪迹、网络伪迹、存储器伪迹、和事件日志伪迹。
7.由计算机***执行以从正在运行的虚拟机获取取证数据的计算机实现的方法,所述计算机实现的方法包括:
实现管理程序,所述管理程序运行包括根虚拟机分区、管理程序感知的启发的子虚拟机分区和非管理程序感知的非启发的子虚拟机分区的管理程序托管的虚拟化环境;
提供由所述管理程序托管的并且包括取证服务应用程序接口的取证分区,所述取证服务应用程序接口被配置为将虚拟机定为目标;
经由由所述管理程序托管的所述虚拟化环境所支持的分区间通信机制而从所述取证服务应用程序接口向所述启发的子虚拟机分区路由对取证数据的第一请求;
在所述取证服务应用程序接口处,经由所述分区间通信机制接收对所述第一请求的第一响应,其中,所述第一响应指示从所述启发的子虚拟机分区获得的取证数据;
从所述取证服务应用程序接口向取证交换机路由对取证数据的第二请求;
由所述取证交换机向所述取证服务应用程序接口提供对所述第二请求的第二响应,其中,所述第二响应指示从所述非启发的子虚拟机分区获得的取证数据;以及
将所述取证服务应用程序接口暴露给取证工具。
8.根据权利要求7所述的计算机实现的方法,还包括:
使用超调用接口在所述取证服务应用程序接口和所述启发的子虚拟机之间传送针对取证数据的请求,所述超调用接口是由所述取证分区实现的,并且被配置为调用所述管理程序的超调用应用程序接口。
9.根据权利要求7所述的计算机实现的方法,还包括:
动态地将取证接口添加至所述非启发的子虚拟机分区;并且
将所述取证交换机连接至所述取证接口。
10.一种存储代码的计算机可读介质,所述代码当被处理器执行时,使得所述处理器实行根据权利要求7至9中的任何一项所述的计算机实现的方法。
CN201580041265.9A 2014-07-30 2015-07-29 管理程序托管的虚拟机取证 Active CN106575243B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462030636P 2014-07-30 2014-07-30
US62/030,636 2014-07-30
US14/806,605 2015-07-22
US14/806,605 US9851998B2 (en) 2014-07-30 2015-07-22 Hypervisor-hosted virtual machine forensics
PCT/US2015/042753 WO2016019070A1 (en) 2014-07-30 2015-07-29 Hypervisor-hosted virtual machine forensics

Publications (2)

Publication Number Publication Date
CN106575243A CN106575243A (zh) 2017-04-19
CN106575243B true CN106575243B (zh) 2020-08-04

Family

ID=55180117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580041265.9A Active CN106575243B (zh) 2014-07-30 2015-07-29 管理程序托管的虚拟机取证

Country Status (4)

Country Link
US (2) US9851998B2 (zh)
EP (1) EP3175360B1 (zh)
CN (1) CN106575243B (zh)
WO (1) WO2016019070A1 (zh)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US10198280B2 (en) 2015-12-14 2019-02-05 Barkly Protects, Inc. Method and apparatus for hypervisor based monitoring of system interactions
US10078752B2 (en) 2014-03-27 2018-09-18 Barkly Protects, Inc. Continuous malicious software identification through responsive machine learning
US10205648B1 (en) * 2014-05-30 2019-02-12 EMC IP Holding Company LLC Network monitoring using traffic mirroring and encapsulated tunnel in virtualized information processing system
US10693946B2 (en) * 2014-09-16 2020-06-23 Amazon Technologies, Inc. Instance backed mobile devices
US9998150B1 (en) 2015-06-16 2018-06-12 Amazon Technologies, Inc. Layered data redundancy coding techniques for layer-local data recovery
US10270475B1 (en) 2015-06-16 2019-04-23 Amazon Technologies, Inc. Layered redundancy coding for encoded parity data
US10270476B1 (en) 2015-06-16 2019-04-23 Amazon Technologies, Inc. Failure mode-sensitive layered redundancy coding techniques
US10977128B1 (en) 2015-06-16 2021-04-13 Amazon Technologies, Inc. Adaptive data loss mitigation for redundancy coding systems
US10298259B1 (en) 2015-06-16 2019-05-21 Amazon Technologies, Inc. Multi-layered data redundancy coding techniques
US10609122B1 (en) 2015-06-29 2020-03-31 Amazon Technologies, Inc. Instance backed building or place
US11061969B1 (en) * 2015-06-29 2021-07-13 Amazon Technologies, Inc. Instance backed mobile devices with multiple instances
US9998539B1 (en) 2015-07-01 2018-06-12 Amazon Technologies, Inc. Non-parity in grid encoded data storage systems
US10394762B1 (en) 2015-07-01 2019-08-27 Amazon Technologies, Inc. Determining data redundancy in grid encoded data storage systems
US10108819B1 (en) 2015-07-01 2018-10-23 Amazon Technologies, Inc. Cross-datacenter extension of grid encoded data storage systems
US9959167B1 (en) 2015-07-01 2018-05-01 Amazon Technologies, Inc. Rebundling grid encoded data storage systems
US10198311B1 (en) 2015-07-01 2019-02-05 Amazon Technologies, Inc. Cross-datacenter validation of grid encoded data storage systems
US10162704B1 (en) 2015-07-01 2018-12-25 Amazon Technologies, Inc. Grid encoded data storage systems for efficient data repair
US10089176B1 (en) 2015-07-01 2018-10-02 Amazon Technologies, Inc. Incremental updates of grid encoded data storage systems
US10911404B1 (en) 2015-08-24 2021-02-02 Amazon Technologies, Inc. Attribute based authorization
US9690622B1 (en) 2015-08-24 2017-06-27 Amazon Technologies, Inc. Stateless instance backed mobile devices
US9928141B1 (en) 2015-09-21 2018-03-27 Amazon Technologies, Inc. Exploiting variable media size in grid encoded data storage systems
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
US9940474B1 (en) 2015-09-29 2018-04-10 Amazon Technologies, Inc. Techniques and systems for data segregation in data storage systems
US10394789B1 (en) 2015-12-07 2019-08-27 Amazon Technologies, Inc. Techniques and systems for scalable request handling in data processing systems
US10642813B1 (en) 2015-12-14 2020-05-05 Amazon Technologies, Inc. Techniques and systems for storage and processing of operational data
US10248793B1 (en) 2015-12-16 2019-04-02 Amazon Technologies, Inc. Techniques and systems for durable encryption and deletion in data storage systems
US10324790B1 (en) 2015-12-17 2019-06-18 Amazon Technologies, Inc. Flexible data storage device mapping for data storage systems
US10235402B1 (en) 2015-12-17 2019-03-19 Amazon Technologies, Inc. Techniques for combining grid-encoded data storage systems
US10127105B1 (en) 2015-12-17 2018-11-13 Amazon Technologies, Inc. Techniques for extending grids in data storage systems
US10180912B1 (en) 2015-12-17 2019-01-15 Amazon Technologies, Inc. Techniques and systems for data segregation in redundancy coded data storage systems
US10102065B1 (en) 2015-12-17 2018-10-16 Amazon Technologies, Inc. Localized failure mode decorrelation in redundancy encoded data storage systems
US11650903B2 (en) 2016-01-28 2023-05-16 Codesignal, Inc. Computer programming assessment
US10353703B1 (en) * 2016-01-28 2019-07-16 BrainFights, Inc. Automated evaluation of computer programming
US10990507B2 (en) * 2016-02-25 2021-04-27 Dell Products L.P. System and method for provisioning a virtual machine test environment
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10592336B1 (en) 2016-03-24 2020-03-17 Amazon Technologies, Inc. Layered indexing for asynchronous retrieval of redundancy coded data
US10061668B1 (en) 2016-03-28 2018-08-28 Amazon Technologies, Inc. Local storage clustering for redundancy coded data storage system
US10678664B1 (en) 2016-03-28 2020-06-09 Amazon Technologies, Inc. Hybridized storage operation for redundancy coded data storage systems
US10366062B1 (en) 2016-03-28 2019-07-30 Amazon Technologies, Inc. Cycled clustering for redundancy coded data storage systems
US11137980B1 (en) 2016-09-27 2021-10-05 Amazon Technologies, Inc. Monotonic time-based data storage
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
US10657097B1 (en) 2016-09-28 2020-05-19 Amazon Technologies, Inc. Data payload aggregation for data storage systems
US10496327B1 (en) 2016-09-28 2019-12-03 Amazon Technologies, Inc. Command parallelization for data storage systems
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10437790B1 (en) 2016-09-28 2019-10-08 Amazon Technologies, Inc. Contextual optimization for data storage systems
US10810157B1 (en) 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10423438B2 (en) * 2016-09-30 2019-09-24 Amazon Technologies, Inc. Virtual machines controlling separate subsets of programmable hardware
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US10614239B2 (en) 2016-09-30 2020-04-07 Amazon Technologies, Inc. Immutable cryptographically secured ledger-backed databases
CN107968803B (zh) * 2016-10-20 2021-06-15 中国电信股份有限公司 针对移动终端的远程取证方法、装置、移动终端和***
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US10296764B1 (en) 2016-11-18 2019-05-21 Amazon Technologies, Inc. Verifiable cryptographically secured ledgers for human resource systems
US11269888B1 (en) 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
WO2019125516A1 (en) * 2017-12-23 2019-06-27 Barkly Protects, Inc. Continuous malicious software identification through responsive machine learning
US10757082B2 (en) * 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
US11113388B2 (en) * 2018-07-31 2021-09-07 National Technology & Engineering Solutions Of Sandia, Llc Cloud forensics and incident response platform
US10740151B1 (en) * 2018-08-27 2020-08-11 Amazon Technologies, Inc. Parallelized forensic analysis using cloud-based servers
US11080392B2 (en) 2019-07-10 2021-08-03 United States Of America As Represented By The Secretary Of The Navy Method for systematic collection and analysis of forensic data in a unified communications system deployed in a cloud environment
US11249787B2 (en) 2019-10-01 2022-02-15 Bank Of America Corporation Method and system for data collection using hypervisor
US12020051B2 (en) * 2020-01-17 2024-06-25 Microsoft Technology Licensing Llc Sharable link for remote computing resource access
CN111338889B (zh) * 2020-02-14 2023-05-23 奇安信科技集团股份有限公司 支持多种操作***的取证方法、装置、设备及存储介质
WO2022133910A1 (zh) * 2020-12-24 2022-06-30 杭州趣链科技有限公司 一种网页取证方法、网页取证装置及服务器
CN114138346A (zh) * 2021-11-02 2022-03-04 北京安天网络安全技术有限公司 一种终端取证方法、装置、电子设备及存储介质
US20230409458A1 (en) * 2022-06-16 2023-12-21 Microsoft Technology Licensing, Llc Generating, aggregating, and querying virtualization service execution metrics for cloud diagnostics at scale

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425563A (zh) * 2013-07-04 2013-12-04 上海交通大学 基于虚拟化技术的在线i/o电子取证***及其取证方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8619971B2 (en) 2005-04-01 2013-12-31 Microsoft Corporation Local secure service partitions for operating system security
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US7475183B2 (en) * 2005-12-12 2009-01-06 Microsoft Corporation Large page optimizations in a virtual machine environment
US7941800B2 (en) * 2006-02-23 2011-05-10 Microsoft Corporation Transferring data between virtual machines by way of virtual machine bus in pipe mode
US20140373144A9 (en) * 2006-05-22 2014-12-18 Alen Capalik System and method for analyzing unauthorized intrusion into a computer network
US7856573B2 (en) * 2007-08-31 2010-12-21 International Business Machines Corporation WPAR halted attack introspection stack execution detection
US8954897B2 (en) * 2008-08-28 2015-02-10 Microsoft Corporation Protecting a virtual guest machine from attacks by an infected host
JP5359401B2 (ja) * 2009-03-11 2013-12-04 富士通株式会社 プログラム、コンピュータ及び制御方法
US8635057B2 (en) 2009-03-30 2014-01-21 Microsoft Corporation Enlightenment for low overhead hardware access
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
WO2011097294A1 (en) * 2010-02-02 2011-08-11 Legal Digital Services Digital forensic acquisition kit and methods of use thereof
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
US20110258701A1 (en) 2010-04-14 2011-10-20 Raytheon Company Protecting A Virtualization System Against Computer Attacks
US9804874B2 (en) * 2011-04-20 2017-10-31 Microsoft Technology Licensing, Llc Consolidation of idle virtual machines on idle logical processors
EP2577936A2 (en) * 2010-05-28 2013-04-10 Lawrence A. Laurich Accelerator system for use with secure data storage
US8839239B2 (en) 2010-06-15 2014-09-16 Microsoft Corporation Protection of virtual machines executing on a host device
US8789189B2 (en) 2010-06-24 2014-07-22 NeurallQ, Inc. System and method for sampling forensic data of unauthorized activities using executability states
CN103154961A (zh) * 2010-09-30 2013-06-12 惠普发展公司,有限责任合伙企业 用于病毒扫描的虚拟机
JP5853327B2 (ja) * 2010-10-31 2016-02-09 テンポラル ディフェンス システムズ, エルエルシー 仮想コンピューティング環境を保護するためのシステムおよび方法
US8924964B2 (en) * 2010-11-01 2014-12-30 Microsoft Corporation Dynamic allocation and assignment of virtual environment
KR20120073841A (ko) * 2010-12-27 2012-07-05 한국전자통신연구원 포렌식 데이터의 데이터테이블 생성 장치 및 방법
US10067787B2 (en) * 2011-02-10 2018-09-04 Architecture Technology Corporation Configurable forensic investigative tool
WO2012112095A1 (en) * 2011-02-18 2012-08-23 Telefonaktiebolaget Lm Ericsson (Publ) Virtual machine supervision
US8533713B2 (en) * 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
US9043562B2 (en) * 2011-04-20 2015-05-26 Microsoft Technology Licensing, Llc Virtual machine trigger
US9721089B2 (en) 2011-05-06 2017-08-01 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for efficient computer forensic analysis and data access control
US8713378B2 (en) * 2011-07-07 2014-04-29 Microsoft Corporation Health monitoring of applications in a guest partition
US9094449B2 (en) * 2011-09-14 2015-07-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
US8640238B2 (en) * 2011-09-14 2014-01-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
US8584254B2 (en) 2011-12-08 2013-11-12 Microsoft Corporation Data access reporting platform for secure active monitoring
US8683592B1 (en) * 2011-12-30 2014-03-25 Emc Corporation Associating network and storage activities for forensic analysis
US8893147B2 (en) * 2012-01-13 2014-11-18 Ca, Inc. Providing a virtualized replication and high availability environment including a replication and high availability engine
US8941670B2 (en) * 2012-01-17 2015-01-27 Microsoft Corporation Para-virtualized high-performance computing and GDI acceleration
US8825848B1 (en) * 2012-03-20 2014-09-02 Emc Corporation Ordering of event records in an electronic system for forensic analysis
US9203862B1 (en) * 2012-07-03 2015-12-01 Bromium, Inc. Centralized storage and management of malware manifests
US9092625B1 (en) * 2012-07-03 2015-07-28 Bromium, Inc. Micro-virtual machine forensics and detection
US9311332B2 (en) * 2013-01-08 2016-04-12 Ca, Inc. Cluster shared volume replication
US20140259169A1 (en) * 2013-03-11 2014-09-11 Hewlett-Packard Development Company, L.P. Virtual machines
US20140259171A1 (en) * 2013-03-11 2014-09-11 Spikes, Inc. Tunable intrusion prevention with forensic analysis
US20140317681A1 (en) * 2013-03-15 2014-10-23 Jon Rav Gagan Shende Cloud forensics
US9292328B2 (en) * 2013-05-24 2016-03-22 Bromium, Inc. Management of supervisor mode execution protection (SMEP) by a hypervisor
US9542216B2 (en) * 2013-10-15 2017-01-10 At&T Intellectual Property I, L.P. Richer model of cloud app markets
US20150106334A1 (en) * 2013-10-15 2015-04-16 PHD Virtual Technologies Systems and methods for backing up a live virtual machine
US20150128130A1 (en) * 2013-11-01 2015-05-07 Intuit Inc. Method and system for providing and dynamically deploying hardened task specific virtual hosts
KR101554633B1 (ko) * 2014-03-04 2015-09-21 한국전자통신연구원 악성 코드 검출 장치 및 그 방법
US9887886B2 (en) * 2014-07-15 2018-02-06 Sap Se Forensic software investigation
US9600664B1 (en) * 2014-09-03 2017-03-21 Amazon Technologies, Inc. Monitoring execution environments for approved configurations
KR101688631B1 (ko) * 2015-07-21 2016-12-21 한국전자통신연구원 스마트 기기 내부의 플래시메모리의 무결성을 보장하기 위한 포렌식 데이터 획득 장치 및 방법
US10079842B1 (en) * 2016-03-30 2018-09-18 Amazon Technologies, Inc. Transparent volume based intrusion detection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425563A (zh) * 2013-07-04 2013-12-04 上海交通大学 基于虚拟化技术的在线i/o电子取证***及其取证方法

Also Published As

Publication number Publication date
US20180088980A1 (en) 2018-03-29
EP3175360A1 (en) 2017-06-07
US20160034295A1 (en) 2016-02-04
WO2016019070A1 (en) 2016-02-04
CN106575243A (zh) 2017-04-19
EP3175360B1 (en) 2021-04-21
US9851998B2 (en) 2017-12-26
US10169071B2 (en) 2019-01-01

Similar Documents

Publication Publication Date Title
CN106575243B (zh) 管理程序托管的虚拟机取证
US10929344B2 (en) Trusted file indirection
US10606896B2 (en) Accessibility detection and resolution
US10768920B2 (en) Update coordination in a multi-tenant cloud computing environment
US9703951B2 (en) Allocation of shared system resources
JP6871943B2 (ja) モバイルクラウドサービスのための予め形成された命令
US20150088982A1 (en) Load balanced inter-device messaging
US20090307705A1 (en) Secure multi-purpose computing client
US20200125721A1 (en) Tiered scalability sandbox fleet with internet access
US10191864B1 (en) Standardized interface for storage using an input/output (I/O) adapter device
US20220103575A1 (en) System for Extracting, Classifying, and Enriching Cyber Criminal Communication Data
US10691310B2 (en) Copying/pasting items in a virtual desktop infrastructure (VDI) environment
US11895553B2 (en) Web application with components in different virtual environments
WO2012069276A1 (en) Device emulation in a virtualized computing environment
JP2022522663A (ja) セキュア仮想マシン環境におけるゲスト命令の透過的解釈
US10489013B2 (en) Intelligent taskbar shortcut menu for webpage control
US11269756B1 (en) Self-healing web applications
US9836421B1 (en) Standardized interface for network using an input/output (I/O) adapter device
JP2017532665A (ja) クラウド仮想マシンに対する脅威の検出への自動応答
US20230239317A1 (en) Identifying and Mitigating Security Vulnerabilities in Multi-Layer Infrastructure Stacks
US10621179B2 (en) Method for deobfuscation of customer clickstream telemetry data
US20230020523A1 (en) Quantified social media privacy
US20240137383A1 (en) Wellness detection and response for small businesses
US20230034196A1 (en) Techniques for providing synchronous and asynchronous data processing
US11611610B2 (en) System and method for notification of listening devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant