IP Library Granted Patent US 10,044,739
Granted Patent B2
US 10,044,739 · App. 15/039,756 · Granted Aug 7, 2018

Frequency-based reputation

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 10,044,739
App. No.
15/039,756
Granted
Aug 7, 2018
Kind
B2
Abstract

In an example embodiment, there is disclosed an anti-malware system and method that analyzes applications and other executable objects at the subroutine level. Each subroutine may be assigned an execution frequency score, which may be based on simulated execution in an insulated environment, on real-world operating conditions, or on static analysis. Each subroutine may be assigned an execution frequency score based on how frequently it is executed. Based on this score, each subroutine may also be assigned a reputation score. To aid in cross-referencing to occurrences of the same subroutine in other applications, the subroutine may also be assigned a pseudo-unique identifier, such as a fuzzy fingerprint.

Claims (59)

1. An apparatus for performing frequency-based classification of executable objects, comprising:

a hardware platform comprising a processor communicatively coupled to a memory;

a network interface; and

a reputation client engine to operate on the hardware platform, and configured to:

parse an executable object into a plurality of subroutines;

assign a pseudo-unique identifier to a subroutine;

find subroutines with the same pseudo-unique identifier having previously-calculated execution frequencies;

aggregate the execution frequencies of the subroutines;

assign an execution frequency score to each subroutine according to the aggregated execution frequencies;

provide the execution frequency scores to a service via the network interface; and

receive via the network interface a reputation score for the executable object based at least in part on the execution frequency scores of the subroutines of the executable object.

2. The apparatus of claim 1 , wherein the assigning an execution frequency score to the subroutines further comprises running the executable object and tallying calls to the subroutines.

3. The apparatus of claim 1 , wherein the reputation client engine is further operable to run the executable object in an insulated environment.

4. The apparatus of claim 1 , wherein the parsing the executable object into a plurality of subroutines further comprises modifying a copy of the executable object to inject frequency counters into the subroutines.

5. A reputation server comprising:

a hardware platform comprising a processor communicatively coupled to a memory;

a network interface; and

a reputation server engine to operate on the hardware platform and configured to:

parse an executable object into a plurality of subroutines;

assign a pseudo-unique identifier to a subroutine;

find subroutines with the same pseudo-unique identifier having previously-calculated execution frequencies;

aggregate the execution frequencies of the subroutines;

determine an execution frequency for each subroutine according to the aggregated execution frequencies;

assign a reputation score to each subroutine based at least in part on the execution frequency for the subroutine; and

assign the executable object a reputation score based at least in part on the reputations of the subroutines.

6. The reputation server of claim 5 , wherein the reputation server engine is further operable to:

compute a reputation score for the executable object based at least in part on the reputation scores for the plurality of subroutines; and

distribute at least one of the reputation scores to a plurality of reputation clients via the network interface.

7. The reputation server of claim 6 , wherein assigning a reputation score to each subroutine further comprises assigning an execution frequency score to each subroutine.

8. The reputation server of claim 6 , wherein parsing the executable object into a plurality of subroutines further comprises receiving from a reputation client data concerning the plurality of subroutines.

9. The reputation server of claim 6 , wherein assigning a reputation score to each subroutine further comprises receiving an execution frequency score for each subroutine from a reputation client.

10. The reputation server of claim 6 , wherein assigning a reputation score to each subroutine further comprises:

assigning each subroutine a pseudo-unique fingerprint; and

using the pseudo-unique fingerprint to query a reputation database for a frequency or reputation score for a matching subroutine.

11. The reputation server of claim 6 , wherein assigning a reputation score to each subroutine further comprises receiving an execution frequency score for each subroutine, the execution frequency score comprising execution frequency across a plurality of executable objects.

12. The reputation server of claim 6 , wherein the reputation server engine is further operable to:

run the executable object inside an insulated environment; and

assign subroutines frequency scores based on their execution frequencies.

13. The reputation server of claim 6 , wherein assigning a reputation score to each subroutine further comprises statically analyzing the executable object.

14. The reputation server of claim 6 , wherein the reputation server engine is further operable to flag executable objects with low reputation scores for additional deep analysis.

15. The reputation server of claim 6 , wherein the reputation for the executable object is based at least in part on the reputations of the plurality of subroutines.

16. The reputation server of claim 6 , wherein the reputation server engine is further operable to:

determine that the executable object has a high reputation score; and

assign the plurality of subroutines a high reputation score.

17. The reputation server of claim 6 , wherein the reputation server engine is further operable to:

assign a pseudo-unique fingerprint to at least one subroutine;

compute an execution frequency score for the at least one subroutine across a plurality of executable objects; and

correlate the reputation score to the execution frequency score.

18. The reputation server of claim 17 , wherein assigning a pseudo-unique fingerprint to the at least one subroutine comprises computing a fuzzy fingerprint.

19. The reputation server of claim 6 , wherein the reputation server engine is further operable to identify subroutines with an execution frequency score of zero as security risks.

20. The reputation server of claim 6 , wherein the reputation server engine is further operable to identify subroutines with low execution frequency scores as suspect.

21. A method for computing a reputation of an executable object, the method executable on a computing device and comprising:

parsing an executable object into a plurality of subroutines;

assigning a pseudo-unique identifier to a subroutine;

finding subroutines with the same pseudo-unique identifier having previously-calculated execution frequencies;

aggregating the execution frequencies of the subroutines;

assigning to each subroutine an execution frequency score according to the aggregated execution frequencies;

assigning to the subroutines a reputation score based at least in part on the execution frequency score; and

assigning the executable object a reputation score based at least in part on the reputation scores of the subroutines.

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 →