Predicting Software Security Vulnerabilities Using Code Metrics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development and security teams face challenges in identifying and addressing security vulnerabilities in software, as existing methods are often ineffective in predicting where security flaws will emerge, leading to potential exploitation and data breaches, due to the complexity of software and lack of integration of security considerations in development processes.

Innovation Solution

A system and method for predicting and prioritizing software security flaws by analyzing static analysis security vulnerability results, software code complexity metrics, runtime security information, and historical access patterns, using a computing device with integrated modules for static analysis, code metrics measurement, runtime security monitoring, and security correlation to identify and alert on potential vulnerabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional security scanning methods are used, then security vulnerabilities can be detected, but the ability to predict where security flaws will emerge is insufficient

Engineering Contradiction:
Improvesecurity vulnerability detection reliabilityVSAvoidtime to identify security flaws
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary security analysis by examining code metrics, complexity indicators, and historical vulnerability data before actual security flaws manifest. This predictive approach identifies high-risk areas in advance, allowing security teams to address potential vulnerabilities before they become exploitable issues, thereby improving detection reliability while reducing the time needed to identify security flaws.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by continuously monitoring code changes, measuring code metrics, and comparing them against historical vulnerability patterns. This feedback loop enables the system to learn from past security incidents and improve its predictive accuracy over time, enhancing the reliability of vulnerability detection while reducing the time required to identify emerging security flaws.

Inventive Principle:
Principle #23Feedback

2Reliability

If comprehensive security analysis is performed on complex software, then security coverage is improved, but the complexity of analysis increases

Engineering Contradiction:
Improvesecurity coverageVSAvoidanalysis system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the complex software analysis task into manageable components by evaluating specific code metrics (cyclomatic complexity, lines of code, nesting depth) and analyzing distinct vulnerability patterns separately. This segmentation allows comprehensive security coverage while keeping the analysis system complexity manageable through modular, focused evaluation of individual code attributes and vulnerability types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes parameters by focusing on specific measurable code attributes (cyclomatic complexity, lines of code, nesting depth, fan-out) rather than attempting to analyze all aspects of software simultaneously. This parameter-based approach enables comprehensive security analysis of complex software while maintaining analysis system complexity at manageable levels through targeted metric evaluation.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If manual security testing is used, then accuracy in identifying vulnerabilities is improved, but productivity decreases

Engineering Contradiction:
Improvevulnerability identification accuracyVSAvoidsecurity analysis throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system enables self-service security analysis by automatically measuring code metrics, evaluating vulnerability patterns, and generating security assessments without requiring manual intervention for each analysis. This automated self-service approach maintains high accuracy in vulnerability identification through consistent metric evaluation while dramatically improving security analysis throughput and productivity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system replaces manual mechanical security testing with automated computational analysis of code metrics and vulnerability patterns. This substitution maintains measurement precision by systematically evaluating code attributes according to established security criteria while significantly increasing productivity through automated high-throughput analysis of large codebases.

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

Data Source

PatentUS9892262B2Analyzing target software for security vulnerabilities
Publication Date: 2018.02.13 MICRO FOCUS LLC
  • US9892262B2 patent drawing
  • US9892262B2 patent drawing
  • US9892262B2 patent drawing

AI summary

A method of analyzing target software for security vulnerabilities comprises, with a processor, scanning a codebase of a target software using a static analysis scan to identify a number of security flaws, and calculating a number of code metrics of the codebase of the target software for a number of iterations over a period of time to obtain a number of historical scans.