Learn more about this client-side SBOM analysis tool
SBOM Play is a client-side web application for analyzing Software Bill of Materials (SBOM) data from GitHub repositories, organizations, and users. Built for security professionals to identify dependency vulnerabilities, assess license compliance, and understand software supply chain risks in real-time.
The tool features comprehensive SBOM analysis including dependency tracking, vulnerability detection via OSV.dev integration, license compliance checking, author analysis with funding detection, and SBOM quality assessment.
Key Principle: All analysis happens directly in your browser - no data ever leaves your machine.
SBOM Play is designed with privacy and security as top priorities:
For security-conscious environments, airgapped networks, or self-hosted deployments, the following domains must be allowed through your firewall or proxy. Domains are grouped by functionality and criticality.
| Domain | Purpose |
|---|---|
cdn.jsdelivr.net | Bootstrap CSS/JS, marked.js, DOMPurify, js-yaml |
cdnjs.cloudflare.com | Font Awesome icons |
unpkg.com | Leaflet maps library |
| Domain | Purpose |
|---|---|
api.github.com | REST API and GraphQL API for SBOM fetching |
raw.githubusercontent.com | Raw file access for FUNDING.yml info |
github.com | User-facing links (non-essential for analysis) |
| Domain | Purpose |
|---|---|
api.osv.dev | OSV vulnerability lookups |
| Domain | Purpose |
|---|---|
registry.npmjs.org | npm package metadata |
pypi.org | PyPI package metadata |
crates.io | Cargo/Rust package metadata |
rubygems.org | RubyGems package metadata |
search.maven.org | Maven package metadata |
api.nuget.org | NuGet package metadata |
proxy.golang.org | Go module metadata |
api.deps.dev | Google deps.dev API (license/version info) |
| Domain | Purpose |
|---|---|
tile.openstreetmap.org | Map tiles for author locations |
nominatim.openstreetmap.org | Geocoding service |
| Domain | Purpose |
|---|---|
plausible.io | Privacy-focused analytics (optional) |
SBOM Play uses multiple data sources and heuristics to identify end-of-life (EOL) and end-of-support (EOS) dependencies. Understanding which software components are no longer maintained is critical for supply chain security.
We query the endoflife.date API for official end-of-life information. This database tracks EOL dates for major software products including:
When official EOL data is unavailable, we use staleness analysis to infer probable abandonment. Research shows that packages without updates for extended periods are likely unmaintained.
| Threshold | Classification | Rationale |
|---|---|---|
| 24+ months (2 years) | Probable EOL | Most active packages release at least once per year. 2 years of inactivity suggests abandonment. |
| 36+ months (3 years) | Highly Likely EOL | Very high confidence of abandonment. Security vulnerabilities likely unpatched. |
Note: This heuristic has limitations. Some stable packages (e.g., small utilities) may be "complete" and not require updates. We recommend manual review for probable EOL findings.
When a GitHub repository is archived, it's a clear signal from the maintainer that the project is no longer active. We detect dependencies whose source repositories have been archived and flag them accordingly.
Dependency confusion (also known as "namespace confusion" or "substitution attacks") is a supply chain attack where an attacker publishes a malicious package to a public registry with the same name as an internal/private package. When developers or CI/CD systems resolve dependencies, they may inadvertently download the malicious public package instead of the intended private one.
SBOM Play uses a multi-layered approach to detect potential dependency confusion vulnerabilities in your SBOMs:
| Detection Type | Severity | Description |
|---|---|---|
| Namespace Not Found | HIGH |
The namespace/organization (e.g., @mycompany/ in npm or com.mycompany in Maven)
doesn't exist in the public registry. An attacker could register the entire namespace and publish
malicious packages. This is the highest-confidence indicator.
|
| Package Not Found | MEDIUM | The specific package doesn't exist in the public registry. Could be a private/internal package that an attacker could claim by publishing a package with that name. |
| GitHub Action Missing | HIGH | For GitHub Actions, the owner/organization doesn't exist on GitHub. An attacker could create the organization and publish a malicious action. |
SBOM Play checks packages against 36+ public registries via the ecosyste.ms API, plus GitHub for Actions:
@scope/package) to identify namespaces@mycompany/) for all internal packagesSBOM Play assesses SBOMs against multiple international compliance standards. Understanding these standards helps organizations ensure their SBOMs meet regulatory requirements.
The Cybersecurity and Infrastructure Security Agency (CISA) updated SBOM requirements in August 2025, building upon the 2021 NTIA guidelines. Key additions marked with NEW.
| Element | Description | Status |
|---|---|---|
| Software Producer | Entity that creates components (was "Supplier Name") | Renamed |
| Component Name | Name of each software component | Required |
| Component Version | Version identifier | Required |
| Software Identifier | PURL, CPE, OmniBOR, or SWHID | Required |
| Component Hash | Cryptographic fingerprint (SHA-256+) | NEW |
| License Information | Legal terms for each component | NEW |
| Dependency Relationship | Upstream component relationships | Required |
| SBOM Author | Entity that created the SBOM (was "Author of SBOM Data") | Renamed |
| Timestamp | Date and time SBOM was assembled | Required |
| Tool Name | Tool used to generate SBOM | NEW |
| Generation Context | Pre-build, build, or post-build stage | NEW |
The German Federal Office for Information Security (BSI) Technical Guideline provides requirements for SBOMs in the European context, with stricter requirements around cryptographic hashes.
| Requirement | Description |
|---|---|
| SBOM Specification | Must use CycloneDX 1.5+ or SPDX 2.2.1+ |
| Creator Contact | Email or URL required for SBOM creator |
| Component Hash | SHA-256 minimum (stricter than CISA) |
| License Expression | Valid SPDX license expression required |
| SBOM URI | Unique namespace or serial number |
| Source Code URI | Link to component source (where available) |
Our quality scoring is aligned with sbomqs v2.0, an industry-leading SBOM quality assessment tool. The overall score is calculated from 7 weighted categories:
| Category | Weight | What It Measures |
|---|---|---|
| Identification | 12% | Component names, versions, unique identifiers (PURLs, CPEs) |
| Provenance | 15% | SBOM author, timestamp, tool info, supplier data |
| Integrity | 18% | Cryptographic hashes (SHA-256+), digital signatures |
| Completeness | 15% | Dependencies, source URIs, component purpose |
| Licensing | 18% | Valid SPDX expressions, concluded/declared licenses |
| Vulnerability | 12% | Security references, vulnerability tracking readiness |
| Structural | 10% | Spec version, format validity, schema compliance |
SBOM Play has been featured and presented at:
Current Version: 0.0.6
The following open-source projects provided insights and inspiration for key features:
This project was developed with the assistance of AI tools, most notably Cursor IDE and Claude Code. These tools helped accelerate development and improve velocity. All AI-generated code has been carefully reviewed and validated through human inspection to ensure it aligns with the project's intended functionality and quality standards.