IP Library Granted Patent US 9,326,145
Granted Patent B2
US 9,326,145 · App. 13/971,759 · Granted Apr 26, 2016

System and method for application usage controls through policy enforcement

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,326,145
App. No.
13/971,759
Granted
Apr 26, 2016
Kind
B2
Abstract

A method includes a particular user application, without operating system kernel access, performing the operations of: identifying a set of applications that a user has permission to access, receiving a request to a access a particular application of the set of applications, and causing execution of the particular application.

Claims (62)

1. A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, causes the one or more hardware processors to:

identify, by a particular user application, a first set of applications that a user has permission to access, the first set of applications being selected from a plurality of applications, and wherein each application of the first set of applications comprises a policy enforcer code that automatically applies one or more security policies to control behavior of the application;

provide, by the particular user application to a user, an option to select at least one application of the first set of applications;

receive, by the particular user application from the user, a request to access a first application in the first set of applications;

responsive to receipt of the request, cause, by the particular user application, the policy enforcer code in the first application to intercept system calls and framework calls on the first application and replace symbols for the intercepted system calls in an in-memory symbol table with predefined symbols and the framework calls with predefined calls to enable the policy encoder code to control behavior of the first application; and

cause, by the particular user application, execution of the first application following interception and modification of the system calls and framework calls on the first application.

2. The non-transitory computer readable medium of claim 1 , wherein the particular user application does not have kernel access for an Operating System executing on a same device as the particular user application.

3. The non-transitory computer readable medium of claim 1 , wherein to provide the option to select at least one application of the first set of applications, the instructions are to cause the one or more hardware processors to:

determine a subset of applications from the first set of applications that the user has permission to access; and

display at least one or more icons representing the subset of applications that the user has permission to access.

4. The non-transitory computer medium of claim 1 , wherein to identify the first set of applications that the user has permission to access, the instructions are to cause the one or more hardware processors to at least one of:

determine, by the particular user application, whether the user has permission to access the first application based on a physical location of a device executing the particular user application as controlled by the policy enforcer code of the first application; and

determine, by the particular user application, whether the user has permission to access the first application based on either (i) a network connection of a device executing the particular user application or (ii) a configuration of the device executing the particular user application.

5. The non-transitory computer medium of claim 1 , wherein the instructions are to cause the one or more hardware processors to:

inject the policy enforcer code into a dynamic load library of the first application during a binary instrumentation of the first application, wherein the behavior of the first application after the binary instrumentation of the first application is different than a behavior of the first application prior to the binary instrumentation of the first application.

6. The non-transitory computer medium of claim 1 , wherein to provide the option, the instructions are to cause the one or more hardware processors to:

display an interface comprising:

a first plurality of icons representing the first set of applications that the user has permission to access;

a second plurality of icons representing a second set of one or more applications that the user does not have permission to access;

wherein the interface indicates that (a) the first plurality of icons represents applications that the user has permission to access and (b) the second plurality of icons represents applications that the user does not have permission to access.

7. The non-transitory computer medium of claim 1 , wherein the instructions are to cause the one or more hardware processors to, responsive to the identification of the first set of applications that the user has permission to access, install the first set of applications on a device executing the particular user application.

8. The non-transitory computer medium of claim 1 , wherein the instructions are to cause the one or more hardware processors to:

subsequent to causing execution of the first application, determine a change in permissions associated with the user;

identify, by the particular user application, that the user does not have permission to access the first application based on the change in permissions associated with the user; and

prevent, by the particular user application, the user from accessing the first application.

9. The non-transitory computer medium of claim 1 , wherein the instructions are to cause the one or more hardware processors to:

identify, by the particular user application, a second set of applications that a second user has permission to access, the second set of applications being selected from the plurality of applications, and the second set of applications being different than the first set of applications;

provide, by the particular user application to the second user, an option to select at least one application of the second set of applications;

receive, by the particular user application from the second user, a second request to access a second application in the second set of applications;

responsive to receipt of the second request: cause, by the particular user application, execution of the second application.

10. A device comprising:

at least one hardware processor;

a memory on which stored instructions that are to cause the at least one hardware processor to:

identify, by a particular user application, a first set of one or more applications that a user has permission to access, the first set of one or more applications being selected from a plurality of applications and wherein each application of the first set of one or more applications comprises a policy enforcer code that automatically applies one or more security policies to control behavior of the application;

provide, by the particular user application to a user, an option to select at least one application of the first set of applications;

receive, by the particular user application from the user, a request to access a first application in the first set of one or more applications;

responsive at least to receipt of the request cause, by the particular user application, the policy enforcer code in the first application to intercept system calls and framework calls on the first application and replace symbols for the intercepted system calls in an in-memory symbol table with predefined symbols and the framework calls with predefined calls to enable the policy encoder code to control behavior of the first application; and

cause, by the particular user application, execution of the first application following interception and modification of the at least one system calls and the framework calls on the first application.

11. The device of claim 10 , wherein the particular user application does not have kernel access for an Operating System executing on a same device as the particular user application.

12. The device of claim 10 , wherein to identify the first set of applications that the user has permission to access, the instructions are to cause the at least one hardware processor to at least one of:

determine, by the particular user application, whether the user has permission to access the first application based on a physical location of a device executing the particular user application as controlled by the policy enforcer code of the first application;

determine, by the particular user application, whether the user has permission to access the first application based on a network connection of a device executing the particular user application; and

determine, by the particular user application, whether the user has permission to access the first application based on a configuration of a device executing the particular user application.

13. The device of claim 10 , wherein to provide the option, the instructions are to cause the at least one hardware processor to:

display an interface comprising:

a first plurality of icons representing the first set of applications that the user has permission to access;

a second plurality of icons representing a second set of one or more applications that the user does not have permission to access;

wherein the interface indicates that (a) the first plurality of icons represents applications that the

user has permission to access and (b) the second plurality of icons represents applications that the user does not have permission to access.

14. The device of claim 10 , wherein the instructions are to cause the at least one hardware processor to, responsive to the identification of the first set of applications that the user has permission to access, install the first set of applications on a device executing the particular user application.

15. The device of claim 10 , wherein the instructions are to cause the at least one hardware processor to:

subsequent to causing execution of the first application, determine a change in permissions associated with the user;

identify, by the particular user application, that the user does not have permission to access the first application based on the change in permissions associated with the user; and

prevent, by the particular user application, the user from accessing the first application.

16. The device of claim 10 , wherein the instructions are to cause the at least one hardware processor to:

inject the policy enforcer code into a dynamic load library of the first application during a binary instrumentation of the first application.

17. A method comprising:

identifying, by a particular user application, a first set of applications that a user has permission to access, the first set of applications being selected from a plurality of applications, and wherein each application of the first set of applications comprises a policy enforcer code that automatically applies one or more security policies to control behavior of the application;

providing, by the particular user application to a user, an option to select at least one application of the first set of applications;

receiving, by the particular user application from the user, a request to access a first application in the first set of applications;

causing, by the particular user application, the policy enforcer code in a first application in the first set of applications to intercept system calls and framework calls on the first application and replace symbols for the intercepted system calls in an in-memory symbol table with predefined symbols and the framework calls with predefined calls to enable the policy encoder code to control behavior of the first application; and

causing, by the particular user application, execution of the first application following interception and modification of the system calls and framework calls on the first application.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2018
From: ARUBA NETWORKS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 045921/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: ARUBA NETWORKS, INC.
Reel/Frame 036379/0274 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2015
From: ARUBA NETWORKS, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 035814/0518 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2014
From: AWAN, ASIF; KSHIRSAGAR, SHEKHAR; KUMAR, CHETAN; AGARWAL, DEEPAK; MARADANI, SUMAN; BABU, SUNIL G.
To: ARUBA NETWORKS, INC.
Reel/Frame 031978/0667 →