IP Library › Granted Patent US 10,614,224
Granted Patent B2
US 10,614,224 · App. 15/595,285 · Granted Apr 7, 2020

Identifying computer program security access control violations using static analysis

Inventors: Matthias Daniel Dietsch (Freiburg, DE); Pietro Ferrara (White Plains, NY); Marco Pistoia (Amawalk, NY); Omer Tripp (Bronx, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F21/577G06F17/5022G06F21/52G06F2221/033
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,614,224
App. No.
15/595,285
Granted
Apr 7, 2020
Kind
B2
Abstract

Techniques for identifying computer program security access control violations using static program analysis are provided. In one example, a computer-implemented method comprises generating, by a device operatively coupled to a processor, a mathematical model of a computer program product, wherein the mathematical model defines data flows through nodes of the computer program product that reach a secure node corresponding to a secure resource. The computer implemented method further comprises evaluating, by the device, a security protocol of the computer program product using static program analysis of the mathematical model to determine whether any of the data flows provides access to the secure node without proceeding through one or more security nodes corresponding to the security protocol, wherein the one or more security nodes are included in the nodes of the computer program product.

Claims (29)

1. A system, comprising:

a memory that stores computer executable components;

a processor that executes the computer executable components stored in the memory, wherein the computer executable components comprise:

a modeling component that generates a mathematical model of a computer program product, wherein the mathematical model defines data flows through nodes of the computer program product that reach a protected node corresponding to a protected data object; and

a security evaluation component that evaluates a security protocol of the computer program product using static program analysis of the mathematical model to determine whether any of the data flows provide a path to the protected node that does not proceed through security nodes in an order corresponding to the security protocol, wherein the security nodes are included in the nodes of the computer program product, wherein the security nodes comprise an authorization node that checks an authorization of an entity to access the protected data object and an authentication node that checks an authentication of the entity, and wherein the order comprises flow through the authentication node prior to flow through the authorization node.

2. The system of claim 1 , wherein the using the static program analysis comprises evaluating the data flows as an interprocedural control-flow graph reachability problem using an interprocedural, finite, distributive, subset (IFDS) algorithm.

3. The system of claim 1 , wherein the computer program product provides runtime environment protocol information employed by an operating system to execute one or more additional computer program products.

4. The system of claim 3 , wherein the protected data object comprises hardware or software of the operating system.

5. The system of claim 1 , further comprising:

a report component that generates output information regarding whether any of the data flows provides the path to the protected node that does not proceed through the security nodes in the order corresponding to the security protocol.

6. The system of claim 1 , further comprising:

a notification component configured to generate a notification based on a determination that one or more data flows of the data flows provides the path to the protected node that does not proceed through the security nodes in the order corresponding to the security protocol.

7. The system of claim 6 , wherein the notification comprises information indicating the computer program product has a security access control issue associated with the protected data object.

8. The system of claim 6 , wherein the notification comprises information identifying an amount of the one or more data flows that provides the path to the protected node that does not proceed through the security nodes in the order corresponding to the security protocol.

9. The system of claim 6 , wherein the notification comprises information identifying the one or more data flows.

10. The system of claim 2 , wherein the evaluating comprises propagating a data flow fact corresponding to the protected data product through the data flows and ending the propagating of the data flow fact only when the data flow fact reaches the authentication node before reaching the authorization node.

11. The system of claim 10 , wherein the security evaluation component determines that a data flow of the data flows violates the security protocol based on the data flow fact reaching the protected node in association with propagation through the data flow.

12. The system of claim 11 , wherein the security evaluation component identifies respective nodes included in the data flow based on the respective nodes connecting to the protected node and being associated with an intact representation of the data flow fact.

13. A computer program product that facilitates identification of security access control violations associated with a second computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:

generate, by the processor, a mathematical model of the second computer program product, wherein the mathematical model defines data flows through nodes of the second computer program product that reach a secure node corresponding to a secure resource; and

evaluate, by the processor, a security protocol of the second computer program product using static program analysis of the mathematical model to determine whether any of the data flows provide a path to the secure node that does not proceed through security nodes in an order corresponding to the security protocol, wherein the security nodes are included in the nodes of the second computer program product, wherein the security nodes comprise an authorization node that checks an authorization of an entity to access the secure resource and an authentication node that checks an authentication of the entity, and wherein the order comprises flow through the authentication node prior to flow through the authorization node.

14. The computer program product of claim 13 , wherein the using the static program analysis comprises evaluating the data flows as an interprocedural control-flow graph reachability problem using an interprocedural, finite, distributive, subset (IFDS) algorithm.

15. The computer program product of claim 13 , wherein the second computer program product provides runtime environment protocol information that can be used by an operating system to execute one or more additional computer program products.

16. The computer program product of claim 13 , wherein the secure resource comprises hardware or software of the operating system.

17. The computer program product of claim 13 , wherein the program instructions are further executable by the processor to cause the processor to generate output information regarding whether any of the data flows provides the path to the secure node that does not proceed through the security nodes in the order corresponding to the security protocol.

18. The computer program product of claim 13 , wherein the program instructions are further executable by the processor to cause the processor to generate a notification based on a determination that one or more data flows of the data flows provides the path to the secure node that does not proceed through security nodes in the order corresponding to the security protocol.

19. The computer program product of claim 13 , wherein the evaluating comprises propagating a data flow fact corresponding to the secure resource through the data flows and ending the propagating of the data flow fact only when the data flow fact reaches the authentication node before reaching the authorization node.

20. The computer program product of claim 19 , wherein the program instructions are further executable by the processor to cause the processor to:

determine that a data flow of the data flows violates the security protocol based on the data flow fact reaching the secure node in association with propagation through the data flow.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2017
From: DIETSCH, MATTHIAS DANIEL; FERRARA, PIETRO; PISTOIA, MARCO; TRIPP, OMER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042464/0436 →
Continuity (1)
Related Publication 20180330097A1 · Nov 15, 2018