Don't just give me a list; Tell me which ones can be reached and targeted.
OWASP CycloneDX SBOM/xBOM Standard
International bill of material standard for the software supply chain supporting SBOM, SaaSBOM, CBOM, VDR/VEX, and more.
## What is an SBOM?
It is the most important data point about the safety and functionality of an application or a service. A precise and detailed SBOM is a verifiable statement that the person or the tool has checked every single component and knows exactly where, when, and how they are used. And if there is ever an attack based on a known vulnerability, an SBOM would come in handy to identify all the affected applications and services to defend and secure.
The question we asked ourselves at the beginning of this year is this - can we identify the components of an application that are more likely to be reached and targeted by adversaries at the point of generating an SBOM so that the defenders have a headstart?
"Can we identify and mark these "Reachable components" in the SBOM itself?"
## Identifying Reachable component
Identifying reachable components
1. Static analysis
2. Dynamic analysis
While there are pros and cons with these techniques, they are unusable as-is for a tool like cdxgen that can neither access a database nor instrument the application at runtime.
So, how can you build a tool to identify reachable flows for multiple languages with no database, rules, policies, or annotations?
## Announcing cdxgen 9.9.0
It gives us great pleasure to announce the release of cdxgen 9.9.0 with several improvements and features, notably the improved evinse mode. Powered by atom, evinse can now identify reachable components for Java, JavaScript, and TypeScript applications. The information is available for downstream SCA and ASPM tools to prioritize the application vulnerabilities
领英推荐
## Jugaad Innovation
When our team got together early this year to discuss reachability detection, the state-of-the-art technique was to use an AI/ML model to annotate libraries and build the knowledge graph. From the beginning, we agreed on the constraints that our implementation should work on the CLI in any CI/CD environment without the need for any database, rules, or policies. Solving this required a Jugaad Innovation in the field of program analysis
Thanks to the wonderful OWASP community, the feature was alpha and beta-tested against a number of real-world applications prior to the release.
We're confident that our implementation would beat existing implementations, both open source and commercial, in precision and performance.
## What about pricing?
The Open Worldwide Application Security Project (OWASP) is a nonprofit foundation that works to improve the security of software
If you agree that our team deserves funding to continue our work, use the link below to make an appropriate donation (based on the time saved and productivity added) and then proceed with trying cdxgen 9.9.0.
Security Analyst | ISO 27001 Implementer & Auditor | ISO 27701 Implementer | IT Administrator
1 年This is incredible ?? looking forward to testing it out.
Technical Security Leader, Product Security, Cybersecurity, Cloud Security, Security Strategy. CISSP,SAFE,ITIL,MCP,HSCE
1 年Nice!!!!! Been waiting for this. ?
AppSec Tools Builder | Founder, AppThreat
1 年Now also available for Python. https://www.dhirubhai.net/posts/prabhusub_release-release-v991-cyclonedxcdxgen-activity-7125464255578955777-j1M7
Application Security Engineer
1 年Quick question, how difficult would be just using static analysis, to identify which methods of a library are called? It is, A library contains a vulnerability in a given method, but, am I using that method? Maybe I am using the vulnerable library but it doesn’t impact me at all because I’m not using the method that is vulnerable
Software Supply Chain Security
1 年The reachable component has got to be one of, if not the best, additions to SBOM generations, in my opinion. I look forward to sharing this update in the next CramHacks Software Supply Chain Security Newsletter. To further my understanding - in what legitimate case(s) would a dependency in an SBOM find no reachable component? And does this update include the detection of transitive reachable components? I look forward to learning more - awesome job!