IP Library Granted Patent US 8,555,382
Granted Patent B2
US 8,555,382 · App. 12/820,717 · Granted Oct 8, 2013

Method and system for automatic invariant byte sequence discovery for generic 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 8,555,382
App. No.
12/820,717
Granted
Oct 8, 2013
Kind
B2
Abstract

A method for creating a set of genericized signatures for detection of byte sequences in computer code includes accessing a first set of sample signatures, determining a maximum number of wildcards that a wildcarded signature may comprise, determining a first wildcarded signature corresponding to the first set of sample signatures, evaluating the first wildcarded signature, and repeating the steps of evaluating for any second wildcarded signatures. Each of the signatures corresponds to an instance of malware. The evaluation further includes if the number of wildcards in the first wildcarded signature exceeds the maximum number of wildcards, determining a plurality of second wildcarded signatures corresponding to a plurality of subsets of the set of sample signatures. The evaluation further includes if the number of wildcards in the first wildcarded signature is less than or equal to the maximum number of wildcards, adding the first wildcarded signature to a set of genericized signatures.

Claims (70)

1. A method for creating a set of genericized signatures for detection of byte sequences in computer code, comprising:

accessing a first set of sample signatures from a malware database, each of the first set of sample signatures corresponding to an instance of malware; determining a maximum number of wildcards that a wildcarded signature may comprise; determining a first wildcarded signature corresponding to the first set of sample signatures; evaluating by a microprocessor the first wildcarded signature, the evaluating further comprising: if a number of wildcards in the first wildcarded signature exceeds the maximum number of wildcards, determining a plurality of second wildcarded signatures corresponding to a plurality of subsets of the set of sample signatures; and

if the number of wildcards in the first wildcarded signature is less than or equal to the maximum number of wildcards, adding the first wildcarded signature to a set of genericized signatures; and repeating the evaluating wherein each of the second wildcarded signatures is respectively used in place of the first wildcarded signature.

2. The method of claim 1 , further comprising:

determining a maximum number of genericized signatures in the set of genericized signatures;

if adding a wildcarded signature to the set of genericized signatures would exceed the maximum number of genericized signatures in the set, determining that an acceptable set of genericized signatures cannot be created for the first set of sample signatures.

3. The method of claim 1 , wherein determining a wildcarded signature corresponding to a set of signatures comprises:

for each position in the signatures in the set of signatures:

if a number of different values for a position in the set of signatures is greater than one, assigning a wildcard to the position for the wildcarded signature;

if the position in the set of signatures has one value, assigning the value to a corresponding position for the wildcarded signature.

4. The method of claim 1 , further comprising: choosing a plurality of subsets including:

selecting a position in the signatures in the set of signatures for which the signatures have the least variation; and

choosing a first subset of the set of signatures, the first subset comprising signatures of the set of signatures with at least some values in common at the position.

5. The method of claim 4 , wherein the first subset comprises the signatures of the set of signatures with the least number of values in common at the position.

6. The method of claim 4 , wherein choosing a plurality of subsets further comprises choosing a second subset of the set of signatures, the second subset comprising signatures of the set of signatures with values in common at the position.

7. The method of claim 6 , wherein the second subset comprises the signatures of the set of signatures with the second least number of values in common at the position.

8. The method of claim 6 , wherein choosing a plurality of subsets further comprises choosing a third subset of the set of signatures, the third subset comprising signatures not included in the first or second subsets.

9. The method of claim 2 , further comprising:

if it is determined that an acceptable set of genericized signatures cannot be created for the first set of sample signatures, repeating the steps of claim 2 with an increased maximum number of genericized signatures.

10. The method of claim 2 , further comprising:

if it is determined that an acceptable set of genericized signatures cannot be created for the first set of sample signatures, repeating the steps of claim 2 with an increased maximum number of wildcards that a wildcarded signature may comprise.

11. An article of manufacture, comprising: a non-transitory computer readable medium accessible to a processor

wherein processor-executable instructions are stored on the non-transitory computer readable medium, the instructions, when executed by the processor, cause the processor to:

create a set of genericized signatures for detection of byte sequences in computer code;

access a first set of sample signatures, each of the signatures corresponding to an instance of malware;

determine a maximum number of wildcards that a wildcarded signature may comprise;

determine a first wildcarded signature corresponding to the first set of sample signatures;

evaluate the first wildecarded signature, including instructions to cause the processor to:

if a number of wildcards in the first wildcarded signature exceeds the maximum number of wildcards, determine a plurality of second wildcarded signatures corresponding to a plurality of subsets of the set of sample signatures; and

if the number of wildcards in the first wildcarded signature is less than or equal to the maximum number of wildcards, add the first wildcarded signature to the set of genericized signatures; and

repeat the instructions to evaluate, wherein each of the second wildcarded signatures is respectively used in place of the first wildcarded signature.

12. The article of claim 11 , further comprising instructions to cause the processor to:

determine a maximum number of genericized signatures in the set of genericized signatures;

if adding a wildcarded signature to the set of genericized signatures would exceed the maximum number of genericized signatures in the set, determine that an acceptable set of genericized signatures cannot be created for the first set of sample signatures.

13. The article of claim 11 , wherein the instructions to cause the processor to determine a wildcarded signature corresponding to a set of signatures include instructions to cause the processor to:

for each position in the signatures in the set of signatures:

if a number of different values for a position in the set of signatures is greater than one, assign a wildcard to the position for the wildcarded signature;

if the position in the set of signatures has one value, assign the value to a corresponding position for the wildcarded signature.

14. The article of claim 11 , further comprising instructions to cause the processor to choose a plurality of subsets, including instructions to cause the processor to:

select a position in the signatures in the set of signatures for which the signatures have the least variation; and

choose a first subset of the set of signatures, the first subset comprising signatures of the set of signatures with at least some values in common at the position.

15. The article of claim 14 , wherein the first subset comprises the signatures of the set of signatures with the least number of values in common at the position.

16. The article of claim 14 , wherein the instructions to cause the processor to choose a plurality of subsets further comprise instructions to cause the processor to choose a second subset of the set of signatures, the second subset comprising signatures of the set of signatures with values in common at the position.

17. The article of claim 16 , wherein the second subset comprises the signatures of the set of signatures with the second least number of values in common at the position.

18. The article of claim 17 , wherein the instructions to cause the processor to choose a plurality of subsets further comprise instructions to cause the processor to choose a third subset of the set of signatures, the third subset comprising signatures not included in the first or second subsets.

19. A system for determining a set of genericized signatures, comprising:

a processor having access to a non-transitory computer readable medium,

wherein processor-executable instructions are stored on the computer readable medium, the instructions, when executed by the processor, cause the processor to:

create a set of genericized signatures for detection of byte sequences in computer code;

access a first set of sample signatures, each of the signatures corresponding to an instance of malware;

determine a maximum number of wildcards that a wildcarded signature may comprise;

determine a first wildcarded signature corresponding to the first set of sample signatures;

evaluate the first wildcarded signature, including instructions to cause the processor to:

if a number of wildcards in the first wildcarded signature exceeds the maximum number of wildcards, determine a plurality of second wildcarded signatures corresponding to a plurality of subsets of the set of sample signatures; and

if the number of wildcards in the first wildcarded signature is less than or equal to the maximum number of wildcards, add the first wildcarded signature to the set of genericized signatures; and

repeat the instructions to evaluate, wherein each of the second wildcarded signatures is respectively used in place of the first wildcarded signature.

20. The system of claim 19 , further comprising instructions to cause the processor to:

determine a maximum number of genericized signatures in the set of genericized signatures;

if adding a wildcarded signature to the set of genericized signatures would exceed the maximum number of genericized signatures in the set, determine that an acceptable set of genericized signatures cannot be created for the first set of sample signatures.

21. The system of claim 19 , wherein the instructions to cause the processor to determine a wildcarded signature corresponding to a set of signatures include instructions to cause the processor to:

for each position in the signatures in the set of signatures:

if a number of different values for a position in the set of signatures is greater than one, assign a wildcard to the position for the wildcarded signature;

if the position in the set of signatures has one value, assign the value to a corresponding position for the wildcarded signature.

22. The system of claim 19 , further comprising instructions to cause the processor to choose a plurality of subsets, including instructions to cause the processor to:

select a position in the signatures in the set of signatures to be divided into subsets for which the signatures have the least variation; and

choose a first subset of the set of signatures, the first subset comprising signatures of the set of signatures with values in common at the position.

23. The system of claim 22 , wherein the first subset comprises the signatures of the set of signatures with the least number of values in common at the position.

24. The system of claim 22 , wherein the instructions to cause the processor to choose a plurality of subsets further comprise instructions to cause the processor to choose a second subset of the set of signatures, the second subset comprising signatures of the set of signatures with values in common at the position.

25. The system of claim 24 , wherein the second subset comprises the signatures of the set of signatures with the second least number of values in common at the position.

26. The system of claim 25 , wherein the instructions to cause the processor to choose a plurality of subsets further comprise instructions to cause the processor to choose a third subset of the set of signatures, the third subset comprising signatures not included in the first or second subsets.

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 Jun 22, 2010
From: MICHLIN, IRENE (NMI); BARTRAM, ANTHONY VAUGHAN
To: MCAFEE, INC.
Reel/Frame 024574/0962 →