Code Monkey home page Code Monkey logo

sbom-validator's Introduction

sbom-validator

Purpose

This project uses cryptographic hashes in a Software Bill Of Materials values to validate the integrity of files in a software package release.

Use Cases

The intended use cases are as follows:

  1. A 'bootstrap' SBOM is initially created using the create-sbom.py from the build output.
  2. create-sbom.py is also used to create a list of 'approved' third-party components.
  3. The edit-sbom.py script is used to set license information on the third-party components.
  4. merge-by-sha256 is used to merge the third-party component data into the 'bootstrap' SBOM to create the 'ideal' SBOM
  5. merge-and-test.py is used at the end of the build process to compare the build output to the ideal SBOM. If files that were not identified as build outputs in the edit phase have a different hash then a warning is raised. Build outputs get their hashes calculated, and the build output SBOM is produced. This step will detect mis-matched third-party components.
  6. the validate-sbom.py script is used to validate the integrity of the application release's file once installed on a runtime environment.

What's Here

  • create-sbom.py -- create sbom by scanning a directory tree or a zip file. This is used to create an initial 'bootstrap' SBOM, or to create intermediate SBOMs during the build process.
  • edit-sbom.py -- a simple TUI edit tool allows the CRUD operations on SBOM files. The add/edit functionality will allow copyright and other metadata to be easily manipulated.
  • merge-and-test.py -- This is used to test and create a 'release' SBOM to accompany a package release. The third-party dependencies are all validated by comparing the hashes.
  • merge-by-sha256.py-- Used to merge SBOM file metadata based on the sha256 'checksums' on the files. In this case, it is used to find and mark the 'blessed' third-party components into an 'ideal' SBOM
  • validate-sbom.py -- this validates an application's files on disk by comparing file presence and sha256 hash values. Missing/extrafiles are detected and reported, as are hash mis-matches.

J.B. Otterson 20230611

sbom-validator's People

Contributors

jotterson avatar n1kdo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.