IP Library Granted Patent US 10,417,420
Granted Patent B2
US 10,417,420 · App. 15/335,224 · Granted Sep 17, 2019

Malware detection and classification based on memory semantic analysis

Inventor: Jie Zhang (Langley, CA)
Assignee: Fortinet, Inc.
G06F21/562G06F2221/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,417,420
App. No.
15/335,224
Granted
Sep 17, 2019
Kind
B2
Abstract

Systems and methods for malware detection and classification based on semantic analysis of memory dumps of malware are provided. According to one embodiment, a malware detector running within a computer system causes a sample file to be executed within a target process that is monitored by a process monitor of the malware detector. One or more memory dumps associated with the sample file are captured by the process monitor. A determination regarding whether the sample file represents malware is made by the malware detector by analyzing characteristics of at least one memory dump of the one or more memory dumps with reference to characteristics of memory dumps of a plurality of known malware samples.

Claims (54)

1. A method comprising:

causing to be executed, by a malware detector running within a computer system, a sample file within a target process that is monitored by a process monitor of the malware detector;

capturing, by the process monitor, a plurality of memory dumps associated with the sample file, wherein each of the plurality of memory dumps are captured responsive to the process monitor observing one or more corresponding predefined events or circumstances of a plurality of predefined events or circumstances, wherein a first memory dump of the plurality of memory dumps corresponds to a first predefined event or circumstance of the plurality of predefined events or circumstances relating to an attempt by the target process to create a sub-process;

selecting, by the malware detector, at least one memory dump of the plurality of memory dumps based on relative sizes of the plurality of memory dumps and access attributes of memory regions of the plurality of memory dumps, wherein the access attributes of the memory regions are indicative of the memory regions being one or more of readable, writable and executable; and

determining, by the malware detector, whether the sample file represents malware by analyzing characteristics of the selected at least one memory dump with reference to characteristics of memory dumps of a plurality of known malware samples.

2. The method of claim 1 , wherein the plurality of predefined events or circumstances comprise:

the first predefined event or circumstance;

termination of the target process;

an attempt by the target process to write code to another process; and

existence of the target process in memory after a predetermined time period defined by the process monitor.

3. The method of claim 2 , wherein said determining comprises scanning, by the malware detector, the selected at least one memory dump with a plurality of memory dump signatures associated with the plurality of known malware samples.

4. The method of claim 3 , wherein when said scanning does not result in a match between the selected at least one memory dump and one of the plurality of memory dump signatures, then:

causing to be disassembled, by the malware detector, the selected at least one memory dump;

extracting, by the malware detector, features of the sample file from the disassembled memory dump; and

identifying, by the malware detector, the sample file as malware when the extracted features satisfy a predetermined condition with respect to features from a disassembled memory dump of a known malware sample of the plurality of known malware samples.

5. The method of claim 4 , wherein the features include one of more of functions, code-flows, code-blocks and strings of the memory dump of the sample file.

6. The method of claim 5 , wherein said extracting comprises extracting the features by analyzing, by a static heuristic semantic analysis engine of the malware detector, the disassembled memory dump.

7. The method of claim 4 , further comprising:

when the sample file is identified as malware, then generating, by the malware detector, a memory dump signature for the sample file based on the extracted features; and

storing, by the malware detector, the memory dump signature within a database of memory dump signatures.

8. The method of claim 7 , wherein said generating comprises inputting, by the malware detector, the extracted features to a machine learning based signature generator, wherein the machine learning based signature generator is trained by features of known malware.

9. The method of claim 4 , wherein the predetermined condition involves a measure of similarity between the extracted features and the features and wherein the method further comprises:

determining, by the malware detector, the measure of similarity between the extracted features and the features;

determining, by the malware detector, that the sample file belongs to a same family and a same variant as the known malware sample when the measure of similarity is equal to or greater than a first threshold; and

determining, by the malware detector, that the sample file belongs to the same family but a different variant than the known malware sample when the measure of similarity is less than the first threshold and is equal to or greater than a second threshold.

10. The method of claim 1 , wherein the access attributes of the memory regions associated with a particular memory dump of the plurality of memory dumps are recorded by the process monitor when the particular memory dump is captured.

11. A computer system comprising:

non-transitory storage device having embodied therein instructions representing a malware detector; and

one or more processors coupled to the non-transitory storage device and operable to execute the malware detector to perform a method comprising:

causing to be executed a sample file within a target process that is monitored by a process monitor of the malware detector;

capturing, by the process monitor, a plurality of memory dumps associated with the sample file, wherein each of the plurality of memory dumps are captured responsive to the process monitor observing one or more corresponding predefined events or circumstances of a plurality of predefined events or circumstances, wherein a first memory dump of the plurality of memory dumps corresponds to a first predefined event or circumstance of the plurality of predefined events or circumstances relating to an attempt by the target process to create a sub-process;

selecting, by the malware detector, at least one memory dump of the plurality of memory dumps based on relative sizes of the plurality of memory dumps and access attributes of memory regions of the plurality of memory dumps, wherein the access attributes of the memory regions are indicative of the memory regions being one or more of readable, writable and executable; and

determining whether the sample file represents malware by analyzing characteristics of the selected at least one memory dump with reference to characteristics of memory dumps of a plurality of known malware samples.

12. The computer system of claim 11 , wherein the plurality of predefined events or circumstances comprise:

the first predefined event or circumstance;

termination of the target process;

an attempt by the target process to write code to another process; and

existence of the target process in memory after a predetermined time period defined by the process monitor.

13. The computer system of claim 11 , wherein said determining comprises scanning the selected at least one memory dump with a plurality of memory dump signatures associated with the plurality of known malware samples.

14. The computer system of claim 13 , wherein when said scanning does not result in a match between the selected at least one memory dump and one of the plurality of memory dump signatures, then:

causing to be disassembled the selected at least one memory dump;

extracting features of the sample file from the disassembled memory dump; and

identifying the sample file as malware when the extracted features satisfy a predetermined condition with respect to features from a disassembled memory dump of a known malware sample of the plurality of known malware samples.

15. The computer system of claim 14 , wherein the features include one of more of functions, code-flows, code-blocks and strings of the memory dump of the sample file.

16. The computer system of claim 15 , wherein said extracting comprises extracting the features by analyzing, by a static heuristic semantic analysis engine of the malware detector, the disassembled memory dump.

17. The computer system of claim 14 , wherein the method further comprises:

when the sample file is identified as malware, then generating a memory dump signature for the sample file based on the extracted features; and

storing the memory dump signature within a database of memory dump signatures.

18. The computer system of claim 17 , wherein said generating comprises inputting, by the malware detector, the extracted features to a machine learning based signature generator, wherein the machine learning based signature generator is trained by features of known malware.

19. The computer system of claim 14 , wherein the predetermined condition involves a measure of similarity between the extracted features and the features and wherein the method further comprises:

determining, by the malware detector, the measure of similarity between the extracted features and the features;

determining, by the malware detector, that the sample file belongs to a same family and a same variant as the known malware sample when the measure of similarity is equal to or greater than a first threshold; and

determining, by the malware detector, that the sample file belongs to the same family but a different variant than the known malware sample when the measure of similarity is less than the first threshold and is equal to or greater than a second threshold.

20. The method of claim 1 , wherein said selecting includes assigning a highest priority to memory dumps of the plurality of memory dumps containing a memory region in which the access attributes indicate the memory region is readable, writable and executable.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2016
From: ZHANG, JIE
To: FORTINET, INC.
Reel/Frame 040143/0014 →
Continuity (1)
Related Publication 20180114018A1 · Apr 26, 2018
Cited By (3)
US 12,242,606 US 12,242,609 US 12,321,450