Source Code Vulnerability Position Analysis via Abstract Syntax Trees

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computer systems face challenges in maintaining security due to frequent updates introducing security vulnerabilities, which traditional software testing methods, including static code analysis, struggle to identify and remediate effectively, especially in complex systems using modern programming paradigms.

Innovation Solution

The method involves using static and dynamic analysis techniques to scan source code for vulnerabilities, generating abstract syntax trees, and performing dataflow analysis to determine precise locations of vulnerabilities, allowing for the application of security patch rules to remediate them efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If traditional static code analysis is used to identify vulnerabilities, then vulnerability detection is performed, but precise location identification and automated remediation are not achieved

Engineering Contradiction:
Improvevulnerability detection capabilityVSAvoidvulnerability location precision
Core Design Contradiction:
Difficulty of detecting and measuringVSManufacturing precision

Solution Approach 1:

The patent segments the source code into an abstract syntax tree (AST) representation, dividing the code into hierarchical nodes that represent different linguistic structures. This segmentation enables precise identification of vulnerability locations by mapping them to specific nodes in the AST, rather than treating the code as a monolithic block.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension by creating an abstract syntax tree representation that adds structural and semantic layers to the traditional linear code view. This dimensional transformation allows vulnerabilities to be located and analyzed in terms of their syntactic and semantic context, enabling more precise positioning.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If frequent updates are made to software components to add features and fix defects, then system functionality is improved, but security vulnerabilities are introduced

Engineering Contradiction:
Improvesoftware update frequencyVSAvoidsystem security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary security analysis by integrating static code analysis into the development workflow before code is deployed or merged. By analyzing code changes proactively before they reach production, the system can identify and remediate vulnerabilities introduced by frequent updates, preventing them from compromising system security.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a feedback mechanism where the results of static code analysis are automatically fed back to developers through integrated development environments or code review systems. This immediate feedback loop allows developers to address security issues in real-time during the development process, maintaining security despite frequent updates.

Inventive Principle:
Principle #23Feedback

3Difficulty of detecting and measuring

If static code analysis is used to identify vulnerabilities, then vulnerability locations are found, but automated remediation cannot be performed

Engineering Contradiction:
Improvevulnerability identificationVSAvoidautomated remediation capability
Core Design Contradiction:
Difficulty of detecting and measuringVSExtent of automation

Solution Approach 1:

The patent enables self-service automated remediation by allowing the static code analysis system to automatically generate and apply security patches without human intervention. The system identifies vulnerabilities, formulates remediation strategies, and applies fixes autonomously, with the ability to handle common vulnerability patterns through pre-defined remediation rules.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary layer consisting of security patch rules and remediation templates that bridge the gap between vulnerability detection and automated fixing. These intermediaries translate identified vulnerabilities into actionable remediation steps, enabling automated correction while maintaining code quality and consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Adaptability or versatility

If modern programming paradigms such as object-oriented programming and dependency injection are used, then code flexibility and maintainability are improved, but vulnerability analysis complexity increases

Engineering Contradiction:
Improveprogramming paradigm flexibilityVSAvoidvulnerability analysis complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal static code analysis framework that can analyze multiple modern programming paradigms including object-oriented programming, functional programming, and dependency injection patterns. The AST-based approach provides a paradigm-agnostic foundation that can represent and analyze different programming styles through a unified structural model, reducing analysis complexity despite code flexibility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9792443B1Position analysis of source code vulnerabilities
Publication Date: 2017.10.17 BLACK DUCK SOFTWARE INC
  • US9792443B1 patent drawing
  • US9792443B1 patent drawing
  • US9792443B1 patent drawing

AI summary

Techniques for performing position analysis on a representation of an application source code are disclosed herein. An application source code is scanned to produce a representation of the application source code, start locations within the representation are determined, corresponding stop locations within the representation are determined, and a set of data impact locations within the representation are determined. The set of data impact locations are then used in a dataflow analysis to determine a position of high control of the data within the representation.