IP Library Granted Patent US 10,922,411
Granted Patent B2
US 10,922,411 · App. 16/013,713 · Granted Feb 16, 2021

Intelligent event collection for cloud-based malware detection

Inventors: Arif Gezalov (Westminster, CO); Pedro Bustamante Lopez-Chicheri (Mountain View, CA); Douglas Stuart Swanson (Holmfirth, GB)
Assignee: MALWAREBYTES INC.
G06F21/566G06F21/552G06F21/554G06F21/56G06F21/568
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,922,411
App. No.
16/013,713
Granted
Feb 16, 2021
Kind
B2
Abstract

An anti-malware application detects and remediates malware. The anti-malware application detects an event associated with a process and determines if the event matches an entry in an exclusions list. If the event is absent from the exclusions list, the anti-malware application monitors the operation of the process, logs the event data in an event log, and sends the event to a server to determine whether the process corresponds to malware. The anti-malware application updates the exclusions list based on the logged event if the process does not correspond to malware. The anti-malware application restores a file edited by the process to the saved copy of the original file prior to the file being edited by the process if the process corresponds to malware.

Claims (67)

1. A method for detecting malware comprising:

detecting a plurality of events, each event associated with a process performing an operation on a file having a particular predefined characteristic;

determining if each event of the plurality of events associated with the process matches an entry in an exclusions list;

responsive to determining that each event of the plurality of events associated with the process is absent from the exclusions list, logging a plurality of event data describing the plurality of events associated with the process in an event log on a client device and sending the plurality of event data to a server;

receiving, by the client device, an indication from the server of whether the process corresponds to malware based on whether the plurality of event data includes a pattern of events indicative of malware; and

responsive to the received indication indicating that the process does not correspond to malware:

maintaining, by the client device, a count of logged events corresponding to historical operations by the process performed on files having the particular predefined characteristic on the client device, and

responsive to the count exceeding a threshold, adding an entry to the exclusions list stored on the client device to exclude future operations by the process on files having the particular predefined characteristic.

2. The method of claim 1 , wherein the exclusions list includes an entry excluding events associated with a trusted process and determining if each event matches the entry in the exclusions list comprises:

determining that an identifier of the process matches an identifier of the trusted process.

3. The method of claim 1 , wherein the exclusions list includes an entry excluding events associated with a trusted process operating on a file having a first particular characteristic and determining if each event matches the entry in the exclusions list comprises:

determining that an identifier of the process matches an identifier of the trusted process and that the operated-on file has the first particular file characteristic.

4. The method of claim 3 , wherein the first particular file characteristic is one among a file type and a file directory.

5. The method of claim 1 , wherein updating the exclusions list is performed periodically after a first period of time, the method further comprising:

logging additional event data describing additional events in the event log occurring over a second period of time greater than the first period of time; and

purging the event data occurring over the second period of time that is greater in age than the first period of time from the event log.

6. The method of claim 1 comprising:

detecting a second event associated with a second process performing a second operation on a second file;

determining if the second event associated with the second process matches an entry in the exclusions list;

responsive to determining that the second event associated with the second process is absent from the exclusions list, logging second event data associated with the second process in the event log on the client device and sending the second event data to the server;

receiving, by the client device, an indication from the server of whether the second process corresponds to malware; and

responsive to the received indication indicating that the second process corresponds to malware, remediating the second process.

7. A non-transitory computer-readable storage medium storing instructions for detecting malware, the instructions when executed by a processor cause the processor to perform steps including:

detecting a plurality of events, each event associated with a process performing an operation on a file having a particular predefined characteristic;

determining if each event of the plurality of events associated with the process matches an entry in an exclusions list;

responsive to determining that each event of the plurality of events associated with the process is absent from the exclusions list, logging a plurality of event data describing the plurality of events associated with the process in an event log on a client device and sending the plurality of event data to a server;

receiving, by the client device, an indication from the server of whether the process corresponds to malware based on whether the plurality of event data includes a pattern of events indicative of malware; and

responsive to the received indication indicating that the process does not correspond to malware:

maintaining, by the client device, a count of logged events corresponding to historical operations by the process performed on files having the particular predefined characteristic on the client device, and

responsive to the count exceeding a threshold, adding an entry to the exclusions list stored on the client device to exclude future operations by the process on files having the particular predefined characteristic.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the exclusions list includes an entry excluding events associated with a trusted process and determining if each event matches the entry in the exclusions list comprises:

determining that an identifier of the process matches an identifier of the trusted process.

9. The non-transitory computer-readable storage medium of claim 7 , wherein the exclusions list includes an entry excluding events associated with a trusted process operating on a file having a first particular characteristic and determining if each event matches the entry in the exclusions list comprises:

determining that an identifier of the process matches an identifier of the trusted process and that the operated-on file has the first particular file characteristic.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the first particular file characteristic is one among a file type and a file directory.

11. The non-transitory computer-readable storage medium of claim 7 , wherein updating the exclusions list is performed periodically after a first period of time, the instructions further comprising:

logging additional event data describing additional events in the event log occurring over a second period of time greater than the first period of time; and

purging the event data occurring over the second period of time that is greater in age than the first period of time from the event log.

12. The non-transitory computer-readable storage medium of claim 7 , the instructions further including:

detecting a second event associated with a second process performing a second operation on a second file;

determining if the second event associated with the second process matches an entry in the exclusions list;

responsive to determining that the second event associated with the second process is absent from the exclusions list, logging second event data associated with the second process in the event log on the client device and sending the second event data to the server;

receiving, by the client device, an indication from the server of whether the second process corresponds to malware; and

responsive to receiving an indication that the second process corresponds to malware, remediating the second process.

13. A computing system comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions for detecting malware, the instructions when executed by the processor cause the processor to perform steps including:

detecting a plurality of events, each event associated with a process performing an operation on a file having a particular predefined characteristic;

determining if each event of the plurality events associated with the process matches an entry in an exclusions list;

responsive to determining that each event of the plurality events associated with the process is absent from the exclusions list, logging a plurality of event data describing the plurality of events associated with the process in an event log on a client device and sending the plurality of event data to a server;

receiving, by the client device, an indication from the server of whether the process corresponds to malware based on whether the plurality of event data includes a pattern of events indicative of malware; and

responsive to the received indication indicating that the process does not correspond to malware:

maintaining, by the client device, a count of logged events corresponding to historical operations by the process performed on files having the particular predefined characteristic on the client device, and

responsive to the count exceeding a threshold, adding an entry to the exclusions list stored on the client device to exclude future operations by the process on files having the particular predefined characteristic.

14. The computing system of claim 13 , wherein the exclusions list includes an entry excluding events associated with a trusted process and determining if each event matches the entry in the exclusions list comprises:

determining that an identifier of the process matches an identifier of the trusted process.

15. The computing system of claim 13 , wherein the exclusions list includes an entry excluding events associated with a trusted process operating on a file having a first particular characteristic and determining if each event matches the entry in the exclusions list comprises:

determining that an identifier of the process matches an identifier of the trusted process and that the operated-on file has the first particular file characteristic.

16. The computing system of claim 13 , wherein updating the exclusions list is performed periodically after a first period of time, the instructions further comprising:

logging additional event data describing additional events in the event log occurring over a second period of time greater than the first period of time; and

purging the event data occurring over the second period of time that is greater in age than the first period of time from the event log.

17. The computing system of claim 13 , the instructions further including:

detecting a second event associated with a second process performing a second operation on a second file;

determining if the second event associated with the second process matches an entry in the exclusions list;

responsive to determining that the second event associated with the second process is absent from the exclusions list, logging second event data associated with the second process in the event log on the client device and sending the second event data to the server;

receiving, by the client device, an indication from the server of whether the second process corresponds to malware; and

responsive to the received indication indicating that the second process corresponds to malware, remediating the second process.

Assignments (9)
CHANGE OF NAME Recorded May 18, 2026
From: MALWAREBYTES CORPORATE HOLDCO INC.
To: THREATDOWN INC.
Reel/Frame 075592/0851 →
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 →
SECURITY INTEREST Recorded Oct 10, 2019
From: MALWAREBYTES INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 050681/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2018
From: GEZALOV, ARIF; BUSTAMANTE LOPEZ-CHICHERI, PEDRO; SWANSON, DOUGLAS STUART
To: MALWAREBYTES INC.
Reel/Frame 046151/0307 →
Continuity (1)
Related Publication 20190392146A1 · Dec 26, 2019