IP Library › Granted Patent US 11,580,219
Granted Patent B2
US 11,580,219 · App. 15/880,323 · Granted Feb 14, 2023

System and method for malware signature generation

Inventors: Craig Schmugar (Hillsboro, OR); Zheng Zhang (Santa Clara, CA); John Teddy (Santa Clara, CA); Michael Hughes (San Francisco, CA)
Assignee: McAfee, LLC
G06F21/564H04L63/145H04L63/1416
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 11,580,219
App. No.
15/880,323
Granted
Feb 14, 2023
Kind
B2
Abstract

A technique for detecting malware involves loading known malware information, finding a string in the known malware information, saving the string in a first database, identifying a first contiguous string block from the known malware information, assigning a confidence indicator to the first contiguous string block, attempting to find the first contiguous string block in a second database containing one or more contiguous string blocks extracted from known malware, and responsive to a determination the first contiguous string block meets a predetermined threshold of similarity with a second contiguous string block contained in the second database, labelling the first contiguous string block.

Claims (46)

1. A method for developing a signature for malware identification, comprising:

identifying a first contiguous string block from malware information stored in a first database, the first contiguous string block including a plurality of component strings;

assigning a ranking score to the first contiguous string block based on a) a sum of sample counts for each component string of the plurality of component strings in the first contiguous string block and b) a proximity of at least one component string in the first contiguous string block to other component strings in the first contiguous string block;

responsive to determining that the first contiguous string block meets a predetermined threshold of similarity to a second contiguous string block contained in a second database containing one or more contiguous string blocks extracted from known malware, wildcarding differences between the first contiguous string block and the second contiguous string block contained in the second database to create a wildcarded contiguous string block;

forming a signature for a malware family, the signature including a plurality of contiguous string blocks, the plurality of contiguous string blocks including the wildcarded contiguous string block; and

assigning a confidence indicator to the signature, wherein the confidence indicator is based on a count of wildcarded characters found in the signature, a count of strings that are components of the wildcarded contiguous string block, and a block order, and wherein the signature is deployed in a learning mode to update the confidence indicator responsive to a determination that the signature is associated with malware.

2. The method of claim 1 , further comprising:

assigning a second confidence indicator to the wildcarded contiguous string block, the second confidence indicator indicative of confidence in a label applied to the first contiguous string block.

3. The method of claim 2 , wherein the second confidence indicator is based at least in part on a number of wildcards in the wildcarded contiguous string block.

4. The method of claim 1 , wherein the second contiguous string block is labelled with a first label within the second database and the first contiguous string block is labelled with the first label.

5. The method of claim 1 , further comprising:

in response to determining that the first contiguous string block meets a threshold of dissimilarity with the one or more contiguous string blocks contained in the second database, saving the first contiguous string block to the second database.

6. The method of claim 1 , wherein the one or more contiguous string blocks contained in the second database are ranked for use in ordering the one or more contiguous string blocks within the second database.

7. The method of claim 1 , further comprising:

scanning one or more unknown files;

comparing the one or more unknown files against the first contiguous string block; and

in response to determining that the first contiguous string block meets a threshold of similarity with the one or more unknown files, treating the one or more unknown files as malware.

8. An apparatus comprising:

memory;

instructions in the memory; and

at least one processor configured to execute the instructions to:

identify a first contiguous string block from malware information stored in a first database, the first contiguous string block including a plurality of component strings;

assign a ranking score to the first contiguous string block based on a) a sum of sample counts for each component string of the plurality of component strings in the first contiguous string block and b) a proximity of at least one component string in the first contiguous string block to other component strings in the first contiguous string block;

responsive to determining that the first contiguous string block meets a predetermined threshold of similarity to a second contiguous string block contained in a second database containing one or more contiguous string blocks extracted from known malware, wildcard differences between the first contiguous string block and the second contiguous string block contained in the second database to create a wildcarded contiguous string block;

form a signature for a malware family, the signature including a plurality of contiguous string blocks, the plurality of contiguous string blocks including the wildcarded contiguous string block; and

assign a confidence indicator to the signature, wherein the confidence indicator is based on a count of wildcarded characters found in the signature, a count of strings that are components of the wildcarded contiguous string block, and a block order, and wherein the signature is deployed in a learning mode to update the confidence indicator responsive to a determination that the signature is associated with malware.

9. The apparatus of claim 8 , wherein the at least one processor is further configured to execute the instructions to assign a second confidence indicator to the wildcarded contiguous string block, the second confidence indicator indicative of confidence in a label applied to the first contiguous string block.

10. The apparatus of claim 9 , wherein the second confidence indicator is based at least in part on a number of wildcards in the wildcarded contiguous string block.

11. The apparatus of claim 8 , wherein the second contiguous string block is labelled with a first label within the second database and the first contiguous string block is labelled with the first label.

12. The apparatus of claim 8 , wherein the at least one processor is further configured to execute the instructions to, in response to determining that the first contiguous string block meets a threshold of dissimilarity with the one or more contiguous string blocks contained in the second database, save the first contiguous string block to the second database.

13. The apparatus of claim 8 , wherein the one or more contiguous string blocks contained in the second database are ranked for use in ordering the one or more contiguous string blocks within the second database.

14. The apparatus of claim 8 , wherein the at least one processor is further configured to execute the instructions to:

scan one or more unknown files;

compare the one or more unknown files against the first contiguous string block; and

in response to determining that the first contiguous string block meets a threshold of similarity with the one or more unknown files, treat the one or more unknown files as malware.

15. A non-transitory computer readable medium comprising instructions which, when executed by processor circuitry, configure the processor circuitry to:

identify a first contiguous string block from malware information stored in a first database, the first contiguous string block including a plurality of component strings;

assign a ranking score to the first contiguous string block based on a) a sum of sample counts for each component string of the plurality of component strings in the first contiguous string block and b) a proximity of at least one component string in the first contiguous string block to other component strings in the first contiguous string block;

responsive to determining that the first contiguous string block meets a predetermined threshold of similarity to a second contiguous string block contained in a second database containing one or more contiguous string blocks extracted from known malware, wildcard differences between the first contiguous string block and the second contiguous string block contained in the second database to create a wildcarded contiguous string block;

form a signature for a malware family, the signature including a plurality of contiguous string blocks, the plurality of contiguous string blocks including the wildcarded contiguous string block; and

assign a confidence indicator to the signature, wherein the confidence indicator is based on a count of wildcarded characters found in the signature, a count of strings that are components of the wildcarded contiguous string block, and a block order, and wherein the signature is deployed in a learning mode to update the confidence indicator responsive to a determination that the signature is associated with malware.

16. The non-transitory computer readable medium of claim 15 , wherein the instructions, when executed, further configure the processor circuitry to assign a second confidence indicator to the wildcarded contiguous string block, the second confidence indicator indicative of confidence in a label applied to the first contiguous string block.

17. The non-transitory computer readable medium of claim 16 , wherein the second confidence indicator is based at least in part on a number of wildcards in the wildcarded contiguous string block.

18. The non-transitory computer readable medium of claim 15 , wherein the second contiguous string block is labelled with a first label within the second database and the first contiguous string block is labelled with the first label.

19. The non-transitory computer readable medium of claim 15 , wherein the instructions, when executed, further configure the processor circuitry to, in response to determining that the first contiguous string block meets a threshold of dissimilarity with the one or more contiguous string blocks contained in the second database, save the first contiguous string block to the second database.

20. The non-transitory computer readable medium of claim 15 , wherein the one or more contiguous string blocks contained in the second database are ranked for use in ordering the one or more contiguous string blocks within the second database.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2023
From: SCHMUGAR, CRAIG; ZHANG, ZHENG; TEDDY, JOHN; HUGHES, MICHAEL
To: MCAFEE, LLC
Reel/Frame 062358/0668 →
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 →
Continuity (1)
Related Publication 20190228151A1 · Jul 25, 2019