IP Library Granted Patent US 9,754,105
Granted Patent B1
US 9,754,105 · App. 14/035,678 · Granted Sep 5, 2017

Preventing the successful exploitation of software application vulnerability for malicious purposes

Inventors: Pedro Bustamante López-Chicheri (Manila, PH); David Sánchez Lavado (Bilbao, ES)
Assignee: Malwarebytes Corporation
G06F21/55G06F21/552G06F21/554G06F21/566
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 9,754,105
App. No.
14/035,678
Granted
Sep 5, 2017
Kind
B1
Abstract

An anti-exploit system monitors and identifies malicious behavior related to one or more protected applications or processes. The anti-exploit system intercepts API calls associated with the protected application or process including parameters passed on to the operating system functions as well as a memory address associated with the caller to the API calls. Based on the characteristics associated with the intercepted API call a Behavioral Analysis Component determines whether the API call is malicious in nature.

Claims (68)

1. A method for identifying malicious behavior of a protected process of a protected application, the method comprising:

storing a plurality of application profiles, each of the plurality of application profiles associated with a different group of related applications of a particular application type, each of the plurality of application profiles including a different list of application programming interface (API) calls;

detecting an API call originating from the protected process;

determining an application profile applicable to the protected application based on an application type of the protected application;

comparing the API call against a list of API calls included in the application profile corresponding to the protected application;

determining to intercept the API call based on its presence in the list of API calls included in the application profile; and

responsive to determining to intercept the API call:

capturing a memory address associated with the API call and one or more parameters associated with the API call;

applying, by a computing system, a memory analysis to determine if the memory address associated with the API call lacks execute access;

applying, by the computing system, an element analysis to determine if a malicious characteristic associated with the API call is present based on the one or more parameters associated with the API call; and

responsive to detecting that the memory address associated with the API call lacks execute access or determining that the malicious characteristic associated with the API call is present, terminating the protected process.

2. The method of claim 1 , wherein applying the memory analysis further comprises:

determining if the memory address associated with the API call belongs to a module not designed to make the API call.

3. The method of claim 1 , wherein applying the memory analysis further comprises:

determining if the memory address associated with a caller of the API call is within a specific range of memory.

4. The method of claim 1 , wherein applying the element analysis further comprises:

determining if the parameters of the API call include a characteristic known to enable the malicious behavior of the protected application.

5. The method of claim 1 , wherein applying the element analysis comprises:

storing a reference to a new file created with a prior API call upon its creation; and

identifying when the API call attempts to create a new process with the new file created with the prior API call.

6. The method of claim 1 , further comprising:

associating the protected application with an application profile; and

determining to intercept the application programming interface (API) call based on its presence in a list of API calls associated with the application profile.

7. The method of claim 1 , further comprising:

determining that the protected process should be protected based on its presence in a list of applications and associated processes to be protected.

8. A non-transitory computer-readable storage medium configured to store executable computer code that when executed by a processor causes the processor to perform steps including:

storing a plurality of application profiles, each of the plurality of application profiles associated with a different group of related applications of a particular application type, each of the plurality of application profiles including a different list of application programming interface (API) calls;

detecting an API call originating from the protected process;

determining an application profile applicable to the protected application based on an application type of the protected application;

comparing the API call against a list of API calls included in the application profile corresponding to the protected application;

determining to intercept the API call based on its presence in the list of API calls included in the application profile; and

responsive to determining to intercept the API call:

capturing a memory address associated with the API call and one or more parameters associated with the API call;

applying, by a computing system, a memory analysis to determine if the memory address associated with the API call lacks execute access;

applying, by the computing system, an element analysis to determine if a malicious characteristic associated with the API call is present based on the one or more parameters associated with the API call; and

responsive to detecting that the memory address associated with the API call lacks execute access or determining that the malicious characteristic associated with the API call is present, terminating the protected process.

9. The non-transitory computer-readable storage medium of claim 8 , wherein applying the memory analysis further comprises:

determining if the memory address associated with the API call belongs to a module not designed to make the API call.

10. The non-transitory computer-readable storage medium of claim 8 , wherein applying the memory analysis further comprises:

determining if the memory address associated with a caller of the API call is within a specific range of memory.

11. The non-transitory computer-readable storage medium of claim 8 , wherein applying the element analysis comprises:

determining if the parameters of the API call include a characteristic known to enable the malicious behavior of the protected application.

12. The non-transitory computer-readable storage medium of claim 8 , wherein applying the element analysis comprises:

storing a reference to a new file created with a prior API call upon its creation; and

identifying when the API call attempts to create a new process with the new file created with the prior API call.

13. The non-transitory computer-readable storage medium of claim 8 , further comprising:

associating the protected application with an application profile; and

determining to intercept the application programming interface (API) call based on its presence in a list of API calls associated with the application profile.

14. The non-transitory computer-readable storage medium of claim 8 , further comprising:

determining that the protected process should be protected based on its presence in a list of applications and associated processes to be protected.

15. A system, comprising:

a processor;

a non-transitory computer-readable storage medium comprising instructions configured to be executed by the processor to perform a process comprising:

storing a plurality of application profiles, each of the plurality of application profiles associated with a different group of related applications of a particular application type, each of the plurality of application profiles including a different list of application programming interface (API) calls;

detecting an API call originating from the protected process;

determining an application profile applicable to the protected application based on an application type of the protected application;

comparing the API call against a list of API calls included in the application profile corresponding to the protected application;

determining to intercept the API call based on its presence in the list of API calls included in the application profile; and

responsive to determining to intercept the API call:

capturing a memory address associated with the API call and one or more parameters associated with the API call;

applying, by a computing system, a memory analysis to determine if the memory address associated with the API call lacks execute access;

applying, by the computing system, an element analysis to determine if a malicious characteristic associated with the API call is present based on the one or more parameters associated with the API call; and

responsive to detecting that the memory address associated with the API call lacks execute access or determining that the malicious characteristic associated with the API call is present, terminating the protected process.

16. The system of claim 15 , wherein applying the element analysis comprises:

storing a reference to a new file created with a prior API call upon its creation; and

identifying when the API call attempts to create a new process with the new file created with the prior API call.

17. The system of claim 15 , wherein applying the element analysis comprises:

determining if the parameters of the API call include a characteristic known to enable the malicious behavior of the protected application.

Assignments (9)
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 →
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 →
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 →
CHANGE OF NAME Recorded Apr 1, 2021
From: MALWAREBYTES CORPORATION
To: MALWAREBYTES INC.
Reel/Frame 055795/0542 →
SECURITY INTEREST Recorded Aug 9, 2017
From: MALWAREBYTES INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 043248/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2013
From: LOPEZ-CHICHERI, PEDRO BUSTAMANTE; LAVADO, DAVID SANCHEZ
To: MALWAREBYTES CORPORATION
Reel/Frame 031355/0915 →
Continuity (1)
Provisional Application 61705374 · Sep 25, 2012