Vulnerability scanning

Keeping on top of security issues in our dependencies is a regular 2nd line chore.

The Vulnerability fix weekly tracking recurrent Trello card describes the checks we need to do weekly.

There are three main areas, as explained below.

Snyk

The Digital Marketplace uses Snyk for finding and monitoring security vulnerabilities in all of our repos.

It periodically scans our requirements.txt and package.json files for dependency information, then lets us know if any of those dependencies have security vulnerabilities in the versions we use.

Members of the Digital Marketplace team who want to look at Snyk will need to be granted access; see Adding and removing access for new starters / leavers for details on how to do this.

Jenkins

Jenkins and its plugins need to be kept up-to-date. For that, we use the advisory feature built into the product’s web interface.

Docker image scanning

Automatic Docker image scanning is not part of the free tier of Snyk, but it can be done manually using the Snyk cli. See Snyk for Docker for more info on how it’s done.

For the images created by the digitalmarketplace-docker-base repo, the provided Makefile includes a recipe to run a scan and update the dependency database for you. Simply checkout the latest version of the repository on a machine with the Snyk CLI installed and run:

make scan

The result of the latest scan will then be on the Digital Marketplace Snyk page (the tool will not output scan results), and any dependencies with vulnerabilities will be highlighted.

Note

On the free tier we are limited to 100 Docker image scans a month.