IP Library Granted Patent US 10,089,458
Granted Patent B2
US 10,089,458 · App. 14/037,634 · Granted Oct 2, 2018

Separate, disposable execution environment for accessing unverified content

Inventors: Andrew Borzycki (Killara, AU); Mallikharjuna Reddy Deva (Sydney, AU); Richard Croft (Sydney, AU); Hao Wang (Sydney, AU)
Assignee: Citrix Systems, Inc.
G06F21/53G06F9/45533
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,089,458
App. No.
14/037,634
Granted
Oct 2, 2018
Kind
B2
Abstract

Methods and systems are disclosed for opening unverified content in a separate, disposable virtualized environment using a temporary virtual machine (VM). In one example, the disclosed method includes intercepting a request to open/access unverified content from a third-party remote server, and comparing the particular information/attributes of the unverified content against predetermined criteria. Then, the user device may connect using a remote presentation protocol to the temporary VM in the separate, disposable environment such that the output of the unverified content may be transported to and displayed in the separate, disposable environment. The connection with the temporary VM may be terminated and the separate, disposable environment may be wiped clean to reduce the risk of malicious code in the unverified content.

Claims (109)

1. A method comprising:

intercepting, on a client device, a request to open unverified content;

determining, by an application resolver without user intervention, that the unverified content is designated for opening in a disposable environment;

causing the unverified content to be uploaded to a cloud file storage;

causing a virtualization server to:

provision a temporary virtual machine in the disposable environment;

download the unverified content to a storage allocated to the temporary virtual machine; and

open the downloaded unverified content using the storage allocated to the temporary virtual machine;

receiving, by the client device and from the virtualization server, a confirmation that the temporary virtual machine is ready to connect;

launching, on the client device, a client agent configured to communicate via a remote presentation protocol with the temporary virtual machine;

connecting, by the client agent, to the temporary virtual machine in the disposable environment;

displaying, by the client agent and on the client device, an output resulting from the opening of the unverified content using the storage allocated to the temporary virtual machine;

responsive to a determination that the unverified content is benign:

receiving, by the client device, display configuration information associated with the opened unverified content at the temporary virtual machine, wherein the display configuration information indicates a currently displayed portion of the unverified content;

downloading, by the client device, the unverified content;

opening the unverified content at the client device;

modifying a display configuration of the opened unverified content at the client device using the received display configuration information to display the currently displayed portion of the unverified content;

switching automatically the display, on the client device, from the output resulting from the opening of the unverified content at the temporary virtual machine to the opened unverified content at the client device; and

terminating the connection with the temporary virtual machine.

2. The method of claim 1 , wherein the intercepting the request to open the unverified content comprises:

registering, on the client device, the application resolver as a handler for a particular file type; and

receiving, on the client device, the request to open the unverified content, wherein a file type of the unverified content meets the particular file type.

3. The method of claim 1 , wherein the determining that the unverified content is designated for opening in the disposable environment comprises:

comparing a file type of the unverified content against a stored list of file types, wherein the stored list of file types indicates different file types and indicates whether each file type in the stored list of file types is to be opened in the disposable environment; and

determining, based on the comparing, whether the unverified content is designated for opening in the disposable environment.

4. The method of claim 1 , wherein the determination that the unverified content is benign comprises:

capturing an image of the temporary virtual machine;

comparing the captured image of the temporary virtual machine to an original image of the temporary virtual machine before the opening of the unverified content in the temporary virtual machine; and

determining, based on the comparing, whether the unverified content is benign.

5. The method of claim 1 , further comprising:

responsive to a determination that the unverified content is malicious:

causing the virtualization server to destroy the temporary virtual machine;

deleting the unverified content in the cloud file storage; and

preventing the client device from opening the unverified content.

6. The method of claim 1 , wherein the receiving the confirmation comprises:

receiving, by a notification service on the client device and from the virtualization server, a push notification indicating that the temporary virtual machine is ready to connect, wherein the push notification comprises connection information for the client device to connect to the temporary virtual machine via the remote presentation protocol; and

waking, the client device, from a sleep mode in response to receiving the push notification.

7. The method of claim 1 , wherein causing the virtualization server to provision the temporary virtual machine in the disposable environment further comprises:

sending, to the virtualization server, a link to the unverified content uploaded to the cloud file storage; and

causing the temporary virtual machine to retrieve the unverified content from the cloud file storage.

8. The method of claim 1 , wherein the causing the unverified content to be uploaded to the cloud file storage comprises:

caching the unverified content in an intermediate server between the client device and a third party server;

preventing downloading of the unverified content to the client device; and

sending, from the intermediate server and to the cloud file storage, the unverified content.

9. The method of claim 1 , wherein the unverified content is determined to be benign based on the unverified content not modifying one or more system registry files of the temporary virtual machine and not embedding monitoring code on the temporary virtual machine.

10. A system comprising:

a display monitor;

a network interface;

a computer processor; and

a tangible computer memory storing computer-executable instructions that, when executed by the computer processor, cause the system to:

intercept a request to open unverified content from a remote e-mail server;

determine, by an application resolver, that the unverified content is designated for opening in a disposable environment, wherein the application resolver is registered as a handler for the unverified content that meets particular criterion;

cause the unverified content to be uploaded to a cloud file storage;

cause a virtualization server to:

provision a temporary virtual machine in the disposable environment;

download the unverified content to a storage allocated to the temporary virtual machine; and

open the downloaded unverified content using the storage allocated to the temporary virtual machine;

receive a confirmation from the virtualization server that the temporary virtual machine in the disposable environment is ready to connect;

launch a client agent configured to communicate through the network interface using at least a remote presentation protocol with the temporary virtual machine;

connect, through the network interface using the client agent, to the temporary virtual machine in the disposable environment;

display, on the display monitor, an output resulting from the opening of the unverified content using the storage allocated to the temporary virtual machine;

responsive to a determination that the unverified content is benign:

receive display configuration information associated with the opened unverified content at the temporary virtual machine, wherein the display configuration information indicates a currently displayed portion of the unverified content;

download, by the client agent, the unverified content;

open, by the client agent, the unverified content;

modifying a display configuration of the opened unverified content using the received display configuration information to display the currently displayed portion of the unverified content; and

switch automatically the display, on the display monitor, from the output resulting from the opening of the unverified content at the temporary virtual machine to the opened unverified content;

terminate a connection with the temporary virtual machine in the disposable environment;

cause the virtualization server to destroy the temporary virtual machine and the disposable environment; and

cause the virtualization server to delete the unverified content in the cloud file storage.

11. The system of claim 10 , wherein a first machine installed with a hypervisor associated with the virtualization server is periodically rebooted and re-imaged with a base image to ensure the hypervisor is cleaned of any malicious content.

12. The system of claim 10 , further comprising:

an intermediate server positioned between the computer processor and the remote e-mail server, wherein the intermediate server is configured to cache the unverified content and transmit the cached unverified content to the cloud file storage.

13. The system of claim 10 , wherein the determination that the unverified content is benign comprises:

capturing an image of the temporary virtual machine;

comparing the captured image of the temporary virtual machine to an original image of the temporary virtual machine before the opening of the unverified content in the temporary virtual machine; and

determining, based on the comparing, whether the unverified content is benign.

14. The system of claim 10 , wherein the tangible computer memory further stores computer-executable instructions that, when executed by the computer processor, further cause the system to:

responsive to a determination that the unverified content is malicious:

causing the virtualization server to destroy the temporary virtual machine;

deleting the unverified content in the cloud file storage; and

preventing the opening of the unverified content.

15. A system comprising:

a network interface;

a computer processor; and

a tangible computer memory storing computer-executable instructions that, when executed by the computer processor, cause the system to:

receive a request to open unverified content;

cause the unverified content to be downloaded to the tangible computer memory;

provision a temporary virtual machine in a disposable environment;

send a confirmation to a user device that the temporary virtual machine in the disposable environment is ready to connect;

connect the temporary virtual machine in the disposable environment through the network interface to the user device using at least a remote presentation protocol;

open the downloaded unverified content in the temporary virtual machine in the disposable environment;

cause a display, at the user device, of an output resulting from the opening of the downloaded unverified content at the temporary virtual machine in the disposable environment;

determine that the downloaded unverified content is benign based on a comparison of an image of the disposable environment with an original image of the disposable environment before the opening of the downloaded unverified content in the disposable environment;

responsive to the determining that the downloaded unverified content is benign:

transmit, to the user device, display configuration information associated with the opened downloaded unverified content at the temporary virtual machine in the disposable environment, wherein the display configuration information indicates a currently displayed portion of the unverified content; and

cause the display, at the user device, to switch automatically from the output resulting from the opening of the downloaded unverified content at the temporary virtual machine in the disposable environment to a display of the currently displayed portion of the unverified content local to the user device by causing the unverified content to be opened at the user device using the transmitted display configuration information;

terminate the connection between the temporary virtual machine and the user device;

cause the temporary virtual machine to be destroyed; and

delete the downloaded unverified content in the tangible computer memory.

16. The system of claim 15 , further comprising a hypervisor with a pool of preemptively provisioned virtual machines, and wherein the provisioning of the temporary virtual machine in the disposable environment further comprises selecting a virtual machine from the pool of preemptively provisioned virtual machines based on the downloaded unverified content.

17. The system of claim 16 , wherein a first machine installed with the hypervisor is periodically rebooted and re-imaged with a base image to ensure the hypervisor is cleaned of any malicious content.

18. The system of claim 15 , wherein the causing the unverified content to be downloaded to the tangible computer memory comprises:

caching the unverified content in an intermediate server between the user device and a remote server;

preventing downloading of the unverified content to the user device; and

retrieving, from the intermediate server, the unverified content.

19. The system of claim 15 , wherein the sending the confirmation to the user device that the temporary virtual machine in the disposable environment is ready to connect comprises:

sending, to the user device, a push notification indicating that the temporary virtual machine is ready to connect, wherein the push notification comprises connection information for the user device to connect to the temporary virtual machine via the remote presentation protocol; and

causing, the user device, to wake from a sleep mode in response to receiving the push notification.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2013
From: BORZYCKI, ANDREW; DEVA, MALLIKHARJUNA REDDY; CROFT, RICHARD; WANG, HAO
To: CITRIX SYSTEMS, INC.
Reel/Frame 031287/0240 →
Continuity (1)
Related Publication 20150089497A1 · Mar 26, 2015
Cited By (1)
US 12,255,882