IP Library Granted Patent US 11,743,289
Granted Patent B2
US 11,743,289 · App. 17/880,346 · Granted Aug 29, 2023

Managing transmissions of virtual machines using a network interface controller

Inventors: Konstantin Malkov (Moscow, RU); Ilya Mishev (Penza, RU)
Assignee: Acronis International GmbH
H04L63/1466G06F9/45558H04L63/0227H04L63/1408G06F2009/45587G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,743,289
App. No.
17/880,346
Granted
Aug 29, 2023
Kind
B2
Abstract

Disclosed herein are systems and method for providing agentless security of virtual machines. In one aspect, the method intercepts, by a virtual switch filtering extension of an extensible virtual switch on a host processor, a data packet in an outbound transmission from a virtual machine to a destination device. The method blocks, by the virtual switch filtering extension, transmission of the data packet from the virtual machine to the destination device based on determining non-compliance with a set of predefined rules of the first virtual machine. The method generates a first event indicative of the blocking and creates a filtering log comprising a list of events, filtered by the virtual switch filtering extension, including the first event. The filtering log is either transmitted or cached based on whether accessibility is available to a management service database.

Claims (67)

1. A method of providing agentless security of virtual machines, comprising:

intercepting, by a virtual switch filtering extension of an extensible virtual switch on a host processor, a data packet in an outbound transmission from a virtual machine to a destination device, wherein the virtual switch filtering extension operates on a Hyper-V hypervisor software module on the host processor and is also configured to intercept data packets in inbound transmissions to the virtual machine using a kernel mode driver;

determining that a source virtual port identifier and a source network interface controller (NIC) index number indicated in the data packet correspond to a first virtual machine of a plurality of virtual machines on the host processor;

blocking, by the virtual switch filtering extension, transmission of the data packet from the first virtual machine to the destination device based on determining non-compliance with a set of predefined rules of the first virtual machine;

generating a first event indicative of the blocking;

creating a filtering log comprising a list of events, filtered by the virtual switch filtering extension, including the first event;

determining whether access is available to a management service database;

in response to determining that the access is available, transmitting the filtering log to the management service database; and

in response to determining that the access is unavailable, caching the filtering log by a host management module for later transmission.

2. The method of claim 1 , wherein determining that the source virtual port identifier and the source network interface controller (NIC) index number indicated in the data packet correspond to the first virtual machine on the host processor, further comprises:

comparing, by the virtual switch filtering extension, both the source virtual port identifier and the source network interface controller (NIC) index number indicated in the data packet with entries of a firewall location table that maps virtual port identifiers and NIC index numbers to global unique identifiers (GUIDs) of virtual machines on the host processor; and

determining, based on the comparing, that the source virtual port identifier and the source NIC index number correspond to a corresponding global unique identifier (GUID) of the first virtual machine on the host processor.

3. The method of claim 2 , wherein each virtual machine on the host processor is associated with a respective GUID that is linked to a respective set of predefined rules, and wherein blocking the transmission of the data packet comprises:

retrieving the set of predefined rules linked to the corresponding GUID of the first virtual machine;

comparing, by the virtual switch filtering extension, parameters of the data packet with protocol-specific parameters listed in the set of predefined rules; and

in response to determining that the data packet is not in compliance with the set of predefined rules associated with the first virtual machine, blocking the transmission of the data packet.

4. The method of claim 1 , wherein the destination device is a second virtual machine on the host processor.

5. The method of claim 1 , further comprising:

intercepting another data packet being transmitted from the destination device to the first virtual machine on the host processor;

identifying a corresponding GUID of the first virtual machine based on a destination virtual port number and a destination NIC index number comprised in the another data packet;

retrieving the set of predefined rules linked to the corresponding GUID of the first virtual machine; and

in response to determining that the another data packet is not in compliance with the set of predefined rules associated with the first virtual machine, preventing, by the virtual switch filtering extension, transmission of the another data packet from the destination device to the first virtual machine.

6. The method of claim 1 , further comprising:

intercepting another data packet being transmitted from the first virtual machine to the destination device; and

in response to determining that the another data packet is in compliance with the set of predefined rules associated with the first virtual machine, allowing, by the virtual switch filtering extension, transmission of the another data packet from the first virtual machine to the destination device.

7. The method of claim 1 , further comprising:

intercepting another data packet being transmitted from another virtual machine on the host processor to the destination device;

determining a respective GUID of the another virtual machine based on an another source virtual port number and another source NIC index number comprised in the another data packet;

retrieving another set of predefined rules linked to the respective GUID of the another virtual machine; and

in response to determining that the another data packet is in compliance with the another set of predefined rules associated with the another virtual machine, allowing, by the virtual switch filtering extension, transmission of the another data packet from the another virtual machine.

8. The method of claim 1 , wherein the virtual switch filtering extension further comprises a stateful packet inspection table, and wherein the set of predefined rules comprise one or more stateful rules.

9. The method of claim 1 , further comprising:

comparing outgoing traffic statistics of the first virtual machine with an outgoing allocation of maximum bandwidth for the first virtual machine; and

in response to determining that (1) the outgoing traffic statistics exceeds the outgoing allocation and (2) an allowable outgoing data packet is pending, deferring the data packet by returning the data packet to a back of an outgoing traffic queue.

10. The method of claim 9 , further comprising:

monitoring a currently available data quota of the first virtual machine, wherein the currently available data quota comprises a difference between the maximum bandwidth and the outgoing traffic statistics for the first virtual machine; and

injecting the deferred data packet to a front of the outgoing traffic queue.

11. The method of claim 1 , further comprising:

creating a filtering log comprising a list of events filtered by the virtual switch filtering extension;

determining whether access is available to a management service database;

in response to determining that the access is available, transmitting the filtering log to the management service database; and

in response to determining that the access is unavailable, caching the filtering log by a host management module for later transmission.

12. The method of claim 1 , wherein the data packet is identified as being an Internet Protocol packet, and wherein the set of predefined rules comprise one or more Internet Protocol rules for the first virtual machine.

13. The method of claim 1 , wherein the intercepting further comprises: monitoring digital data communication between the destination device and the first virtual machine using the kernel mode driver with the virtual switch filtering extension, wherein the digital data communication comprises the data packet.

14. A system of providing agentless security of virtual machines, comprising:

a host processor comprising an extensible virtual switch with a virtual switch filtering extension configured to:

intercept a data packet in an outbound transmission from a virtual machine to a destination device, wherein the virtual switch filtering extension operates on a Hyper-V hypervisor software module on the host processor and is also configured to intercept data packets in inbound transmissions to the virtual machine using a kernel mode driver;

determine that a source virtual port identifier and a source network interface controller (NIC) index number indicated in the data packet correspond to a first virtual machine of a plurality of virtual machines on the host processor;

block transmission of the data packet from the first virtual machine to the destination device based on determining non-compliance with a set of predefined rules of the first virtual machine;

generate a first event indicative of the blocking;

create a filtering log comprising a list of events, filtered by the virtual switch filtering extension, including the first event;

determine whether access is available to a management service database;

in response to determining that the access is available, transmit the filtering log to the management service database; and

in response to determining that the access is unavailable, cache the filtering log by a host management module for later transmission.

15. The system of claim 14 , wherein the virtual switch filtering extension is configured to determine that the source virtual port identifier and the source network interface controller (NIC) index number indicated in the data packet correspond to the first virtual machine on the host processor by:

comparing both the source virtual port identifier and the source network interface controller (NIC) index number indicated in the data packet with entries of a firewall location table that maps virtual port identifiers and NIC index numbers to global unique identifiers (GUIDs) of virtual machines on the host processor; and

determining, based on the comparing, that the source virtual port identifier and the source NIC index number correspond to a corresponding global unique identifier (GUID) of the first virtual machine on the host processor.

16. The system of claim 15 , wherein each virtual machine on the host processor is associated with a respective GUID that is linked to a respective set of predefined rules, and wherein the virtual switch filtering extension is configured to block the transmission of the data packet by:

retrieving the set of predefined rules linked to the corresponding GUID of the first virtual machine;

comparing, by the virtual switch filtering extension, parameters of the data packet with protocol-specific parameters listed in the set of predefined rules; and

in response to determining that the data packet is not in compliance with the set of predefined rules associated with the first virtual machine, blocking the transmission of the data packet.

17. The system of claim 14 , wherein the destination device is a second virtual machine on the host processor.

18. The system of claim 14 , wherein the virtual switch filtering extension is further configured to:

intercept another data packet being transmitted from the destination device to the first virtual machine on the host processor;

identify a corresponding GUID of the first virtual machine based on a destination virtual port number and a destination NIC index number comprised in the another data packet;

retrieve the set of predefined rules linked to the corresponding GUID of the first virtual machine; and

in response to determining that the another data packet is not in compliance with the set of predefined rules associated with the first virtual machine, prevent transmission of the another data packet from the destination device to the first virtual machine.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENTS LISTED BY DELETING PATENT APPLICATION NO. 18388907 FROM SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 66797 FRAME 766. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Nov 13, 2024
From: ACRONIS INTERNATIONAL GMBH
To: MIDCAP FINANCIAL TRUST
Reel/Frame 069594/0136 →
SECURITY INTEREST Recorded Mar 14, 2024
From: ACRONIS INTERNATIONAL GMBH
To: MIDCAP FINANCIAL TRUST
Reel/Frame 066797/0766 →