Virtual Appliance Patching for Software Provenance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The widespread adoption of virtual appliances as software distribution vehicles is hindered by the need for publishers to become implicit re-distributors of all software components, as they typically own only a component of the complete software stack, and there is a lack of transparency regarding modifications to open-source components.
Innovation Solution
Publishing virtual appliances as patches comprising file-level differences relative to a parent appliance, allowing publishers to distribute a composite software stack without re-distributing all components, while providing transparency through metadata and digital signatures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If a publisher provides only their own component as an install package, then the publisher maintains control over their component, but the customer must acquire, install and configure multiple prerequisite components from different organizations
Solution Approach 1:
The software stack is segmented into independent components, each with its own versioning and provenance tracking. The publisher provides only their component with metadata describing dependencies, allowing customers to assemble the complete stack from separate, versioned components without requiring the publisher to redistribute entire stacks.
Solution Approach 2:
A virtual appliance library acts as an intermediary that stores pre-integrated software stacks and their provenance metadata. This library enables customers to retrieve complete operational stacks without the publisher needing to redistribute all components, while maintaining dependency information for transparency.
2Ease of operation
If a publisher integrates the full stack in a virtual image, then the customer receives a fully operational software stack, but the publisher becomes an implicit re-distributor of all software components
Solution Approach 1:
The virtual appliance is segmented into a base image and configurable components. The base image contains the operational stack, while components are identified by unique versioned identifiers. This allows the publisher to provide only their component with full provenance information, eliminating the need to redistribute the entire stack.
Solution Approach 2:
Instead of redistributing the complete software stack, the system creates a virtual copy of the base image and applies only the necessary component changes. This allows customers to receive fully operational stacks without the publisher needing to redistribute all underlying components.
3Adaptability or versatility
If a publisher uses open source components in a virtual image, then the customer can use the software stack, but the customer must accept the original open source license agreement without knowing what parts were modified
Solution Approach 1:
Provenance metadata acts as an intermediary layer between the open source component and the customer. This metadata tracks the complete history of modifications, showing which parts of the open source component were changed and by whom, while maintaining the original license agreement. Customers receive full transparency about modifications without needing to renegotiate licenses.
Solution Approach 2:
The system replaces the mechanical approach of physically modifying source code with a virtual layer of provenance metadata. This metadata layer records all modifications to open source components, allowing customers to see exactly what was changed while the actual component files remain intact and licensed under their original agreements.
Data Source
AI summary
A composite software stack is distributed as a virtual appliance. A new virtual appliance is published by obtaining a parent virtual appliance; configuring the new virtual appliance; obtaining file level differences between the parent virtual appliance and the new virtual appliance; and publishing the new virtual appliance as a patch comprising the file level differences relative to the parent virtual appliance. The file level differences comprise additions, deletions and/or modifications to the parent virtual appliance. An update to a given virtual appliance can be published as a fix pack, wherein the fix pack comprises file level differences relative to the given virtual appliance. An end user obtains a desired virtual appliance by selecting the desired virtual appliance; obtaining metadata for the desired virtual appliance comprising an identifier of a patch file and a parent virtual appliance; and applying the patch file to the parent virtual appliance to get a modified virtual appliance.


