IP Library Granted Patent US 8,312,546
Granted Patent B2
US 8,312,546 · App. 11/738,882 · Granted Nov 13, 2012

Systems, apparatus, and methods for detecting malware

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,312,546
App. No.
11/738,882
Granted
Nov 13, 2012
Kind
B2
Abstract

Various embodiments, including a method comprising creating a first fuzzy fingerprint of a known malware file, the first fuzzy fingerprint including a first set of calculated complexity approximations and weightings for each of a plurality of blocks within the known malware file, creating a second fuzzy fingerprint of a file to be checked, the second fuzzy fingerprint including a second set of calculated complexity approximations and weightings for each of a plurality of blocks within the file to be checked, comparing the second fuzzy fingerprint to the first fuzzy fingerprint, calculating a similarity probability for each of the block-wise comparisons, the calculation including a respective weightings for each of the plurality of blocks within the known malware file and for each of the plurality of blocks within the file to be checked, and the calculation including a distance between the compared blocks; and calculating an overall similarity probability for the plurality of blocks compared.

Claims (183)

1. A method comprising:

creating a first fuzzy fingerprint of a known malware file, the first fuzzy fingerprint including a first set of calculated complexity approximations and weightings for each of a plurality of blocks within the known malware file;

creating a second fuzzy fingerprint of a file to be checked, the second fuzzy fingerprint including a second set of calculated complexity approximations and weightings for each of a plurality of blocks within the file to be checked;

comparing the second fuzzy fingerprint to the first fuzzy fingerprint via a computerized system, the comparing including comparing the calculated complexity approximations from the second fuzzy fingerprint with a plurality of the complexity approximations from the first fuzzy fingerprint using a plurality of block-wise comparisons of the plurality of blocks within the known malware file and the plurality of blocks within the file to be checked; and

calculating a similarity probability for each of the block-wise comparisons, the calculation including a respective weighting for each of the plurality of blocks within the known malware file and for each of the plurality of blocks within the file to be checked, and the calculation including an actual deviation of both blocks complexity approximation in relation to a maximum possible deviation, times a proximity factor for the comparison between an offset i in a first file x 1 and an offset j in a second file x 2 ; and

calculating an overall similarity probability for the plurality of blocks compared, the overall similarity probability therefore comprising a similarity probability between the known malware file and the file to be checked.

2. The method of claim 1 , including stopping the block-wise comparisons if a threshold number of block-wise comparisons in a row each dropped below a threshold value N for the calculated similarity probability.

3. The method of claim 1 , calculating a complexity approximation for each of a plurality of blocks within the known malware file and calculating a complexity approximation for each of the plurality of blocks within the file to be checked includes calculating the information entropy for a given block using the formula:

H

(

X

)

=

-

i

=

1

n

p

(

x

i

)

log

2

p

(

x

i

)

where

H(X) is based on the information content or self-information of X, which is itself an arbitrary variable;

p(x i )=Pr(X=x i ) is the probability mass function of X; and

is calculated with x={0..255}, x i =i−1 and n=|x|.

4. The method of claim 1 , including summing up using Bayes' formula to generate the overall similarity probability, wherein Bayes' formula relates the conditional and marginal probabilities of stochastic events A and B:

Pr

(

A

|

B

)

=

Pr

(

B

|

A

)

Pr

(

A

)

Pr

(

B

)

L

(

A

|

B

)

Pr

(

A

)

where L(A|B) is the likelihood of A given fixed B.

5. The method of claim 1 , wherein calculating the overall similarity probability for the plurality of blocks compared includes comparing the overall similarity probability to a threshold value M to determine if the second file is to be considered malware.

6. The method of claim 5 , including determining that the file to be checked is a variant of the known malware file when the calculated overall similarity probability equals or exceeds the threshold value M.

7. The method of claim 1 , wherein calculating the overall similarity probability for the plurality of blocks compared includes comparing the overall similarity probability to a threshold value X and a threshold value M to determine if the second file is to be considered malware or is to be considered a suspicious file, wherein the threshold value M is greater than the threshold value X.

8. The method of claim 7 , wherein when the calculated overall similarity probability is less than the threshold value X the file to be checked is determined not to be a variant of the known malware file, and when the calculated overall similarity probability is greater than threshold value M the file to be checked is determined to be a variant of the known malware file, and the file to be checked is considered a suspicious file when the calculated overall similarity probability is greater than the threshold value X but less than or equal to the threshold value for M.

9. An apparatus comprising:

a gateway including an anti-malware engine coupled to a generated fuzzy fingerprints database including plurality of fuzzy fingerprints for known malware files, each fuzzy fingerprint for a known malware file including a first set of calculated complexity approximations and weightings for each of a plurality of blocks within the known malware file;

a fuzzy fingerprint generator coupled to the anti-malware engine, the fuzzy fingerprint generator operable to produce a fuzzy fingerprint including a complexity approximation for each of a plurality of blocks for a file to be checked provided by the anti-malware engine; and

a fingerprint comparator coupled to the anti-malware engine, the fingerprint comparator operable to compare a produced fingerprint from the fuzzy fingerprint generator with any one of the plurality of fuzzy fingerprints from the generated fuzzy fingerprints database by calculating a similarity probability for each of the block-wise comparisons, the calculation including respective weighting for each of the plurality of blocks within the known malware file and for each of the plurality of blocks within the file to be checked and the calculation including an actual deviation of both blocks complexity approximation in relation to a maximum possible deviation, times a proximity factor for the comparison between an offset i in a first file x i and an offset j in a second file x 2 , thereby producing a similarity probability between the known malware file and the file to be checked.

10. The apparatus of claim 9 , producing a complexity approximation for each of a plurality of blocks includes calculating the information entropy for a given block using the formula:

H

(

X

)

=

-

i

=

1

n

p

(

x

i

)

log

2

p

(

x

i

)

where

H(X) is based on the information content or self-information of X which is itself an arbitrary variable;

p(x i )=Pr(X=x i ) is the probability mass function of X; and

is calculated with x={0..255}, x i =i−1 and n=|x|.

11. The apparatus of claim 9 , including summing up using Bayes' formula to generate an overall similarity probability, wherein Bayes' formula relates the conditional and marginal probabilities of stochastic events A and B:

Pr

(

A

|

B

)

=

Pr

(

B

|

A

)

Pr

(

A

)

Pr

(

B

)

L

(

A

|

B

)

Pr

(

A

)

where L(A|B) is the likelihood of A given fixed B.

12. The apparatus of claim 9 , including an update mechanism operable to receive updated versions of generated fuzzy fingerprints for storage in the generated fuzzy fingerprints database.

13. The apparatus of claim 9 , wherein the generated fuzzy fingerprints database includes a precondition table that contains magic bytes signatures for all media type covered by the database.

14. The apparatus of claim 9 , wherein the generated fuzzy fingerprints database includes a jump table operable to determine a relative offset into the generated fuzzy fingerprints database based on a file size of the file to be checked.

15. A system comprising:

a plurality of protected devices coupled to a network through a gateway, the gateway comprising a computerized system including an anti-malware engine;

a generated fuzzy fingerprint database coupled to the anti-malware engine, the generated fingerprint database including plurality of fingerprints for known malware files coupled to the anti-malware engine, the fingerprint for each known malware file comprising a first set of calculated approximations and weightings for each of a plurality of blocks within the known malware file;

a fuzzy fingerprint generator coupled to the anti-malware engine, the fuzzy fingerprint generator operable to produce a fuzzy executable fingerprint including a complexity approximation for each of a plurality of blocks in a file provided by the anti-malware engine; and

a fuzzy fingerprint comparator coupled to the anti-malware engine, the fuzzy fingerprint comparator operable to compare a produced fuzzy executable fingerprint from the fingerprint generator for the file to be checked with any one of a plurality of fingerprints from the generated fingerprint database by calculating a similarity probability for each of the block-wise comparisons, the calculation including respective weighting for each of the plurality of blocks within the known malware file and for each of the plurality of blocks within the file to be checked, and the calculation including an actual deviation of both blocks complexity approximation in relation to a maximum possible deviation, times a proximity factor for the comparison between an offset i in a first file x 1 and an offset i in a second file x 2 , thereby producing a similarity probability between the known malware file and the file to be checked.

16. The system of claim 15 , wherein the generated fuzzy fingerprints database is coupled to an update mechanism, the update mechanism operable to receive an updated version of the generated fuzzy fingerprints database.

17. The system of claim 16 , wherein the updated version update is created from a training set of known malware files on a vendor-provided fingerprint generator server.

18. The system of claim 15 , wherein the generated fuzzy fingerprints database is coupled to an update mechanism, the update mechanism operable to receive a new version of the fuzzy executable fingerprints for known malware files.

19. The system of claim 18 , wherein the new version of fuzzy executable fingerprints for known malware files is an incremental update of a previous version of fuzzy executable fingerprints for known malware files.

20. The system of claim 15 , including an update provisioning server coupled to an update mechanism, the update provisioning server operable to couple the update provisioning server to a fuzzy fingerprint generator server.

21. The system of claim 15 , including a fuzzy fingerprint generator server operable to store a plurality of known malware files to be used as one or more training sets for generating a fuzzy executable fingerprint for each of a known malware file.

Assignments (12)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2010
From: SECURE COMPUTING, LLC
To: MCAFEE, INC.
Reel/Frame 024456/0724 →
CHANGE OF NAME Recorded Mar 25, 2010
From: SECURE COMPUTING CORPORATION
To: SECURE COMPUTING, LLC
Reel/Frame 024128/0806 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2008
From: ALME, CHRISTOPH
To: SECURE COMPUTING CORPORATION
Reel/Frame 021024/0895 →