IP Library Granted Patent US 6,941,470
Granted Patent B1
US 6,941,470 · App. 09/545,286 · Granted Sep 6, 2005

Protected execution environments within a computer system

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 6,941,470
App. No.
09/545,286
Granted
Sep 6, 2005
Kind
B1
Abstract

A protected execution agent installs itself within a file system manager on the computer to control modifications to a protected execution environment by intercepting I/O requests from applications. If an unauthorized application attempts to modify the protected execution environment, the protected execution agent terminates the original I/O request and creates a redirected I/O request that specifies a corresponding directory path within an alternate environment. The requested I/O operation is a carried out by the file system against the alternate environment. A configuration utility is responsible for determining which installed applications are authorized to change the protected execution environment. The configuration utility also establishes a parent-child relationship between an unauthorized application that invokes or “spawns” an authorized application, with the authorized child application being considered unauthorized when performing processes on behalf of the unauthorized parent application.

Claims (81)

1. A method of providing a protected execution environment on a computer comprising:

categorizing each application installed on the computer as authorized or not authorized to modify the protected execution environment.

intercepting an input/output request for a file from an application;

determining if the application is authorized to modify the protected execution environment;

creating a redirected input/output request to an alternate environment when the application is not authorized to modify the protected execution environment and the file is within the protected execution environment; and

submitting the redirected input/output request to a file system manager.

2. The method of claim 1 further comprising:

allowing the redirected input/output request to continue when it is intercepted.

3. The method of claim 1 further comprising:

creating the protected execution environment.

4. The method of claim 1 wherein the protected execution environment comprises a directory for each of the applications that is authorized to modify the protected execution environment.

5. The method of claim 1 wherein the alternate environment comprises a directory associated with an application that is not authorized to modify the protected execution environment.

6. The method of claim 1 wherein the redirected input/output request specifies a directory in the alternate environment that corresponds to a directory in the protected execution environment specified in the input/output request.

7. The method of claim 1 , wherein a parent-child relationship is maintained between an application that invokes another application.

8. The method of claim 1 , wherein determining if the application is authorized to modify the protected execution environment comprises:

designating the application as not authorized to modify the protected execution environment if the application was invoked by another application that is not authorized to modify the protected execution environment.

9. The method of claim 1 , further comprising:

creating a null entry in a mirror directory structure for an executable for each application authorized to modify the protected execution environment,

wherein determining if the application is authorized to modify the protected execution environment comprises:

querying the existence of the executable for the application in the mirror directory structure.

10. The method of claim 9 , further comprising:

maintaining an association between an executing application and a directory path for the executable for the executing application,

wherein querying for the existence of the executable in the mirror data structure comprises:

specifying the directory path for the executable associated with the executing application.

11. A method for operating a computer system with a protected execution environment comprising:

executing a configuration utility to categorize a plurality of applications installed on the computer system as authorized or not authorized to modify the protected execution environment;

defining the protected execution environment based on the authorized applications; and

installing a protected execution agent in a file system to intercept input/output requests submitted by the applications, wherein the protected execution agent directs an input/output request to an alternate environment if the application that submitted the request is not authorized and the request is directed to the protected execution environment, and wherein the alternate environment is defined by the configuration utility when categorizing the plurality of applications.

12. The method of claim 11 wherein the configuration utility defines the protected execution environment when categorizing the plurality of applications.

13. The method of claim 11 wherein the alternate environment is defined based on at least one application that is not authorized.

14. The method of claim 11 , wherein the configuration utility further creates a null entry in a mirror directory structure for an executable for each authorized application and the protected execution agent further queries the existence of the executable for an executing application in the mirror directory structure to determine if the application is authorized.

15. The method of claim 14 , wherein the protected execution agent further maintains an association between the executing application and a directory path for the executable for the executing application.

16. The method of claim 11 , wherein the protected execution agent designates a second application as not authorized if it was invoked by a first application that is not authorized.

17. The method of claim 16 , wherein the protected execution agent maintains a parent-child relationship between the first and second applications.

18. The method of claim 11 , wherein the protected execution agent is installed in a hook chain in a file system manager to intercept the input/output requests before the requests are processed by any other agent installed in the hook chain.

19. The method of claim 11 , wherein the configuration utility is executed prior to providing the computer system to a user and the protected execution agent is installed each time the computer system is booted.

20. The method of claim 11 , further comprising:

saving a copy of the protected execution environment; and

recovering from a failure of the computer system by replacing the protected execution environment with the copy.

21. The method of claim 20 , wherein the copy is saved on the computer system in a secure location.

22. The method of claim 20 , wherein the copy is saved on a remote computer server and downloaded to the computer system.

23. A method of determining a category for an application on a computer comprising:

categorizing the application as a first type; creating a directory in a second directory structure for the application when it is a first type, wherein the second directory structure mirrors a first directory structure that contains an executable for the application;

creating a null entry for the executable for the application in the directory in the second directory structure when the application is the first type; and

querying the existence of the executable for the application in the second directory structure, wherein the application is determined to be the first type when the executable exists.

24. A computer-readable medium having stored thereon computer-executable instructions for performing a method comprising:

categorizing each application installed on the computer as authorized or not authorized to modify the protected execution environment.

intercepting an input/output request for a file from an application;

determining if the application is authorized to modify the protected execution environment;

creating a redirected input/output request to an alternate environment when the application is not authorized to modify the protected execution environment and the file is within the protected execution environment, and

submitting the redirected input/output request to a file system manager.

25. The computer-readable medium of claim 24 having further computer-readable instructions comprising:

allowing the redirected input/output request to continue when it is intercepted.

26. The computer-readable medium of claim 24 having further computer-readable instructions comprising:

creating the protected execution environment from a directory for each of the applications that is authorized to modify the protected execution environment.

27 .The computer-readable medium of claim 24 having further computer-readable instructions comprising:

creating the alternate environment from a directory associated with an application that is not authorized to modify the protected execution environment.

28. The computer-readable medium of claim 24 having further computer-readable instructions comprising:

storing a directory path specified in the input/output request in the redirected input/output request to direct the request to a corresponding directory path in the alternate environment.

29. The computer-readable medium of claim 24 having further computer-readable instructions comprising:

maintaining a parent-child data structure to track between relationships between applications that invoke other applications.

30. The computer-readable medium of claim 24 having further computer-readable instructions comprising:

designating the application as not authorized to modify the protected execution environment if the application was invoked by another application that is not authorized to modify the protected execution environment.

31. The computer-readable medium of claim 24 having further computer-readable instructions comprising:

creating a null entry in a mirror directory structure for an executable for each application authorized to modify the protected execution environment; and

querying the existence of the executable for the application in the mirror directory structure when determining if the application is authorized to modify the protected execution environment.

32. The computer-readable medium of claim 31 having further computer-readable instructions comprising:

maintaining an association between an executing application and a directory path for the executable for the executing application; and

specifying the directory path for the executable associated with the executing application when querying for the existence of the executable in the mirror data structure.

33. A computer system comprising:

a processing unit;

a memory coupled to the processing unit through a system bus;

a computer-readable medium coupled to the processing through the system bus; and

a protected environment agent executing from the computer-readable medium, wherein the protected environment agent causes the processing unit to intercept input/output requests submitted by applications executing on the computer system, causes the processing unit to redirect each input/output request to an alternate environment if the application that submitted the request is not authorized to modify a protected execution environment and the request is directed to the protected execution environment and further categorizes each application installed on the computer as authorized or not authorized to modify the protected execution environment.

34. The computer system of claim 33 further comprising:

a configuration utility executing from the computer-readable medium, wherein the configuration utility causes the processing unit to categorize each application installed on the computer system as authorized or not authorized to modify the protected execution environment and further to cause the processing unit to define the protected execution environment to contain directories associated with the authorized applications.

35. A computer system comprising:

a first means for processing;

a second means coupled to the first means through a system bus;

a third means coupled to the first means through the system bus; and

a fourth means for executing from the computer-readable medium, wherein the fourth means causes the first means to intercept input/output requests submitted by applications executing on the computer system, causes the first means to redirect each input/output request to an alternate environment if the application that submitted the request is not authorized to modify a protected execution environment and the request is directed to the protected execution environment and further categorizes each application installed on the computer as authorized or not authorized to modify the protected execution environment.

Assignments (16)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
MERGER Recorded Nov 15, 2013
From: DELL MARKETING USA L.P.
To: DELL MARKETING L.P.
Reel/Frame 031614/0908 →
MERGER Recorded Oct 21, 2008
From: EVERDREAM CORPORATION
To: DELL MARKETING USA, L.P.
Reel/Frame 021701/0262 →