Usage of vulnerability scanners

Options for vulnerability scanning for Besu. There are tools. Lots of tools. 

Dependabot

  • Dependabot is enabled. No current alerts, open or closed: 

https://github.com/hyperledger/besu/security/dependabot

LGTM

running on PRs

CodeQL analysis

Running on main

Trivy

Teku uses Trivy, and scans the develop docker images. So scan results only include runtime dependencies not build or test dependencies. See https://github.com/ConsenSys/teku/blob/master/.circleci/config.yml

NexusIQ

It is from sonatype https://blog.sonatype.com/nexus-vulnerability-scanner-and-vulnerability-analysis but I couldn’t even try it out without agreeing to a whole bunch of stuff on behalf of company so did not proceed.

Has a number of "levels" 1-10. According to the user’s report, there were a number of “level 7” and “level 10” vulnerabilities (details in the ticket). (These were fixed in 21.10.7)

Snyk

Integrates quite nicely with github but there is a lot of noise. 

Dependency check gradle plugin

Useful but we don't want to gate PRs on this.

There is also a homebrew option

Maven central

Maven central does an ok job of pointing out some CVEs https://mvnrepository.com/artifact/org.hyperledger.besu.internal/eth/21.10.6 

Disadvantage is it’s only available once the artefact is published, by which time it's a bit late. SNAPSHOT versions don’t get imported into mvnrepository.com