IP Library Granted Patent US 9,159,035
Granted Patent B1
US 9,159,035 · App. 13/775,170 · Granted Oct 13, 2015

Framework for computer application analysis of sensitive information tracking

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,159,035
App. No.
13/775,170
Granted
Oct 13, 2015
Kind
B1
Abstract

A method is described that involves generating one or more machine learned rules with a machine learning system. The method also involves generating a representation of an application that describes various states and state transitions of the application. The method also involves referring to the one or more machine learned rules and the representation to identify a region of interest of the application. The method also involves configuring one or more monitors for the application to be enabled in a run time environment of the application. The method also involves setting conditions of the application within the run time environment to drive the application's execution to the region of interest. The method also involves observing behaviors of the application and determining whether the region of interest corresponds to improperly behaving code.

Claims (62)

1. A method comprising:

instrumenting, by a static instrumentation engine within software executed by a processor, an application of a handheld computing device with one or more monitoring functions, at least one of the one or more monitoring functions operating in a run time environment during virtual execution of the instrumented application;

tracking, by the one or more monitoring functions, movement of data associated with the application, the data being at least partially identified by a storage location;

determining whether movement of the data from a first storage location to a second storage location is suspicious; and

reporting suspicious movement of the data.

2. The method of claim 1 , wherein the first storage location and the second storage location are memory locations.

3. The method of claim 1 , wherein the first storage location and the second storage location are register locations.

4. A method comprising:

instrumenting an application of a mobile device with one or more monitoring functions, at least one of the one or more monitoring functions operating in a run time environment during virtual execution of the instrumented application;

tracking, by the one or more monitoring functions, movement of data associated with the application, the data being at least partially identified by a storage location, the tracking of the movement of the data comprises determining, during the virtual execution of the instrumented application, whether the instrumented application is attempting to cause the data to be directed out of the run time environment;

determining whether the tracked movement of the data is suspicious; and

reporting suspicious movement of the data.

5. A method comprising:

instrumenting an application of a mobile device with one or more monitoring functions, at least one of the one or more monitoring functions operating in a run time environment during virtual execution of the instrumented application;

tracking, by the one or more monitoring functions, movement of data associated with the application, the data being at least partially identified by a storage location, the tracking of the movement of the data comprises determining, during the virtual execution of the instrumented application, whether the instrumented application is attempting to send the data over a network connection;

determining whether the tracked movement of the data is suspicious; and

reporting suspicious movement of the data.

6. The method of claim 1 , wherein the determining whether movement of the data from the first storage location to the second storage location is suspicious comprises (1) identifying that the data is sensitive and (2) identifying that the second storage location is different than any of a plurality of storage locations permitted to store sensitive data.

7. The method of claim 1 , wherein the identifying that the data is sensitive comprises identifying whether the data is maintained within an entry of a table that is identified as corresponding to a register or system address that is storing sensitive data.

8. The method of claim 1 , wherein the determining whether movement of the data from the first storage location to the second storage location is suspicious comprises detecting an attempt by the application to store the data in the second storage location that corresponds to a storage location that is not permitted to store sensitive information.

9. The method of claim 1 , wherein the reporting of the suspicious movement of the data comprises sending a report to a central intelligence engine that controls a testing strategy for the application.

10. The method of claim 1 , wherein the determining whether movement of the data from the first storage location to the second storage location is suspicious and the reporting of the suspicious movement is conducted by the one or more monitoring functions.

11. The method of claim 1 , wherein determining whether movement of the data from the first storage location to the second storage location is suspicious comprises identifying an attempt by the application to direct data outside the run-time environment.

12. The method of claim 1 , wherein determining whether movement of the data from the first storage location to the second storage location is suspicious comprises identifying an attempt by the application to direct data to an unapproved storage location.

13. A system comprising:

a processor; and

a memory coupled to the processor, the memory comprises

a static instrumentation engine that, when executed by the processor, is configured to instrument an application with one or more monitoring functions;

a dynamic run time environment that, when executed by the processor, is configured to conduct virtual execution of the instrumented application where one or more monitoring functions tracking movement of data within the instrumented application that is determined to be a suspicious activity in response to determining, by the one or more monitoring functions during virtual execution of the instrumented application, that the instrumented application is attempting to cause the data to be directed out of the dynamic run time environment; and

a central intelligence engine that, when executed by the processor, is configured to receive a report indicating the determined suspicious activity.

14. The system of claim 13 , wherein the dynamic run time environment comprises one or more virtual machines to conduct virtual execution of the instrumented application and a virtual machine monitor that is responsible for allocating hardware resources of the system to the one or more virtual machines.

15. The system of claim 13 , wherein the hardware resources comprises storage space within a non-volatile memory.

16. The system of claim 13 , wherein the one or more monitoring functions tracking movement of the data by determining, during virtual execution of the instrumented application, whether the instrumented application is attempting to cause the data to be directed out of the dynamic run time environment by sending the data over a network connection.

17. A system comprising:

a processor; and

a memory coupled to the processor, the memory comprises

a static instrumentation engine that, when executed by the processor, is configured to instrument an application with one or more monitoring functions;

a dynamic run time environment that, when executed by the processor, is configured to conduct virtual execution of the instrumented application where one or more monitoring functions tracking movement of data within the instrumented application that is determined to be a suspicious activity, the dynamic run time environment determining whether movement of the data is suspicious activity by (1) identifying that the data is sensitive and (2) identifying that the second storage location is different than any of a plurality of storage locations permitted to store sensitive data; and

a central intelligence engine that, when executed by the processor, is configured to receive a report indicating the determined suspicious activity.

18. A system comprising:

a static instrumentation engine configured to instrument an application with one or more monitoring functions;

a dynamic run time environment configured to conduct virtual execution of the instrumented application where one or more monitoring functions tracking movement of data within the instrumented application that is determined to be a suspicious activity, the dynamic run time environment determining whether movement of the data is suspicious activity by identifying an attempt by the instrumented application to direct data to an unapproved storage location; and

a central intelligence engine configured to receive a report indicating the determined suspicious activity.

19. The method of claim 4 , wherein the determining whether the instrumented application is attempting to cause the data to be directed out of the dynamic run time environment comprises determining whether the instrumented application is attempting to send the data over a network connection.

20. The method of claim 4 , wherein the reporting of the suspicious movement is conducted by the one or more monitoring functions.

21. The method of claim 4 , wherein the determining whether movement of the data from the first storage location to the second storage location is suspicious is conducted by the one or more monitoring functions during virtual execution of the application.

22. The system of claim 17 , wherein the dynamic run time environment comprises one or more virtual machines to conduct virtual execution of the instrumented application and a virtual machine monitor that is responsible for allocating hardware resources of the system to the one or more virtual machines.

23. The system of claim 22 , wherein the hardware resources comprises storage space within a non-volatile memory.

24. The system of claim 18 , wherein the dynamic run time environment comprises one or more virtual machines to conduct virtual execution of the instrumented application and a virtual machine monitor that is responsible for allocating hardware resources of the system to the one or more virtual machines.

25. The system of claim 24 , wherein the hardware resources comprises storage space within a non-volatile memory.

26. A system comprising:

a processor; and

a memory coupled to the processor, the memory comprises

a static instrumentation engine that, when executed by the processor, is configured to instrument an application with one or more monitoring functions;

a dynamic run time environment communicatively coupled to the static instrumentation engine, the dynamic run time environment that, when executed by the processor, is configured to (i) conduct virtual execution of the instrumented application where one or more monitoring functions tracking movement of data within the instrumented application that is determined to be a suspicious activity in response to determining, by the one or more monitoring functions during virtual execution of the instrumented application, that the instrumented application is attempting to cause the data to be directed out of the dynamic run time environment, and (ii) output information that identifies the determined suspicious activity.

27. The system of claim 26 further comprising a central intelligence engine communicatively coupled to the static instrumentation engine, the central intelligence engine to receive a report indicating the determined suspicious activity.

28. The system of claim 27 , wherein the dynamic run time environment comprises one or more virtual machines to conduct the virtual execution of the instrumented application and a virtual machine monitor that is responsible for allocating hardware resources of the system to the one or more virtual machines.

29. The system of claim 27 , wherein the one or more monitoring functions of the application are enabled or disabled by the central intelligence engine and one or more monitoring functions within the one or more virtual machines are enabled or disabled by the central intelligence engine.

30. The system of claim 26 , wherein the hardware resources comprise storage space within a non-volatile memory.

31. The system of claim 26 , wherein determining whether movement of the data from the first storage location to the second storage location is suspicious comprises identifying an attempt by the application to direct data outside the run-time environment.

32. The system of claim 26 , wherein the one or more monitoring functions tracking movement of the data by determining, during virtual execution of the instrumented application, whether the instrumented application is attempting to send the data over a network connection.

33. The system of claim 26 , wherein the dynamic run time environment comprises one or more virtual machines to conduct the virtual execution of the instrumented application and a virtual machine monitor that is responsible for allocating hardware resources of the system to the one or more virtual machines.

Assignments (13)
RELEASE OF SECURITY INTEREST Recorded Aug 16, 2024
From: STG PARTNERS, LLC
To: MUSARUBRA US LLC; SKYHIGH SECURITY LLC
Reel/Frame 068671/0435 →
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Aug 15, 2024
From: MUSARUBRA US LLC
To: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
Reel/Frame 068656/0098 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
To: MAGENTA SECURITY HOLDINGS LLC
Reel/Frame 068657/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: MUSARUBRA US LLC
To: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
Reel/Frame 068657/0764 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 15, 2024
From: MAGENTA SECURITY HOLDINGS LLC; SKYHIGH SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 068657/0666 →
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Aug 15, 2024
From: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
To: MAGENTA SECURITY HOLDINGS LLC
Reel/Frame 068656/0920 →
MERGER Recorded Aug 13, 2024
From: FIREEYE SECURITY HOLDINGS US LLC
To: MUSARUBRA US LLC
Reel/Frame 068581/0279 →
SECURITY INTEREST Recorded Aug 1, 2024
From: MUSARUBRA US LLC; SKYHIGH SECURITY LLC
To: STG PARTNERS, LLC
Reel/Frame 068324/0731 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2022
From: MANDIANT, INC.
To: FIREEYE SECURITY HOLDINGS US LLC
Reel/Frame 061450/0010 →
CHANGE OF NAME Recorded Sep 15, 2022
From: FIREEYE, INC.
To: MANDIANT, INC.
Reel/Frame 061449/0903 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 11, 2021
From: FIREEYE SECURITY HOLDINGS US LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 057772/0791 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Oct 11, 2021
From: FIREEYE SECURITY HOLDINGS US LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 057772/0681 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2014
From: ISMAEL, OSMAN ABDOUL; SONG, DAWN; HA, PHUNG-TE; GILBERT, PETER J.; XUE, HUI
To: FIREEYE, INC.
Reel/Frame 033816/0977 →