IP Library Granted Patent US 9,483,645
Granted Patent B2
US 9,483,645 · App. 12/042,923 · Granted Nov 1, 2016

System, method, and computer program product for identifying unwanted data based on an assembled execution profile of code

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,483,645
App. No.
12/042,923
Granted
Nov 1, 2016
Kind
B2
Abstract

A system, method, and computer program product are provided for identifying unwanted data based on an assembled execution profile of code. In use, an execution profile of code is assembled by tracking interface usage of the code. Further, it is determined whether the code is associated with unwanted activity, based on the execution profile.

Claims (51)

1. A non-transitory computer readable medium comprising instructions stored thereon to cause one or more processors to:

assemble an execution profile of monitored code by tracking interface usage of the monitored code while the monitored code is executing; and

determine whether the monitored code is associated with unwanted activity, based on the execution profile, comprising instructions to cause the one or more processors to:

compare the execution profile to a known legitimate execution profile;

identify an event associated with the monitored code;

determine an element of execution associated with the event; and

determine the execution profile is assembled for the element of execution,

wherein the execution profile comprises information associated with attributes collected while executing the monitored code.

2. The non-transitory computer readable medium of claim 1 , wherein the instructions to cause one or more processors to assemble an execution profile of monitored code comprise instructions to cause one or more processors to assemble an execution profile of monitored code by interface monitoring.

3. The non-transitory computer readable medium of claim 1 , wherein tracking interface usage comprises tracking at least one invocation of an interface by the monitored code.

4. The non-transitory computer readable medium of claim 1 , wherein the information associated with attributes collected while executing the monitored code comprises information identifying components invoked by the monitored code.

5. The non-transitory computer readable medium of claim 4 , wherein the information identifying components comprises information identifying at least one of an interface, a library, and a driver.

6. The non-transitory computer readable medium of claim 1 , wherein the instructions to cause one or more processors to assemble an execution profile comprise instructions to cause one or more processors to assemble an execution profile in response to an event associated with the monitored code.

7. The non-transitory computer readable medium of claim 1 , wherein the instructions to cause one or more processors to compare the execution profile to a known legitimate execution profile comprise instructions to cause one or more processors to determine that the monitored code is associated with the unwanted activity if the execution profile does not match the known legitimate execution profile.

8. The non-transitory computer readable medium of claim 1 , wherein the instructions to cause one or more processors to determine the monitored code is associated with unwanted activity comprise instructions to cause one or more processors to determine that the monitored code is associated with malware activity.

9. The non-transitory computer readable medium of claim 1 , wherein the instructions to cause one or more processors to determine the monitored code is associated with unwanted activity comprise instructions to cause one or more processors to determine whether an owner of executable memory associated with the execution profile is legitimate.

10. The non-transitory computer readable medium of claim 9 , wherein the instructions to cause one or more processors to determine whether an owner of executable memory associated with the execution profile is legitimate comprise instructions to cause one or more processors to determine the owner of executable memory associated with the execution profile is legitimate if the owner matches a known legitimate process.

11. The non-transitory computer readable medium of claim 9 , wherein the instructions to cause one or more processors to determine whether an owner of executable memory associated with the execution profile is legitimate comprise instructions to cause one or more processors to determine the owner of executable memory associated with the execution profile is illegitimate if the owner of the executable memory is illegitimate.

12. The non-transitory computer readable medium of claim 1 , further comprising instructions to cause one or more processors to identify an event associated with the monitored code.

13. The non-transitory computer readable medium of claim 12 , further comprising instructions to cause one or more processors to determine an element of execution associated with the event.

14. The non-transitory computer readable medium of claim 13 , wherein the instructions to cause one or more processors to determine an element of execution is associated with the event comprise instructions to cause one or more processors to determine the execution profile is assembled for the element of execution.

15. The non-transitory computer readable medium of claim 13 , wherein the instructions to cause one or more processors to determine the element of execution is associated with the event comprise instructions to cause one or more processors to determine the element of execution includes one of a thread and a process.

16. A method, comprising:

assembling, with a processor, an execution profile of monitored code by tracking interface usage of the monitored code while the monitored code is executing; and

determining whether the monitored code is associated with unwanted activity, based on the execution profile assembled by the processor, comprising:

comparing the execution profile to a known legitimate execution profile;

identifying an event associated with the monitored code;

determining an element of execution associated with the event; and

determining the execution profile is assembled for the element of execution,

wherein the execution profile comprises information associated with attributes collected while executing the monitored code.

17. The method of claim 16 , wherein the information associated with attributes collected while executing the monitored code comprises information identifying components invoked by the monitored code.

18. The method of claim 16 , wherein assembling an execution profile comprises assembling an execution profile in response to an event associated with the monitored code.

19. The method of claim 16 , wherein comparing the execution profile to a known legitimate execution profile comprises determining that the monitored code is associated with the unwanted activity responsive to the execution profile not matching the known legitimate execution profile.

20. The method of claim 16 , wherein determining the monitored code is associated with unwanted activity comprises:

determining whether an owner of executable memory associated with the execution profile matches a known legitimate process.

21. A system, comprising:

a memory; and

a processor operatively coupled to the memory, the processor adapted to execute program code stored in the memory to:

assemble an execution profile of monitored code by tracking interface usage of the monitored code while the monitored code is executing, comprising program code to:

compare the execution profile to a known legitimate execution profile;

identify an event associated with the monitored code;

determine an element of execution associated with the event;

determine the execution profile is assembled for the element of execution; and

determine whether the monitored code is associated with unwanted activity, based on the execution profile,

wherein the execution profile comprises information associated with attributes collected while executing the monitored code.

22. The system of claim 21 , wherein the program code to assemble an execution profile of monitored code comprises program code to assemble an execution profile of monitored code by interface monitoring.

23. The system of claim 21 , wherein the information associated with attributes collected while executing the monitored code comprises information identifying components invoked by the monitored code.

24. The system of claim 21 , wherein the program code to assemble an execution profile comprises program code to assemble an execution profile in response to an event associated with the monitored code.

25. The system of claim 21 , wherein the program code to compare the execution profile to a known legitimate execution profile comprises program code to determine that the monitored code is associated with the unwanted activity responsive to the execution profile not matching the known legitimate execution profile.

26. The system of claim 21 , wherein the program code to determine the monitored code is associated with unwanted activity comprises program code to:

determine whether an owner of executable memory associated with the execution profile matches a known legitimate process.

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 5, 2008
From: DALCHER, GREGORY WILLIAM
To: MCAFEE, INC.
Reel/Frame 020606/0346 →