Automated Source Code Integrity Vulnerability Detection in IDE

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for detecting integrity vulnerabilities in source code are manual, labor-intensive, error-prone, and costly, often leading to the propagation of errors from existing to new code, as they require human testers to generate test cases and are prone to human errors.

Innovation Solution

An automated system within an integrated development environment (IDE) that converts source code into abstracted JSON format, compares it against known integrity vulnerability patterns, and alerts users to potential vulnerabilities, providing proposed solutions and allowing for real-time detection and correction without compilation or execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual methods are used to detect integrity vulnerabilities in source code, then human testers can generate test cases and identify issues, but the process becomes labor-intensive, error-prone, and costly

Engineering Contradiction:
Improvedetection accuracyVSAvoiddetection efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs self-service by automatically analyzing source code for integrity vulnerabilities without requiring human testers. The automated vulnerability detection system converts source code to abstract syntax trees, compares patterns, and generates alerts independently, eliminating manual labor while maintaining high detection accuracy through systematic algorithmic analysis

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical human testing process with an automated computational system. Instead of human testers manually reviewing code, the system uses abstract syntax tree generation and pattern matching algorithms to detect vulnerabilities, substituting human cognitive processes with automated mechanical analysis that is both faster and more reliable

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If manual testing is used, then test cases can be generated, but errors propagate from existing to new code due to human errors

Engineering Contradiction:
Improveerror detection capabilityVSAvoiderror propagation
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The system performs preliminary action by detecting and alerting developers to integrity vulnerabilities during the coding phase itself, before the code is committed or deployed. By converting source code to abstract syntax trees and comparing against known vulnerability patterns in real-time, the system prevents errors from propagating to new code by enabling early correction

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback by providing immediate alerts to developers when potential integrity vulnerabilities are detected. The automated comparison of abstract syntax trees against vulnerability patterns generates real-time feedback that allows developers to correct issues before they propagate, creating a closed-loop system that continuously prevents error propagation

Inventive Principle:
Principle #23Feedback

3Productivity

If automated vulnerability detection is implemented, then detection speed and consistency improve, but the system complexity increases

Engineering Contradiction:
Improvedetection speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer - the abstract syntax tree - that mediates between the source code and the vulnerability detection logic. By converting diverse programming languages and code structures into a standardized AST representation, the system simplifies the detection process while maintaining high speed and consistency across different codebases

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system applies parameter changes by transforming source code into a different representation format (abstract syntax trees) with standardized parameters and structure. This transformation enables consistent vulnerability detection across different programming languages while maintaining detection speed, as the standardized AST format allows for efficient pattern matching without requiring language-specific analysis logic

Inventive Principle:
Principle #35Parameter changes

4Reliability

If multiple tests are performed to ensure code integrity, then detection thoroughness improves, but time and costs increase

Engineering Contradiction:
Improvedetection thoroughnessVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by conducting comprehensive vulnerability detection during the initial coding phase through automated analysis of abstract syntax trees. This single thorough check during development replaces the need for multiple subsequent tests, as the pattern-matching approach systematically examines all code for known vulnerability patterns in one pass

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating an abstract representation (abstract syntax tree) of the source code that preserves the structural and semantic information needed for vulnerability detection. This copied representation can be analyzed thoroughly for integrity issues without requiring multiple tests on the original code, saving time while maintaining detection completeness

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11709936B2Automatic integrity vulnerability detection in an integrated development environment
Publication Date: 2023.07.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11709936B2 patent drawing
  • US11709936B2 patent drawing
  • US11709936B2 patent drawing

AI summary

Aspects of the invention include receiving, by a processor, source code for a software program written in a first programming language. The received source code is converted into abstracted source code that is in a generic format that is different than a format of the first programming language. The abstracted source code is compared to known source code patterns. Based on determining that at least a subset of the abstracted source code matches a pattern in the known source code patterns, sending an alert to the user indicating that the received source code matches the pattern.