IP Library Patent Application 15098422
Patent Application
App. No. 15/098,422

AUTOMATED IDENTIFICATION AND REVERSE ENGINEERING OF MALWARE

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 None
App. No.
15/098,422
Abstract

An automated malware identification and reverse engineering tool is provided. Subroutine categories may be learned by machine learning. A program may then be reverse-engineered and classified, and subroutines that are potentially indicative of malware may be identified. These subroutines may be reviewed by a reverse engineer to determine whether the program is malware in a more directed and efficient manner.

Claims (45)

1 . A computer-implemented method, comprising:

automatically labeling each subroutine in a program, by a computing system, in a function call graph;

applying a probabilistic approach, by the computing system, to identify at least one subroutine as potentially indicative of malware; and

providing an indication of the at least one identified subroutine, by the computing system, to an analyst for further analysis.

2 . The computer-implemented method of claim 1 , wherein the probabilistic approach further comprises:

modeling subroutine labels, by the computing system, using a Support Vector Machine (SVM) or Gaussian process.

3 . The computer-implemented method of claim 1 , wherein the automatic labeling of each subroutine further comprises:

labeling each subroutine, by the computing system, as file I/O, process/thread, network, GUI, registry, and/or exploit.

4 . The computer-implemented method of claim 1 , wherein the automatic labeling of each subroutine further comprises:

using a multiview approach, by the computing system, to construct a subroutine kernel matrix for use in the automatic labeling.

5 . The computer-implemented method of claim 4 , wherein different views of the multiview approach comprise instructions contained within each subroutine, Application Programming Interface (API) calls contained within each subroutine, and neighbor information for each subroutine.

6 . The computer-implemented method of claim 5 , wherein any combination of, API calls, neighbor information, and/or API calls is used for classification of each subroutine.

7 . The computer-implemented method of claim 1 , wherein the automatic labeling further comprises:

using of neighborhood information, by the computing system, to determine subroutine function, with an assumption that neighboring subroutines of a subroutine x are likely to perform a similar function to neighboring subroutines of a subroutine y, given that x and y have a same label.

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

receiving a training program and a list of subroutines labeled in a plurality of categories, by the computing system; and

learning an identification strategy of how to identify the categories based on the received list of subroutines and labels, by the computing system, wherein

the automatic labeling of each subroutine is based on the learned identification strategy.

9 . The computer-implemented method of claim 8 , wherein the subroutines are modeled as a Markov chain with the categories as nodes of a Markov chain graph.

10 . The computer-implemented method of claim 1 , wherein in the function call graph, edge weights for edges originating at a vertex v i are required to sum to 1, such that Σ i→j e ij =1.

11 . The computer-implemented method of claim 1 , wherein an n×n (n=|V|) adjacency matrix is used to represent the function call graph, where for each entry a ij in the matrix, a ij =e ij .

12 . A computer program embodied on a non-transitory computer-readable medium, the program configured to cause at least one processor to:

receive a training program and list of subroutines labeled in a plurality of categories;

learn an identification strategy of how to identify the categories based on the received subroutines and labels; and

label new subroutines based on the learned identification strategy.

13 . The computer program of claim 12 , the program further configured to cause the at least one processor to:

apply a probabilistic approach to identify at least one subroutine as potentially indicative of malware; and

provide an indication of the at least one identified subroutine, by the computing system, to an analyst for further analysis.

14 . The computer program of claim 13 , wherein in the function call graph, edge weights for edges originating at a vertex v i are required to sum to 1, such that Σ i→j e ij =1.

15 . The computer program of claim 13 , wherein an n×n (n=|V|) adjacency matrix is used to represent the function call graph, where for each entry a ij in the matrix, a ij =e ij .

16 . The computer program of claim 12 , wherein the subroutines are modeled as a Markov chain with the categories as nodes of a Markov chain graph.

17 . An apparatus, comprising:

memory storing computer program instructions; and

at least one processor configured to execute the stored computer program instructions, wherein the at least one processor, by executing the stored computer program instructions, is configured to:

receive a training program and list of subroutines labeled in a plurality of categories,

learn an identification strategy of how to identify the categories based on the received subroutines and labels,

automatically label new subroutines in a function call graph based on the learned identification strategy, and

apply a probabilistic approach to identify at least one subroutine as potentially indicative of malware.

18 . The apparatus of claim 17 , wherein the at least one processor is further configured to:

provide an indication of the at least one identified subroutine to an analyst for further analysis.

19 . The apparatus of claim 17 , wherein the at least one processor is further configured to:

label each subroutine as file I/O, process/thread, network, GUI, registry, and/or exploit.

20 . The apparatus of claim 17 , wherein the at least one processor is further configured to:

use a multiview approach to construct a subroutine kernel matrix for use in the automatic labeling, wherein

different views of the multiview approach comprise instructions contained within each subroutine, Application Programming Interface (API) calls contained within each subroutine, and neighbor information for each subroutine.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2018
From: LOS ALAMOS NATIONAL SECURITY, LLC
To: TRIAD NATIONAL SECURITY, LLC
Reel/Frame 047396/0489 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2018
From: ANDERSON, BLAKE
To: LOS ALAMOS NATIONAL SECURITY, LLC
Reel/Frame 046388/0374 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2016
From: STORLIE, CURTIS, MR.; SEXTON, JOSEPH, MR.
To: LOS ALAMOS NATIONAL SECURITY, LLC
Reel/Frame 039109/0489 →
CONFIRMATORY LICENSE Recorded May 27, 2016
From: LOS ALAMOS NATIONAL SECURITY
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 038734/0064 →