1. Field of the Invention
The present invention relates generally to computer security, and more particularly but not exclusively to providing computer security to virtual machines.
2. Description of the Background Art
Virtual machines in the art of computer science, in general, are well known. Briefly, a virtual machine is a software implementation of computer hardware and executes programs like a real machine. Virtualization allows several virtual machines to run on the same computer hardware. Each virtual machine is, in essence, a separate computer (albeit a virtual one) that has its own operating system, file system, and application programs that are separate from other virtual machines running on the same computer hardware. Just like real computers, virtual machines need to be protected from computer security threats, such as malicious codes, spyware, Trojans, and phishing, to name some examples. Embodiments of the present invention allow for detection and provisioning of cloned, rolled back, or other duplicate virtual machines.
In one embodiment, computer security protection of virtual machines is remotely managed by a security manager that communicates with a security agent in each of the virtual machines. The security manager sends a sequence marker to a virtual machine, and expects to receive the sequence marker back from the virtual machine. When the security manager detects that a virtual machine sends a sequence marker that is the same as a previously received sequence marker, the security manager detects that the virtual machine is a clone or a rollback of another virtual machine. In response, the security manager provisions computer security in the virtual machine.
These and other features of the present invention will be readily apparent to persons of ordinary skill in the art upon reading the entirety of this disclosure, which includes the accompanying drawings and claims.
The use of the same reference label in different drawings indicates the same or like components.
In the present disclosure, numerous specific details are provided, such as examples of apparatus, components, and methods, to provide a thorough understanding of embodiments of the invention. Persons of ordinary skill in the art will recognize, however, that the invention can be practiced without one or more of the specific details. In other instances, well-known details are not shown or described to avoid obscuring aspects of the invention.
Referring now to
The computer 100 is a particular machine as programmed with software modules 110. The software modules 110 comprise computer-readable program code stored non-transitory in the main memory 108 for execution by the processor 101. As an example, the software modules 110 may comprise a security manager when the computer 100 is employed as part of a computer system that remotely manages computer security of one or more virtual machines. As another example, the software modules 110 may comprise a virtual machine, including a security agent, when the computer 100 is employed as a computer system that hosts virtual machines.
The computer 100 may be configured to perform its functions by executing the software modules 110. The software modules 110 may be loaded from the data storage device 106 to the main memory 108. An article of manufacture may be embodied as computer-readable storage medium including instructions that when executed by a computer causes the computer to be operable to perform the functions of the software modules 110.
In one embodiment, a virtual machine includes a security agent that works in conjunction with a security manager to protect the virtual machine against computer security threats. In the example of
The security agent 281 may comprise computer-readable program code that provides computer security or computer security monitoring in the virtual machine 270.
For example, the security agent 281 may include or work with antivirus, antispam, firewall, and other computer security modules in the virtual machine 270. As another example, the security agent 281 may monitor the virtual machine 270 to ensure that the virtual machine 270 has computer security modules and that the computer security modules are current versions. The security agent 281 may report the results of monitoring and computer security checks (e.g., antivirus scanning) to the security manager 220. The virtual machine 270 may include credentials 282 to allow the security agent 281 to be authenticated and identified by the security manager 220. The credentials 282 may comprise digital certificates, passwords, and other authentication information. The virtual machine 270 may further include a local database 283 for storing sequence markers and other data.
In the example of
In an example operation, the security manager 220 sends manager communication data 211 and a sequence marker 221 to the security agent 281 (see arrow 201). Manager communication data comprise data provided by the security manager 220 to a security agent, including credentials for authentication, computer security policies, directives, updated computer security modules, and other data generally provided by the security manager 220 to a security agent.
In one embodiment, the security manager 220 generates a sequence marker that may be used once and only once by a virtual machine to communicate back to the security manager 220. That is, the security manager 220 expects to receive back a sequence marker only once. As its name implies, a sequence marker identifies a particular communication sequence between the security manager 220 and a virtual machine, with a communication sequence consisting of a communication from the security manager 220 to the virtual machine and an immediately following communication from the virtual machine to the security manager 220. Upon receiving communication data from a virtual machine, the security manager 220 checks to ensure that the communication data comes with the same sequence marker previously sent by the security manager 220 to the virtual machine. The security manager 220 then discards that sequence marker and prepares another, different sequence marker for its next communication sequence with the virtual machine. Receiving back a particular sequence marker more than once indicates that a virtual machine may have been cloned or rolled back. A sequence marker may comprise a nonce with a format that is known to and expected by both a security manager and a security agent.
In the example of
To provide continuous computer security protection to a virtual machine, the security manager 220 needs to know the virtual machine's timeline, which indicates all security events in the virtual machine and the time and sequence the security events occurred. A security event is an event that affects the computer security of a virtual machine, including installation of new software, detection of computer viruses, disabling computer security, and so on. However, a virtual machine timeline may be disrupted by cloning or rolling back the virtual machine. More specifically, rolling back a virtual machine to a previous, earlier version removes information on security events that occurred after that earlier version of the virtual machine. Cloning a virtual machine may result in two identical virtual machines running at the same time. Because both the original and clone virtual machines run on the same computer system and have the same credentials, the security manager 220 will have no way of determining which virtual machine is which. In that case, the security manager 220 will treat the original and clone virtual machines as the same virtual machine. In embodiments of the present invention, a cloned or rolled back virtual machine will be detected when the cloned or rolled back virtual machine returns a previously returned sequence marker to the security manager 220.
In the example of
In the example of
In the example of
In the example of
The original virtual machine is cloned or rolled back to the other virtual machine just before returning the second sequence marker. However, the original virtual machine already returned the second sequence marker before the cloning or rolling back took effect. The other virtual machine, which still retains the second sequence marker, returns the second sequence marker with its next communication with the security manager (step 337). In validating the second sequence marker received from the other virtual machine, the security manager detects that the second sequence marker is not valid, i.e., it has previously been returned by the original virtual machine (step 338). This indicates that, although the original and other virtual machines have the same credentials, the other virtual machine is different from the original virtual machine. The most likely scenario is that the other virtual machine is a clone or rollback of the original virtual machine. Because the other virtual machine has a different timeline compared to the original virtual machine, the other virtual machine needs to be managed separately in terms of computer security. Accordingly, the security manager proceeds to provision computer security in the other virtual machine by communicating with and providing a third sequence marker to the other virtual machine (step 339). The third sequence marker is different from the first and second sequence markers, and has not been used by any virtual machine to communicate with the security manager. The other virtual machine returns the third sequence marker to the security manager in its next communication with the security manager (step 340). The security manager receives and validates the third sequence marker (step 341).
Methods and systems for protecting virtual machines from computer security threats have been disclosed. While specific embodiments of the present invention have been provided, it is to be understood that these embodiments are for illustration purposes and not limiting. Many additional embodiments will be apparent to persons of ordinary skill in the art reading this disclosure.
Number | Name | Date | Kind |
---|---|---|---|
6886096 | Appenzeller et al. | Apr 2005 | B2 |
7003117 | Kacker et al. | Feb 2006 | B2 |
7017181 | Spies et al. | Mar 2006 | B2 |
7103911 | Spies et al. | Sep 2006 | B2 |
7113594 | Boneh et al. | Sep 2006 | B2 |
7266847 | Pauker et al. | Sep 2007 | B2 |
7409719 | Armstrong et al. | Aug 2008 | B2 |
7802000 | Huang et al. | Sep 2010 | B1 |
20040179684 | Appenzeller et al. | Sep 2004 | A1 |
20070079307 | Dhawan et al. | Apr 2007 | A1 |
20080134316 | Devonshire et al. | Jun 2008 | A1 |
20080155537 | Dinda et al. | Jun 2008 | A1 |
20080163207 | Reumann et al. | Jul 2008 | A1 |
20080222633 | Kami | Sep 2008 | A1 |
20080244028 | Le et al. | Oct 2008 | A1 |
20090158432 | Zheng et al. | Jun 2009 | A1 |
20090183173 | Becker et al. | Jul 2009 | A1 |
20090204964 | Foley et al. | Aug 2009 | A1 |
20090328164 | Sunder et al. | Dec 2009 | A1 |
20100169948 | Budko et al. | Jul 2010 | A1 |
20100251363 | Todorovic | Sep 2010 | A1 |
20110047545 | Ellison et al. | Feb 2011 | A1 |
20120110574 | Kumar | May 2012 | A1 |
20120117563 | Chang et al. | May 2012 | A1 |
Number | Date | Country |
---|---|---|
2 434 947 | Aug 2007 | GB |
2 436 668 | Oct 2007 | GB |
2 436 910 | Oct 2007 | GB |
2007088337 | Aug 2007 | WO |
2007110598 | Oct 2007 | WO |
Entry |
---|
VMware VMotion Live migration of virtual machines without service interuption, 2 sheets, webpage [online][retrieved on Jun. 3, 2009], retrieved from the internet: http://www.vmware.com/files/pdf/vmotion—datasheet.pdf. |
hp Introduction to Virtual Machine Migration, 2 sheets, webpage [online][retrieved on Jun. 3, 2009], retrieved from the internet: http://docs.hp.com/en/T2767-90067/ch10s01.html. |
Interop Labs What is Cisco NAC?, 2 sheets, [retrieved on Jun. 3, 2009], retrieved from the internet: http://www.interop.com/archive/pdfs/2007-06WhatIsCiscoNAC.pdf. |
VMware VSphere Live migration of virtual machines, 2 sheets, webpage [online][retrieved on Jun. 3, 2009], retrieved from the internet: http://www.vmware.com/products/vi/vc/vmotion.html. |
Cisco Systems—Cisco Network Admission Control (NAC), 2 sheets, webpage [online][retrieved on Jun. 3, 2009], retrieved from the internet: http://www.cisco.com/en/US/netsol/ns466/networking—solutions—package.html. |
Cisco NAC Appliance—Wikipedia, the free encyclopedia, 5 sheets [retrieved on Jun. 3, 2009], retrieved from the internet: http://en.wikipedia.org/wiki/Clean—Access—Agent. |
Microsoft About NAP (Windows), 1 sheet, webpage [online][retrieved on Jun. 3, 2009], retrieved from the internet: http://msdn.microsoft.com/en-us/library/aa369143(VS.85).aspx. |
Amazon Web Services Developer Community: S3 Encryption, posted on Jun. 10, 2009 (1 sheet). |
Amazon Web Services: Introducing Amazon Virtual Private Cloud, 1 sheet [retrieved on Aug. 27, 2009], retrieved from the internet: http://aws.amazon.com/. |
extern blog SensePost;—Blackhat presentation demo vids: Summary, Aug. 2009, 2 sheets. |
Rational Survivability: The Big Four Cloud Computing Providers: Security Compared (Part I), Nov. 26, 2008, 3 sheets. |
Cloud Computing, Cloud Hosting & Online Storage by Rackspace Hosting, 4 sheets [retrieved on Aug. 27, 2009], retrieved from the internet: http://www.rackspacecloud.com/. |
Saied Hosseini Khayat, “Using Communication Encryption to Share a Secret” Aug. 18, 2008, pp. 1-6, Electrical Engineering Dept., Ferdowsi University of Mashhad, Iran. |
Qin Li, et al “Hyper MIP: Hypervisor controlled Mobile IP for Virtual Machine Live Migration across Networks”, 2008, pp. 80-88, 11th IEEE High Assurance Systems Engineering Symposium. |
Koichi Onoue, et al “A Virtual Machine Migration System Based on a CPU Emulator”, 2006, pp. 1-8, IEEE VTDC. |