IP Library Granted Patent US 8,127,316
Granted Patent B1
US 8,127,316 · App. 11/947,695 · Granted Feb 28, 2012

System and method for intercepting process creation events

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 8,127,316
App. No.
11/947,695
Granted
Feb 28, 2012
Kind
B1
Abstract

A system for detecting creation of a program instance includes an interceptor routine that obtains a parameter corresponding to a characteristic of a program instance and an interceptor module that can be injected into a native operating system process. In certain examples, the interceptor module can replace an address of a selected routine in an address table with an address to the interceptor routine, such that the native operating system process can call the interceptor routine in place of the selected routine. Additionally, the system can include a comparison module that compares the parameter to a set of identified programs to determine whether the program instance corresponds to at least one of the identified programs. The system can also include a security module that can modify execution of the program instance based at least in part on a determination that the program instance corresponds to at least one identified program.

Claims (52)

1. A computer-implemented method of detecting creation of processes, the method comprising:

injecting an interceptor module into a native operating system process responsible for process creation;

said injecting comprising replacing, with the interceptor module, an address of a selected routine in an address table with an address to an interceptor routine of the interceptor module such that the native operating system process is configured to call the interceptor routine in place of the selected routine, wherein the address table is an import table of a software library configured to be linked into the native operating system process;

detecting, with the interceptor routine, creation of a new process by the native operating system process;

in response to said detecting creation of the new process, obtaining at least one parameter from the native operating system process using the interceptor routine, wherein the at least one parameter comprises a name of the new process;

analyzing the at least one parameter to determine whether the name of the new process corresponds to a program that is to be controlled based on a user-defined policy; and

controlling the new process in response to determining that the new process is to be controlled based on the user-defined policy, wherein said controlling comprises:

saving the at least one parameter,

causing the new process to terminate to thereby prevent the new process from executing, and

automatically creating, with a system account, a third process having the at least one parameter, thereby enabling the system account to receive full access rights to the third process instead of a user who started the new process having the full access rights, thereby preventing the user from being able to create a malicious child thread from the third process.

2. The method of claim 1 , wherein the native operating system process is a Client/Server Runtime Subsystem Service (csrss.exe) process in a Microsoft Windows® operating system.

3. The method of claim 1 , wherein the native operating system process is a Local Security Authority Subsystem Service (lsass.exe) process in a Microsoft Windows® operating system.

4. The method of claim 1 , wherein controlling the second process comprises creating a security token for the second process.

5. The method of claim 4 , wherein creating the security token for the second process comprises providing non-administrator access rights to the security token.

6. The method of claim 1 , wherein the address table is an import table of a software library configured to be linked into the native operating system process.

7. The method of claim 1 , wherein obtaining the at least one parameter comprises reading at least one routine parameter passed into the interceptor routine.

8. The method of claim 1 , wherein analyzing at least one parameter comprises comparing a name of the process to a whitelist of program names.

9. The method of claim 1 , wherein the interceptor module analyzes the at least one parameter.

10. The method of claim 1 , wherein the interceptor module controls the second process.

11. The method of claim 1 , further comprising receiving the user-defined policy from a management server remote to a computing device comprising the native operating system process and the interceptor module, the user-defined policy providing rules for controlling the new process.

12. The method of claim 1 , wherein the method is implemented by a computer system comprising computer hardware.

13. The method of claim 12 , wherein the computer system comprises a plurality of computing devices.

14. A system for detecting creation of a program instance, the system comprising:

a computer hardware within a computer system, the computer system configured to implement;

an interceptor module configured to be injected into a native operating system process responsible for creating program instances, the interceptor module further configured to replace an address of a selected routine in an address table with an address of an interceptor routine, such that the native operating system process calls the interceptor routine in place of the selected routine during creation of the program instance, the interceptor routine configured to detect creation of a program instance and to obtain a name of the program instance in response to detecting creation of the program instance;

a comparison module configured to compare the name of the program instance to a set of identified programs to determine whether the program instance corresponds to at least one of the identified programs; and

a security module configured to modify execution of the program instance based at least in part on a determination that the program instance corresponds to at least one of the identified programs, wherein the security module is configured to:

save the name of the program instance,

halt execution of the program instance, and

automatically create, with a system account, a new program instance having the name of the program instance, thereby enabling the system account to receive full access rights to the new program instance instead of a user who started the program instance having the full access rights, thereby preventing the user from being able to create a malicious child thread from the new program instance;

wherein the interceptor module, the comparison module, and the security module are implemented by the computer system comprising computer hardware.

15. The system of claim 14 , wherein the native operating system process is a Client/Server Runtime Subsystem Service (csrss.exe) process in a Microsoft Windows® operating system.

16. The system of claim 14 , wherein the native operating system process is a Local Security Authority Subsystem Service (lsass.exe) process in a Microsoft Windows® operating system.

17. The system of claim 14 , wherein the security module comprises the comparison module.

18. The system of claim 14 , wherein the interceptor module comprises the comparison module.

19. The system of claim 14 , wherein the security module is further configured to inject the interceptor module into the native operating system process.

20. The system of claim 14 , wherein the security module is further configured to create a security token for the program instance in response to determining that the program instance corresponds to at least one of the identified programs.

21. The system of claim 14 , wherein the interceptor module is further configured to:

store the address of the selected routine prior to replacing the address of the selected routine in the address table with the address of the interceptor routine; and

restore the address of the selected routine to the address table upon completion of the interceptor routine.

22. The system of claim 14 , further comprising a management server in network communication with a computing device executing the native operating system process, the management server further comprising policies providing rules for modifying execution of the program instance.

23. The system of claim 22 , wherein the security module is further configured to receive the policies from the management server.

24. Non-transitory physical computer storage comprising computer-executable instructions stored thereon that, when executed by one or more processors, are configured to implement components for detecting creation of a program instance, the components comprising:

an interceptor module configured to be injected into a native operating system process responsible for creating program instances, the interceptor module further configured to replace an address of a selected routine in an address table with an address of an interceptor routine, such that the native operating system process calls the interceptor routine in place of the selected routine during creation of the program instance, the interceptor routine configured to detect creation of a program instance and to obtain a name of the program instance in response to detecting creation of the program instance;

a comparison module configured to compare the name of the program instance to a set of identified programs to determine whether the program instance corresponds to at least one of the identified programs; and

a security module configured to modify execution of the program instance based at least in part on a determination that the program instance corresponds to at least one of the identified programs, wherein the security module is configured to:

save the name of the program instance,

halt execution of the program instance, and

automatically create, with a system account, a new program instance having the name of the program instance, thereby enabling the system account to receive full access rights to the new program instance instead of a user who started the program instance having the full access rights, thereby preventing the user from being able to create a malicious child thread from the new program instance.

25. The non-transitory physical computer storage of claim 24 , wherein the components further comprise a management server comprising functionality for a user to define a policy providing rules for execution of the program instance.

26. The non-transitory physical computer storage of claim 24 , wherein the security module is further configured to access the policy from the management server and perform said modification of the execution of the program instance based on the policy.

27. The non-transitory physical computer storage of claim 24 , in combination with a computer system comprising computer hardware.

Assignments (25)
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044800/0848 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, 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 040040/0001 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
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 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 (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 →
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 (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 →
CHANGE OF NAME Recorded Aug 20, 2013
From: QUEST SOFTWARE, INC.
To: DELL SOFTWARE INC.
Reel/Frame 031043/0281 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Sep 28, 2012
From: WELLS FARGO CAPITAL FINANCE, LLC (FORMERLY KNOWN AS WELLS FARGO FOOTHILL, LLC)
To: QUEST SOFTWARE, INC.; AELITA SOFTWARE CORPORATION; SCRIPTLOGIC CORPORATION; VIZIONCORE, INC.; NETPRO COMPUTING, INC.
Reel/Frame 029050/0679 →
PATENT SECURITY AGREEMENT Recorded Feb 18, 2009
From: QUEST SOFTWARE, INC.; AELITA SOFTWARE CORPORATION; SCRIPTLOGIC CORPORATION; VIZIONCORE, INC.; NETPRO COMPUTING, INC.
To: WELLS FARGO FOOTHILL, LLC
Reel/Frame 022277/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2008
From: BINOTTO, ALESSANDRO; ANDREYEV, IVAN S.; GOSTEV, ANTON; ARTYOM, AGAFONOV
To: QUEST SOFTWARE, INC.
Reel/Frame 020530/0481 →