What is our primary use case?
For scanning purposes, we use Synopsys Black Duck.
Primarily, we use it to ensure all our projects go through Black Duck scans. We do this sometimes via source code analysis and sometimes via binary analysis/Docker analysis. It figures out third-party components, any security vulnerabilities, and more.
Our primary focus is security – it also flags operational vulnerabilities, like outdated software versions or lack of active maintainers, but we generally don't give those as much weight.
We use Black Duck for open-source compliance in our software projects.
How has it helped my organization?
We didn't have a central inventory to quickly identify issues or determine how many products were affected. Now under Black Duck, it's all consolidated. You search for a component and immediately see which products use it.
For example, one product might use the latest version and be unaffected, while another uses a deprecated version with vulnerabilities. We can then address these vulnerabilities within our SDLC. A rescan confirms the fixes, ensuring we're protected.
Black Duck also tracks historical data, showing which product versions have specific dependencies. If a newer version is released without those dependencies, the history reflects that. This provides a view of vulnerabilities across versions.
Moreover, the integration with our development is pretty straightforward. Since we use more of a SaaS tool, all we need to do is get the right token, and use the detect tools for our initial implementation.
Black Duck handles all dependency downloads automatically, and you just have to run your script. They provide changes in plugins and everything, so it's really easy to integrate it into our pipeline.
What is most valuable?
I like the easy recommendations for fixes – knowing which version has addressed a vulnerability – and the ability to do source mapping. We find the vulnerability, and it will tell us exactly which line or file is affected. Even with transitive dependencies, it rolls up to the specific dependency in your code, showing the full chain.
This is crucial because, with hundreds of dependencies, it becomes difficult to pinpoint the issue if they're indirect. The dependency tree visualization in Black Duck clarifies which dependency has the vulnerability, allowing us to address updates effectively.
So whether we do it via binary scan or port scan, it's all about identifying which dependency or transitive dependency is affecting our overall product capability.
What needs improvement?
It's still a bit inconsistent. For example, sometimes a scan might reveal components or vulnerabilities, and the next day they might not show up. There's a lack of consistency at times. Of course, this could sometimes be due to new vulnerabilities being identified in the public domain after a scan. So, consistent inputs and more streamlined dependency management are needed.
It doesn’t clearly show whether vulnerabilities are from direct or transitive dependencies. A clear classification between direct and indirect vulnerabilities is crucial.
If I'm looking to improve my product, I need to know out of 'x' vulnerabilities, how many are direct dependencies. With direct dependencies, I can take action, like replacing a component. But with transitive dependencies, we are helpless at times. Often, we have to raise exceptions and work around them. A clear classification between direct and indirect dependencies is something I'd like to see improved.
For how long have I used the solution?
I have been using it for three years now. We use the SaaS version, so it's the latest one.
What do I think about the scalability of the solution?
There are likely multiple teams here, each with their own token, including anyone accessing it from QA or their website, so there would be many users.
So, there are around a hundred end users.
How was the initial setup?
Since Synopsys manages it, we don't even handle the deployment. They just provide us with a deployed version.
It's integrated with our AD. Now, all we need to do is log in with our ID account, and they've set it up solidly for us. A trouble-free solution. Basically, nothing to deploy.
We use the SaaS version provided by Synopsys, which they maintain. We do not intervene with it.
What's my experience with pricing, setup cost, and licensing?
We have a separate team that takes care of license compliance.
What other advice do I have?
Overall, I would rate the solution an eight out of ten.
Which deployment model are you using for this solution?
Public Cloud