IP Library Granted Patent US 9,038,176
Granted Patent B2
US 9,038,176 · App. 13/076,480 · Granted May 19, 2015

System and method for below-operating system trapping and securing loading of code into memory

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 9,038,176
App. No.
13/076,480
Granted
May 19, 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 a resource of the electronic device, access one or more security rules to determine whether the attempted access is indicative of malware, and operate at a level below all of the operating systems of the electronic device accessing the memory. The attempted access includes attempting to write instructions to the memory and attempting to execute the instructions.

Claims (83)

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

a memory;

one or more operating systems an operating system configured to execute on the electronic device;

a below operating-system security agent configured to:

identify an attempted access of a resource of the electronic device, the attempted access comprising:

attempting to write instructions to the memory; and

attempting to execute the instructions;

trap the attempted access based upon an identification of the attempt to write instructions to the memory and an identification of the attempt to execute the instructions;

access one or more security rules to determine whether the attempted access is indicative of malware; and

operate at a higher priority than all of the operating systems of the electronic device;

wherein the trapping of the attempted access and determining whether the attempted access is indicative of malware is conducted at a higher priority than all of the operating systems of the electronic device,

wherein the below operating-system security agent is further configured to:

identify the attempted access based on an attempt to access a portion of the memory containing a memory page data structure entry for a driver;

determine that the malware status of the driver is unknown; and

the below operating-system security agent is configured to trap the attempted access further based upon an identification of the attempted access of the portion of the memory containing the memory page data structure for the driver and a determination that the malware status of the driver is unknown.

2. The system of claim 1 , wherein:

the below-operating-system security agent is further configured to identify the attempted access based on an attempt to allocate portions of the memory with enabled write permissions; and

the below operating-system agent is configured to trap the attempted access further based upon an identification of the attempt to allocate portions of the memory with enabled write permissions.

3. The system of claim 1 , wherein trapping the attempted access comprises further configuring the below-operating-system security agent to trap an attempt to change permissions of the memory in which instructions were written based upon an identification of the memory in which instructions were written.

4. The system of claim 1 , wherein determining whether the attempted access is indicative of malware comprises configuring the below-operating-system security agent to scan the instructions written to memory.

5. The system of claim 1 , wherein determining whether the attempted access is indicative of malware comprises determining the identify of an entity which made the attempted access.

6. The system of claim 1 , wherein trapping the attempted access comprises further configuring the below-operating-system security agent to trap an attempted access of a portion of the memory containing an unallocated virtual page of kernel space.

7. The system of claim 1 , wherein:

the below-operating-system security agent is further configured to identify the attempted access based on an attempted access of a portion of the memory containing an empty virtual page allocated by the operating system; and

the below operating-system agent is configured to trap the attempted access further based upon an identification of the attempted access of a portion of the memory containing an empty virtual page allocated by the operating system.

8. The system of claim 1 , wherein trapping the attempted access comprises further configuring the below-operating-system security agent to:

compare contents of a first memory page written to disk during a swap file write to the contents of a second memory page after a swap file read, the swap file read and swap file write corresponding to the same location identified by the operating system.

9. The system of claim 1 , wherein the below-operating system security agent is configured to trap the attempted access by:

allowing the attempted writing of instructions; and

halting the attempted execution of the instructions subsequent to allowing the attempted writing of instructions.

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

identifying trapping an attempted access of a resource of an electronic device, the attempted access comprising:

attempting to write instructions to a memory of the electronic device, the memory comprising the resource; and

attempting to execute the instructions;

trap the attempted access based upon an identification of the attempt to write instructions to the memory and an identification of the attempt to execute the instructions;

accessing one or more security rules to determine whether the attempted access is indicative of malware;

wherein the trapping of the attempted access and determining whether the attempted access is indicative of malware is conducted at a higher priority than all of the one or more operating systems of the electronic device,

wherein identifying the attempted access further comprises identifying an attempted access of a portion of the memory containing a memory page data structure entry for a driver;

the method further comprises determining that the malware status of the driver is unknown; and

trapping the attempted access is further based upon an identification of the attempted access of a portion of the memory containing a memory page data structure entry for a driver and a determination that the malware status of the driver is unknown;

wherein the method is performed by at least one hardware processor.

11. The method of claim 10 , wherein:

identifying the attempted access further comprises identifying an attempt to allocate portions of the memory with enabled write permissions; and

trapping the attempted access is further based upon an identification of the attempt to allocate portions of the memory with enabled write permissions.

12. The method of claim 10 , wherein trapping the attempted access comprises trapping an attempt to change permissions of the memory in which instructions were written based upon an identification of the memory in which instructions were written.

13. The method of claim 10 , wherein determining whether the attempted access is indicative of malware comprises scanning the instructions written to memory.

14. The method of claim 10 , wherein determining whether the attempted access is indicative of malware comprises determining the identify of an entity which made the attempted access.

15. The method of claim 10 , wherein trapping the attempted access comprises trapping an attempted access of a portion of the memory containing an unallocated virtual page of kernel space.

16. The method of claim 10 , wherein:

identifying the attempted access further comprises identifying an attempted access of a portion of the memory containing an empty virtual page allocated by the operating system; and

trapping the attempted access is further based upon an identification of the attempted access of a portion of the memory containing an empty virtual page allocated by the operating system.

17. The method of claim 10 , wherein trapping the attempted access comprises:

comparing contents of a first memory page written to disk during a swap file write to the contents of a second memory page after a swap file read, the swap file read and swap file write corresponding to the same location identified by the operating system.

18. The method of claim 10 , wherein trapping the attempted access includes:

allowing the attempted writing of instructions; and

halting the attempted execution of the instructions subsequent to allowing the attempted writing of instructions.

19. An article of manufacture, comprising:

a computer readable medium; and

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

identify an attempted access of a resource of an electronic device, the attempted access comprising:

attempting to write instructions to a memory of the electronic device, the memory comprising the resource; and

attempting to execute the instructions;

trap the attempted access based upon an identification of the attempt to write instructions to the memory and an identification of the attempt to execute the instructions;

access one or more security rules to determine whether the attempted access is indicative of malware;

wherein the processor is configured to conduct the trapping of the attempted access and determining whether the attempted access is indicative of malware at a higher priority than all of the one or more operating systems of the electronic device,

wherein identifying the attempted access comprises identifying an attempted access of a portion of the memory containing a memory page data structure entry for a driver;

the article further comprises instructions for determining that the malware status of the driver is unknown; and

trapping the attempted access is further based upon an identification of the attempted access of the portion of the memory containing the memory page data structure for the driver and a determination that the malware status of the driver is unknown.

20. The article of claim 19 , wherein:

identifying the attempted access comprises identifying an attempt to allocate portions of the memory with enabled write permissions; and

trapping the attempted access is further based upon an identification of the attempt to allocate portions of the memory with enabled write permissions.

21. The article of claim 19 , wherein trapping the attempted access comprises trapping an attempt to change permissions of the memory in which instructions were written based upon an identification of the memory in which instructions were written.

22. The article of claim 19 , wherein determining whether the attempted access is indicative of malware comprises scanning the instructions written to memory.

23. The article of claim 19 , wherein determining whether the attempted access is indicative of malware comprises determining the identify of an entity which made the attempted access.

24. The article of claim 19 , wherein trapping the attempted access comprises trapping an attempted access of a portion of the memory containing an unallocated virtual page of kernel space.

25. The article of claim 19 , wherein:

identifying the attempted access comprises identifying an attempted access of a portion of the memory containing an empty virtual page allocated by the operating system; and

trapping the attempted access is further based upon an identification of the attempted access of a portion of the memory containing an empty virtual page allocated by the operating system.

26. The article of claim 19 , wherein trapping the attempted access comprises:

comparing contents of a first memory page written to disk during a swap file write to the contents of a second memory page after a swap file read, the swap file read and swap file write corresponding to the same location identified by the operating system.

27. The article of claim 19 , wherein trapping the attempted access includes:

allow the attempted writing of instructions; and

halt the attempted execution of the instructions subsequent to allowing the attempted writing of instructions.

Assignments (10)
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: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2011
From: SALLAM, AHMED SAID
To: MCAFEE, INC.
Reel/Frame 026052/0859 →