IP Library Granted Patent US 9,009,822
Granted Patent B1
US 9,009,822 · App. 13/775,166 · Granted Apr 14, 2015

Framework for multi-phase analysis of mobile applications

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,009,822
App. No.
13/775,166
Granted
Apr 14, 2015
Kind
B1
Abstract

A method is described that includes 1 receiving one or more user provided rules for an application of a mobile device through a user interface. The method also includes generating a representation of the application that describes various states and state transitions of the application. The method also includes referring to the one or more rules and the representation to identify a region of interest of the application. The method also includes configuring one or more monitors for the application to be enabled in a run time environment of the application. The method also includes setting conditions of the application within the run time environment to drive the application's execution to the region of interest. The method also includes observing behavior of the application and determining whether the region of interest corresponds to improperly behaving code.

Claims (43)

1. A computer implemented method comprising:

translating an application in a first code level to a second code level, the second level form being higher code level than the first code level;

instrumenting the application in the second code level with one or more monitoring functions, the one or more monitoring functions detect behaviors of the application during processing within a virtual machine;

re-translating the instrumented application to the first code level;

providing the instrumented application in the first code level to a run time environment, wherein the run time environment comprises one or more virtual machines including the virtual machine;

conducting virtual execution of the instrumented application within the run time environment by the one or more virtual machines;

observing, by the one or more monitoring functions, behaviors of the instrumented application; and

determining whether the observed behaviors identify that the application includes improperly behaving code.

2. The method of claim 1 , wherein the application in the first code level is object code.

3. The method of claim 1 , wherein the application in the first code level is executable code.

4. The method of claim 1 , wherein the instrumenting of the application in the second code level comprises

identifying one or more parts of the application that include code that has a propensity of behaving improperly; and

inserting the one or more monitoring functions to monitor behaviors of the code having the propensity of behaving improperly during processing within the virtual machine.

5. The method of claim 1 , wherein the instrumenting of the application is conducted by a static instrumentation engine within software executed by a processor within a mobile device.

6. The method of claim 1 , wherein the conducting of the virtual execution comprises configuring the virtual machine of the one or more virtual machines to operate in accordance with an instance of a first version of an operating system and configuring a second virtual machine of the one or more virtual machines to operate in accordance with an instance of a second version of the operating system.

7. The method of claim 6 wherein the first version of the operating system is different than the second version of the operating system.

8. A computer-implemented method comprising:

translating an application in a first code level to a second code level, the second code level form being a higher code level than the first code level and the application being utilized by a mobile device;

instrumenting the application in the second code level with one or more monitoring functions, the one or more monitoring functions detect behaviors of the application during processing within a virtual machine;

re-translating the instrumented application to the first code level; and

providing the instrumented application in the first code level to a run time environment, the run time environment comprises one or more virtual machines including the virtual machine and is configured to (i) conduct virtual execution of the instrumented application, (ii) observe, by the one or more monitoring functions, behaviors of the instrumented application, and (iii) determine whether the observed behaviors identify that the application includes improperly behaving code.

9. The method of claim 8 , wherein the application in the first code level is object code or executable code.

10. The method of claim 9 , wherein the instrumenting the application further comprises determining whether the application is able to enter a state that allows for activation of a disabled function of the mobile device and modifying a portion of the application to prevent activation of the disabled function in the instrumented application.

11. The method of claim 10 , wherein the disabled function of the mobile device comprises activation of a microphone of the mobile device.

12. The method of claim 10 , wherein the state of the application is a state that allows for a command to be sent to hardware or an operating system of the mobile device to activate a disabled audio function of the mobile device.

13. The method of claim 10 , wherein the determining whether the application is able to enter the state that allows for activation of the disabled function of the mobile device and modifying the portion of the application to prevent activation of the disabled function in the instrumented application of the mobile device comprises (i) analyzing the application to determine whether the application includes code that disables a function based on a particular condition, (ii) identify portions of code of the application that is sensitive to the particular condition, and (iii) modifying the portions of code to prevent activation of the disabled function in the instrumented application.

14. The method of claim 13 , wherein the modified portions of the code of the instrumented application is directed to audio functionality of the mobile device.

15. The method of claim 13 , wherein the modified portions of the code of the instrumented application is directed to functionality of the mobile device associated with geographic positioning of the mobile device.

16. The method of claim 13 , wherein the modified portions of the code of the instrumented application is directed to an ability of the instrumented application to access data either external from the mobile device or internal to the mobile device.

17. The method of claim 8 , wherein the instrumenting of the application in the second code level comprises

identifying one or more parts of the application that include code that has a propensity of behaving improperly; and

inserting the one or more monitoring functions to monitor behaviors of the code having the propensity of behaving improperly during processing within the virtual machine.

18. The method of claim 8 , wherein the instrumenting of the application is conducted by a static instrumentation engine within software executed by a processor within a mobile device.

19. The method of claim 8 wherein the conducting of the virtual execution comprises configuring the virtual machine of the one or more virtual machines to operate in accordance with an instance of a first version of an operating system and configuring a second virtual machine of the one or more virtual machines to operate in accordance with an instance of a second version of the operating system.

20. The method of claim 19 wherein the first version of the operating system is different than the second version of the operating system.

21. A system comprising:

a static instrumentation engine configured to:

(i) translate an application in a first code level to a second code level, where the second level form being higher code level than the first code level,

(ii) instrument the application in the second code level with one or more monitoring functions, where the one or more monitoring functions detect behaviors of the application during processing within a virtual machine, and

(iii) re-translate the instrumented application to the first code level;

a dynamic run time environment that comprises one or more virtual machines including the virtual machine, the one or more virtual machines being configured to conduct virtual execution of the instrumented application, and the at least one of the one or more monitoring functions of the instrumented application to observe one or more behaviors of the instrumented application; and

a central intelligence engine configured to determine, in response to information provided from the one or more monitoring functions, whether the one or more behaviors identify that the application includes improperly behaving code.

22. The system of claim 21 , wherein the application is a software application executed on a mobile device.

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 →
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Aug 15, 2024
From: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
To: MAGENTA SECURITY HOLDINGS LLC
Reel/Frame 068656/0920 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
To: MAGENTA SECURITY HOLDINGS LLC
Reel/Frame 068657/0843 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: MUSARUBRA US LLC
To: MAGENTA SECURITY INTERMEDIATE HOLDINGS LLC
Reel/Frame 068657/0764 →
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 →
CHANGE OF NAME Recorded Sep 15, 2022
From: FIREEYE, INC.
To: MANDIANT, INC.
Reel/Frame 061434/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2022
From: MANDIANT, INC.
To: FIREEYE SECURITY HOLDINGS US LLC
Reel/Frame 061449/0366 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2021
From: ISMAEL, OSMAN ABDOUL; AZIZ, ASHAR
To: FIREEYE, INC.
Reel/Frame 056264/0450 →