IP Library Granted Patent US 9,785,776
Granted Patent B2
US 9,785,776 · App. 14/697,558 · Granted Oct 10, 2017

High risk program identification based on program behavior

Inventors: Paul Michael Martini (San Diego, CA); Peter Anthony Martini (San Diego, CA)
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 9,785,776
App. No.
14/697,558
Granted
Oct 10, 2017
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 (47)

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

executing a data object in a sandboxed environment wherein requests for sensitive actions are examined by the sandboxed environment before they are provided to a computing device;

identifying an execution of a data object by the computing device;

in response to identifying the execution of the data object, determining that the data object has requested a sensitive action of the computing device without already interacting with a user of the computing device, the determining including:

monitoring, by an application monitor of the computing device as the data object is being executed, instructions requested by the data object during the execution;

identifying, by the application monitor, the monitored instructions that are executed by the data object and that are requesting the sensitive action;

determining, by the application monitor, that no previously monitored instructions that were previously executed have requested an interaction with a user;

in response to determining that the data object has requested the sensitive action, classifying the data object as a high-risk data object; and

in response to classifying the data object as a high-risk data object, performing a corrective action by a computing device on the data object.

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 interacting with the user of the computing device 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 , 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.

5. 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.

6. 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.

7. 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.

8. A non-transitory computer-readable medium tangibly encoded with computer program instructions that, when executed by one or more processors, cause the processors to perform operations comprising:

executing a data object in a sandboxed environment wherein requests for sensitive actions are examined by the sandboxed environment before they are provided to a computing device;

identifying an execution of a data object by the computing device;

in response to identifying the execution of the data object, determining that the data object has requested a sensitive action of the computing device without already interacting with a user of the computing device, the determining including:

monitoring, by an application monitor of the computing device as the data object is being executed, instructions requested by the data object during the execution;

identifying, by the application monitor, the monitored instructions that are executed by the data object and that are requesting the sensitive action;

determining, by the application monitor, that no previously monitored instructions that were previously executed have requested an interaction with a user;

in response to determining that the data object has requested the sensitive action, classifying the data object as a high-risk data object; and

in response to classifying the data object as a high-risk data object, performing a corrective action by a computing device on the data object.

9. The non-transitory computer-readable medium of claim 8 , 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.

10. The non-transitory computer-readable medium of claim 8 , wherein the data object interacting with the user of the computing device 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.

11. The non-transitory computer-readable medium of claim 8 , 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.

12. The non-transitory computer-readable medium of claim 8 , 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.

13. The non-transitory computer-readable medium of claim 8 , 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.

14. The non-transitory computer-readable medium of claim 8 , 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.

15. A system comprising:

one or more processor devices configured to execute computer program instructions; and

a non-transitory computer-readable storage medium tangibly encoded with computer program instructions that, when executed by the one or more processor devices, cause the processor devices to perform operations comprising:

executing a data object in a sandboxed environment wherein requests for sensitive actions are examined by the sandboxed environment before they are provided to a computing device;

identifying an execution of a data object by the computing device;

in response to identifying the execution of the data object, determining that the data object has requested a sensitive action of the computing device without already interacting with a user of the computing device, the determining including:

monitoring, by an application monitor of the computing device as the data object is being executed, instructions requested by the data object during the execution;

identifying, by the application monitor, the monitored instructions that are executed by the data object and that are requesting the sensitive action;

determining, by the application monitor, that no previously monitored instructions that were previously executed have requested an interaction with a user; and

in response to determining that the data object has requested the sensitive action, classifying the data object as a high-risk data object; and

in response to classifying the data object as a high-risk data object, performing a corrective action by a computing device on the data object.

16. The system of claim 15 , 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.

17. The system of claim 15 , wherein the data object interacting with the user of the computing device 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.

18. The system of claim 15 , 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.

19. The system of claim 15 , 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.

20. The system of claim 15 , 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.

21. The system of claim 15 , 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 (6)
SUPPLEMENTAL INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0266 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0219 →
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 →
SECURITY INTEREST Recorded Dec 16, 2020
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 054789/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2015
From: MARTINI, PAUL MICHAEL; MARTINI, PETER ANTHONY
To: IBOSS, INC.
Reel/Frame 036452/0839 →
Continuity (1)
Related Publication 20160314298A1 · Oct 27, 2016