Para escanear en busca de vulnerabilidades en imágenes y contenedores docker, podemos usar la herramienta Clair, de CoreOS, para ello, usaremos lo siguientes comandos para su despliegue.
Creamos la red, para los escaneos
docker network create scanning
Descargamos la última base de vulnerabilidades disponible y ejecutamos el contenedor
docker run -p 5432:5432 -d --net=scanning --name db arminc/clair-db:$(date -d "yesterday" '+%Y-%m-%d') ; sleep 10
Descargamos la imagen y ejecutamos el contenedor del scan
docker run -p 6060:6060 --net=scanning --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 ; sleep 10
Nos conectamos al registry local (en nuestro caso Harbor)
docker login -u usuario -p password ip_del_registry
Le indicamos a docker que arranque el contenedor del scan, escanee la imagen del contenedor tomcat7war del registry y nos muestre el informe
docker run --net=scanning --rm --name=scanner --link=clair:clair \
-v '/var/run/docker.sock:/var/run/docker.sock' \
objectiflibre/clair-scanner --clair="http://ip_del_docker:6060" \
--ip="scanner" -t Medium ip_harbor/imagenes/tomcat7war:v1
Borramos los contenedores de scan y la BDD
docker rm -vf db clair
Borramos las imágenes de scan y BDD
docker image ls | grep 'arminc' | xargs docker rmi
Borramos la red de scan
docker network rm scanning
Podemos programar estos comandos con Jenkins, programando un nuevo job e introduciendo los comandos tal como se indica a continuación:
Un comentario