IP Library Granted Patent US 12,158,950
Granted Patent B1
US 12,158,950 · App. 17/154,358 · Granted Dec 3, 2024

Computer-implemented tool that facilitates malware detection

Inventors: Jina Lee (Mountain View, CA); Christopher B. Harrison (Livermore, CA); Michael Bierma (Dublin, CA); Kina Kincher-Winoto (Livermore, CA); David Kavaler (Dublin, CA)
Assignee: National Technology & Engineering Solutions of Sandia, LLC
G06F21/554G06F21/552G06F21/564
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 12,158,950
App. No.
17/154,358
Granted
Dec 3, 2024
Kind
B1
Abstract

Described herein are technologies related to generation of a summary of a function in binary code for review by an analyst. A first sequence to sequence model is configured to receive binary code (or a derivative thereof) and translate the binary code to an intermediate representation of the binary code, wherein the intermediate representation approximates source code for the binary code. A second sequence to sequence model is configured to receive the intermediate representation of the binary code and translate the intermediate representation to a human-readable summary of the binary code.

Claims (44)

1. A computing system that is configured to generate a summary of a function in computer-executable code, the computing system comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to perform acts comprising:

providing the computer-executable code to a first sequence to sequence model, where the computer-executable code is one of:

binary code;

disassembled binary code; or

decompiled binary code;

wherein the computer-executable code comprises the function, and further wherein the first sequence to sequence model outputs an intermediate representation of the function based upon the computer-executable code, the intermediate representation of the function being an approximation of source code for the function, and wherein the first sequence to sequence model is trained based upon first training data, the first training data comprises pairs of disassembled binary code portions and corresponding functions in source code;

providing the intermediate representation of the function to a second sequence to sequence model, wherein the second sequence to sequence model outputs the summary of the function in human-readable language based upon the intermediate representation of the function; and

outputting the summary of the function for presentment on a display associated with the computing system to an analyst.

2. The computing system of claim 1 , wherein the second sequence to sequence model is trained based upon second training data, the second training data comprises pairs of the functions in source code and corresponding comments assigned to the functions, wherein the comments are in the human-readable language.

3. The computing system of claim 1 , wherein the human-readable language is English.

4. The computing system of claim 1 , the acts further comprising:

identifying, based upon the summary of the function in the human-readable language, that the function in the computer-executable code is associated with malware; and

causing a graphical indicator to be presented on the display with the summary of the function, the graphical indicator indicates to the analyst that the function in the computer-executable code is associated with malware.

5. The computing system of claim 1 , the acts further comprising:

outputting the intermediate representation of the function for presentment on the display concurrently with the summary of the function in human-readable language.

6. The computing system of claim 1 , the acts further comprising:

assigning the summary of the function in the human-readable language as a comment to source code that corresponds to the computer-executable code.

7. The computing system of claim 1 , wherein the computer-executable code is disassembled binary code.

8. The computing system of claim 1 , wherein the computer-executable code is binary code.

9. A method performed by a processor of a computing system, the method comprising:

receiving computer-executable code that includes a function, the computer-executable code being one of:

binary code;

disassembled binary code; or

decompiled binary code;

generating an intermediate representation of the computer-executable code, wherein generating the intermediate representation comprises providing the computer-executable code as input to a first sequence to sequence model, wherein the first sequence to sequence model outputs the intermediate representation of the computer-executable code based upon the computer-executable code, and further where the intermediate representation is an approximation of source code for the computer-executable code;

generating a summary of the function in the computer-executable code, wherein the summary is in a human-readable language, and further wherein generating the summary of the function comprises providing the intermediate representation of the computer-executable code as input to a second sequence to sequence model, wherein the second sequence to sequence model outputs the summary based upon the intermediate representation of the computer-executable code;

outputting the summary of the function to a display of a computing device operated by an analyst;

determining, based upon the summary of the function, that the function in the computer-executable code is associated with malware; and

outputting an indication to the display of the computing device that the function in the computer-executable code is associated with malware.

10. The method of claim 9 , wherein the computer-executable code is binary code.

11. The method of claim 9 , wherein the computer-executable code is disassembled binary code.

12. The method of claim 9 , wherein the intermediate representation of the computer-executable code is an approximation of source code in C or C++ for the computer-executable code.

13. The method of claim 9 , wherein the first sequence to sequence model is trained based upon pairs that comprise binary code and corresponding source code for the binary code.

14. The method of claim 13 , wherein the second sequence to sequence model is trained based upon pairs that comprise source code and comments for the source code.

15. A computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform acts comprising:

providing computer-readable disassembled binary code to a first sequence to sequence model, wherein the computer-readable disassembled binary code comprises a function, and further wherein the first sequence to sequence model outputs an intermediate representation of the function based upon the computer-readable disassembled binary code, the intermediate representation being an approximation of source code for the computer-readable disassembled binary code, and further wherein the first sequence to sequence model is trained based upon first training data, the first training data comprises pairs of disassembled binary code portions and corresponding functions in source code;

providing the intermediate representation of the function to a second sequence to sequence model, wherein the second sequence to sequence model outputs the summary of the function in human-readable language based upon the intermediate representation of the function; and

outputting the summary of the function for presentment on a display associated with the computing system to an analyst.

16. The computer-readable storage medium of claim 15 , the acts further comprising:

determining, based upon the summary of the function, that the function in the disassembled binary code is associated with malware; and

outputting an indication to the display of the computing device that the function in the disassembled binary code is associated with malware.

17. The computer-readable storage medium of claim 15 , wherein the second sequence to sequence model is trained based upon second training data, the second training data comprises pairs of the functions in source code and corresponding comments assigned to the functions, wherein the comments are in the human-readable language.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2021
From: LEE, JINA; HARRISON, CHRISTOPHER B.; BIERMA, MICHAEL; KINCHER-WINOTO, KINA; KAVALER, DAVID
To: NATIONAL TECHNOLOGY & ENGINEERING SOLUTIONS OF SANDIA, LLC
Reel/Frame 055546/0746 →
CONFIRMATORY LICENSE Recorded Mar 3, 2021
From: NATIONAL TECHNOLOGY & ENGINEERING SOLUTIONS OF SANDIA, LLC
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 055481/0797 →
Cited By (1)
US 12,591,670