Compiler Derivatives for Legacy SAST Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy-versioned software development tools are unable to consume the latest release-versioned Static Application Security Testing (SAST) tools, leading to potential security vulnerabilities in software due to incompatibilities and outdated security checks.

Innovation Solution

A central check system (CCS) is coupled with a remote software system (RSS), where software compiler outputs, specifically source code derivatives, are used for release-independent remote code vulnerability analysis, allowing static testing to be performed even with older software development tools by transferring only compiler-generated derivatives rather than full byte code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If legacy-versioned software development tools are used, then compatibility with older systems is maintained, but security vulnerability detection capability deteriorates

Engineering Contradiction:
ImprovecompatibilityVSAvoidsecurity vulnerability detection capability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces an intermediary component that translates between legacy software development tool interfaces and modern SAST tool interfaces. This intermediary layer enables legacy tools to leverage contemporary security analysis capabilities without requiring direct compatibility, thus resolving the contradiction between maintaining legacy compatibility and accessing modern security detection capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a copy or representation of the legacy software code that can be analyzed by modern SAST tools. Instead of requiring the legacy tools themselves to perform security analysis, the system generates a replicable version of the code that modern tools can process, thereby enabling advanced security detection while maintaining legacy tool compatibility.

Inventive Principle:
Principle #26Copying

2Measurement precision

If full byte code is transferred for testing, then complete software analysis is possible, but network traffic and storage needs increase

Engineering Contradiction:
Improvesoftware analysis completenessVSAvoidnetwork traffic and storage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential code elements required for security analysis from the complete software binary. Instead of transferring and analyzing entire byte code repositories, the system identifies and extracts specific code segments, functions, or data structures that are relevant to security vulnerability detection, thereby maintaining analysis completeness while dramatically reducing data transfer and storage requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent divides the software code base into discrete, analyzable segments that can be independently processed by SAST tools. By segmenting the code into manageable units (such as individual functions, classes, or control flow paths), the system enables comprehensive security analysis without requiring the transfer or storage of complete binary artifacts, thus reducing network traffic and storage needs while maintaining analysis thoroughness.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9569335B1Exploiting software compiler outputs for release-independent remote code vulnerability analysis
Publication Date: 2017.02.14 SAP SE
  • US9569335B1 patent drawing
  • US9569335B1 patent drawing
  • US9569335B1 patent drawing

AI summary

A central check system (CCS) is coupled to a remote software system (RSS). Data is fetched from the RSS, the data being software code derivatives generated by a software compiler on the RSS with a version different than a version of the software program associated with the CCS. Static software testing is performed of the software program on the CCS using the fetched data and test results provided in a required format.