IP Library Granted Patent US 9,594,905
Granted Patent B1
US 9,594,905 · App. 14/881,074 · Granted Mar 14, 2017

Framework for efficient security coverage of mobile software applications using machine learning

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,594,905
App. No.
14/881,074
Granted
Mar 14, 2017
Kind
B1
Abstract

For one embodiment, a method is described that involves the instrumenting of an application of a computing system with at least one monitoring function, where the monitoring function is capable of operating in a run-time environment during processing of the instrumented application. The movement of data associated with the application is tracked by one or more monitoring functions. This data is at least partially identified by a storage location. Thereafter, a determination is made whether movement of the data from a first storage location to a second storage location is suspicious, and if so, suspicious movement of the data is reported.

Claims (56)

1. A method comprising:

instrumenting, by a static instrumentation engine within software executed by a processor, an application of a computing system with at least a first monitoring function, the first monitoring function capable of operating in a run-time environment during processing of the instrumented application;

tracking, by at least a second monitoring function, 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 run-time environment comprises one or more virtual machines processing the instrumented application.

3. The method of claim 2 , wherein the second monitoring function is implemented within the one or more virtual machines that operate in conjunction with the first monitoring function to track movement of data associated with the application.

4. The method of claim 1 , wherein the first monitoring function monitors one or more Application Programming Interface (API) calls from the instrumented application.

5. The method of claim 1 , wherein the first storage location and the second storage location are memory locations and the computing system includes one of a smartphone, a laptop personal computer, a desktop personal computer, or a server.

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

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

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

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

10. 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 further controls a testing strategy for the application, the central intelligence engine comprises a first engine that identifies regions of interest within code of the application and a second engine that analyzes the application to identify stimuli to be applied to the application to reach the regions of interest within the code of the application.

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. 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 at least a first monitoring function; and

one or more virtual machines included as part of a run-time environment, a first virtual machine of the one or more virtual machines, when executed by the processor, is configured to process the instrumented application and at least a second monitoring function tracking movement of data associated with instrumented application that is determined to be a suspicious activity in response to determining, by the second monitoring function during processing the instrumented application, that the instrumented application is attempting to cause the data to be directed out of the run-time environment.

13. The system of claim 12 further comprising a central intelligence engine that, when executed by the processor, is configured to receive a report indicating the determined suspicious activity, the central intelligence engine comprises a first engine that identifies regions of interest within code of the application and a second engine that analyzes the application to identify stimuli to be applied to the application to reach the regions of interest within the code of the application.

14. The system of claim 12 , wherein the run-time environment comprises the one or more virtual machines 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 14 , wherein the hardware resources comprises storage space within a non-volatile memory.

16. The system of claim 12 , wherein the second monitoring function tracking movement of the data by determining, during processing of the instrumented application, whether the instrumented application is attempting to cause the data to be sent over a network connection.

17. A system comprising:

a static instrumentation engine configured to instrument an application with at least a first monitoring function;

a run-time environment to process the instrumented application where at least a second monitoring function tracking movement of data associated with the instrumented application that is determined to be a suspicious activity, the run-time environment determining whether movement of the data is a 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.

18. The system of claim 17 , wherein the run-time environment comprises one or more virtual machines to process 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.

19. The system of claim 17 , wherein the run-time environment comprises a first virtual machine that includes the second monitoring function.

20. A system comprising:

a processor; and

a memory coupled to the processor, the memory comprises

a static instrumentation engine configured to instrument an application with at least a first monitoring function,

a run-time environment communicatively coupled to the static instrumentation engine, the run-time environment comprises one or more virtual machines that comprises at least a first virtual machine including at least a second monitoring function, the first virtual machine, when executed by the processor, processes the instrumented application and the second monitoring function tracking movement of data associated with the instrumented application that is determined to correspond to a suspicious activity,

wherein the run-time environment is further configured to output information that identifies the determined suspicious activity.

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

22. The system of claim 21 , wherein the run-time environment comprises the one or more virtual machines to process 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 21 , wherein the central intelligence engine is configured to enable or disable any of one or more monitoring functions including the second monitoring function.

24. The system of claim 21 , wherein the central intelligence engine is configured to enable or disable at least the first monitoring function.

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

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

27. The system of claim 20 , wherein the second monitoring function tracking movement of the data by determining, during processing of the instrumented application, whether the instrumented application is attempting to send the data over a network connection.

28. A method comprising:

instrumenting an application of a computing system to operate in cooperation with one or more monitoring functions, at least a first monitoring function of the one or more monitoring functions operating in a run-time environment during processing of the instrumented application;

tracking, by at least a second monitoring function of, 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 processing 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.

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

30. The method of claim 28 , wherein the reporting of the suspicious movement is conducted by the second monitoring function.

31. The system of claim 12 , wherein the first monitoring function monitors one or more Application Programming Interface (API) calls from the instrumented application.

32. The system of claim 12 , wherein the second monitoring function processed by the first virtual machine tracks movement of the data within the instrumented application that is determined to be a suspicious activity.

33. The system of claim 17 , wherein the run-time environment comprises an operating system instance that includes the second monitoring function.

34. The system of claim 17 , wherein the run-time environment comprises a virtual machine and the first monitoring function being different than the second monitoring function.

35. The system of claim 34 , wherein the first monitoring function monitors one or more Application Programming Interface (API) calls from the instrumented application.

36. The system of claim 35 , wherein the run-time environment further comprises an operating system instance that includes a third monitoring function that monitors system calls initiated from the instrumented application, the third monitoring function being different than the first monitoring function and the second monitoring function.

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 Mar 16, 2023
From: MANDIANT, INC.
To: FIREEYE SECURITY HOLDINGS US LLC
Reel/Frame 063113/0150 →
CHANGE OF NAME Recorded Mar 16, 2023
From: FIREEYE, INC.
To: MANDIANT, INC.
Reel/Frame 063113/0140 →
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 Jun 28, 2016
From: ISMAEL, OSMAN ABDOUL; SONG, DAWN; HA, PHUNG-TE; GILBERT, PETER J.; XUE, HUI
To: FIREEYE, INC.
Reel/Frame 039029/0300 →