Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
First Claim
Patent Images
1. A method of enforcing policies associated with the loading, linking and/or execution of native code by an application, the method comprising:
- executing an application, through the use of a computer processor, in a first process on a device running inside of a virtual machine, wherein the application includes calls accessing native code;
executing a policy engine, through the use of a computer processor, in a second process on the device;
receiving a request for one or more of loading, linking, or execution of a native code library from the executing application, wherein the request is communicated by the application to the policy engine via a local cross-process communication mechanism, and wherein the request is received after the application has been assembled and begun executing;
determining by the policy engine whether the request from the application is allowed based on a policy;
permitting the requested access by loading, linking, or execution of the native code library upon determining that the application is allowed to access the native library; and
determining, by the virtual machine, whether the request from the application is allowed based on a local policy separate from the policy applied by the policy engine, and permitting the requested access only if both the local policy and policy engine determine that the application is allowed to access the native library.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems described herein relate to enhancing security on a device by enforcing one or more policies on the loading, linking, and/or executing of native code by one or more applications executing on the device.
-
Citations
18 Claims
-
1. A method of enforcing policies associated with the loading, linking and/or execution of native code by an application, the method comprising:
-
executing an application, through the use of a computer processor, in a first process on a device running inside of a virtual machine, wherein the application includes calls accessing native code; executing a policy engine, through the use of a computer processor, in a second process on the device; receiving a request for one or more of loading, linking, or execution of a native code library from the executing application, wherein the request is communicated by the application to the policy engine via a local cross-process communication mechanism, and wherein the request is received after the application has been assembled and begun executing; determining by the policy engine whether the request from the application is allowed based on a policy; permitting the requested access by loading, linking, or execution of the native code library upon determining that the application is allowed to access the native library; and determining, by the virtual machine, whether the request from the application is allowed based on a local policy separate from the policy applied by the policy engine, and permitting the requested access only if both the local policy and policy engine determine that the application is allowed to access the native library. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A device comprising:
-
a memory containing program instructions and a native code library; a processor connected to the memory, wherein the processor is configured to receive program instructions from the memory and wherein the received program instructions configure the processor to; execute an application in a first process running inside of a virtual machine on the device, wherein the application includes calls accessing native code; execute a policy engine in a second process on the device; receive a request for one or more of loading, linking, or execution of the native code library from the executing application, wherein the request is communicated by the application to the policy engine via a local cross-process communication mechanism, and wherein the request is received after the application has been assembled and begun executing; determine by the policy engine whether the request from the application is allowed based on a policy; permit the requested access by loading, linking, or execution of the native code library upon determining that the application is allowed to access the native library; and determine, by the virtual machine, whether the request from the application is allowed based on a local policy separate from the policy applied by the policy engine, and permit the requested access only if both the local policy and policy engine determine that that the application is allowed to access the native library. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification