Static Analysis Detects Security Bugs in Source Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in securely managing the communication between trusted and untrusted portions of source code, as malicious data can potentially flow from untrusted to trusted code, compromising system security.

Innovation Solution

A method and system utilizing static program analysis to detect security bugs by determining information flow relations, confidentiality, and integrity requirements, generating error reports, and compiling the source code to prevent unauthorized data flow, ensuring secure access control.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static program analysis is implemented to detect security bugs, then security reliability is improved, but analysis time and processing overhead increase

Engineering Contradiction:
Improvesecurity reliabilityVSAvoidanalysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs security analysis during the compilation phase before the program is executed. By analyzing information flow relations, confidentiality requirements, and integrity requirements in advance, the system identifies potential security bugs before they can cause harm, thus improving security reliability without adding runtime overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The security analysis process is divided into distinct modules: information flow analysis module to track data flows, access control analysis module to evaluate confidentiality and integrity requirements, and error report generation module to document findings. This segmentation allows each module to specialize in specific security aspects, improving overall analysis efficiency and accuracy.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If comprehensive information flow analysis is performed to ensure security, then detection precision is improved, but device complexity increases

Engineering Contradiction:
Improvedetection precisionVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system applies different analysis depths and security requirements to different portions of source code based on their trust levels. Trusted code portions receive standard analysis, while untrusted portions undergo more rigorous information flow analysis with stricter confidentiality and integrity requirements. This localized approach maintains high detection precision for critical areas while reducing overall system complexity.

Inventive Principle:
Principle #3Local quality

3Reliability

If strict access control policies are enforced to prevent malicious data flow, then security reliability is improved, but code adaptability decreases

Engineering Contradiction:
Improvesecurity reliabilityVSAvoidcode adaptability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The access control system dynamically adjusts security policies based on the analysis results and context. Rather than applying uniform strict controls to all code, the system adapts security requirements to match the actual information flow patterns and trust relationships identified during analysis. This allows legitimate operations to proceed with minimal restrictions while maintaining security against malicious flows.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10108802B2Static program analysis method for detecting security bugs in programs that rely on code access control
Publication Date: 2018.10.23 ORACLE INT CORP
  • US10108802B2 patent drawing
  • US10108802B2 patent drawing
  • US10108802B2 patent drawing

AI summary

A method for using static program analysis for detecting security bugs in application source code including receiving and determining a plurality of variables based on the application source code. The method further includes determining a plurality of information flow relations comprising a source variable and a target variable, determining a confidentiality requirement and a capability for each of the source variables, and determining an integrity requirement and a capability for each of the target variables. The method further includes generating an error report log entry when the capability of the target variable is not greater than and not equal to the confidentiality requirement of the source variable or the capability of the source variable is not greater than and not equal to the integrity requirement of the target variable. The method further includes generating an error report log.