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. All analysis happens directly in your browser - no data ever leaves your machine.
- SBOM Analysis: Analyze SBOM data from GitHub organizations, users, and repositories
- Dependency Tracking: Track dependency usage across multiple repositories
- Vulnerability Detection: OSV.dev integration for vulnerability scanning
- License Compliance: Comprehensive license categorization and risk assessment
- Author Analysis: Author deduplication and funding opportunity detection
- SBOM Quality Assessment: Quality scoring based on multiple categories
- Multi-Organization Storage: Persistent storage using IndexedDB
- Export/Import: Export and import analysis data with checksum validation
- Rate Limit Handling: Automatic rate limit handling and recovery
- Privacy-First: All processing happens client-side in your browser
- Open
index.htmlin your web browser or visit https://cyfinoid.github.io/sbomplay/ - Optionally enter a GitHub Personal Access Token for better rate limits (Settings page)
- Enter an organization name, username, or GitHub repository URL to analyze
- Click "Analyze Organization or User" to start the analysis
- View results across multiple pages:
- Analysis: Overview with statistics dashboard
- License: License compliance and risk assessment
- Vulnerabilities: OSV.dev vulnerability scanning results
- Quality: SBOM quality assessment scores
- Dependencies: Detailed dependency view with filtering
- Authors: Author analysis with funding opportunities
- Settings: Storage management and configuration
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.
SBOM Play uses browser IndexedDB to store analysis data. IndexedDB provides generous storage limits (typically 50% of available disk space), making it ideal for large-scale SBOM analyses.
- Generous Limits: IndexedDB typically allows storing gigabytes of data
- Persistent Storage: Data persists between browser sessions
- Efficient Queries: Fast retrieval of specific organizations or repositories
- Separate Stores: Organizations, repositories, vulnerabilities, and authors stored in separate object stores
- Storage Status: Check current usage and available space in Settings
- Export Data: Export all data to JSON for backup or sharing (with checksum validation)
- Clear Old Data: Remove old analyses while keeping recent ones
- Clear All Data: Complete reset of stored data
If the analysis shows 0 dependencies, this is usually due to one of these reasons:
GitHub's Dependency Graph feature must be enabled on repositories for SBOM data to be available.
To enable Dependency Graph:
- Go to the repository on GitHub
- Navigate to Settings β Security & analysis
- Enable "Dependency graph" under "Security & analysis"
- This requires admin access to the repository
Repositories need to have dependency files for the Dependency Graph to work:
Supported file types:
package.json(Node.js)requirements.txt(Python)Gemfile(Ruby)pom.xml(Java/Maven)build.gradle(Java/Gradle)Cargo.toml(Rust)composer.json(PHP)- And many more...
- Private repositories require a GitHub Personal Access Token
- Some organizations may have restricted access
- Rate limits are higher with authentication
- Without authentication: 60 requests/hour
- With authentication: 5,000 requests/hour
- The tool handles rate limiting automatically
- "Dependency graph not enabled": The repository doesn't have Dependency Graph enabled
- "Access denied": Repository is private or requires authentication
- "Rate limit exceeded": Too many requests, will retry automatically
- "Organization not found": Check the organization name spelling
- Use a GitHub Token: Provides higher rate limits and access to private repositories
- Enable Dependency Graph: Ensure repositories have this feature enabled
- Check Repository Settings: Verify repositories have dependency files
- Monitor Console: Check browser console for detailed error messages
- Uses GitHub's Dependency Graph API
- Supports all GitHub-supported dependency file formats
- Handles rate limiting with automatic retry
- Stores results in browser IndexedDB (not localStorage)
- No server-side processing required
- Correctly processes GitHub's SBOM format (
versionInfofield) - Client-side vulnerability scanning via OSV.dev API
- License compliance analysis with 100+ recognized licenses
- Unauthenticated: 60 requests/hour
- Authenticated: 5,000 requests/hour
- The tool automatically handles rate limiting and waits for reset
- Modern browsers with ES6+ support
- Requires IndexedDB support
- No external dependencies (uses CDN for Bootstrap and Font Awesome)
- Work in main folder - Edit
index.html,js/,css/files directly - Test locally - Open
index.htmlin browser to test - Deploy via GitHub Release - Create a release tag to trigger automatic deployment
Deployment is automated via GitHub Actions when a release is created:
- Create a new release on GitHub (with tag like
v0.0.2) - The
deploy-github-pages.ymlworkflow automatically:- Copies all required files to
_site/directory - Uploads artifact
- Deploys to GitHub Pages
- Copies all required files to
- Your site will be available at:
https://cyfinoid.github.io/sbomplay/
See DEPLOY.md for detailed deployment instructions.
sbomplay/
βββ index.html # Main application
βββ licenses.html # License compliance page
βββ vuln.html # Vulnerability analysis page
βββ audit.html # Audit findings page
βββ deps.html # Dependency view page
βββ authors.html # Author analysis page
βββ settings.html # Settings and storage management
βββ js/ # JavaScript files
β βββ app.js
β βββ github-client.js
β βββ sbom-processor.js
β βββ license-processor.js
β βββ osv-service.js
β βββ storage-manager.js
β βββ view-manager.js
β βββ ... (other modules)
βββ css/ # CSS files
β βββ style.css
β βββ themes.css
βββ .github/workflows/ # GitHub Actions workflows
β βββ deploy-github-pages.yml
β βββ validate-deployment.yml
βββ LICENSE # GPL-3.0 license
Join our Discord server for discussions, questions, and collaboration:
Connect with other security researchers, share your findings, and get help with usage and development.
This project is licensed under the GNU General Public License v3 (GPLv3) - see the LICENSE file for details.
This tool is designed for security auditing and analysis of systems you own or have explicit permission to analyze. Always ensure you have proper authorization before using this tool against any systems or repositories you don't own. The authors are not responsible for any misuse of this software.
Cutting-Edge Software Supply Chain Security Research
Pioneering advanced software supply chain security research and developing innovative security tools for the community. This tool is part of our free research toolkit - helping security researchers and organizations identify software supply chain vulnerabilities and assess license compliance.
Specializing in software supply chain attacks, CI/CD pipeline security, and offensive security research. Our research tools help organizations understand their software supply chain vulnerabilities and develop effective defense strategies.
Explore our professional training programs, latest research insights, and free open source tools developed from our cutting-edge cybersecurity research.
Upcoming Trainings | Read Our Blog | Open Source by Cyfinoid
Hands-on training in software supply chain security, CI/CD pipeline attacks, and offensive security techniques
Β© 2025 Cyfinoid Research.