IP Library Granted Patent US 11,514,172
Granted Patent B2
US 11,514,172 · App. 16/685,301 · Granted Nov 29, 2022

System and method for information flow analysis of application code

Inventors: Fabian Yamaguchi (Berlin, DE); Markus Lottmann (Berlin, DE); Niko Schmidt (Berlin, DE); Vlad A Ionescu (Menlo Park, CA); Chetan Conikee (Santa Clara, CA)
Assignee: Grabango Co.
G06F21/577G06F16/9024G06F21/563G06F2221/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 11,514,172
App. No.
16/685,301
Granted
Nov 29, 2022
Kind
B2
Abstract

A method and system for security flow analysis of application code comprising: detecting data flows in a code base; and extracting an information flow, comprising determining a primary data flow by identifying a data flow that contains exposed data, and extending the primary data flow through descriptor data flows, wherein the descriptor data flows are associated with the set of data tracked by the primary data flow; wherein the information flow is a high level flow description that exposes the application code vulnerabilities based on the primary data flow and all associated descriptor data flows.

Claims (47)

1. A method for security analysis of application code comprising:

generating a code property graph and detecting, by at least one computer using the code property graph, data flows in a code base, wherein detecting a data flow comprises tracking a set of data through the code base;

extracting, by at least one computer, an information flow, comprising:

finding a primary data flow by identifying a data flow that contains exposed data,

extending the primary data flow through descriptor data flows,

wherein the descriptor data flows are associated with the set of data tracked by the primary data flow, the descriptor data flows comprising data flows associated with at least one of a source or a destination of the primary data flow; and

wherein the information flow is a high-level flow description that exposes code vulnerabilities based on the primary data flow and all associated descriptor flows.

2. The method of claim 1 , wherein the descriptor data flows further comprises data flows associated with transformations of the primary data flow.

3. The method of claim 1 , further comprising extracting a set of information flows, wherein for each information flow, extracting an information flow comprises:

finding a primary data flow by identifying a data flow that contains exposed data, and

extending the primary data flow through descriptor data flows, wherein the descriptor data flows are associated with the set of data tracked by the primary data flow.

4. The method of claim 1 , further comprising analyzing the information flow, comprising detecting data vulnerabilities, wherein detecting data vulnerabilities identifies locations in code base, types, and levels of exposure of the data vulnerabilities.

5. The method of claim 4 , further comprising defining a code security policy, wherein the code security policy comprises flow descriptions specifying patterns of information flow, and wherein detecting data vulnerabilities comprises identifying the patterns of information flow as possible instances of vulnerability.

6. The method of claim 1 , wherein the data flows and the information flows are stored in a single graph data structure.

7. The method of claim 6 , where the graph data structure further stores detected data vulnerabilities.

8. The method of claim 7 , further comprises tagging nodes of the graph data structure representing functions and parameters associated with read operations, write operations, and transformations of the set of data.

9. The method of claim 7 , further comprises tagging nodes of the graph data structure representing functions and parameters associated with vulnerabilities.

10. The method of claim 1 , further comprising:

defining a code security policy, wherein the code security policy comprises data flow semantic policies, tagging directive policies, and flow description policies;

analyzing the information flow, comprising evaluating the information flow against the code security policy and detecting data vulnerabilities,

wherein generating the code property graph comprises generating a semantic code property graph, wherein the semantic code property graph is a multi-layer data structure that stores the application flow data at different abstraction levels at a detail sufficient to formulate an online data flow tracking algorithm on the graph, comprising at least a base layer, a graph layer comprising data flows, an information flow layer comprising information flows, and a findings layer comprising an analysis of the information flow layer; and

wherein extracting an information flow further comprises: using the data flow semantic policies in identifying the primary data flow, and extending the information data flow through associated chain calls.

11. A system comprising of:

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause a computing platform to perform operations comprising:

generating a code property graph and determining, using the code property graph, a primary data flow by identifying a data flow that contains exposed data,

extending the primary data flow through descriptor data flows,

wherein the descriptor data flows are associated with the set of data tracked by the primary data flow, the descriptor data flows comprising data flows associated with at least one of a source or a destination of the primary data flow; and

wherein the information flow is a high-level flow description that exposes code vulnerabilities based on the primary data flow and all associated descriptor flows.

12. The system of claim 11 , wherein the descriptor data flows further comprises of data flows associated with a transformation of the primary data flow.

13. The system of claim 11 , wherein the instructions further cause operations on the computing platform comprising: storing instructions in the computing platform to perform operations further comprising analyzing the information flow, comprising detecting data vulnerabilities, wherein detecting data vulnerabilities identifies locations in code base, types, and levels of exposure of the data vulnerabilities.

14. The system of claim 13 , wherein the instructions further cause operations on the computing platform comprising: defining a code security policy, wherein the code security policy comprises flow descriptions specifying patterns of information flow, and wherein detecting data vulnerabilities comprises identifying the patterns of information flow as possible instances of vulnerability.

15. The system of claim 1 , wherein the data flows and the information flows are stored in a single graph data structure.

16. The system of claim 15 , where the graph data structure further stores detected data vulnerabilities.

17. The system of claim 16 , wherein the instructions further cause operations on the computing platform comprising: tagging nodes of the graph data structure representing functions and parameters associated with read operations, write operations, and transformations of the set of data.

18. The system of claim 16 , wherein the instructions further cause operations on the computing platform comprising: tagging nodes of the graph data structure representing functions and parameters associated with vulnerabilities.

19. The system of claim 11 , wherein the instructions further cause operations on the computing platform comprising:

defining a code security policy, wherein the code security policy comprises data flow semantic policies, tagging directive policies, and flow description policies;

analyzing the information flow, comprising evaluating the information flow against the code security policy and detecting data vulnerabilities,

generating a semantic code property graph, wherein the semantic code property graph is a multi-layer data structure that stores the application flow data at different abstraction levels at a detail sufficient to formulate an online data flow tracking algorithm on the graph, comprising at least a base layer, a graph layer comprising data flows, an information flow layer comprising information flows, and a findings layer comprising an analysis of the information flow layer; and

wherein extracting an information flow further comprises: using the data flow semantic policies in identifying the primary data flow, and extending the information data flow through associated chain calls.

20. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a communication platform, cause the communication platform to:

generate a code property graph and detect, using the code property graph, data flows in a code base, wherein each data flows comprises a set of data that is tracked through the code base;

extract an information flow that comprises:

determining a primary data flow by identifying a data flow that contains exposed data,

extending the primary data flow through descriptor data flows,

wherein the descriptor data flows are associated with the set of data tracked by the primary data flow, the descriptor data flows comprising data flows associated with at least one of a source or a destination of the primary data flow; and

wherein the information flow is a high-level flow description that exposes code vulnerabilities based on the primary data flow and all associated descriptor flows.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2026
From: SHIFTLEFT, INC.
To: HARNESS INC.
Reel/Frame 074196/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2020
From: YAMAGUCHI, FABIAN; LOTTMANN, MARKUS; SCHMIDT, NIKO; IONESCU, VLAD A.; CONIKEE, CHETAN
To: SHIFTLEFT INC
Reel/Frame 051926/0944 →
Continuity (2)
Provisional Application 62768032 · Nov 15, 2018
Related Publication 20200159934A1 · May 21, 2020
Cited By (2)
US 12,189,786 US 12,229,264