Security Design Flaw Detection via Unit Test Case Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current automated vulnerability detection methods are inadequate in detecting security design flaws that lead to unrestricted and misimplemented behaviors in software systems, which can result in critical vulnerabilities such as remote code execution and data leakage, due to their focus on memory corruption errors rather than design flaws.

Innovation Solution

A unit test case-based security design flaw detection method that preprocesses unit test cases, generates test cases to evaluate security policies, and detects vulnerabilities by executing these test cases, including access control, data integrity, and confidentiality checks to identify unauthorized and misimplemented behaviors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If detailed analysis of the entire code is performed to detect security vulnerabilities, then detection precision is improved, but time consumption increases and error rate increases

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

Solution Approach 1:

The patent segments the codebase into functional units and generates targeted unit test cases for each security policy requirement. Instead of analyzing the entire codebase uniformly, the system divides security testing into discrete, manageable segments corresponding to specific security policies (authenticity, authorization, data integrity, confidentiality), thereby reducing overall analysis time while maintaining detection precision through focused testing of each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by automatically generating unit test cases that are specifically designed to test security policies before actual vulnerability detection occurs. The system pre-processes security requirements into structured test cases that target potential vulnerability points, allowing for efficient detection without requiring comprehensive manual analysis of all code paths.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If comprehensive security testing is performed to detect all vulnerabilities, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improvesecurity vulnerability detection reliabilityVSAvoidtesting system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal testing framework that handles multiple security policy types (authenticity, authorization, data integrity, confidentiality) through a single integrated system. The unit test case generation mechanism is designed to be multi-functional, capable of producing test cases for different security requirements using the same underlying architecture, thereby improving reliability across multiple security dimensions without proportionally increasing system complexity.

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

Solution Approach 2:

The system manages complexity by parameterizing security policy requirements and automatically adapting test case generation based on the specific security context. Rather than implementing separate complex testing mechanisms for each security policy, the system changes parameters (security policy type, data sensitivity level, authentication requirements) to generate appropriate test cases, maintaining reliability while controlling system complexity through flexible parameter-driven behavior.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If automated vulnerability detection methods focus on memory corruption errors, then productivity is improved, but detection precision for design flaws deteriorates

Engineering Contradiction:
Improvevulnerability detection speedVSAvoiddesign flaw detection precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent inverts the conventional approach by not directly searching for vulnerabilities in code, but rather by generating unit test cases designed to expose security policy violations. Instead of analyzing code structure for memory corruption patterns, the system creates executable test scenarios that actively probe for design flaws including unauthorized access, data leakage, and improper authentication, thereby maintaining productivity through automation while improving precision for design-related vulnerabilities.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent introduces unit test cases as an intermediary between the automated testing system and the target software system. These test cases serve as mediators that translate security policy requirements into concrete test scenarios, enabling the automated system to detect design flaws without requiring direct complex analysis of the target system's internal logic. This intermediary approach maintains productivity while enhancing the ability to detect subtle design vulnerabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240220636A1Security design flaw detection method based on unit test case, recording medium and device for performing the same
Publication Date: 2024.07.04 FOUND OF SOONGSIL UNIV IND COOP
  • US20240220636A1 patent drawing
  • US20240220636A1 patent drawing
  • US20240220636A1 patent drawing

AI summary

Provided is a unit test case-based security design flaw detection method performed in a security design flaw detection apparatus for detecting a security design flaw of a software system, and the method comprises collecting a unit test case for the software system from an external device and preprocessing the unit test case; generating a first test case by testing whether the software system violates a security policy using the preprocessed unit test case; generating a second test case that is a data set for testing a function of the software system based on the first test case; and detecting a vulnerability of the software system by executing the second test case.