IP Library Granted Patent US 10,447,656
Granted Patent B2
US 10,447,656 · App. 15/802,378 · Granted Oct 15, 2019

Enforcing per-application VPN policies for applications delivered in virtualized computing environments

Inventors: Sam Zhao (Beijing, CN); Nan Wang (Beijing, CN); Shengbo Teng (Beijing, CN); Jingtao Zhang (Beijing, CN); Jinrong Wu (Beijing, CN); Wen Wang (Beijing, CN)
Assignee: VMware, Inc.
H04L63/0263G06F9/45558H04L63/0272G06F2009/45595H04L63/029H04L63/10H04L63/20
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,447,656
App. No.
15/802,378
Granted
Oct 15, 2019
Kind
B2
Abstract

A VPN tunnel policy is defined on a per-application basis. The VPN tunnel policy may specify that a particular application is permitted to transmit data on a specific VPN tunnel. Subsequently, the specified application is delivered to one or more virtual machines and an application tunnel manager creates a new virtual network interface card (NIC) on the VM, corresponding to the delivered application. The newly created virtual NIC is attached to a specified subnet. The subnet may be a VPN transition network with a connection to a VPN gateway device. The subnet may have been previously defined or generated at the time of assigning the application to the VPN tunnel. Once the virtual NIC has been created on the VM, an OS script is executed to force the delivered application to use the newly created virtual NIC and to prevent users from changing the application and virtual NIC linkage.

Claims (52)

1. A method for enabling per-application virtual private network (VPN) capability during application delivery in a virtualized environment, the method comprising:

receiving a request to deliver an application to a virtual machine (VM), wherein receiving the request to deliver the application to the VM further comprises:

detecting a user login to the VM; and

delivering the application to the virtual machine prior to completing the user login by:

mounting a virtual disk to the virtual machine, the virtual disk containing one or more files that comprise the application; and

modifying one or more registry entries on an operating system (OS) of the virtual machine to make the application executable from the mounted virtual disk;

determining, based on a defined per-application VPN tunnel policy, that the application is permitted to access a VPN tunnel;

generating a virtual network interface controller (NIC) on the virtual machine; and

connecting the virtual NIC to a VPN transition network associated with the VPN tunnel, wherein virtual NIC is generated and attached to the VPN transition network at the time of mounting the virtual disk and making the application executable from the mounted virtual disk and prior to completing the user login.

2. The method of claim 1 , further comprising:

executing an operating system (OS) script on the VM to configure the application to use the virtual NIC attached to the VPN transition network.

3. The method of claim 1 , further comprising:

determining that the per-application VPN tunnel policy has been modified to no longer permit the application to access the VPN tunnel;

disconnecting all virtual machines (VMs) that have been assigned the application from the VPN transition network; and

removing the virtual NIC from the virtual machine.

4. The method of claim 1 , wherein the virtual NIC is generated by invoking an application programming interface (API) of a hypervisor executing the VM on a host computing device in a data center.

5. The method of claim 4 , wherein the VPN transition network is a subnet of a local network in the data center that is configured to link to a VPN tunnel in a remote location.

6. A computing device, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to:

receive a request to deliver an application to a virtual machine (VM), wherein receiving the request to deliver the application to the VM further comprises:

detecting a user login to the virtual machine; and

delivering the application to the virtual machine prior to completing the user login by

mounting a virtual disk to the virtual machine, the virtual disk containing one or more files that comprise the application; and

modifying one or more registry entries on an operating system (OS) of the virtual machine to make the application executable from the mounted virtual disk;

determine, based on a defined per-application VPN tunnel policy, that the application is permitted to access a VPN tunnel;

generate a virtual network interface controller (NIC) on the virtual machine; and

connect the virtual NIC to a VPN transition network associated with the VPN tunnel, wherein virtual NIC is generated and attached to the VPN transition network at the time of mounting the virtual disk and making the application executable from the mounted virtual disk and prior to completing the user login.

7. The computing device of claim 6 , wherein the memory further comprises instructions executed by the at least one processor to cause the computing device to:

execute an operating system (OS) script on the VM to configure the application to use the virtual NIC attached to the VPN transition network.

8. The computing device of claim 6 , wherein receiving the request to deliver the application to the VM further comprises:

determining that the per-application VPN tunnel policy has been modified to no longer permit the application to access the VPN tunnel;

disconnecting all virtual machines (VMs) that have been assigned the application from the VPN transition network; and

removing the virtual NIC from the virtual machine.

9. The computing device of claim 6 , wherein the virtual NIC is generated by invoking an application programming interface (API) of a hypervisor executing the VM on a host computing device in a data center.

10. The computing device of claim 9 , wherein the VPN transition network is a subnet of a local network in the data center that is configured to link to a VPN tunnel in a remote location.

11. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

receiving a request to deliver an application to a virtual machine (VM), wherein receiving the request to deliver the application to the VM further comprises:

detecting a user login to the virtual machine; and

delivering the application to the virtual machine prior to completing the user login by:

mounting a virtual disk to the virtual machine, the virtual disk containing one or more files that comprise the application; and

modifying one or more registry entries on an operating system (OS) of the virtual machine to make the application executable from the mounted virtual disk;

determining, based on a defined per-application VPN tunnel policy, that the application is permitted to access a VPN tunnel;

generating a virtual network interface controller (NIC) on the virtual machine; and

connecting the virtual NIC to a VPN transition network associated with the VPN tunnel, wherein the virtual NIC is generated and attached to the VPN transition network at the time of mounting the virtual disk and making the application executable from the mounted virtual disk and prior to completing the user login.

12. The non-transitory computer readable storage medium of claim 11 , further comprising instructions for:

executing an operating system (OS) script on the VM to configure the application to use the virtual NIC attached to the VPN transition network.

13. The non-transitory computer readable storage medium of claim 11 , further comprising instructions for:

determining that the per-application VPN tunnel policy has been modified to no longer permit the application to access the VPN tunnel;

disconnecting all virtual machines (VMs) that have been assigned the application from the VPN transition network; and

removing the virtual NIC from the virtual machine.

14. The non-transitory computer readable storage medium of claim 11 , wherein the virtual NIC is generated by invoking an application programming interface (API) of a hypervisor executing the VM on a host computing device in a data center.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2017
From: ZHAO, SAM; WANG, NAN; TENG, SHENGBO; ZHANG, JINGTAO; WU, JUDY JINRONG; WANG, WEN
To: VMWARE, INC.
Reel/Frame 044024/0290 →
Continuity (1)
Related Publication 20190132291A1 · May 2, 2019