IP Library Granted Patent US 12,271,467
Granted Patent B2
US 12,271,467 · App. 17/562,679 · Granted Apr 8, 2025

Automated generation of a sandbox configuration for malware detection

Inventor: Jason Neal Raber (Bellbrook, OH)
Assignee: Malwarebytes Corporate Holdco Inc.
G06F21/53G06F9/44521G06F9/54G06F21/566G06F2221/033
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,271,467
App. No.
17/562,679
Granted
Apr 8, 2025
Kind
B2
Abstract

A method that automatically generates blacklists for a sandbox application. The method first obtains a set of disassembled operating system (OS) dynamic-link libraries (DLLs) and then identifies application programming interfaces (API) functions that have respective kernel interruptions. The identified API functions that have kernel instructions are saved to an interrupt list. Based on the interrupt list, a processor generates a blacklist that includes for each of the DLLs, the identified API functions in the interrupt list, all API functions that directly or indirectly invoke one of the identified API functions in the interrupt list via one or more nested API functions. The method outputs the blacklist to the sandbox application that operates on a sample file to emulate API functions of the sample file that match the blacklist. All other APIs not identified as being blacklisted, are then considered whitelisted and are allowed to run natively.

Claims (78)

1. A method for analyzing a sample file in a sandbox application, the method comprising:

obtaining, at the sandbox application, a blacklist of API functions, wherein the blacklist was generated by a process including:

identifying, based on operating system disassembled dynamic-link libraires, a set of API functions that causes kernel interrupts;

storing the set of API functions having instructions that cause kernel interrupts to an interrupt list;

identifying a plurality of API functions for the blacklist by:

selecting, for the blacklist, at least one API function that directly invokes one of the set of API functions,

selecting, for the blacklist, at least one API function that indirectly invokes one of the set of API functions,

selecting, for the blacklist, at least one API function that invokes one of the set of API functions via one or more nested API functions, and

iteratively selecting, for the blacklist, at least one API function not on the blacklist that calls one of the API functions on the blacklist;

forming the blacklist from the identified plurality of API functions; and

analyzing the sample file in the sandbox application by emulating API functions of the sample file that match the blacklist.

2. The method of claim 1 , wherein identifying the set of API functions that causes kernel interrupts comprises:

identifying an initial set of exported system API functions in a set of disassembled operating system dynamic-link libraries that each invokes one of the identified API functions in the set of API functions in the interrupt list.

3. The method of claim 2 , wherein the process further comprises:

detecting that all API functions in the set of disassembled operating system dynamic-link libraries are either on the blacklist or do not call one of the API functions on the blacklist; and

stopping identifying additional API functions in the set of disassembled operating system dynamic-link libraries.

4. The method of claim 2 , wherein the process further comprises:

identifying API functions in the set of disassembled operating system dynamic-link libraries that are not on the blacklist;

storing the API functions that are not on the blacklist to a whitelist; and

outputting the whitelist to the sandbox application.

5. The method of claim 4 , wherein the sandbox application natively executes API functions invoked by the sample file that match the whitelist.

6. The method of claim 1 , wherein storing the identified set of API functions to the interrupt list comprises:

storing, for each of a set of disassembled operating system dynamic-link libraries, respective partial lists; and

concatenating the partial lists into the interrupt list.

7. The method of claim 1 , wherein identifying the set of API functions that causes kernel interrupts comprises:

identifying the set of API functions that include instructions matching a predefined syntax associated with the kernel interrupts.

8. A non-transitory computer readable storage medium storing instructions for analyzing a sample file in a sandbox application, the instructions when executed by one or more processors causing the one or more processors to perform steps comprising:

obtaining a blacklist of API functions, wherein the blacklist was generated by a process including:

identifying, based on operating system disassembled dynamic-link libraires, a set of API functions that causes kernel interrupts;

storing the set of API functions having instructions that cause kernel interrupts to an interrupt list;

identifying a plurality of API functions for the blacklist by:

selecting, for the blacklist, at least one API function that directly invokes one of the set of API functions,

selecting, for the blacklist, at least one API function that indirectly invokes one of the set of API functions,

selecting, for the blacklist, at least one API function that invokes one of the set of API functions via one or more nested API functions, and

iteratively selecting, for the blacklist, at least one API function not on the blacklist that calls one of the API functions on the blacklist;

forming the blacklist from the identified plurality of API functions; and

analyzing the sample file in the sandbox application by emulating API functions of the sample file that match the blacklist.

9. The non-transitory computer readable storage medium of claim 8 , wherein identifying the set of API functions that causes kernel interrupts comprises:

identifying an initial set of exported system API functions in a set of disassembled operating system dynamic-link libraries that each invokes one of the identified API functions in the set of API functions in the interrupt list.

10. The non-transitory computer readable storage medium of claim 9 , wherein the process further comprises:

detecting that all API functions in the set of disassembled operating system dynamic-link libraries are either on the blacklist or do not call one of the API functions on the blacklist; and

stopping identifying additional API functions in the set of disassembled operating system dynamic-link libraries.

11. The non-transitory computer readable storage medium of claim 9 , wherein the process further comprises:

identifying API functions in the set of disassembled operating system dynamic-link libraries that are not on the blacklist;

storing the API functions that are not on the blacklist to a whitelist; and

outputting the whitelist to the sandbox application.

12. The non-transitory computer readable storage medium of claim 11 , wherein sandbox application natively executes API functions invoked by the sample file that match the whitelist.

13. The non-transitory computer readable storage medium of claim 8 , wherein storing the set of API functions to an interrupt list comprises:

storing, for each of a set of disassembled operating system dynamic-link libraries, respective partial lists; and

concatenating the partial lists into the interrupt list.

14. The non-transitory computer readable storage medium of claim 8 , wherein identifying the API functions that have the respective kernel interrupt functions comprises:

identifying the set of API functions that include instructions matching a predefined syntax associated with the kernel interrupts.

15. A computer system comprising:

one or more processors; and

a non-transitory computer readable storage medium storing instructions for analyzing a sample file in a sandbox application, the instructions when executed by one or more processors causing the one or more processors to perform steps comprising:

obtaining a blacklist of API functions, wherein the blacklist was generated by a process including:

identifying, based on operating system disassembled dynamic-link libraires, a set of API functions that causes kernel interrupts;

storing the set of API functions having instructions that cause kernel interrupts to an interrupt list;

identifying a plurality of API functions for the blacklist by:

selecting, for the blacklist, at least one API function that directly invokes one of the set of API functions,

selecting, for the blacklist, at least one API function that indirectly invokes one of the set of API functions,

selecting, for the blacklist, at least one API function that invokes one of the set of API functions via one or more nested API functions, and

iteratively selecting, for the blacklist, at least one API function not on the blacklist that calls one of the API functions on the blacklist;

forming the blacklist from the identified plurality of API functions; and

analyzing the sample file in the sandbox application by emulating API functions of the sample file that match the blacklist.

16. The computer system of claim 15 , wherein identifying the set of API functions that causes kernel interrupts comprises:

identifying an initial set of exported system API functions in a set of disassembled operating system dynamic-link libraries that each invokes one of the identified API functions in the set of API functions in the interrupt list.

17. The computer system of claim 16 , wherein the process further comprises:

detecting that all API functions in the set of disassembled operating system dynamic-link libraries are either on the blacklist or do not call one of the API functions on the blacklist; and

stopping identifying additional API functions in the set of disassembled operating system dynamic-link libraries.

18. The computer system of claim 16 , wherein the process further comprises:

identifying API functions in the set of disassembled operating system dynamic-link libraries that are not on the blacklist;

storing the API functions that are not on the blacklist to a whitelist; and

outputting the whitelist to the sandbox application.

19. The computer system of claim 18 , wherein sandbox application natively executes API functions invoked by the sample file that match the whitelist.

20. The computer system of claim 15 , wherein storing the identified set of API functions to an interrupt list comprises:

storing, for each of a set of disassembled operating system dynamic-link libraries, respective partial lists; and

concatenating the partial lists into the interrupt list.

Assignments (8)
SECURITY INTEREST Recorded Apr 30, 2026
From: MALWAREBYTES INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 075670/0355 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Oct 21, 2024
From: COMPUTERSHARE TRUST COMPANY, N.A.
To: MALWAREBYTES CORPORATE HOLDCO INC.
Reel/Frame 069193/0563 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Oct 21, 2024
From: COMPUTERSHARE TRUST COMPANY, N.A.
To: MALWAREBYTES INC.
Reel/Frame 069193/0505 →
SECURITY INTEREST Recorded Oct 18, 2024
From: MALWAREBYTES INC.; MALWAREBYTES CORPORATE HOLDCO INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 068943/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2024
From: MALWAREBYTES INC.
To: MALWAREBYTES CORPORATE HOLDCO INC.
Reel/Frame 066900/0386 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 26, 2024
From: MALWAREBYTES CORPORATE HOLDCO INC.
To: COMPUTERSHARE TRUST COMPANY, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 066373/0912 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 1, 2023
From: MALWAREBYTES INC.
To: COMPUTERSHARE TRUST COMPANY, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 062599/0069 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2021
From: RABER, JASON NEAL
To: MALWAREBYTES INC.
Reel/Frame 058485/0724 →
Continuity (2)
Continuation 17089507 · Nov 4, 2020
Related Publication 20220138314A1 · May 5, 2022
References Cited (14)
US 11232193B1 · Raber · 2022 [cited by examiner]
US 20020065948A1 · Morris · 2002 [cited by examiner]
US 20080276102A1 · MacKay · 2008 [cited by examiner]
US 20100333203A1 · Tsviatkou et al. · 2010 [cited by applicant]
US 20170032122A1 · Thakar et al. · 2017 [cited by applicant]
US 20180181451A1 · Saxena et al. · 2018 [cited by applicant]
US 20180330010A1 · Seki · 2018 [cited by examiner]
US 20190303574A1 · Lamay et al. · 2019 [cited by applicant]
US 20230188832A1 · Xu · 2023 [cited by examiner]
Jiang, “Stealthy Malware Detection Through VMM-Based”, Nov. 2007, ACM, pp. 1-12 (Year: 2007). [cited by examiner]
Kang, “Detecting and Classifying Android Malware and Using Static Analysis along with Creator Information”, 2015, International Journal of Distributed Sensor Networks, pp. 1-9 (Year: 2015). [cited by examiner]
Srivastava, A. et al., “Efficient Monitoring of Untrusted Kernel-Mode Execution”, Proceedings of the Network and Distributed System Security Symposium, NDSS, Jan. 2011, pp. 1-18. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/089,507, May 19, 2021, 28 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/089,507, Jan. 7, 2021, 25 pages. [cited by applicant]