It’s very likely that you are using a Docker container image for cloud native application. In which case, you’re probably also worry for possible security vulnerabilities in your base image.
As part of my daily work (I work for IBM), I use the IBM Bluemix Container Registry service. This service offers a Vulnerability Advisor which can let you know if there are any identified vulnerabilities in the image and also offer a detailed report. Nice.
I decided to create a Jenkins job that will check daily for such issues.
Here it is.
Note: since this is part of an IBM Bluemix service, use of the Bluemix CLI and Container Registry plug-in is required.
#!groovy
pipeline {
stages {
stage ("Check for vulnerability") {
environment {
JENKINSBOT = credentials('${JENKINSBOT_USERNAME_PASSWORD}')
}
steps {
script {
// Login to Bluemix and the Bluemix Container Registry
sh '''
bx login -a ... -c ... -u $JENKINSBOT_USR -p $JENKINSBOT_PSW
bx target -r ...
bx cr login
'''
// Check for image vulnerability
isVulnerable = sh(script: "bx cr images --format '{{if and (eq .Repository \"registry.ng.bluemix.net/certmgmt_dev/node\") (eq .Tag \"6-alpine\")}}{{eq .Vulnerable \"Vulnerable\"}}{{end}}'", returnStatus: true)
if (isVulnerable == 1) {
slackSend (
channel: "...",
color: "#F01717",
message: "@iadar *Vulnberability Checker*: base image vulnerability detected! Run the following for a detailed report: ```bx cr va registry-name/my-namespace/node:6-alpine```"
)
}
}
}
}
}
}