Security Analysis System for Automatic Unit Test Synthesis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software testing methods, such as unit testing, do not effectively identify and analyze security vulnerabilities in computer programs, particularly in web-based applications, and lack comprehensive analysis of potential vulnerabilities at entry points.

Innovation Solution

A system and method for performing security analysis on a computer program under test (CPUT) that involves static analysis to identify vulnerabilities, synthesizing unit tests to initialize parameters, and dynamically processing test payloads via HTTP requests to determine actual security vulnerabilities, thereby generating a security analysis report.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional unit testing methods are used, then functional compliance is verified, but security vulnerabilities are not effectively identified

Engineering Contradiction:
Improvesecurity vulnerability detectionVSAvoidtesting effectiveness
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the testing process into distinct phases: static analysis to identify potential vulnerabilities, unit test synthesis to create targeted tests, and dynamic processing to execute tests with crafted payloads. This segmentation allows each phase to focus on specific security aspects, improving overall vulnerability detection effectiveness while maintaining operational clarity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary static analysis on the codebase before executing dynamic tests. This preliminary action identifies potential security vulnerabilities and entry points, allowing the subsequent unit tests to be specifically targeted at high-risk areas, thereby improving detection efficiency without requiring exhaustive dynamic testing of entire codebases

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If comprehensive static analysis is performed to identify all potential vulnerabilities, then detection coverage improves, but analysis time and complexity increase

Engineering Contradiction:
Improvevulnerability detection coverageVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies local quality by focusing analysis efforts on specific high-risk areas identified during static analysis, such as entry points and parameter initialization locations. Rather than uniformly analyzing entire codebases, the system concentrates resources on locally identified vulnerability-prone sections, improving detection coverage while reducing overall analysis time

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent performs partial analysis by synthesizing unit tests only for identified potential vulnerabilities rather than attempting to test entire codebases exhaustively. This partial action approach achieves sufficient detection coverage for critical security issues without the prohibitive time cost of complete exhaustive analysis

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If dynamic analysis alone is used to test security vulnerabilities, then actual exploitation is detected, but many vulnerabilities are missed

Engineering Contradiction:
Improveactual vulnerability detectionVSAvoidtesting methodology complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary static analysis to identify potential vulnerabilities and entry points before executing dynamic tests. This preliminary identification guides the dynamic testing process, ensuring that actual exploitation attempts are focused on genuinely vulnerable areas rather than wasting resources on non-vulnerable code paths

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces unit test synthesis as an intermediary step between static analysis and dynamic testing. This intermediary automatically generates targeted test cases that bridge the gap between identified potential vulnerabilities and actual exploitation attempts, making the overall process more systematic and less complex than ad-hoc dynamic testing

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9892258B2Automatic synthesis of unit tests for security testing
Publication Date: 2018.02.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9892258B2 patent drawing
  • US9892258B2 patent drawing
  • US9892258B2 patent drawing

AI summary

Performing security analysis on a computer program under test (CPUT). The CPUT can be analyzed to identify data pertinent to potential security vulnerabilities of the CPUT. At least a first unit test configured to test a particular unit of program code within the CPUT can be automatically synthesized. The first unit test can be configured to initialize at least one parameter used by the particular unit of program code within the CPUT, and can be provided at least a first test payload configured to exploit at least one potential security vulnerability of the CPUT. The first unit test can be dynamically processed to communicate the first test payload to the particular unit of program code within the CPUT. Whether the first test payload exploits an actual security vulnerability of the CPUT can be determined, and a security analysis report can be output.