IP Library Granted Patent US 9,842,209
Granted Patent B2
US 9,842,209 · App. 14/707,977 · Granted Dec 12, 2017

Hardened event counters for anomaly detection

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,842,209
App. No.
14/707,977
Granted
Dec 12, 2017
Kind
B2
Abstract

A collection of techniques allow for the detection of covert malware that attempts to hide its existence on a system by leveraging both trusted hardware event counters and the particular memory addresses (as well as the sequences of such addresses) of the instructions that are generating the suspected malicious activity. By monitoring the address distribution's specific patterns over time, one can build a behavioral model (i.e., “fingerprint”) of a particular process—and later attempt to match suspected malicious processes to the stored behavioral models. Whenever the actual measured behavior of a suspected malicious process fails to match said stored behavioral models, the system or system administrator may attempt to perform rehabilitative actions on the computer system to locate and remove the malware hiding on the system.

Claims (58)

1. A non-transitory computer readable medium with instructions stored thereon, the instructions comprising instructions that, when executed, cause a computer system to:

monitor a first set of hardware counters of the computer system over a first time period, thereby producing first fingerprint data for each of one or more operating system processes, wherein the first fingerprint data for each of the one or more operating system processes comprises a phase space graph for one or more of the first set of hardware counters, and wherein each phase space graph comprises a plurality of uni-directional transitions between memory addresses associated with one or more of the first set of hardware counters;

monitor the first set of hardware counters of the computer system over a second time period in a secure environment not controlled by an operating system of the computer system, thereby producing first runtime data for each of one or more operating system processes;

compare the first runtime data for each of the one or more operating system processes with the first fingerprint data for the corresponding operating system process; and

indicate whether the first runtime data for any of the one or more operating system processes differs by a predetermined threshold from the first fingerprint data for the corresponding operating system process.

2. The non-transitory computer readable medium of claim 1 , wherein the instructions that, when executed, cause the computer system to monitor a first set of hardware counters of the computer system over a first time period comprise instructions that, when executed, cause the computer system to:

monitor memory addresses corresponding to the first set of hardware counters during the first time period.

3. The non-transitory computer readable medium of claim 2 , wherein the instructions that, when executed, cause the computer system to monitor the first set of hardware counters of the computer system over a second time period comprise instructions that, when executed, cause the computer system to:

monitor memory addresses corresponding to the first set of hardware counters during the second time period.

4. The non-transitory computer readable medium of claim 1 , wherein the first set of hardware counters comprises a hardware counter corresponding to at least one of the following events: machine clear, cache miss, branch miss, self-modifying code, debugging event, single step event, store forward miss, misaligned memory reference, Instruction Translation Lookaside Buffer (ITLB) flush, Translation Lookaside Buffer (TLB) miss, indirect call, conditional branch, trap, context switch, power management event, and explicit stack pointer change instruction.

5. The non-transitory computer readable medium of claim 1 , wherein the instructions that, when executed, cause the computer system to monitor a first set of hardware counters of the computer system over a first time period further comprise instructions that, when executed, cause the computer system to:

monitor relative memory addresses corresponding to the first set of hardware counters during the first time period, wherein the relative memory addresses are computed from a base load position of a process in memory.

6. The non-transitory computer readable medium of claim 1 , wherein the instructions that, when executed, cause the computer system to monitor a first set of hardware counters of the computer system over a first time period comprise instructions that, when executed, further cause the computer system to:

monitor the first set of hardware counters of a second computer system over the first time period;

combine the monitored first set of hardware counters of the second computer system with the monitored first set of hardware counters of the computer system; and

produce first fingerprint data for each of one or more operating system processes using the combined monitored first set of hardware counters of the second computer system and the monitored first set of hardware counters of the computer system.

7. The non-transitory computer readable medium of claim 1 , wherein the instructions that, when executed, cause the computer system to monitor a first set of hardware counters of the computer system over a first time period comprise instructions that, when executed, cause the computer system to:

monitor a number of transitions of memory addresses corresponding to at least one of the first set of hardware counters during the first time period.

8. The non-transitory computer readable medium of claim 1 , wherein the first fingerprint data is monitored from a controlled test environment.

9. The non-transitory computer readable medium of claim 1 , wherein at least one of the hardware counters in the first set of hardware counters comprises a hardware counter that may not be reset.

10. A method of detecting anomalies, comprising:

monitoring a first set of hardware counters of a computer system over a first time period, thereby producing first fingerprint data for each of one or more operating system processes, wherein the first fingerprint data for each of the one or more operating system processes comprises a phase space graph for one or more of the first set of hardware counters, and wherein each phase space graph comprises a plurality of uni-directional transitions between memory addresses associated with one or more of the first set of hardware counters;

monitoring the first set of hardware counters of the computer system over a second time period in a secure environment not controlled by an operating system of the computer system, thereby producing first runtime data for each of one or more operating system processes;

comparing the first runtime data for each of the one or more operating system processes with the first fingerprint data for the corresponding operating system process; and

indicating whether the first runtime data for any of the one or more operating system processes differs by a predetermined threshold from the first fingerprint data for the corresponding operating system process.

11. The method of claim 10 , wherein monitoring a first set of hardware counters of the computer system over a first time period comprises:

monitoring memory addresses corresponding to the first set of hardware counters during the first time period.

12. The method of claim 11 , wherein monitoring a first set of hardware counters of the computer system over a second time period comprises:

monitoring memory addresses corresponding to the first set of hardware counters during the second time period.

13. The method of claim 10 , wherein the first set of hardware counters comprises a hardware counter corresponding to at least one of the following events: machine clear, cache miss, branch miss, self-modifying code, debugging event, single step event, store forward miss, misaligned memory reference, Instruction Translation Lookaside Buffer (ITLB) flush, Translation Lookaside Buffer (TLB) miss, indirect call, conditional branch, trap, context switch, power management event, and explicit stack pointer change instruction.

14. The method of claim 10 , wherein monitoring a first set of hardware counters of the computer system over a first time period comprises:

monitoring relative memory addresses corresponding to the first set of hardware counters during the first time period, wherein the relative memory addresses are computed from a base load position of a process in memory.

15. The method of claim 10 , wherein monitoring a first set of hardware counters of the computer system over a first time period further comprises:

monitoring the first set of hardware counters of a second computer system over the first time period;

combining the monitored first set of hardware counters of the second computer system with the monitored first set of hardware counters of the computer system; and

producing first fingerprint data for each of one or more operating system processes using the combined monitored first set of hardware counters of the second computer system and the monitored first set of hardware counters of the computer system.

16. The method of claim 10 , wherein monitoring a first set of hardware counters of the computer system over a first time period comprises:

monitoring a number of transitions of memory addresses corresponding to at least one of the first set of hardware counters during the first time period.

17. The method of claim 10 , wherein the first fingerprint data is monitored from a controlled test environment.

18. The method of claim 10 , wherein monitoring a first set of hardware counters of the computer system over a second time period comprises:

monitoring a number of transitions of memory addresses corresponding to at least one of the first set of hardware counters during the second time period.

19. The method of claim 18 , wherein the number of transitions monitored is based, at least in part, on a type of event that is associated with the at least one of the first set of hardware counters.

20. A computer system, comprising:

a hardware processor;

an operating system, comprising instructions that when executed by the processor control the processor and provide an operating system environment for other software to execute on the processor;

an anomaly detection software, comprising instructions that, when executed by the processor, cause the processor to:

monitor a first set of hardware counters of the computer system over a first time period, thereby producing first fingerprint data for each of one or more operating system processes, wherein the first fingerprint data for each of the one or more operating system processes comprises a phase space graph for one or more of the first set of hardware counters, and wherein each phase space graph comprises a plurality of uni-directional transitions between memory addresses associated with one or more of the first set of hardware counters;

monitor the first set of hardware counters of the computer system over a second time period in a secure environment not controlled by the operating system of the computer system, thereby producing first runtime data for each of one or more operating system processes;

compare the first runtime data for each of the one or more operating system processes with the first fingerprint data for the corresponding operating system process; and

indicate whether the first runtime data for any of the one or more operating system processes differs by a predetermined threshold from with the first fingerprint data for the corresponding operating system process.

21. The computer system of claim 20 , wherein the instructions that, when executed, cause the processor to monitor a first set of hardware counters of the computer system over a first time period comprise instructions that, when executed, cause the processor to:

monitor a number of transitions of memory addresses corresponding to at least one of the first set of hardware counters during the first time period.

22. The computer system of claim 20 , wherein the first fingerprint data is monitored from a controlled test environment.

23. The computer system of claim 20 , wherein the instructions that, when executed, cause the processor to monitor a first set of hardware counters of the computer system over a second time period comprise instructions that, when executed, cause the processor to:

monitor a number of transitions of memory addresses corresponding to at least one of the first set of hardware counters during the second time period.

24. The computer system of claim 23 , wherein the number of transitions monitored is based, at least in part, on a type of event that is associated with the at least one of the first set of hardware counters.

25. The computer system of claim 20 , wherein the instructions that, when executed, cause the processor to monitor a first set of hardware counters of the computer system over a first time period comprise instructions that, when executed, cause the processor to:

monitor relative memory addresses corresponding to the first set of hardware counters during the first time period, wherein the relative memory addresses are computed from a base load position of a process in memory.

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 May 8, 2015
From: KLEEN, ANDREAS; TAMIR, ELIEZER; NAYSHTUT, ALEX; SUKHOMLINOV, VADIM; MUTTIK, IGOR; LOUZOUN, ELIEL
To: MCAFEE INC.
Reel/Frame 035614/0914 →