IP Library Granted Patent US 10,007,786
Granted Patent B1
US 10,007,786 · App. 14/953,305 · Granted Jun 26, 2018

Systems 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 10,007,786
App. No.
14/953,305
Granted
Jun 26, 2018
Kind
B1
Abstract

A computer-implemented method for detecting malware may include (1) identifying a behavioral trace of a program, the behavioral trace including a sequence of runtime behaviors exhibited by the program, (2) dividing the behavioral trace to identify a plurality of n-grams within the behavioral trace, each runtime behavior within the sequence of runtime behaviors corresponding to an n-gram token, (3) analyzing the plurality of n-grams to generate a feature vector of the behavioral trace, and (4) classifying the program based at least in part on the feature vector of the behavioral trace to determine whether the program is malicious. Various other methods, systems, and computer-readable media are also disclosed.

Claims (55)

1. A computer-implemented method for detecting malware, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a behavioral trace of a program, the behavioral trace comprising a sequence of runtime behaviors exhibited by the program;

dividing the behavioral trace to identify a plurality of n-grams within the behavioral trace, each runtime behavior within the sequence of runtime behaviors corresponding to an n-gram token;

analyzing the plurality of n-grams to generate a feature vector of the behavioral trace comprising:

applying, for each given n-gram in the plurality of n-grams, a feature function to the behavioral trace that describes an occurrence characteristic of the given n-gram within the behavioral trace; and

including a result of the feature function in the feature vector; and

classifying the program based at least in part on the feature vector of the behavioral trace to determine whether the program is malicious;

wherein:

the feature vector comprises a plurality of dimensions, each n-gram within the plurality of n-grams corresponding to a dimension within the plurality of dimensions;

the plurality of n-grams map to the plurality of dimensions according to a non-injective surjection; and

including the result of the feature function in the feature vector comprises aggregating a subset of outputs of the feature function derived from a subset of the plurality of n-grams into a value and assigning the value to a dimension within the plurality of dimensions according to the non-injective surjection.

2. The computer-implemented method of claim 1 , wherein the feature function comprises a boolean function that outputs a predetermined boolean output for the given n-gram when the given n-gram was observed within the behavioral trace.

3. The computer-implemented method of claim 1 , wherein the feature function comprises a frequency function that outputs a value for the given n-gram that indicates a number of times the given n-gram was observed within the behavioral trace.

4. The computer-implemented method of claim 1 , wherein the feature function comprises a density function that outputs a value for the given n-gram that indicates a relative frequency with which the given n-gram was observed within the behavioral trace.

5. The computer-implemented method of claim 1 , wherein identifying the plurality of n-grams within the behavioral trace comprises identifying the plurality of n-grams within a substring of the behavioral trace.

6. The computer-implemented method of claim 5 , wherein identifying the plurality of n-grams within the substring of the behavioral trace comprises identifying the plurality of n-grams within a prefix of the behavioral trace.

7. The computer-implemented method of claim 5 , wherein identifying the plurality of n-grams within the substring of the behavioral trace comprises dividing the behavioral trace into a plurality of fixed-length substrings and identifying the plurality of n-grams within a fixed-length substring within the plurality of fixed-length substrings.

8. The computer-implemented method of claim 1 , wherein:

generating the feature vector of the behavioral trace comprises generating a plurality of feature vectors of the behavioral trace, the feature vectors within the plurality of feature vectors differing by at least one of:

feature functions applied to n-grams sampled from the behavioral trace to generate respective feature vectors;

subsets of n-grams selected from the behavioral trace to generate respective feature vectors; and

classifying the program based at least in part on the feature vector of the behavioral trace comprises submitting each of the plurality of feature vectors to a machine learning classifier.

9. The computer-implemented method of claim 1 , wherein the sequence of runtime behaviors specifies a contextual runtime condition under which at least one runtime behavior was observed.

10. The computer-implemented method of claim 1 , further comprising determining the program is malware based on the classification of the program.

11. The computer-implemented method of claim 10 , further comprising protecting the computing device from the malware.

12. A system for detecting malware, the system comprising:

an identification module, stored in memory, that identifies a behavioral trace of a program, the behavioral trace comprising a sequence of runtime behaviors exhibited by the program;

a division module, stored in memory, that divides the behavioral trace to identify a plurality of n-grams within the behavioral trace, each runtime behavior within the sequence of runtime behaviors corresponding to an n-gram token;

an analysis module, stored in memory, that analyzes the plurality of n-grams to generate a feature vector of the behavioral trace comprising:

applying, for each given n-gram in the plurality of n-grams, a feature function to the behavioral trace that describes an occurrence characteristic of the given n-gram within the behavioral trace; and

including a result of the feature function in the feature vector;

wherein:

the feature vector comprises a plurality of dimensions, each n-gram within the plurality of n-grams corresponding to a dimension within the plurality of dimensions;

the plurality of n-grams map to the plurality of dimensions according to a non-injective surjection; and

including the result of the feature function in the feature vector comprises aggregating a subset of outputs of the feature function derived from a subset of the plurality of n-grams into a value and assigning the value to a dimension within the plurality of dimensions according to the non-injective surjection;

a classification module, stored in memory, that classifies the program based at least in part on the feature vector of the behavioral trace to determine whether the program is malicious; and

at least one physical processor configured to execute the identification module, the division module, the analysis module, and the classification module.

13. The system of claim 12 , wherein the feature function comprises a boolean function that outputs a predetermined boolean output for the given n-gram when the given n-gram was observed within the behavioral trace.

14. The system of claim 12 , wherein the feature function comprises a frequency function that outputs a value for the given n-gram that indicates a number of times the given n-gram was observed within the behavioral trace.

15. The system of claim 12 , wherein the feature function comprises a density function that outputs a value for the given n-gram that indicates a relative frequency with which the given n-gram was observed within the behavioral trace.

16. The system of claim 12 , wherein the classification module further determines the program is malware based on the classification of the program.

17. The system of claim 16 , wherein the classification module further protects the system from the malware.

18. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a behavioral trace of a program, the behavioral trace comprising a sequence of runtime behaviors exhibited by the program;

divide the behavioral trace to identify a plurality of n-grams within the behavioral trace, each runtime behavior within the sequence of runtime behaviors corresponding to an n-gram token;

analyze the plurality of n-grams to generate a feature vector of the behavioral trace comprising;

applying, for each given n-gram in the plurality of n-grams, a feature function to the behavioral trace that describes an occurrence characteristic of the given n-gram within the behavioral trace;

including a result of the feature function in the feature vector; and

classifying the program based at least in part on the feature vector of the behavioral trace to determine whether the program is malicious

wherein:

the feature vector comprises a plurality of dimensions, each n-gram within the plurality of n-grams corresponding to a dimension within the plurality of dimensions;

the plurality of n-grams map to the plurality of dimensions according to a non-injective surjection; and

including the result of the feature function in the feature vector comprises aggregating a subset of outputs of the feature function derived from a subset of the plurality of n-grams into a value and assigning the value to a dimension within the plurality of dimensions according to the non-injective surjection.

19. The non-transitory computer-readable medium of claim 18 , wherein the one or more computer-readable instructions further cause the computing device to determine the program is malware based on the classification of the program.

20. The non-transitory computer-readable medium of claim 19 , further comprising protecting the computing device from the malware.

Assignments (6)
CHANGE OF NAME Recorded Feb 6, 2023
From: NORTONLIFELOCK INC.
To: GEN DIGITAL INC.
Reel/Frame 062714/0605 →
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Feb 14, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 051935/0228 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2016
From: BHATKAR, SANDEEP; PARIKH, JUGAL; NACHENBERG, CAREY
To: SYMANTEC CORPORATION
Reel/Frame 037415/0953 →
Cited By (1)
US 12,670,243