IP Library Granted Patent US 10,133,865
Granted Patent B1
US 10,133,865 · App. 15/379,520 · Granted Nov 20, 2018

Systems and methods for detecting malware

Inventors: Reuben Feinman (Mountain View, CA); Jugal Parikh (Mountain View, CA)
Assignee: SYMANTEC CORPORATION
G06F21/56G06N3/04G06N3/08G06F2221/034
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,133,865
App. No.
15/379,520
Granted
Nov 20, 2018
Kind
B1
Abstract

The disclosed computer-implemented method for detecting malware may include (1) identifying a plurality of programs represented in machine code, (2) deriving a plurality of opcode n-grams from opcode sequences within the plurality of programs, (3) training an autoencoder by using the plurality of opcode n-grams as input, (4) discovering a set of features within the autoencoder after training the autoencoder, each feature within the set of features comprising a linear combination of opcode n-grams from the plurality of opcode n-grams, and (5) classifying a potentially malicious program as malicious by using the set of features discovered within the autoencoder to analyze the potentially malicious program. Various other methods, systems, and computer-readable media are also disclosed.

Claims (48)

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 plurality of programs represented in machine code;

deriving a plurality of opcode n-grams from opcode sequences within the plurality of programs, each opcode n-gram within the plurality of opcode n-grams representing a sequence of opcodes extracted from a program within the plurality of programs;

training an autoencoder by using the plurality of opcode n-grams as input;

discovering a set of features within the autoencoder after training the autoencoder, each feature within the set of features comprising a linear combination of opcode n-grams from the plurality of opcode n-grams; and

classifying a potentially malicious program as malicious by using the set of features discovered within the autoencoder to analyze the potentially malicious program by:

initializing a neural network with the set of features discovered within the autoencoder;

training the neural network with supervision using a training set labeled to indicate whether each sample within the training set is malicious; and

classifying the potentially malicious program using the trained neural network.

2. The computer-implemented method of claim 1 , further comprising performing a security action on the potentially malicious program based on classifying the potentially malicious program as malicious.

3. The computer-implemented method of claim 1 , wherein using the set of features discovered within the autoencoder to analyze the potentially malicious program comprises:

extracting the set of features discovered within the autoencoder from the potentially malicious program; and

providing the extracted set of features as input to a machine learning classifier previously trained according to the set of features discovered within the autoencoder.

4. The computer-implemented method of claim 1 , wherein the plurality of opcode n-grams comprises machine code opcodes and not mnemonic-based instructions.

5. The computer-implemented method of claim 1 , wherein the plurality of opcode n-grams comprises opcodes without accompanying operands.

6. The computer-implemented method of claim 1 , deriving the plurality of opcode n-grams from the plurality of programs comprises excluding a subset of opcodes from the plurality of opcode n-grams.

7. The computer-implemented method of claim 1 , wherein deriving the plurality of opcode n-grams from the plurality of programs comprises extracting a plurality of opcodes from a program within the plurality of programs without mapping the opcode to a mnemonic instruction.

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

an identification module, stored in memory, that identifies a plurality of programs represented in machine code;

a derivation module, stored in memory, that derives a plurality of opcode n-grams from opcode sequences within the plurality of programs, each opcode n-gram within the plurality of opcode n-grams representing a sequence of opcodes extracted from a program within the plurality of programs;

a training module, stored in memory, that trains an autoencoder by using the plurality of opcode n-grams as input;

a discovery module, stored in memory, that discovers a set of features within the autoencoder after training the autoencoder, each feature within the set of features comprising a linear combination of opcode n-grams from the plurality of opcode n-grams;

a classification module, stored in memory, that classifies a potentially malicious program as malicious by using the set of features discovered within the autoencoder to analyze the potentially malicious program by:

initializing a neural network with the set of features discovered within the autoencoder;

training the neural network with supervision using a training set labeled to indicate whether each sample within the training set is malicious; and

classifying the potentially malicious program using the trained neural network; and

at least one physical processor configured to execute the identification module, the derivation module, the training module, the discovery module, and the classification module.

9. The system of claim 8 , wherein the classification module further performs a security action on the potentially malicious program based on classifying the potentially malicious program as malicious.

10. The system of claim 8 , wherein the classification module uses the set of features discovered within the autoencoder to analyze the potentially malicious program by:

extracting the set of features discovered within the autoencoder from the potentially malicious program;

providing the extracted set of features as input to a machine learning classifier previously trained according to the set of features discovered within the autoencoder.

11. The system of claim 8 , wherein the plurality of opcode n-grams comprises machine code opcodes and not mnemonic-based instructions.

12. The system of claim 8 , wherein the plurality of opcode n-grams comprises opcodes without accompanying operands.

13. The system of claim 8 , wherein the derivation module derives the plurality of opcode n-grams from the plurality of programs by excluding a subset of opcodes from the plurality of opcode n-grams.

14. The system of claim 8 , wherein the derivation module derives the plurality of opcode n-grams from the plurality of programs by extracting a plurality of opcodes from a program within the plurality of programs without mapping the opcode to a mnemonic instruction.

15. 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 plurality of programs represented in machine code;

derive a plurality of opcode n-grams from opcode sequences within the plurality of programs, each opcode n-gram within the plurality of opcode n-grams representing a sequence of opcodes extracted from a program within the plurality of programs;

train an autoencoder by using the plurality of opcode n-grams as input;

discover a set of features within the autoencoder after training the autoencoder, each feature within the set of features comprising a linear combination of opcode n-grams from the plurality of opcode n-grams; and

classify a potentially malicious program as malicious by using the set of features discovered within the autoencoder to analyze the potentially malicious program by:

initializing a neural network with the set of features discovered within the autoencoder;

training the neural network with supervision using a training set labeled to indicate whether each sample within the training set is malicious; and

classifying the potentially malicious program using the trained neural network.

16. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions further cause the computing device to perform a security action on the potentially malicious program based on classifying the potentially malicious program as malicious.

17. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to use the set of features discovered within the autoencoder to analyze the potentially malicious program by causing the computing device to:

extract the set of features discovered within the autoencoder from the potentially malicious program; and

provide the extracted set of features as input to a machine learning classifier previously trained according to the set of features discovered within the autoencoder.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2016
From: FEINMAN, REUBEN; PARIKH, JUGAL
To: SYMANTEC CORPORATION
Reel/Frame 040739/0394 →
Cited By (3)
US 12,432,229 US 12,602,542 US 12,632,548