Software Provenance Validation via Build Manifests

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge in securing software supply chains lies in ensuring that source code matches binaries, particularly in open-source environments, where there is no consistent method to verify this match, leading to potential malware injection and difficulty in patching zero-day exploits.

Innovation Solution

Implementing a hardware and software combination for software provenance validation, which involves acquiring a provenance manifest, obtaining candidate items, and attempting to build a validation binary to compare with the candidate binary, producing an attestation based on the build success or failure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If source code review and analysis tools are used to check for security flaws, then security detection capability is improved, but the ability to verify binary-source code correspondence is insufficient

Engineering Contradiction:
Improvesecurity detection capabilityVSAvoidbinary-source code match verification
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The system performs preliminary actions by acquiring a provenance manifest that documents the build process, source code versions, and build parameters before binary execution. This allows verification of binary-source code correspondence to be performed in advance, ensuring that the binary can be trusted to match its source code before security analysis tools are applied.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The provenance manifest acts as an intermediary that bridges the gap between source code and binary. It contains cryptographic hashes and build metadata that enable verification of correspondence without requiring direct comparison of the entire source code base, thus improving measurement precision while maintaining reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If defense in depth with multiple security mechanisms is implemented, then security coverage is improved, but system complexity increases

Engineering Contradiction:
Improvesecurity coverageVSAvoidsecurity mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The provenance validation system serves multiple functions simultaneously: it verifies binary-source code correspondence, provides audit trails for compliance, enables reproducible builds, and supports security analysis. This multi-functionality improves security coverage without proportionally increasing complexity, as a single mechanism addresses multiple security concerns.

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

3Reliability

If binary validation through rebuild comparison is performed, then binary authenticity is improved, but processing time increases

Engineering Contradiction:
Improvebinary authenticityVSAvoidvalidation processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system extracts only the essential verification elements from the full build process - specifically cryptographic hashes of source code and key build parameters - and stores them in the provenance manifest. This allows rapid validation by comparing only these extracted elements rather than performing a complete rebuild and comparison, thus improving binary authenticity verification while minimizing time loss.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12111957B2Software provenance validation
Publication Date: 2024.10.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12111957B2 patent drawing
  • US12111957B2 patent drawing
  • US12111957B2 patent drawing

AI summary

Software provenance validation reports whether a validation binary matches the source code, resources, and other parts, as well as the compiler, runtime, operating system, and other context, which is specified in a provenance manifest for a release binary. Part context checksums, software versions, tool parameters, and other aspects of a build are checked. Certification signatures, timestamps, certain version differences, source code locations, and other data may be ignored for validation purposes. A provenance manifest may include other provenance manifests, including binary rewrite manifests. The provenance manifest may be stored in a debugger file with symbol information, or stored separately. Partial matches may be reported, with details of what matches or does not match. After provenance of a binary is validated, the binary's source code can be analyzed for vulnerabilities, thereby enhancing software supply chain security.