Source Code Security Flaw Detection via History-Based Policy Inference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing security systems for source code analysis lack a code history-based approach, requiring manual security policy writing and failing to account for the actual characteristics of bugs, leading to increased development costs and potential security vulnerabilities.

Innovation Solution

A system that analyzes code history by obtaining and modifying information flow policies based on changes in source code revisions, using a dependency graph with security labels and declassification points to detect and report security flaws.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual security policy writing is used, then security analysis can be performed, but development cost increases significantly

Engineering Contradiction:
Improvesecurity analysis capabilityVSAvoiddevelopment cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The system automatically infers information flow policies by analyzing code history and repository data, enabling the security analysis system to self-generate policies without manual intervention. This automation directly resolves the contradiction by eliminating the labor-intensive manual policy writing process while maintaining comprehensive security analysis capabilities.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary analysis of code history and repository data to pre-infer information flow policies before actual security analysis is needed. By preparing policies in advance through automated analysis of historical code patterns and repository metadata, the system eliminates the need for manual policy creation while ensuring security policies are ready for immediate use.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If code history analysis is not incorporated, then existing security approaches can be implemented, but they fail to account for actual bug characteristics

Engineering Contradiction:
Improvesecurity analysis implementationVSAvoidbug detection accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system performs preliminary analysis of code history to establish baseline information flow patterns and bug characteristics before conducting security analysis. By examining historical code revisions, commit messages, and repository metadata in advance, the system builds contextual understanding that enables more accurate detection of actual bug characteristics during security analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously feeds back information from code history analysis and repository data into the security analysis process. By incorporating historical bug patterns, code evolution trends, and repository metadata feedback, the system progressively improves its ability to account for actual bug characteristics, resolving the precision deficiency of existing approaches.

Inventive Principle:
Principle #23Feedback

3Reliability

If static analysis is made standard in systems development, then security foundation is improved, but tools must be manually tailored to each product line

Engineering Contradiction:
Improvesecurity foundationVSAvoidtool tailoring complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system creates a universal security analysis tool that automatically adapts to different product lines by analyzing their specific code history and repository characteristics. By implementing multi-functionality that handles diverse programming languages, repository structures, and code bases through a single automated system, the tool eliminates the need for manual tailoring while maintaining strong security foundations across all product lines.

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

Solution Approach 2:

The system performs preliminary analysis of each product line's code history and repository data to automatically generate product-specific security configurations. By preparing tailored security policies in advance through automated analysis rather than manual configuration, the system maintains the security foundation benefits of standardized static analysis while eliminating the complexity of manual tool tailoring for each product line.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10084819B1System for detecting source code security flaws through analysis of code history
Publication Date: 2018.09.25 HRL LAB
  • US10084819B1 patent drawing
  • US10084819B1 patent drawing
  • US10084819B1 patent drawing

AI summary

The present invention relates to a system for detecting source code security flaws through analysis of code history. First, the system obtains a previously inferred information flow policy, the previously inferred informational flow policy being based on a previous source code revision. The system then determines changes in source code between a previous source code revision and a current source code revision. Finally, a current inferred information flow policy is generated by modifying the previously inferred information flow policy to reflect the changes in source code. If the changes in the source code do not comply with the previously inferred information flow policy, then the changes are reported to a developer.