IP Library Granted Patent US 10,853,521
Granted Patent B2
US 10,853,521 · App. 16/037,141 · Granted Dec 1, 2020

Application security policy management agent

Inventor: Walter T. Hulick, Jr. (Pearland, TX)
Assignee: CISCO TECHNOLOGY, INC.
G06F21/629G06F11/3065G06F21/53H04L63/20
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 10,853,521
App. No.
16/037,141
Granted
Dec 1, 2020
Kind
B2
Abstract

A policy generation agent automatically generates a security policy for an application and a specified custom security manager. The agent launches an application in a development environment. The agent instantiates a development security manager based on a custom security manager defined by the application. The agent runs the application in the development environment, causing the application to request permissions from the development security manager. The development security manager passes the permissions request to the custom security manager and approves the one or more permissions. The custom security manger determines whether to approve or deny the request based on a permissions policy. Responsive to a determination to deny the request, the agent updates the permissions policy to approve subsequent requests for the permissions. The agent also associates the updated permissions policy with the application. The agent may enable different sections of the policy based on performance, security, or application stakeholder preference.

Claims (53)

1. A method comprising:

launching on a computing device an application in a development environment, the application defining a custom security manager function;

instantiating a development security manager function based on the custom security manager function;

running the application in the development environment, wherein running the application causes the application to request one or more permissions from the development security manager function;

passing the request for the permissions to the custom security manager function;

approving, by the development security manager function, the one or more permissions;

determining, with the custom security manager function, whether to approve or deny the request based on a permissions policy;

responsive to a determination to deny the request, updating the permissions policy to approve subsequent requests for the one or more permissions; and

associating the updated permissions policy with the application.

2. The method of claim 1 , further comprising iteratively updating the permissions policy based on additional requests for additional permissions.

3. The method of claim 2 , further comprising:

determining whether running the application no longer generates the additional requests for the additional permissions;

halting the application in the development environment; and

associating a final permissions policy with the application.

4. The method of claim 1 , wherein approving the one or more permissions by the development security manager function comprises suppressing any exceptions generated by the custom security manager function in denying the request for the one or more permissions.

5. The method of claim 1 , further comprising:

storing a record of each permission requested while running the application in the development environment; and

generating an audit report on permissions requested by one or more third party software function modules called by running the application.

6. The method of claim 1 , wherein running the application comprises using a script to access specific portions of source code in the application.

7. The method of claim 6 , wherein the source code of the application includes third party modules.

8. An apparatus comprising:

a memory; and

a processor coupled to the memory, the processor configured execute instructions stored in the memory to:

launch an application in a development environment, the application defining a custom security manager function;

instantiate a development security manager function based on the custom security manager function;

run the application in the development environment, wherein running the application causes the application to request one or more permissions from the development security manager function;

pass the request for the permissions to the custom security manager function;

cause the development security manager function to approve the one or more permissions;

cause the custom security manager function to determine whether to approve or deny the request based on a permissions policy;

responsive to a determination to deny the request, update the permissions policy to approve subsequent requests for the one or more permissions; and

associate the updated permissions policy with the application.

9. The apparatus of claim 8 , wherein the processor is further configured to iteratively update the permissions policy based on additional requests for additional permissions.

10. The apparatus of claim 9 , wherein the processor is further configured to:

determine whether running the application no longer generates the additional requests for the additional permissions;

halt the application in the development environment; and

associate a final permissions policy with the application.

11. The apparatus of claim 8 , wherein the processor is configured to cause the development security manager function to approve the one or more permissions by suppressing any exceptions generated by the custom security manager function in denying the request for the one or more permissions.

12. The apparatus of claim 8 , wherein the processor is further configured to:

store in the memory, a record of each permission requested while running the application in the development environment; and

generate an audit report on permissions requested by one or more third party software function modules called by running the application.

13. The apparatus of claim 8 , wherein the processor is configured to run the application by using a script to access specific portions of source code in the application.

14. The apparatus of claim 13 , wherein the source code of the application includes third party modules.

15. One or more non-transitory computer readable storage media encoded with software comprising computer executable instructions and, when the software is executed by a processor, cause the processor to: launch an application in a development environment, the application defining a custom security manager function; instantiate a development security manager function based on the custom security manager function; run the application in the development environment, wherein running the application causes the application to request one or more permissions from the development security manager function; pass the request for the permissions to the custom security manager function; cause the development security manager function to approve the one or more permissions; cause the custom security manager function to determine whether to approve or deny the request based on a permissions policy; responsive to a determination to deny the request, update the permissions policy to approve subsequent requests for the one or more permissions; and associate the updated permissions policy with the application.

16. The non-transitory computer readable storage media of claim 15 , further comprising instructions operable to cause the processor to iteratively update the permissions policy based on additional requests for additional permissions.

17. The non-transitory computer readable storage media of claim 16 , further comprising instructions operable to cause the processor to:

determine whether running the application no longer generates the additional requests for the additional permissions;

halt the application in the development environment; and

associate a final permissions policy with the application.

18. The non-transitory computer readable storage media of claim 15 , further comprising instructions operable to cause the processor to cause the development security manager function to approve the one or more permissions by suppressing any exceptions generated by the custom security manager function in denying the request for the one or more permissions.

19. The non-transitory computer readable storage media of claim 15 , further comprising instructions operable to cause the processor to:

store a record of each permission requested while running the application in the development environment; and

generate an audit report on permissions requested by one or more third party software function modules called by running the application.

20. The non-transitory computer readable storage media of claim 15 , further comprising instructions operable to cause the processor to run the application by using a script to access specific portions of source code in the application, wherein the source code of the application includes third party modules.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2018
From: HULICK, WALTER T., JR.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 046369/0534 →
Continuity (1)
Related Publication 20200026865A1 · Jan 23, 2020