IP Library Granted Patent US 11,055,410
Granted Patent B2
US 11,055,410 · App. 16/666,324 · Granted Jul 6, 2021

Malicious program identification based on program behavior

Inventors: Paul Michael Martini (Boston, MA); Peter Anthony Martini (Boston, MA)
Assignee: iboss, Inc.
G06F21/566G06F21/53
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 11,055,410
App. No.
16/666,324
Granted
Jul 6, 2021
Kind
B2
Abstract

An execution of a data object is identified by a computing device. In response to identifying the execution of the data object, it is determined that the data object has requested a sensitive action of the computing device before interacting with a user of the computing device. In response to determining that the data object has requested the sensitive action, the data object is classified as a high-risk data object.

Claims (44)

1. A method performed by data processing apparatus, the method comprising:

receiving, by a computing device, a message from outside of a network addressed to a device inside the network, the message containing a data object;

executing the data object by the computing device;

while executing the data object, determining i) if the data object has requested a sensitive action before attempting an interaction with a user, or else ii) if the data object has not requested a sensitive action before attempting an interaction with the user;

in response to determining that the data object has requested the sensitive action before attempting an interaction with the user, classifying the data object as a high-risk data object; and

in response to determining that the data object has requested the sensitive action, performing a corrective action.

2. The method of claim 1 , wherein the sensitive action includes at least one of opening a mutex, creating a mutex, accessing a file outside of a local directory associated with the data object, accessing sensitive locations on the computing device, requesting network activity, launching a process, injecting a process, accessing a registry of the computing device, launching a dynamic linked library (DLL), or manipulating a service executing on the computing device.

3. The method of claim 1 , wherein the data object's attempted interaction with the user includes at least one of: generating a dialog box, displaying a progress bar, displaying a window with an input element, or receiving input from the user.

4. The method of claim 1 , further comprising, in response to classifying the data object as a high-risk data object, performing the corrective action on the data object.

5. The method of claim 4 , wherein the corrective action includes at least one of terminating the execution of the data object, increasing a risk metric associated with the data object, setting a risk metric associated with the data object, quarantining the data object, logging additional requests by the data object, or deleting the data object.

6. The method of claim 1 , wherein the execution of the data object is in a sandboxed environment of the computing device and wherein requests for sensitive actions are examined by the sandboxed environment.

7. The method of claim 1 , the method further comprising replacing instructions in the data object that request sensitive actions with corresponding instructions that pass requests for sensitive actions to an execution manager, the execution manager configured to examine the requests for sensitive actions before they are provided to the computing device.

8. The method of claim 1 , wherein the data object includes at least one of an executable program, a file including executable instructions and file data, or a script including executable instructions.

9. The method of claim 1 , wherein the execution of the data object includes at least one of executing instructions in the data object, or interpreting instructions in the data object for execution.

10. A non-transitory computer storage media tangibly encoded with computer program instructions that, when executed by one or more processors, cause a computer device to perform operations comprising:

receiving, by a computing device, a message from outside of a network addressed to a device inside the network, the message containing a data object;

executing the data object by the computing device;

while executing the data object, determining i) if the data object has requested a sensitive action before attempting an interaction with a user, or else ii) if the data object has not requested a sensitive action before attempting an interaction with the user;

in response to determining that the data object has requested the sensitive action before attempting an interaction with the user, classifying the data object as a high-risk data object; and

in response to determining that the data object has requested the sensitive action, performing a corrective action.

11. The non-transitory computer storage media of claim 10 , wherein the sensitive action includes at least one of opening a mutex, creating a mutex, accessing a file outside of a local directory associated with the data object, accessing sensitive locations on the computing device, requesting network activity, launching a process, injecting a process, accessing a registry of the computing device, launching a dynamic linked library (DLL), or manipulating a service executing on the computing device.

12. The non-transitory computer storage media of claim 10 , wherein the data object's attempted interaction with the user includes at least one of: generating a dialog box, displaying a progress bar, displaying a window with an input element, or receiving input from the user.

13. The non-transitory computer storage media of claim 10 , the operations further comprising, in response to classifying the data object as a high-risk data object, performing the corrective action on the data object.

14. The non-transitory computer storage media of claim 13 , wherein the corrective action includes at least one of terminating the execution of the data object, increasing a risk metric associated with the data object, setting a risk metric associated with the data object, quarantining the data object, logging additional requests by the data object, or deleting the data object.

15. The non-transitory computer storage media of claim 10 , the operations further comprising executing the data object in a sandboxed environment of the computing device wherein requests for sensitive actions are examined by the sandboxed environment.

16. The non-transitory computer storage media of claim 10 , the operations further comprising replacing instructions in the data object that request sensitive actions with corresponding instructions that pass requests for sensitive actions to an execution manager, the execution manager configured to examine the requests for sensitive actions before they are provided to the computing device.

17. The non-transitory computer storage media of claim 10 , wherein the data object includes at least one of an executable program, a file including executable instructions and file data, or a script including executable instructions.

18. The non-transitory computer storage media of claim 10 , wherein the execution of the data object includes at least one of executing instructions in the data object, or interpreting instructions in the data object for execution.

19. A system comprising:

one or more processors configured to execute computer program instructions; and

computer storage media tangibly encoded with computer program instructions that, when executed by one or more processors, cause a computer device to perform operations comprising:

receiving, by a computing device, a message from outside of a network addressed to a device inside the network, the message containing a data object;

executing the data object by the computing device;

while executing the data object, determining i) if the data object has requested a sensitive action before attempting an interaction with a user, or else ii) if the data object has not requested a sensitive action before attempting an interaction with the user;

in response to determining that the data object has requested the sensitive action before attempting an interaction with the user, classifying the data object as a high-risk data object; and

in response to determining that the data object has requested the sensitive action, performing a corrective action.

20. The system of claim 19 , wherein the sensitive action includes at least one of opening a mutex, creating a mutex, accessing a file outside of a local directory associated with the data object, accessing sensitive locations on the computing device, requesting network activity, launching a process, injecting a process, accessing a registry of the computing device, launching a dynamic linked library (DLL), or manipulating a service executing on the computing device.

21. The system of claim 19 , wherein the data object's attempted interaction with the user includes at least one of: generating a dialog box, displaying a progress bar, displaying a window with an input element, or receiving input from the user.

22. The system of claim 19 , the operations further comprising, in response to classifying the data object as a high-risk data object, performing the corrective action on the data object.

23. The system of claim 22 , wherein the corrective action includes at least one of terminating the execution of the data object, increasing a risk metric associated with the data object, setting a risk metric associated with the data object, quarantining the data object, logging additional requests by the data object, or deleting the data object.

24. The system of claim 19 , wherein the execution of the data object is in a sandboxed environment of the computing device and wherein requests for sensitive actions are examined by the sandboxed environment.

25. The system of claim 19 , the operations further comprising replacing instructions in the data object that request sensitive actions with corresponding instructions that pass requests for sensitive actions to an execution manager, the execution manager configured to examine the requests for sensitive actions before they are provided to the computing device.

26. The system of claim 19 , wherein the data object includes at least one of an executable program, a file including executable instructions and file data, or a script including executable instructions.

27. The system of claim 19 , wherein the execution of the data object includes at least one of executing instructions in the data object, or interpreting instructions in the data object for execution.

Assignments (7)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0219 →
SUPPLEMENTAL INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0266 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Dec 12, 2023
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK TRUST COMPANY
To: IBOSS, INC.
Reel/Frame 066140/0480 →
SECURITY INTEREST Recorded Sep 19, 2022
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 061463/0331 →
FIRST AMENDMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Sep 10, 2021
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 057566/0149 →
SECURITY INTEREST Recorded Dec 16, 2020
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 054789/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2019
From: MARTINI, PAUL MICHAEL; MARTINI, PETER ANTHONY
To: IBOSS, INC.
Reel/Frame 050894/0341 →
Continuity (3)
Continuation 15727219 · Oct 6, 2017
Continuation 14697558 · Apr 27, 2015
Related Publication 20200065492A1 · Feb 27, 2020