The present invention discloses methods for effective network-security inspection in virtualized environments, the methods including the steps of: providing a data packet, embodied in machine-readable signals, being sent from a sending virtual machine to a receiving virtual machine via a virtual switch; intercepting the data packet by a sending security agent associated with the sending virtual machine; injecting the data packet into an inspecting security agent associated with a security virtual machine via a direct transmission channel which bypasses the virtual switch; forwarding the data packet to the security virtual machine by employing a packet-forwarding mechanism; determining, by the security virtual machine, whether the data packet is allowed for transmission; upon determining the data packet is allowed, injecting the data packet back into the sending security agent via the direct transmission channel; and forwarding the data packet to the receiving virtual machine via the virtual switch.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for effective network-security inspection of virtual traffic over a network, in virtualized environments, the method comprising the steps of: (a) providing a data packet, embodied in machine-readable signals, being sent from a sending virtual machine to a receiving virtual machine via a virtual switch; (b) intercepting said data packet by a sending security agent associated with said sending virtual machine; (c) injecting said data packet into an inspecting security agent associated with a security virtual machine via a direct transmission channel which bypasses said virtual switch; (d) forwarding said data packet to said security virtual machine by a network interface card (NIC), said forwarding by said NIC including buffering and aggregating packets to increase performance of data packet traffic over said network; (e) determining, by said security virtual machine, whether said data packet is allowed for transmission; (f) upon determining said data packet is allowed, injecting said data packet back into said sending security agent via said direct transmission channel; (g) forwarding said data packet to said receiving virtual machine via said virtual switch; and, (h) prior to said step (f), upon determining said data packet is allowed, tagging said data packet as a security-cleared packet; and wherein said step (g) includes: (i) intercepting said security-cleared packet by a receiving security agent associated with said receiving virtual machine; (ii) inspecting, by said receiving security agent, whether an incoming packet has a security-cleared tag; (iii) upon determining said incoming packet has said security-cleared tag, transmitting said incoming packet to said receiving virtual machine; (iv) upon determining said incoming packet does not have said security-cleared tag, forwarding said incoming packet to said security virtual machine; and, (v) performing said steps (e)-(g) on said incoming packet.
2. The method of claim 1 , wherein said security virtual machine includes at least one security component selected from the group consisting of: a firewall, an Intrusion Prevention System (IPS), an Intrusion Detection System (IDS), a Data-Loss Prevention DLP) system, a Virtual Private Network (VPN), a Uniform Resource Locator (URL) filter, a malware filter, and a web filter.
3. The method of claim 1 , wherein said packet-forwarding mechanism is a standard packet-transmittal mechanism provided by a hypervisor virtualization infrastructure.
4. The method of claim 1 , wherein said packet-forwarding mechanism is a direct interface into said security virtual machine.
5. The method of claim 4 , wherein said direct interface is configured to utilize a component selected from the group consisting of: a memory module, a cache memory module, and an associated network interface card (NIC) resource.
6. The method of claim 1 , wherein said sending virtual machine and said receiving virtual machine share a common physical machine.
7. The method of claim 1 , the method further comprising the steps of: (i) prior to said step (c), determining, by said sending security agent, whether said data packet is allowed for transmission; (j) implementing a security-processing mechanism, by said sending security agent, on said data packet; (k) by said sending security agent: upon determining said data packet needs further security processing, continuing to said step (c); (l) by said sending security agent: upon determining said data packet is not allowed, dropping said data packet; and (m) by said sending security agent: upon determining said data packet is allowed, continuing to said step (g).
8. A non-transitory computer-readable storage medium having computer-readable code embodied on the computer-readable storage medium, the computer-readable code comprising: (a) program code for intercepting a data packet embodied in machine-readable signals, transmitted over a network, said data packet being sent from a sending virtual machine to a receiving virtual machine, by a sending security agent associated with said sending virtual machine via a virtual switch; (b) program code for injecting said data packet into an inspecting security agent associated with a security virtual machine via a direct transmission channel which bypasses said virtual switch; (c) program code for causing forwarding of said data packet to said security virtual machine by a network interface card (NIC), said forwarding by said NIC including buffering and aggregating packets to increase performance of data packet traffic over said network; (d) program code for determining, by said security virtual machine, whether said data packet is allowed for transmission; (e) program code for, upon determining said data packet is allowed, injecting said data packet back into said sending security agent via said direct transmission channel; (f) program code for forwarding said data packet to said receiving virtual machine via said virtual switch; and, (g) program code for, prior to executing said program code (e), upon determining said data packet is allowed, tagging said data packet as a security-cleared packet; and wherein said program code (f) further includes: (i) program code for intercepting said security-cleared packet by a receiving security agent associated with said receiving virtual machine; (ii) program code for inspecting, by said receiving security agent, whether an incoming packet has a security-cleared tag; (iii) program code for, upon determining said incoming packet has said security-cleared tag, transmitting said incoming packet to said receiving virtual machine; (iv) program code for, upon determining said incoming packet does not have said security-cleared tag, forwarding said incoming packet to said security virtual machine; and (v) program code for performing said program code (d)-(f) on said incoming packet.
9. The storage medium of claim 8 , wherein said security virtual machine includes at least one security component selected from the group consisting of: a firewall, an Intrusion Prevention System (IPS), an Intrusion Detection System (IDS), a Data-Loss Prevention (DLP) system, a Virtual Private Network (VPN), a Uniform Resource Locator (URL) filter, a malware filter, and a web filter.
10. The storage medium of claim 8 , wherein said packet-forwarding mechanism is a standard packet-transmittal mechanism provided by a hypervisor virtualization infrastructure.
11. The storage medium of claim 8 , wherein said packet-forwarding mechanism is a direct interface into said security virtual machine.
12. The storage medium of claim 11 , wherein said direct interface is configured to utilize a component selected from the group consisting of: a memory module, a cache memory module, and an associated network interface card (NIC) resource.
13. The storage medium of claim 8 , wherein said sending virtual machine and said receiving virtual machine share a common physical machine.
14. The storage medium of claim 8 , the computer-readable code further comprising: (h) program code for, prior to said program code (b), determining, by said sending security agent, whether said data packet is allowed for transmission; (i) program code for, implementing a security-processing mechanism, by said sending security agent, on said data packet; (j) program code for, by said sending security agent: upon determining said data packet needs further security processing, continuing to said program code (b); (k) program code for, by said sending security agent: upon determining said data packet is not allowed, dropping said data packet; and (l) program code for, by said sending security agent: upon determining said data packet is allowed, continuing to said program code (f).
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
July 23, 2009
June 6, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.