Out-of-band Framework Library Version Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development environments face challenges in selecting the appropriate version of a software library to load for an application, ensuring flexibility and security, particularly when dealing with complex frameworks and multiple vendors, and determining if a vulnerable library has been loaded in an operating context.

Innovation Solution

A binder with implicit override and framework unification capabilities is used to select the appropriate library version, incorporating out-of-band metadata to track loaded assemblies and prevent vulnerable versions from being loaded, ensuring flexibility and security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If framework libraries are updated as a group by different vendors, then consistency and reliability are improved, but flexibility and update frequency are reduced

Engineering Contradiction:
Improveframework consistencyVSAvoidupdate flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments framework updates into two distinct mechanisms: traditional group updates for framework libraries and out-of-band updates for individual assemblies. This segmentation allows framework consistency to be maintained through coordinated updates while enabling flexible, independent updates for specific assemblies without affecting the entire framework, thus resolving the contradiction between reliability and adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the binder with implicit override code) that mediates between framework unification and individual assembly updates. This intermediary allows the system to automatically resolve version conflicts by comparing framework versions with individual assembly versions and applying appropriate overrides, enabling both framework consistency and update flexibility simultaneously.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple library versions are supported for flexibility, then adaptability is improved, but complexity in selecting and managing versions increases

Engineering Contradiction:
Improveversion selection flexibilityVSAvoidversion management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements self-service version selection through implicit override code that automatically compares framework versions with individual assembly versions and applies overrides without manual intervention. The binder automatically determines which version to load by evaluating version numbers and applying implicit overrides, eliminating the need for complex manual version management while maintaining flexibility in version selection.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the parameter of version selection from explicit manual specification to implicit automatic determination based on version number comparison. By using version numbers as the key parameter and automatically comparing framework versus individual assembly versions, the system simplifies version management complexity while preserving adaptability through automated parameter evaluation.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If vulnerable library versions are allowed to load, then ease of operation is improved, but security reliability deteriorates

Engineering Contradiction:
Improvelibrary loading simplicityVSAvoidsecurity reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary anti-action by checking assembly versions against known vulnerable versions before loading occurs. The binder compares the requested assembly version with the framework version and automatically applies implicit overrides to prevent vulnerable versions from loading, even though the operation remains simple from the user's perspective. This preliminary security check prevents security issues before they can manifest.

Inventive Principle:
Principle #9Preliminary anti-action

Solution Approach 2:

The patent implements feedback mechanisms where the binder continuously monitors version information and automatically adjusts loading decisions based on security knowledge. When a vulnerable version is detected through version comparison feedback, the system automatically applies overrides to block loading, creating a closed-loop security mechanism that maintains ease of operation while ensuring security reliability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9009693B2Out-of-band framework libraries within applications
Publication Date: 2015.04.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9009693B2 patent drawing
  • US9009693B2 patent drawing
  • US9009693B2 patent drawing

AI summary

An enhanced binder provides flexibility and certainty when selecting a version of a software library to load, and an enhanced loader prevents a library version vulnerable to a security flaw from being loaded. The binder can perform unification, implicit override, and/or redirection. Implicit override searches assembly-specific locations for an implicit_version, and override the previously chosen unification or other version with the implicit_version when the implicit_version is greater. The implicit_version gets updated with the individual assembly, whereas the unification_version gets updated with the framework. Redirection may override the implicit_version. Unlike redirection, an implicit_version does not recite an explicit range and is found outside application configuration files. The implicit_version is specified implicitly by the assembly without an XML declaration. Vulnerable libraries are not loaded, based on out-of-band metadata placed in response to a list of known out-of-band assemblies, an out-of-band-servicing attribute, or a custom servicing library.