Symbolic Execution for Security Payload Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern software systems, particularly in cloud, mobile, and web technologies, face significant challenges in security auditing due to their complexity and scale, leading to ineffective manual and automated security verification methods, including excessive false warnings, inability to analyze dynamically generated code, and inefficient dynamic testing.

Innovation Solution

A method and system for computer security checking that generates candidate test payloads, instruments applications to track execution, applies constraints and transformations to inputs, and detects vulnerabilities by monitoring user interactions passively, ensuring high coverage and efficiency without injecting malicious data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual auditing is performed on modern software systems, then security analysis can be conducted, but the process becomes prohibitive due to the scale and complexity of millions of lines of code

Engineering Contradiction:
Improvesecurity analysis accuracyVSAvoidauditing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent creates a virtual copy of the software system through symbolic execution, allowing security analysis to be performed on the copied execution paths rather than manually examining millions of lines of code. The symbolic executor generates test inputs and traces execution paths symbolically, effectively copying the system's behavior in a analyzable form.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent performs preliminary static analysis to identify candidate program points and potential security vulnerabilities before actual testing. By pre-identifying critical execution paths and security-relevant code sections, the system reduces the scope of detailed analysis required, saving significant auditing time while maintaining precision.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If static verification tools are used to analyze software systems, then security issues can be detected, but the tools produce excessive false warnings due to approximate analysis

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidfalse warning rate
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent combines static analysis with dynamic execution tracing to create a hybrid verification approach. The symbolic executor dynamically traces actual execution paths while maintaining symbolic representations, allowing the system to distinguish between theoretical possibilities and actual runtime behavior. This reduces false warnings by validating static analysis findings against real execution traces.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses feedback from dynamic execution traces to refine and validate static analysis results. By comparing symbolic execution outcomes with actual runtime behavior, the system can eliminate false positives and improve the reliability of vulnerability detections. The feedback loop continuously improves analysis accuracy by learning from actual system executions.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If static analysis is applied to software systems, then security-relevant code can be identified, but the analysis cannot account for external resources and dynamically generated code

Engineering Contradiction:
Improveanalysis coverageVSAvoidexternal resource awareness
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces an intermediary layer that bridges static analysis and dynamic execution. The symbolic executor acts as a mediator that can handle both static code analysis and dynamic runtime behaviors, including external resource interactions. This intermediary capability allows the system to analyze dynamically generated code and external resource access that pure static analysis cannot handle.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If dynamic testing tools use brute-force enumeration of all possible payloads, then comprehensive security testing can be achieved, but the process becomes prohibitive and unacceptable

Engineering Contradiction:
Improvesecurity testing completenessVSAvoidtesting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the vast space of possible test payloads into manageable subsets based on symbolic execution analysis. By dividing the testing task into focused segments targeting specific execution paths and vulnerability types, the system achieves comprehensive security testing without requiring brute-force enumeration of all possible inputs. The segmentation is guided by static analysis identifying critical program points.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameters of test inputs from concrete values to symbolic representations. This parameter transformation allows the symbolic executor to generate and analyze multiple test cases simultaneously by varying symbolic parameters, dramatically improving testing efficiency while maintaining comprehensive coverage. The symbolic parameters can be instantiated into specific test values based on execution path requirements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10002253B2Execution of test inputs with applications in computer security assessment
Publication Date: 2018.06.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10002253B2 patent drawing
  • US10002253B2 patent drawing
  • US10002253B2 patent drawing

AI summary

A given application is instrumented to trace its execution flow. Constraints and/or transformation associated with input identified in the execution flow are mirrored on a set of candidate test payloads. The set of candidate test payloads are modified or pruned based on the execution flow of the instrumented application reaching a security operation with the input satisfying the constraints while the payloads may not. If the set of candidate test payloads is not empty at reaching the security operation, it is determined that the give application has vulnerability and a signal issuing a warning may be generated and transmitted.