IP Library Granted Patent US 10,360,059
Granted Patent B2
US 10,360,059 · App. 15/430,491 · Granted Jul 23, 2019

Correlation of network connections and processes in a virtualized computing environment

Inventors: Itamar Tal (Givatayim, IL); Ariel Zeitlin (Kfar Saba, IL)
Assignee: GUARDICORE LTD.
G06F9/45558H04L43/00H04L63/00G06F2009/45583G06F2009/45591G06F2009/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 10,360,059
App. No.
15/430,491
Granted
Jul 23, 2019
Kind
B2
Abstract

A method includes, in a computer, running a hypervisor that allocates resources of a memory and of a network to one or more Virtual Machines (VMs), which run VM processes and communicate over network connections. First information is extracted by monitoring the network connections in the hypervisor. Second information is extracted by directly accessing, in the hypervisor, regions of the memory assigned to the VMs. An association is established between a given network connection and a given VM process, by correlating the first information with the second information.

Claims (33)

1. A method, comprising:

in a computer, running a hypervisor that allocates resources of a memory and of a network to one or more Virtual Machines (VMs), which run VM processes and communicate over network connections;

identifying, by monitoring the network connections in the hypervisor, a VM that is associated with a given network connection;

identifying that the given network connection is associated with a given VM process, by:

reconstructing a physical address of a data structure in a region of the memory assigned to the identified VM, wherein the data structure is managed by a guest operating system of the identified VM and indicates the given process, and wherein reconstructing the physical address is performed by accessing the guest operating system via a cache that caches previously-reconstructed physical addresses; and

directly accessing the data structure, in the hypervisor, at the physical address; and

establishing an association between the given network connection and the given VM process.

2. The method according to claim 1 , wherein reconstructing the physical address comprises cloning the guest operating system, and creating in the cloned guest operating system a process that queries the cloned guest operating system for the physical address and exports the queried physical address.

3. The method according to claim 1 , wherein reconstructing the physical address comprises accessing, on a virtual disk allocated to the guest operating system, a file that indicates the physical address.

4. The method according to claim 1 , wherein accessing the data structure comprises finding a match to one or more parameters of the given connection in a list of currently-active processes of the guest operating system.

5. The method according to claim 1 , wherein accessing the data structure comprises finding a match to one or more parameters of the given connection in a Transmission Control Protocol/Internet Protocol (TCP/IP) lookup table of the guest operating system.

6. The method according to claim 1 , wherein identifying that the given network connection is associated with a given VM process comprises periodically polling the region of the memory.

7. An apparatus, comprising:

a memory; and

a processor, configured to:

run a hypervisor that allocates resources of the memory and of a network to one or more Virtual Machines (VMs), which run VM processes and communicate over network connections;

identify, by monitoring the network connections in the hypervisor, a VM that is associated with a given network connection;

identify that the given network connection is associated with a given VM process, by:

reconstructing a physical address of a data structure in a region of the memory assigned to the identified VM, wherein the data structure is managed by a guest operating system of the identified VM and indicates the given process, and wherein reconstructing the physical address is performed by accessing the guest operating system via a cache that caches previously-reconstructed physical addresses; and

directly accessing the data structure, in the hypervisor, at the physical address; and

establish an association between the given network connection and the given VM process.

8. The apparatus according to claim 7 , wherein the processor is configured to reconstruct the physical address by cloning the guest operating system, and creating in the cloned guest operating system a process that queries the cloned guest operating system for the physical address and exports the queried physical address.

9. The apparatus according to claim 7 , wherein the processor is configured to reconstruct the physical address by accessing, on a virtual disk allocated to the guest operating system, a file that indicates the physical address.

10. The apparatus according to claim 7 , wherein the data structure comprises a list of currently-active processes of the guest operating system, and wherein the processor is configured to find a match to one or more parameters of the given connection in the list of currently-active processes.

11. The apparatus according to claim 7 , wherein the data structure comprises a Transmission Control Protocol/Internet Protocol (TCP/IP) lookup table of the guest operating system, and wherein the processor is configured to find a match to one or more parameters of the given connection in the TCP/IP lookup table.

12. The apparatus according to claim 7 , wherein the processor is configured to identify that the given network connection is associated with a given VM process by periodically polling the regions of the memory.

13. A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a processor, cause the processor to:

run a hypervisor that allocates resources of the memory and of a network to one or more Virtual Machines (VMs), which run VM processes and communicate over network connections;

identify, by monitoring the network connections in the hypervisor, a VM that is associated with a given network connection;

identify that the given network connection is associated with a given VM process, by:

reconstructing a physical address of a data structure in a region of the memory assigned to the identified VM, wherein the data structure is managed by a guest operating system of the identified VM and indicates the given process, and wherein reconstructing the physical address is performed by accessing the guest operating system via a cache that caches previously-reconstructed physical addresses; and

directly accessing the data structure, in the hypervisor, at the physical address; and

establish an association between the given network connection and the given VM process.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2022
From: GUARDICORE LTD.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 061313/0504 →
RELEASE OF SECURITY INTEREST Recorded Oct 12, 2021
From: SILICON VALLEY BANK
To: GUARDICORE LTD
Reel/Frame 057768/0936 →
SECURITY INTEREST Recorded Jan 14, 2019
From: GUARDICORE LTD
To: SILICON VALLEY BANK
Reel/Frame 047989/0806 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2017
From: TAL, ITAMAR; ZEITLIN, ARIEL
To: GUARDICORE LTD.
Reel/Frame 041232/0043 →
Continuity (1)
Related Publication 20180232248A1 · Aug 16, 2018