IP Library Granted Patent US 8,966,629
Granted Patent B2
US 8,966,629 · App. 13/076,512 · Granted Feb 24, 2015

System and method for below-operating system trapping of driver loading and unloading

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,966,629
App. No.
13/076,512
Granted
Feb 24, 2015
Kind
B2
Abstract

A system for protecting an electronic device against malware includes a memory, an operating system configured to execute on the electronic device, and a below-operating-system security agent. The below-operating-system security agent is configured to trap an attempted access of one or more resources of the operating system, access one or more security rules to determine whether the attempted access is indicative of malware, operate at a level below all of the operating systems of the electronic device accessing the one or more resources. The attempted access includes an attempted loading or unloading of a driver in the operating system.

Claims (87)

1. A system for protecting an electronic device against malware, comprising:

a hardware processor;

a memory communicatively coupled to the processor;

an operating system to load and unload a driver in the operating system;

a trapping agent comprising instructions in the memory for execution by the processor and configured to trap an attempted access of one or more resources of the operating system, the attempted access comprising an attempted loading or unloading of the driver in the operating system, wherein the attempted access is trapped by trapping the execution of a memory page containing code for a system function for loading or unloading the driver; and

a triggered-event handler comprising instructions in the memory for execution by the processor; wherein:

the trapping agent is further to send information about the trapped attempt, including the loading or unloading of the driver, to the triggered-event handler;

the triggered-event handler to:

access one or more security rules based on the information;

evaluate the attempted loading or unloading of the driver in view of the security rules; and

send an evaluation to the trapping-agent; and

the trapping agent is further configured to:

take corrective action when the evaluation includes that attempted loading or unloading of the driver is indicative of malware; and

allow the attempted loading or unloading of the driver when the evaluation includes that the attempted loading or unloading of the driver is safe; and

the trapping agent and the triggered-event handler are further to operate at a level below all operating systems of the electronic device accessing the one or more resources, including running on a processor of the system without use of an operating system.

2. The system of claim 1 , wherein the trapping agent is further to trap an attempted execution of a subfunction of the system function for loading or unloading the driver, the system function provided by the operating system.

3. The system of claim 1 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an identity of the driver to be loaded.

4. The system of claim 1 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an entity that attempted to load or unload the driver.

5. A system for protecting an electronic device against malware, comprising:

a hardware processor;

a memory communicatively coupled to the processor;

an operating system to load and unload a driver in the operating system;

a trapping agent comprising instructions in the memory for execution by the processor and configured to trap an attempted access of one or more resources of the operating system, the attempted access comprising an attempted loading or unloading of the driver in the operating system, wherein the attempted access is trapped by trapping the execution of a physical memory address containing code for a system function for loading or unloading the driver; and

a triggered-event handler comprising instructions in the memory for execution by the processor;

wherein: the trapping agent is further to send information about the trapped attempt, including the loading or unloading of the driver, to the triggered-event handler;

the triggered-event handler to:

access one or more security rules based on the information;

evaluate the attempted loading or unloading of the driver in view of the security rules; and

send an evaluation to the trapping-agent; and

the trapping agent is further configured to:

take corrective action when the evaluation includes that attempted loading or unloading of the driver is indicative of malware; and

allow the attempted loading or unloading of the driver when the evaluation includes that the attempted loading or unloading of the driver is safe; and

the trapping agent and the triggered-event handler are further to operate at a level below all operating systems of the electronic device, including accessing a processor of the system without use of an operating system.

6. The system of claim 5 , wherein the trapping agent is further to trap an attempted execution of a subfunction of the system function for loading or unloading the driver, the system function provided by the operating system.

7. The system of claim 5 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an identity of the driver to be loaded.

8. The system of claim 5 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an entity that attempted to load or unload the driver.

9. A method for protecting an electronic device against malware, comprising:

trapping an attempted access of one or more resources of an operating system, the operating system to load and unload a driver, wherein:

the attempted access includes an attempted loading or unloading of the driver in the operating system; and

the attempted access is trapped by trapping the execution of a memory page containing code for a system function for loading or unloading the driver;

accessing one or more security rules based on the attempted access;

evaluating the attempted loading or unloading of the driver in view of the security rules;

taking corrective action when the evaluation includes that attempted loading or unloading of the driver is indicative of malware; and

allowing the attempted loading or unloading of the driver when the evaluation includes that the attempted loading or unloading of the driver is safe;

wherein the trapping of the attempted access and evaluating the attempted loading or unloading of the driver are conducted at a level below all operating systems of the electronic device, including accessing a processor of the electronic device without use of an operating system.

10. The method of claim 9 , wherein the trapping the attempted access further includes trapping an attempted execution of a subfunction of the system function for loading or unloading the driver, the system function provided by the operating system.

11. The method of claim 9 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an identity of the driver to be loaded.

12. The method of claim 9 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an entity that attempted to load or unload the driver.

13. A method for protecting an electronic device against malware, comprising:

trapping an attempted access of one or more resources of an operating system, the operating system to load and unload a driver, wherein:

the attempted access includes an attempted loading or unloading of the driver in the operating system; and

the attempted access is trapped by trapping the execution of a physical memory address containing code for a system function for loading or unloading the driver;

accessing one or more security rules based on the attempted access;

evaluating the attempted loading or unloading of the driver in view of the security rules;

taking corrective action when the evaluation includes that attempted loading or unloading of the driver is indicative of malware; and

allowing the attempted loading or unloading of the driver when the evaluation includes that the attempted loading or unloading of the driver is safe;

wherein the trapping of the attempted access and evaluating the attempted loading or unloading of the driver are conducted at a level below all operating systems of the electronic device, including accessing a processor of the electronic device without use of an operating system.

14. The method of claim 13 , wherein the trapping the attempted access further includes trapping an attempted execution of a subfunction of the system function for loading or unloading the driver, the system function provided by the operating system.

15. The method of claim 13 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an identity of the driver to be loaded.

16. The method of claim 13 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an entity that attempted to load or unload the driver.

17. An article of manufacture, comprising:

a non-transitory computer readable medium; and

computer-executable instructions embodied on the non-transitory computer readable medium, the instructions readable by a processor, the instructions, when read and executed, for causing the processor to:

trap an attempted access of one or more resources of an operating system, the operating system to load and unload a driver, wherein:

the attempted access includes an attempted loading or unloading of the driver in the operating system; and

the attempted access is trapped by trapping the execution of a memory page containing code for a system function for loading or unloading the driver;

access one or more security rules based on the attempted access;

evaluate the attempted loading or unloading of the driver in view of the security rules;

take corrective action when the evaluation includes that attempted loading or unloading of the driver is indicative of malware; and

allow the attempted loading or unloading of the driver when the evaluation includes that the attempted loading or unloading of the driver is safe;

wherein the trapping of the attempted access and evaluating the attempted loading or unloading of the driver are conducted at a level below all operating systems of an electronic device, including accessing a processor of the electronic device without use of an operating system.

18. The article of manufacture of claim 17 , wherein the trapping the attempted access further includes trapping an attempted execution of a subfunction of the system function for loading or unloading the driver, the system function provided by the operating system.

19. The article of manufacture of claim 17 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an identity of the driver to be loaded.

20. The article of manufacture of claim 17 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an entity that attempted to load or unload the driver.

21. An article of manufacture, comprising:

a non-transitory computer readable medium; and

computer-executable instructions embodied on the non-transitory computer readable medium, the instructions readable by a processor, the instructions, when read and executed, for causing the processor to:

trap an attempted access of one or more resources of an operating system, the operating system to load and unload a driver, wherein:

the attempted access includes an attempted loading or unloading of the driver in the operating system; and

the attempted access is trapped by trapping the execution of a physical memory address containing code for a system function for loading or unloading the driver;

access one or more security rules based on the attempted access;

evaluate the attempted loading or unloading of the driver in view of the security rules;

take corrective action when the evaluation includes that attempted loading or unloading of the driver is indicative of malware; and

allow the attempted loading or unloading of the driver when the evaluation includes that the attempted loading or unloading of the driver is safe;

wherein the trapping of the attempted access and evaluating the attempted loading or unloading of the driver are conducted at a level below all operating systems of an electronic device, including accessing a processor of the electronic device without use of an operating system.

22. The article of manufacture of claim 21 wherein the trapping the attempted access further includes trapping an attempted execution of a subfunction of the system function for loading or unloading the driver, the system function provided by the operating system.

23. The article of manufacture of claim 21 , wherein evaluating the attempted loading or unloading of the driver in view of the security rules comprises determining and evaluating an identity of the driver to be loaded.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →