Software Package Security Verification via Component Hashing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The lack of a reliable process to certify the security of software packages in software repositories, as they often contain malicious or exploitable code, making it difficult for users and repositories to identify trusted and secure packages.

Innovation Solution

A security tool is implemented to verify software packages by comparing their components to a black list of known insecure components and a white list of secure components, using hashing algorithms to ensure the integrity and security of the packages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software packages are stored in a repository from multiple developers without verification, then the repository offers flexibility and variety of software packages, but the repository cannot guarantee the security or trustworthiness of the packages

Engineering Contradiction:
Improvesoftware package varietyVSAvoidpackage security
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements digital signature verification and component certification before software packages are installed or executed. The security tool checks digital signatures and verifies components against blacklists and whitelists in advance, preventing malicious code from being installed while allowing legitimate packages to proceed

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a security tool as an intermediary between the software repository and the installation process. This security tool acts as a mediator that verifies digital signatures, checks components against certified lists, and blocks malicious packages without preventing legitimate software distribution

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If individuals can repackage software packages to include additional components, then the software can be customized and adapted, but malicious code or exploitable bugs can be introduced without detection

Engineering Contradiction:
Improvepackage customizationVSAvoidmalicious code introduction
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent performs digital signature verification and component certification before installation. The security tool checks if repackaged packages still have valid signatures from authorized developers and verifies that all components are certified, preventing malicious code injection while allowing legitimate customization

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a feedback mechanism where the security tool continuously monitors software packages through digital signature verification and component checking. When malicious or unauthorized components are detected, the system provides feedback by blocking installation and alerting users, creating a closed-loop security system

Inventive Principle:
Principle #23Feedback

3Productivity

If no verification process is implemented for software packages, then the installation process is simple and fast, but users cannot identify trusted or secure packages

Engineering Contradiction:
Improveinstallation speedVSAvoidsecurity verification accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent performs security verification in advance before installation. The security tool checks digital signatures and verifies components against blacklists and whitelists beforehand, so that during actual installation, verified packages can be installed quickly without repeated checks, maintaining speed while ensuring security

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10055576B2Detection of malicious software packages
Publication Date: 2018.08.21 RED HAT INC
  • US10055576B2 patent drawing
  • US10055576B2 patent drawing
  • US10055576B2 patent drawing

AI summary

Systems and methods for a security tool that verifies the security of a software package. An example method may involve identifying a plurality of components contained in a software package comprising one of a JAR file, an Android application package, a docker image, a container file, or a virtual machine image; comparing the components contained in the software package to a list of known components; classifying the software package as insecure when at least one of the components matches an insecure component, or as secure when each of the compared components matches a corresponding secure component on the list of known components; preventing addition of the software package to a software repository when the software package is classified as insecure; and when insecure, providing an interface to enable a user to request the components of the software package be added as a secure component on the list of known components.