Software Risk Measurement via Provenance Graph and Runtime Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for ensuring software trustworthiness and security are inadequate, as they rely on static information and do not effectively adapt to changing threats, lack fine-grained programming model sensitivity, and struggle to measure and compare security metrics, leaving systems vulnerable to modifications and vulnerabilities.

Innovation Solution

A method and system that measure software risk based on provenance, automatic code analysis, threat information, organizational practices, and enforcement posture, using a comprehensive approach that includes provenance graph analysis, reputation calculation, and runtime verification to provide integrity, trustworthiness, and risk analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static integrity measurement is used to verify software at load time, then the software version can be locked down and enforced, but the system cannot detect vulnerabilities or malicious behavior already present in the software

Engineering Contradiction:
Improvesoftware integrity enforcementVSAvoidability to detect changing threats
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary analysis of software assets before execution, creating a baseline reputation score and identifying potential vulnerabilities in advance. This allows the system to prepare appropriate enforcement actions and warnings before the software actually runs, rather than reacting to threats after they have been executed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors software execution and updates reputation scores based on observed behavior, vulnerability discoveries, and threat intelligence. This feedback loop enables dynamic adjustment of trust levels and enforcement policies, allowing the system to adapt to newly discovered threats while maintaining integrity enforcement.

Inventive Principle:
Principle #23Feedback

2Reliability

If continuous integrity enforcement is applied to a whole software image, then integrity can be maintained throughout execution, but the system becomes insensitive to fine-grained programming models and cannot operate with larger applications

Engineering Contradiction:
Improvecontinuous integrity enforcementVSAvoidsystem complexity and applicability
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system divides the software image into fine-grained components such as individual functions, basic blocks, or memory regions, and applies integrity enforcement selectively to each segment. This segmentation allows the system to handle complex programming models and large applications by processing manageable units rather than treating the entire software image as a monolithic entity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies different levels and types of integrity enforcement to different parts of the software based on their specific characteristics, criticality, and risk profiles. Critical security-sensitive regions receive stricter enforcement, while less critical areas use lighter verification, optimizing both security and compatibility across diverse application types.

Inventive Principle:
Principle #3Local quality

3Reliability

If hypervisor-based runtime verification is used, then access to hooks for verification can be obtained, but the system requires complex virtualization infrastructure

Engineering Contradiction:
Improveruntime verification capabilityVSAvoidinfrastructure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary verification layer that operates between the software and the underlying execution environment, providing runtime verification capabilities without requiring full hypervisor virtualization. This intermediary can be implemented as a lightweight runtime agent, library, or OS component that captures verification data through standard interfaces, reducing infrastructure complexity while maintaining verification effectiveness.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If security metrics are assumed to be additive quantities, then security can be layered onto software, but there is no precise way to measure or compare the degree of security

Engineering Contradiction:
Improvesecurity layeringVSAvoidsecurity metric measurement
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The system transforms security from an abstract qualitative concept into measurable quantitative parameters including reputation scores, vulnerability counts, trust levels, and risk indices. By defining specific measurable attributes and their relationships, the system enables precise comparison and aggregation of security metrics across different software assets, moving beyond the assumption of simple additivity to a nuanced measurement framework.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11734418B1System and method for trustworthiness, reputation, provenance, and measurement of software
Publication Date: 2023.08.22 EPSTEIN JOSEPH ALAN
  • US11734418B1 patent drawing
  • US11734418B1 patent drawing
  • US11734418B1 patent drawing

AI summary

In accordance with some embodiments, a method and system for establishing the trustworthiness of software and running systems by analyzing software and its provenance using automated means. In some embodiments, a risk score is produced. In some embodiments, software is analyzed for insecure behavior or structure. In some embodiments, parts of the software are hardened by producing possibly multiple different versions of the software with different hardening techniques applied, and a choice can be made based on user or environmental needs. In some embodiments, the software is verified and constraints are enforced on the endpoint using techniques such as verification injection and secure enclaves. In some embodiments, endpoint injection is managed through container orchestration.