Integer Overflow Detection via Input-Allocation Relationship Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for testing applications against integer overflow vulnerabilities are inefficient due to the rarity of such occurrences, making it difficult to identify and prevent security breaches until they are extensively used, potentially allowing malicious code to be introduced into systems.

Innovation Solution

A system and method for evaluating applications by establishing a relationship between input data and memory allocation requests, using a data analyzer to derive a formula or equation that predicts memory allocation sizes, and selecting input values to test for potential integer overflows, thereby identifying and mitigating security risks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If trial-and-error fuzzing testing is used to test applications, then testing can be performed with simple methods, but it is extremely difficult to identify integer overflow conditions because they occur only in rare circumstances

Engineering Contradiction:
Improveease of testingVSAvoidability to detect integer overflow
Core Design Contradiction:
Ease of manufactureVSMeasurement precision

Solution Approach 1:

The patent applies preliminary action by analyzing the relationship between input data and memory allocation requests before actual testing occurs. The system establishes a mathematical model that predicts when integer overflows will occur based on input characteristics, allowing testers to pre-identify dangerous input conditions rather than relying on random trial-and-error fuzzing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the mechanical trial-and-error fuzzing approach with a mathematical analysis system. Instead of sequentially feeding random inputs and hoping to trigger overflows, the system uses equations and relationships to calculate which inputs will cause integer overflows, substituting computational mathematics for brute-force testing.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If extensive testing is performed to reveal security problems, then more vulnerabilities can be found, but integer overflows occur so rarely that testing must be extremely thorough and time-consuming

Engineering Contradiction:
Improvesecurity vulnerability detectionVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies parameter changes by transforming the testing approach from random input selection to mathematically-derived input selection. By changing the parameters of input data based on established relationships between input characteristics and memory allocation behavior, the system can directly target conditions that produce integer overflows rather than spending time on unrelated test cases.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system performs preliminary analysis to establish the relationship between input data and memory allocation requests before conducting actual security tests. This preliminary mathematical modeling allows the testing phase to focus only on inputs that are likely to cause integer overflows, dramatically reducing the time required for extensive testing while maintaining high reliability in vulnerability detection.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If security testing is performed after extensive use by consumers, then real-world conditions are tested, but by then malicious hackers may already have discovered and exploited the integer overflow vulnerability

Engineering Contradiction:
Improvereal-world security validationVSAvoidtime to discover vulnerability
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing mathematical analysis of input-data-to-memory-allocation relationships before the application is deployed to consumers. By establishing and analyzing these relationships in advance, the system can identify integer overflow vulnerabilities during development rather than waiting for post-deployment testing, giving security teams time to fix issues before hackers can exploit them.

Inventive Principle:
Principle #10Preliminary action

4Measurement precision

If the relationship between input data and memory allocation requests is analyzed mathematically, then integer overflow conditions can be identified systematically, but the analysis becomes more complex than simple fuzzing

Engineering Contradiction:
Improveability to identify integer overflowVSAvoidtesting system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent replaces complex manual analysis with an automated mathematical system that systematically analyzes the relationship between input data and memory allocation requests. The complexity is managed through formal mathematical models and equations that can be implemented in software, transforming what would be manually complex analysis into an automated computational process.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS7478428B1Adapting input to find integer overflows
Publication Date: 2009.01.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7478428B1 patent drawing
  • US7478428B1 patent drawing
  • US7478428B1 patent drawing

AI summary

Systems and methods are described for use in evaluating an application for security risks related to integer overflow conditions in conjunction with memory allocations. The evaluation includes finding a relationship between data input to the application and memory allocation requests made by the application. Having established the relationship, a memory allocation-requesting module within the application is tested, using input data selected using the relationship.