System and method for security and privacy aware virtual machine checkpointing
AssigneeThe Research Foundation for The State University of New York
InventorsPing Yang, Kartik Gopalan
Life of this patent
Estimating the term…
Abstract
A checkpointing method for creating a file representing a restorable state of a virtual machine in a computing system, comprising identifying processes executing within the virtual machine that may store confidential data, and marking memory pages and files that potentially contain data stored by the identified processes; or providing an application programming interface for marking memory regions and files within the virtual machine that contain confidential data stored by processes; and creating a checkpoint file, by capturing memory pages and files representing a current state of the computing system, which excludes information from all of the marked memory pages and files.
Claims20
A method of preventing restoration of private information from a checkpoint creation within a virtual machine, comprising:
- (a) identifying all memory occupied by at least one application executing under control of a hypervisor of the virtual machine in a memory space of a computer, in both a user space and in a kernel space, with a guest process executing configured to identify physical memory addresses of memory pages that belong to the at least one application;
- (b) identifying inter-process dependencies with the guest process;
- (c) identifying kernel state memory pages which represent an internal kernel state;
- (d) upon initiation of checkpoint creation, requesting from the guest process the identified physical memory addresses of the memory pages that belong to the at least one application, processes that depend on the at least one application, or are kernel state memory pages, and providing the requested identified physical memory addresses of the memory pages that belong to the at least one application to the hypervisor;
- (d) obscuring or segregating, information in the memory pages that belong to the at least one application;
- (e) persistently storing a checkpoint file representing a state of the hypervisor with the information from the at least one application and the internal kernel state obscured or segregated;
- and
- (e) restoring a prior state of the hypervisor from the checkpoint file, wherein the restored prior state of the hypervisor is sufficient to resume operation of the virtual machine, absent the at least one application and applications that have dependencies on the at least one application.
A method of preserving privacy of information during a checkpoint restoration process of a virtual machine, comprising:
- (a) monitoring an input-output data stream communication from non-program memory sources during a computing session, and storing a series of states representing activities of the at least one application with respect to their associated input-output data stream communications;
- (b) an least one of searching and cross correlating a created checkpoint file with data from the monitored input-output data stream communication;
- (c) tagging instances of data within the created checkpoint file based on a match or cross correlation of portions of the created checkpoint file with data from the monitored input-output data stream communication;
- and
- (d) restoring the virtual machine to substantially resume operation, based on the checkpoint file, wherein a state of the at least one process is rolled back to a state prior to a respective monitored input-output data stream communication.
A method of preventing archiving of private information of at least one application during a checkpoint creation within a virtual machine, comprising:
- (a) providing an application programming interface, the application programming interface providing at least communications to (i) allow a respective process to register confidential memory;
- (ii) inform applications before checkpointing, to allow applications to transition to a safe state;
- (iii) inform applications after checkpointing completes to allow applications to resume safely;
- and (iv) inform applications after the VM is restored from a checkpoint so that applications can restart safely;
- (b) checkpointing the virtual machine, comprising (i) communicating to the at least one application to assume a safe state prior to checkpointing;
- (ii) checkpointing the virtual machine while excluding confidential memory associated with the at least one application to create at least one checkpoint file;
- (iii) communicating to the at least one application to resume processing after checkpointing;
- and
- (c) restoring a state of the virtual machine from the at least one checkpoint file;
- and
- (d) communicating to the at least one application to resume processing after said restoring.
Dependencies are inferred from the claim text.