Selective Code Property Analysis for Security Mitigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current buffer overrun security mitigation techniques primarily focus on string buffers, leaving other code elements vulnerable and often come with performance penalties, making it challenging to balance software security and performance.

Innovation Solution

A system that analyzes code properties, such as variable type, size, and usage patterns, to selectively insert security mitigation code based on risk assessment, using tools like compilers and risk analysis modules to target vulnerable areas without affecting performance intolerably.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If security mitigation code is inserted into all program code, then security reliability is improved, but performance deteriorates due to runtime validation overhead

Engineering Contradiction:
Improvesecurity reliabilityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies security mitigation selectively based on code property analysis. Instead of uniformly protecting all code, the system identifies specific vulnerable regions (such as buffer operations, memory allocations) and applies mitigation only there. This localized approach maintains security reliability for critical areas while avoiding performance penalties in safe code paths.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system performs partial action by inserting security mitigation code only where risk assessment indicates vulnerability. The compiler or analysis tool evaluates code properties and determines minimal necessary protection points, applying security measures partially rather than excessively across the entire codebase, thus balancing security and performance.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If security mitigation code is inserted into string buffers, then security against string buffer overflows is improved, but other code elements remain vulnerable

Engineering Contradiction:
Improvesecurity against string buffer overflowsVSAvoidcoverage of other code elements
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent extends security mitigation beyond string buffers to multiple code element types including general buffers, arrays, and memory allocations. The analysis framework is designed to handle diverse code patterns uniformly, applying appropriate mitigation strategies based on the specific code element type and its vulnerability profile, thus achieving universal protection across different data structures.

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

Solution Approach 2:

The system segments the codebase into different categories of code elements (string buffers, general buffers, arrays, etc.) and applies targeted mitigation strategies to each segment. This segmentation allows comprehensive coverage of various vulnerable elements while using optimized mitigation approaches for each category, improving overall security without uniform overhead.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If comprehensive code analysis is performed to identify vulnerable areas, then security targeting precision is improved, but analysis time and complexity increase

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

Solution Approach 1:

The compiler or analysis tool performs static analysis of code properties during the compilation phase to identify vulnerable areas before runtime. By conducting vulnerability assessment in advance and generating mitigated code during compilation, the system achieves precise vulnerability identification without adding runtime analysis overhead, thus maintaining both precision and performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system replaces runtime mechanical analysis with static compilation-time analysis. Instead of performing costly runtime code property analysis, the compiler analyzes code properties statically and embeds mitigation logic directly in the generated code, substituting a time-consuming runtime mechanism with a more efficient compilation-time process.

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

Data Source

PatentUS8990930B2Code property analysis for security mitigations
Publication Date: 2015.03.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8990930B2 patent drawing
  • US8990930B2 patent drawing
  • US8990930B2 patent drawing

AI summary

Attempts to make code secure often are associated with performance penalties. To facilitate striking an acceptable balance between performance and security, vulnerable areas of source code are identified. The vulnerable areas are examined for areas that are actually safe and the safe areas are filtered from the universe of code that receives security mitigations. The remaining code receives security mitigations appropriate to the level of risk of the code.