awesome-software-supply-chain-security
A compilation of resources in the software supply chain security domain, with emphasis on open source.
About this list
There is no prescribed taxonomy for this domain. This list will necessarily have some overlap with disciplines and categories such as DevSecOps, SAST, SCA and more.
The supply-chain-synthesis repo offers a long-form read on why that's the case, plus helpful pointers to understand and navigate it as it evolves.
For awesome-software-supply-chain-security
we take the following high-level approach: different actors in the supply chain contribute attestations to the elements represented in the chain.
In this process-centric view, attestations are emitted, augmented (e.g., during composition) and verified.
Another way to look at this was described here by Josh Bressers, and here's a narrative example in the wild from Spotify
Using this lens we can identify a large group of "subjects" (dependencies), distinct categories of "facts" (licenses or vulnerabilities) and the specific role of identity, provenance and build systems. This is the rationale behind the current headings, which are expected to evolve with the domain.
Other examples of the ongoing process to define the domain include Add Bad Design as a supply chain scenario · Issue #249 · slsa-framework/slsa and How does SLSA fit into broader supply chain security? · Issue #276 · slsa-framework/slsa. Check out this tweet from Aeva Black with Dan Lorenc for another in-a-pinch view of a couple key projects.
Dependency intelligence
This section includes: package management, library management, dependency management, vendored dependency management, by-hash searches, package, library and dependency naming, library behavior labeling, library publishing, registries and repositories, publishing gates and scans, dependency lifecycle.
- Open Source Insights
- guacsec/guac: GUAC aggregates software security metadata into a high fidelity graph database.
- package-url/purl-spec: A minimal specification for purl aka. a package "mostly universal" URL, join the discussion at https://gitter.im/package-url/Lobby
- Online services that help understand what a specific dependency is, or at least whether it's known (usually feeding it a package identifier, such as
purl
, CPE or another form of ecosystem:name:version
, or alternatively via hash):
- For inputs acquired e.g., via
curl
:
- deepfence/ThreatMapper: 🔥 🔥 Open source cloud native security observability platform. Linux, K8s, AWS Fargate and more. 🔥 🔥
- dependency-check
- ossf/package-analysis: Open Source Package Analysis and ossf/package-feeds: Feed parsing for language package manager updates
- abhisek/supply-chain-security-gateway: Reference architecture and proof of concept implementation for supply chain security gateway
- cugu/gocap: List your dependencies capabilities and monitor if updates require more capabilities.
- MATE: Interactive Program Analysis with Code Property Graphs and see GaloisInc/MATE: MATE is a suite of tools for interactive program analysis with a focus on hunting for bugs in C and C++ code using Code Property Graphs and docs
- Checkmarx/chainalert-github-action: scans popular packages and alerts in cases there is suspicion of an account takeover
- Open Source Security Foundation (OpenSSF) Alpha-Omega Project
- Socket - Find and compare millions of open source packages, focused on JavaScript
- diffoscope: in-depth comparison of files, archives, and directories
- RedHatProductSecurity/component-registry: Component Registry (Corgi) aggregates component data across Red Hat's supported products, managed services, and internal product pipeline services.
- OSS Insight, powered by TIDB Cloud, is an insight tool that can help you analyze in depth any single GitHub repository/developers, compare any two repositories using the same metrics, and provide comprehensive, valuable, and trending open source insights.
- Announcing the Private Beta of FOSSA Risk Intelligence
- From Projects | Software Transparency Foundation, see OSSKB | Free Open Source Inventorying
- Artifact Hub, featuring Packages security report and also verifies with cosign
- crt.sh | Certificate Search
- grep.app | code search
- GitHub code search
- searchcode | source code search engine
- Sourcegraph from Sourcegraph
- Onboard open-source contributors on Open Source Hub, see the docker-slim example in Codesee
- Code Checker from Snyk
- Get Started - FOSSology
- cve-search/git-vuln-finder: Finding potential software vulnerabilities from git commit messages
- chaoss/augur: Python library and web service for Open Source Software Health and Sustainability metrics & data collection. You can find our documentation and new contributor information easily here: https://chaoss.github.io/augur/ and learn more about Augur at our website https://augurlabs.io
- IBM/CBOM: Cryptography Bill of Materials
- AppThreat/blint: BLint is a Binary Linter to check the security properties, and capabilities in your executables. It is powered by lief.
Also read:
SCA and SBOM
This section includes: package/library scanners and detectors, SBOM formats, standards, authoring and validation, and a few applications. Will likely include SCA.
The most complete reference is awesomeSBOM/awesome-sbom. Another helpful repo focusing on generators is cybeats/sbomgen: List of SBOM Generation Tools.
- GitBOM
- nexB/scancode-toolkit: ScanCode detects licenses, copyrights, package manifests & dependencies and more by scanning code ... to discover and inventory open source and third-party packages used in your code.
- OWASP's SCA tools list is comprehensive on its own
- Grafeas: A Component Metadata API
- trailofbits/it-depends: A tool to automatically build a dependency graph and Software Bill of Materials (SBOM) for packages and arbitrary source code repositories.
- Mend SCA SBOM, Mend Bolt: Find and Fix Open Source vulnerabilities and Whitesource Renovate: Automated Dependency Updates
- JFrog Xray - Universal Component Analysis & Container Security Scanning
- DependencyTrack/dependency-track: Dependency-Track is an intelligent Component Analysis platform that allows organizations to identify and reduce risk in the software supply chain.
- oss-review-toolkit/ort: A suite of tools to assist with reviewing Open Source Software dependencies.
- anchore/syft: CLI tool and library for generating a Software Bill of Materials from container images and filesystems from Software supply chain security solutions • Anchore
- ANNOUNCE: Scan is now in maintenance mode · Issue #352 · ShiftLeftSecurity/sast-scan
- Container Security | Qualys, Inc.
- Aqua Cloud Native Security, Container Security & Serverless Security
- tern-tools/tern: Tern is a software composition analysis tool and Python library that generates a Software Bill of Materials for container images and Dockerfiles. The SBOM that Tern generates will give you a layer-by-layer view of what's inside your container in a variety of formats including human-readable, JSON, HTML, SPDX and more.
- REA-Products/C-SCRM-Use-Case at master · rjb4standards/REA-Products from this tweet
- Phylum Analyze PR Action: GitHub Action to analyze Pull Requests for open-source supply chain issues from Phylum | The Software Supply Chain Security Company
- microsoft/component-detection: Scans your project to determine what components you use
- DWARF 5 Standard
- Software Identification (SWID) Tagging | CSRC and Guidelines for the Creation of Interoperable Software Identification (SWID) Tags
- Concise Software Identification Tags
- hughsie/python-uswid: A tiny tool for embedding CoSWID tags in EFI binaries
- ckotzbauer/sbom-operator: Catalogue all images of a Kubernetes cluster to multiple targets with Syft
- Security problem management in Dynatrace Application Security
- DefectDojo/django-DefectDojo: DefectDojo is a DevSecOps and vulnerability management tool.
- swingletree-oss/swingletree: Integrate and observe the results of your CI/CD pipeline tools
- mercedes-benz/sechub: SecHub - one central and easy way to use different security tools with one API/Client
- marcinguy/betterscan-ce: Code Scanning/SAST/Static Analysis/Linting using many tools/Scanners with One Report (Code, IaC) - Betterscan Community Edition (CE)
- BBVA/susto: Systematic Universal Security Testing Orchestration
- AppThreat/rosa: An experiment that looks very promising so far.
- FOSSA's SBOM Solution
- Rezillion Dynamic SBOM
- opensbom-generator/spdx-sbom-generator: Support CI generation of SBOMs via golang tooling.
- Tauruseer's SBOM tools
- SOOS' Supported Languages & Manifests
- Fortress: Software Bill of Materials
- javixeneize/yasca: Yet Another SCA tool
- Cybeats SBOM Studio
- edgebitio/edgebit-build: GitHub action to upload SBOMs to EdgeBit and receive vulnerability context in your pull requests from EdgeBit - Real-time supply chain security, enabling security teams to target and coordinate vulnerability remediation without toil.
- REA's Software Assurance Guardian Point Man (SAG-PM)
- microsoft/sbom-tool: The SBOM tool is a highly scalable and enterprise ready tool to create SPDX 2.2 compatible SBOMs for any variety of artifacts
- Veracode's SCA to Automate Security Scanning, see demo: How to generate a Software Bill of Materials (SBOM) using Veracode Software Composition Analysis
- Enterprise Edition - BluBracket: Code Security & Secret Detection
- Software Composition Analysis (SCA) | CyberRes
- Nexus Intelligence - Sonatype Data Services
- AppThreat/dep-scan: Fully open-source security audit for project dependencies based on known vulnerabilities and advisories. Supports both local repos and container images. Integrates with various CI environments such as Azure Pipelines, CircleCI, Google CloudBuild. No server required!
- sbs2001/fatbom: fatbom (Fat Bill Of Materials) is a tool which combines the SBOM generated by various tools into one fat SBOM. Thus leveraging each tool's strength.
- Sonatype BOM Doctor
- jhutchings1/spdx-to-dependency-graph-action: A GitHub Action that takes SPDX SBOMs and uploads them to GitHub's dependency submission API to power Dependabot alerts
- tap8stry/orion: Go beyond package manager discovery for SBOM
- patriksvensson/covenant: A tool to generate SBOM (Software Bill of Material) from source code artifacts.
- CycloneDX/cyclonedx-webpack-plugin: Create CycloneDX Software Bill of Materials (SBOM) from webpack bundles at compile time.
- advanced-security/gh-sbom: Generate SBOMs with gh CLI
- interlynk-io/sbomqs: SBOM quality score - Quality metrics for your sboms
- eBay/sbom-scorecard: Generate a score for your sbom to understand if it will actually be useful.
More interesting resources:
- Brakeing Down Security Podcast: 2020-031-Allan Friedman, SBOM, software transparency, and knowing how the sausage is made
- Episode 312: The Legend of the SBOM
- Reimagining Cyber Podcast: Log4j vulnerability provides harsh lessons in unknown dependencies
- Tech Debt Burndown Podcast Series 1 E11: Allan Friedman and SBOMs
- Sounil Yu on SBOMs, software supply chain security - Security Conversations
- Exploring Security. Criticality of SBOM. Scott McGregor, Cloud Security, Wind River
- Down the Security Rabbithole Podcast: DtSR Episode 487 - Software Supply Chain is a BFD
- Software Composition Analysis Podcast: Software Supply Chain - Episode 1
- Critical Update: Do You Know What’s In Your Software?
- Software Bill of Materials | CISA
- SBOM Use Case - RKVST and RKVST SBOM Hub - RKVST
- BOF: SBOMs for Embedded Systems: What's Working, What's Not? - Kate Stewart, Linux Foundation
- All About That BoM, ‘bout That BoM - Melba Lopez, IBM
- OWASP CycloneDX Launches SBOM Exchange API
- Read: SBOM Management | Six Ways It Prevents SBOM Sprawl
- Read: NTIA's The Minimum Elements For a Software Bill of Materials
- Read: What an SBOM Can Do for You
A few open source projects are documenting, in public, how they acquire dependencies. This intentional, human-parsable, long-form examples can be illustrative:
Vulnerability information exchange
- OSV
- Qualys' Vulnerability Detection Pipeline
- Vuls · Agentless Vulnerability Scanner for Linux/FreeBSD
- Vulnerability Database, an API is also available; see VulDB
- AppThreat/vulnerability-db: Vulnerability database and package search for sources such as OSV, NVD, GitHub and npm.
- aquasecurity/trivy: Scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues
- SAST for Code Security | Snyk Code
- Contrast Community Edition
- Known Exploited Vulnerabilities Catalog | CISA
- cve-search/cve-search: cve-search - a tool to perform local searches for known vulnerabilities
- Exein-io/kepler: NIST-based CVE lookup store and API powered by Rust
- nexB/vulnerablecode: A work-in-progress towards a free and open vulnerabilities database and the packages they impact. And the tools to aggregate and correlate these vulnerabilities. Sponsored by NLnet https://nlnet.nl/project/vulnerabilitydatabase/ for https://www.aboutcode.org/ Chat at https://gitter.im/aboutcode-org/vulnerablecode
- toolswatch/vFeed: The Correlated CVE Vulnerability And Threat Intelligence Database API
- ossf/scorecard: Security Scorecards - Security health metrics for Open Source, OpenSSF Metrics and ossf/security-reviews: A community collection of security reviews of open source software components.
- Lynis - Security auditing and hardening tool for Linux/Unix
- victims/victims-cve-db: CVE database store
- anchore/grype: A vulnerability scanner for container images and filesystems
- GitHub Advisory Database now open to community contributions
- Global Security Database Working Group | CSA, also see cloudsecurityalliance/gsd-database: Global Security Database
- trickest/cve: Gather and update all available and newest CVEs with their PoC.
- RFC 9116: A File Format to Aid in Security Vulnerability Disclosure
- An AOSP vuln-to-commit exercise: quarkslab/aosp_dataset: Large Commit Precise Vulnerability Dataset based on AOSP CVE
- nyph-infosec/daggerboard
- davideshay/vulnscan: Vulnerability Scanner Suite based on grype and syft from anchore
- devops-kung-fu/bomber: Scans SBoMs for security vulnerabilities
- Fortress: Vulnerability Management
- Vulnerability Management | aDolus
- secvisogram/secvisogram: Secvisogram is a web tool for creating and editing security advisories in the CSAF 2.0 format
- future-architect/vuls: Agent-less vulnerability scanner for Linux, FreeBSD, Container, WordPress, Programming language libraries, Network devices
- infobyte/faraday: Open Source Vulnerability Management Platform from Faraday - Community v4 Release
- mitre/saf: The MITRE Security Automation Framework (SAF) Command Line Interface (CLI) brings together applications, techniques, libraries, and tools developed by MITRE and the security community to streamline security automation for systems and DevOps pipelines
- devops-kung-fu/bomber: Scans Software Bill of Materials (SBOMs) for security vulnerabilities
- Rezilion/mi-x: Determine whether your compute is truly vulnerable to a specific vulnerability by accounting for all factors which affect actual exploitability (runtime execution, configuration, permissions, existence of a mitigation, OS, etc..)
- ossf-cve-benchmark/ossf-cve-benchmark: The OpenSSF CVE Benchmark consists of code and metadata for over 200 real life CVEs, as well as tooling to analyze the vulnerable codebases using a variety of static analysis security testing (SAST) tools and generate reports to evaluate those tools.
- See the Vulnerability Management in the NeuVector Docs for integration examples in container scenarios
- noqcks/xeol: An end-of-life (EOL) package scanner for container images, systems, and SBOMs
- mchmarny/vimp: Compare data from multiple vulnerability scanners to get a more complete picture of potential exposures.
A dedicated section on VEX reads:
Also see:
Point-of-use validations
This section includes: admission and ingestion policies, pull-time verification and end-user verifications.
- Kyverno
- ckotzbauer/sbom-operator: Catalogue all images of a Kubernetes cluster to multiple targets with Syft
- CONNAISSEUR - Verify Container Image Signatures in Kubernetes
- sigstore/policy-controller: The policy admission controller used to enforce policy on a cluster on verifiable supply-chain metadata from cosign.
- portieris/POLICIES.md at main · IBM/portieris
- reproducible-containers/repro-get: Reproducible apt/dnf/apk/pacman, with content-addressing
- kpcyrd/pacman-bintrans: Experimental binary transparency for pacman with sigstore and rekor
- Open Policy Agent
- Conftest allows to write tests against structured configuration data using the Open Policy Agent Rego query language: here's an example
- Several pre-commit hooks allow vulnerability checking right before dependency ingestion time into the codebase
- Static analysis is often used at this stage in order to detect dependency acquisition, e.g.:
- Semgrep
- Getting started with Semgrep Supply Chain
- Also see: Catching Security Vulnerabilities With Semgrep
- graudit/signatures at master · wireghoul/graudit
- banyanops/collector: A framework for Static Analysis of Docker container images
- quay/clair: Vulnerability Static Analysis for Containers
- DataDog/guarddog: GuardDog is a CLI tool to Identify malicious PyPI and npm packages
- eliasgranderubio/dagda: a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities
- Half brilliant, half funny, full helpful: kpcyrd/libredefender: Imagine the information security compliance guideline says you need an antivirus but you run Arch Linux
- KICS - Keeping Infrastructure as Code Secure
- tinkerbell/lint-install: Consistently install reasonable linter rules for open-source projects
hadolint
rules on package installation, e.g., hadolint/README.md at d16f342c8e70fcffc7a788d122a1ba602075250d · hadolint/hadolint
- Also dockerfile resource scans - checkov from bridgecrewio/checkov: Prevent cloud misconfigurations during build-time for Terraform, CloudFormation, Kubernetes, Serverless framework and other infrastructure-as-code-languages with Checkov by Bridgecrew.
- And: xlab-si/iac-scan-runner: Service that scans your Infrastructure as Code for common vulnerabilities
- And: aws-samples/automated-security-helper1
- Vulnerability Assessment | OpenSCAP portal
- Detecting Log4Shell with Wazuh
- aquasecurity/starboard: Kubernetes-native security toolkit
- armosec/kubescape: Kubescape is a K8s open-source tool providing a multi-cloud K8s single pane of glass, including risk analysis, security compliance, RBAC visualizer and image vulnerabilities scanning.
- ckotzbauer/vulnerability-operator: Scans SBOMs for vulnerabilities
- chen-keinan/kube-beacon: Open Source runtime scanner for k8s cluster and perform security audit checks based on CIS Kubernetes Benchmark specification
- aquasecurity/kube-bench: Checks whether Kubernetes is deployed according to security best practices as defined in the CIS Kubernetes Benchmark and aquasecurity/kube-hunter: Hunt for security weaknesses in Kubernetes clusters
- openclarity/kubeclarity: KubeClarity is a tool for detection and management of Software Bill Of Materials (SBOM) and vulnerabilities of container images and filesystems
- stackrox/stackrox: The StackRox Kubernetes Security Platform performs a risk analysis of the container environment, delivers visibility and runtime alerts, and provides recommendations to proactively improve security by hardening the environment.
- cloudquery/plugins/source/k8s/policies at main · cloudquery/cloudquery
- quarkslab/kdigger: Kubernetes focused container assessment and context discovery tool for penetration testing
- ossillate-inc/packj: The vetting tool 🚀 behind our large-scale security analysis platform to detect malicious/risky open-source packages and Packj | A vetting tool to avoid "risky" packages
- doowon/sigtool: sigtool for signed PE files in GO
- Introducing "safe npm", a Socket npm Wrapper - Socket
- Introducing SafeDep vet 🚀 | SafeDep
Also see:
Supply chain beyond libraries
And a few things to watch beyond libraries and software dependencies:
Identity, signing and provenance
This section includes: projects and discussions specifics to developer identity, OIDC, keyrings and related topics.
Frameworks and best practice references
This section includes: reference architectures and authoritative compilations of supply chain attacks and the emerging categories.
- in-toto | A framework to secure the integrity of software supply chains
- Supply chain Levels for Software Artifacts or SLSA (salsa) is a security framework, a check-list of standards and controls to prevent tampering, improve integrity, and secure packages and infrastructure in your projects, businesses or enterprises.
- OWASP Application Security Verification Standard, esp. V14 - Configuration
- OWASP/Software-Component-Verification-Standard: Software Component Verification Standard (SCVS)
- CREST launches OWASP Verification Standard (OVS)
- SAFECODE's Fundamental Practices for Secure Software Development, Third Edition, esp. Manage Security Risk Inherent in the Use of Third-party Components
- SSF | The Secure Software Factory and mlieberman85/supply-chain-examples
- Software Supply Chain Risk Management | BSIMM
- microsoft/scim: Supply Chain Integrity Model
- Goodbye SDLC, Hello SSDF! What is the Secure Software Development Framework?
- The Supply Chain Risk Management section of SP 800-53 Rev. 5, Security and Privacy Controls for Info Systems and Organizations | CSRC, also see center-for-threat-informed-defense/attack-control-framework-mappings: Security control framework mappings to MITRE ATT&CK
- SP 800-161 Rev. 1, C-SCRM Practices for Systems and Organizations | CSRC
- npm Best Practices Guide (OpenSSF) - Features and recommendations on using npm safely
- CIS Software Supply Chain Security Guide
- microsoft/oss-ssc-framework: Open Source Software Secure Supply Chain Framework
- GitHub's Implementing software security in open source
- Previously referenced: Google Best Practices for Java Libraries
- MITRE's System of Trust
- Securing the Software Supply Chain for Developers was published by the National Security Agency (NSA), Cybersecurity and Infrastructure Security Agency (CISA), and the Office of the Director of National Intelligence (ODNI) under the Enduring Security Framework (ESF) initiative
- OpenSSF's Concise Guide for Developing More Secure Software 2022-09-01
- Chris Hughes on the NSA Recommended Practices for Developers: Securing the Software Supply Chain
Also see:
Build techniques
This section includes: reproducible builds, hermetic builds, bootstrappable builds, special considerations for CI/CD systems, best practices building artifacts such as OCI containers, etc.
Also see:
Talks, articles, media coverage and other reading
Getting started and staying fresh
- A few resources, in addition to this repository, that can help keep up with news and announcements:
And a collection of reads and listens, ranging from insightful blog posts, explainers/all-rounders and some long-form analysis (we've tried to keep deep dive reads scoped to other sections)
- Secure Software Development Fundamentals Courses - Open Source Security Foundation
- Census II of Free and Open Source Software — Application Libraries
- “Chain”ging the Game - how runtime makes your supply chain even more secure
- How to attack cloud infrastructure via a malicious pull request
- The Challenges of Securing the Open Source Supply Chain
- What is a Software Supply Chain Attestation - and why do I need it?
- Open Policy Agent 2021, Year in Review
- Reproducibility · Cloud Native Buildpacks and Buildpacks and SBOM Integration Opportunities
- The state of software bill of materials: SBOM growth could bolster software supply chains
- Secure Your Software Supply Chain with New VMware Tanzu Application Platform Capabilities
- A few resources to understand supply chain compromises:
- Improving TOFU (trust on first use) With Transparency
- Reports:
- End-to-end demos and examples:
- Using SARIF to Extend Analysis of SAST Tools
- GitLab's Software Supply Chain Security section
- GitHub's SARIF support for code scanning
- Driving Developer Productivity via Automated Dependency Tracking
- Code scanning finds more vulnerabilities using machine learning
- Securing Open Source Software at the Source
- Security: The Value of SBOMs
- Why SBOMS & Security Scanning Go Together - Upstream: The Software Supply Chain Security Podcast presented by Anchore
- SBOMs in the Windows Supply Chain, from the SPDX User Group
- Whose Sign Is It Anyway? - Marina Moore, NYU & Matthew Riley, Google
- Binary Authorization for Borg: how Google verifies code provenance and implements code identity
- Application Security Weekly (Video) on Apple Podcasts
- How to prioritize the improvement of open source software security
- Software Supply Chain Security Turns to Risk Mitigation
- Reproducible Builds: Increasing the Integrity of Software Supply Chains
- sigstore/community: General sigstore community repo
- CycloneDX Use Cases
- Building a Sustainable Software Supply Chain, particularly the section: "The Software Supply Chain Sustainability Maturity Model"
- Dependency Issues: Solving the World’s Open Source Software Security Problem offers a well meditated view on the problem space as well
- The Digital Economy Runs on Open Source. Here’s How to Protect It (HBR)
- Report: 95% of IT leaders say Log4shell was ‘major wake-up call’ for cloud security
- Presentation: Securing the Open Source Software Supply Chain at PyConUS2022 by Dustin Ingram
- Watch: The state of open source security in 2022 with Kurt Seifried
- Podcast: Kubernetes Podcast from Google: Episode 174 - in-toto, with Santiago Torres-Arias
- EO 14028 and Supply Chain Security
- Reducing Open Source Risk Throughout the Development, Delivery and Deployment of SBOMs, a May 2022 paper illustrating at a high level the differences between SBOMs in publishing, distribution and delivery scenarios; see pages 6-9
- Open Source Security Foundation (OpenSSF) Security Mobilization Plan
- Not Just Third Party Risk
- Open Source Security: How Digital Infrastructure Is Built on a House of Cards
- Series: Bootstrapping Trust Part 1 covering encryption, certificates, chains and roots of trust
- Contact sign-up sheet required: The Rise of Continuous Packaging by Cloudsmith and O'Reilly
- Supply Chain Security for Cloud Native Java (from Thomas Vitale)
- Podcast: It Depends with Trail of Bits
- New security concerns for the open-source software supply chain (top level findings from The State of the Software Supply Chain: Open Source Edition 2022)
- Software Supply Chain Primer v0.93 (June 2022)