Runtime Analysis Framework for Software Security Vulnerability Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software analysis programs fail to effectively detect security vulnerabilities by only providing snapshot views of source code and not testing behaviors or states that occur during runtime, and they may not have access to all application source code, limiting their ability to identify internal code paths for security flaws.

Innovation Solution

A runtime analysis framework (RTA) is implemented that embeds rules within software applications to detect security vulnerabilities by assigning input tags to user requests and sanitization tags to security checks, allowing for the identification of potentially malicious requests and verifying that security checks are performed during runtime without accessing the entire source code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If current software analysis programs test every path through source code, then coverage of code paths is improved, but the ability to detect runtime behaviors and states is worsened

Engineering Contradiction:
Improvecode path coverageVSAvoidruntime behavior detection
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent applies preliminary action by embedding instrumentation code and tagging mechanisms into the software application before runtime execution. This allows the system to pre-establish tracking of data objects and their provenance, enabling runtime detection of security vulnerabilities without requiring exhaustive static analysis of all code paths. The instrumentation is installed in advance to capture runtime behaviors that static analysis cannot detect.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If analysis programs access all application source code, then complete security scanning is improved, but the practicality and ease of operation is worsened

Engineering Contradiction:
Improvesecurity flaw detection completenessVSAvoidaccess requirement complexity
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent extracts the essential security analysis functionality from requiring access to all source code by using runtime instrumentation and data tagging. Instead of needing complete source code access, the system extracts and tracks critical data objects through runtime tags that identify user-controllable inputs and their flow through the application. This extraction approach maintains detection capability while eliminating the operational burden of requiring full source code access.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If runtime analysis framework tags all data objects, then vulnerability detection accuracy is improved, but the device complexity and overhead is worsened

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidtagging system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies local quality by implementing selective tagging of data objects based on their security relevance rather than uniformly tagging all objects. The system identifies and tags specifically user-controllable input data and critical data objects that are susceptible to security vulnerabilities, while leaving other non-critical objects untagged. This localized approach maintains high detection accuracy for security-relevant paths while reducing overall system complexity and overhead.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10387658B2Runtime analysis of software security vulnerabilities
Publication Date: 2019.08.20 SALESFORCE INC
  • US10387658B2 patent drawing
  • US10387658B2 patent drawing
  • US10387658B2 patent drawing

AI summary

During runtime of the software application, the runtime analysis framework may assign input tags to objects associated with the user requests. The input tags may identify the requests as potentially malicious and carry a security risk. The RTA framework then may assign sanitization tags to the objects identifying security checks performed on the objects during runtime. The RTA framework identifies output responses to the user requests that include the objects and compares the input tags assigned to the objects with any sanitization tags assigned to the objects. The RTA framework may identify the software application as susceptible to a security vulnerability when the input tags for the objects do not include corresponding sanitization tags.