IP Library › Granted Patent US 10,613,897
Granted Patent B1
US 10,613,897 · App. 15/385,952 · Granted Apr 7, 2020

Systems and methods for creating program-specific execution environments

Inventors: Ernie Wang (Torrance, CA); Charlotte Chang (Northridge, CA); Haik Mesropian (Glendale, CA)
Assignee: CA, Inc.
G06F9/4843G06F9/448
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,613,897
App. No.
15/385,952
Filed
Dec 21, 2016
Granted
Apr 7, 2020
Kind
B1
Art Unit
2192
USPC
717/103
Abstract

The disclosed computer-implemented method for creating program-specific execution environments may include (1) identifying a privileged software program to be executed on a client system in a program-specific execution environment, (2) establishing the program-specific execution environment by (a) determining that at least one process executing on the client system is not essential to operation of the privileged software program to be executed on the client system and (b) suspending execution of the non-essential process in response to identifying the non-essential process, and (3) initiating execution of the privileged software program in the program-specific execution environment. Various other methods, systems, and computer-readable media are also disclosed.

Claims (56)

1. A computer-implemented method for creating program-specific execution environments, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a privileged software program to be executed on a client system in a program-specific execution environment;

establishing the program-specific execution environment by:

determining that at least one process currently executing on the client system is not essential to operation of the privileged software program to be executed on the client system, wherein determining that the process is not essential to operation of the privileged software further comprises:

querying a process dependency database using a unique identifier for the privileged software program; and

receiving, in response to querying the process dependency database, an indication that the process is not essential to operation of the privileged software program;

suspending execution of the non-essential process in response to identifying the non-essential process, wherein suspending execution of the non-essential process comprises intercepting an entry point of the non-essential process;

identifying at least one other process executing on the client system that performs at least one function essential to operation of the privileged software program and at least one function not essential to operation of the privileged software program;

disabling the at least one other process in response to identifying the at least one other process; and

replacing the at least one other process with at least one replacement process that performs the essential function but does not perform the non-essential function, wherein the at least one other process comprises a device driver; and

initiating, after suspending execution of the non-essential process and replacing the at least one other process, execution of the privileged software program in the program-specific execution environment.

2. The computer-implemented method of claim 1 , wherein suspending execution of the non-essential process comprises using at least one application programming interface of an operating system of the client system to suspend the non-essential process.

3. The computer-implemented method of claim 1 , further comprising:

intercepting an attempt to initiate a new process not yet executing on the client system;

determining that the new process is not essential to operation of the privileged software program; and

in response to determining that the new process is non-essential, preventing the new process from initiating.

4. The computer-implemented method of claim 1 , further comprising:

identifying at least one task to be performed by the privileged software program;

identifying a set of functions of the privileged software program essential to performing the task; and

preventing the privileged software program from performing at least one function not included in the set of essential functions.

5. The computer-implemented method of claim 4 , wherein preventing the privileged software program from performing at least one function not included in the set of essential functions comprises preventing the privileged software program from initiating a process.

6. A system for creating program-specific execution environments, the system comprising:

an identification module, stored in a memory, that identifies a privileged software program to be executed on a client system in a program-specific execution environment;

a determination module, stored in the memory, and a control module, stored in memory, that establish the program-specific execution environment by:

the determination module determining that at least one process currently executing on the client system is not essential to operation of the privileged software program to be executed on the client system, wherein the determination module determines that the process is not essential to operation of the privileged software by:

querying a process dependency database using a unique identifier for the privileged software program; and

receiving, in response to querying the process dependency database, an indication that the process is not essential to operation of the privileged software program;

the control module suspending execution of the non-essential process in response to identifying the non-essential process, wherein the control module suspends execution of the non-essential process by intercepting an entry point of the non-essential process;

the determination module identifying at least one other process executing on the client system that performs at least one function essential to operation of the privileged software program and at least one function not essential to operation of the privileged software program;

the control module disabling the at least one other process in response to the determination module identifying the at least one other process; and

the control module replacing the at least one other process with at least one replacement process that performs the essential function but does not perform the non-essential function, wherein the at least one other process comprises a device driver;

an initiation module, stored in the memory, that initiates, after the control module suspends execution of the non-essential process and replaces the at least one other process, execution of the privileged software program in the program-specific execution environment; and

at least one physical processor configured to execute the identification module, the determination module, the control module, and the initiation module.

7. The system of claim 6 , wherein the control module suspends execution of the non-essential process by using at least one application programming interface of an operating system of the client system to suspend the non-essential process.

8. The system of claim 6 , wherein: the determination module:

intercepts an attempt to initiate a new process not yet executing on the client system; and

determines that the new process is not essential to operation of the privileged software program; and

the control module, in response to the determination module determining that the new process is non-essential, prevents the new process from initiating.

9. The system of claim 6 , wherein:

the identification module:

identifies at least one task to be performed by the privileged software program; and

identifies a set of functions of the privileged software program essential to performing the task; and

the control module prevents the privileged software program from performing at least one function not included in the set of essential functions.

10. The system of claim 9 , wherein the control module prevents the privileged software program from performing the non-essential function by preventing the privileged software program from initiating a process.

11. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a privileged software program to be executed on a client system in a program-specific execution environment;

establish the program-specific execution environment by:

determining that at least one process currently executing on the client system is not essential to operation of the privileged software program to be executed on the client system, wherein determining that the process is not essential to operation of the privileged software further comprises:

querying a process dependency database using a unique identifier for the privileged software program; and

receiving, in response to querying the process dependency database, an indication that the process is not essential to operation of the privileged software program;

suspending execution of the non-essential process in response to identifying the non-essential process, wherein suspending execution of the non-essential process comprises intercepting an entry point of the non-essential process;

identifying at least one other process executing on the client system that performs at least one function essential to operation of the privileged software program and at least one function not essential to operation of the privileged software program;

disabling the at least one other process in response to identifying the at least one other process; and

replacing the at least one other process with at least one replacement process that performs the essential function but does not perform the non-essential function, wherein the at least one other process comprises a device driver; and

initiate, after suspending execution of the non-essential process, execution of the privileged software program in the program-specific execution environment.

12. The non-transitory computer-readable medium of claim 11 , wherein the one or more computer-readable instructions cause the computing device to suspend execution of the non-essential process by causing the computing device to use at least one application programming interface of an operating system of the client system to suspend the non-essential process.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2016
From: WANG, ERNIE; CHANG, CHARLOTTE; MESROPIAN, HAIK
To: SYMANTEC CORPORATION
Reel/Frame 041079/0864 →
Cited By (5)
US 12,455,971 US 12,613,953 US 12,645,382 US 12,650,786 US 12,711,034