Machine-Checkable Code Annotations for SAST False Positives

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Static Application Security Testing (SAST) tools often produce false positive results, leading to unnecessary manual audits and increased costs, as they over-approximate potential code vulnerabilities, requiring complex security policies and expert validation to distinguish true vulnerabilities from false positives.

Innovation Solution

Implementing machine-checkable code-annotations that provide logical statements to prove the security of code portions, allowing automated verification to mark and retain false positives, thus reducing the likelihood of erroneous markings and improving the reliability of vulnerability assessments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static analysis tools are used to detect code vulnerabilities, then security issues can be identified, but false positive results increase leading to unnecessary manual audits

Engineering Contradiction:
Improveaccuracy of vulnerability detectionVSAvoidmanual audit time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing static analysis before code execution to identify potential vulnerabilities. The system proactively detects security issues in advance, allowing developers to address them before deployment. This preliminary detection phase separates automated analysis from manual verification, reducing the need for time-consuming manual audits of false positives.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of a verification system that acts as a mediator between static analysis tools and manual audits. This intermediary automatically verifies detected vulnerabilities using multiple analysis techniques and confidence scoring, filtering out false positives before they reach manual reviewers. This reduces manual audit time while maintaining detection reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If static analysis tools over-approximate potential vulnerabilities, then more security issues are detected, but the number of false positives increases

Engineering Contradiction:
Improvecompleteness of vulnerability detectionVSAvoidaccuracy of vulnerability classification
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent applies partial action by implementing a multi-level verification process that selectively applies different verification techniques based on the detected vulnerability's characteristics and confidence score. Not all vulnerabilities undergo the same level of verification - high-confidence findings receive minimal verification while low-confidence findings undergo extensive analysis. This balances detection completeness with precision, reducing false positives without missing critical vulnerabilities.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent changes parameters by introducing confidence scoring and adjusting verification thresholds dynamically. The system monitors false positive rates and adjusts the stringency of verification based on observed performance. This parameter adjustment allows the system to maintain high detection completeness while improving classification accuracy by being more selective about which findings require manual verification.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If complex security policies are implemented to reduce false positives, then detection accuracy improves, but system complexity increases

Engineering Contradiction:
Improvefalse positive reductionVSAvoidsecurity policy complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the security analysis system into modular components: initial detection module, verification module, confidence scoring module, and policy enforcement module. Each segment handles a specific aspect of vulnerability analysis independently. This segmentation allows complex security policies to be implemented as separate, manageable rules in the policy enforcement module without overwhelming the entire system, maintaining precision while controlling complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal verification framework that handles multiple vulnerability types and detection methods through a single integrated system. The verification module can apply different techniques (dynamic analysis, symbolic execution, taint analysis) based on the specific vulnerability context. This multi-functional approach reduces overall system complexity by providing a unified policy enforcement mechanism rather than separate complex policies for each vulnerability type.

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

4Reliability

If manual system audits are increased to verify findings, then detection reliability improves, but costs increase

Engineering Contradiction:
Improveverification accuracyVSAvoidaudit cost
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent performs preliminary automated verification of all detected vulnerabilities before they reach manual auditors. The verification system uses multiple analysis techniques to pre-screen findings, eliminating obvious false positives in advance. This preliminary action ensures that manual auditors only review high-confidence, pre-verified findings, maximizing verification accuracy while minimizing the number of expensive manual audit hours required.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service verification where the system automatically verifies its own findings using internal validation mechanisms. The verification module acts as a self-check system that can independently confirm or refute detected vulnerabilities without external intervention. This self-service capability reduces reliance on expensive manual audits while maintaining high verification accuracy for the subset of findings that do require human review.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10068093B2Machine-checkable code-annotations for static application security testing
Publication Date: 2018.09.04 SAP SE
  • US10068093B2 patent drawing
  • US10068093B2 patent drawing
  • US10068093B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving source code and an indication that a portion of the source code is insecure. Receiving an annotation to the source code that identifies the indication as being a false positive indication. The annotation includes a logical statement showing that the portion of the source code is not insecure, where the logical statement can be executed by a processor to prove that the portion of the source code is not insecure. Processing the annotation to determine whether the logical statement proves that the portion of the source code is not insecure. In response to determining that the logical statement proves that the portion of the source code is not insecure, retaining the annotation in the source code, and removing the indication that the portion of the source code is insecure.