Com instal·lar i utilitzar un escàner de seguretat d’imatges del contenidor Anchore?

El Motor d’ancoratge és una eina de codi obert per a analitzar i analitzar imatges de contenidors per a problemes de vulnerabilitat i de seguretat. Està disponible com a imatge del contenidor Docker que es pot executar dins d’una plataforma d’orquestració o com a instal·lació autònoma.


Aquesta és una eina de seguretat útil que permet als desenvolupadors i equips de QA provar, identificar i abordar les vulnerabilitats de les imatges que utilitzen per crear aplicacions.

En aquest article, veurem com instal·lar i utilitzar l ‘escàner de vulnerabilitat de la imatge Anchore. Generalment, hi ha diversos mètodes d’implementació. Tot i així, em centraré en els dos següents,

  • Utilitzant el AnchoreCLI opció de la línia de comandes
  • GUI basada Escàner d’imatges de contenidors de Jenkins Anchore connectar.

Us mostrarem com instal·lar, configurar i engegar el motor, configurar i utilitzar l’eina de línia d’ordres AnchoreCLI, així com el connector de Jenkins. Per a cadascun dels dos mètodes, aprendràs a afegir les imatges per escanejar, realitzar la exploració i veure els informes.

Al final de l’article, aprendràs les tres coses següents.

  • Instal·lació i configuració Motor d’ancoratge
  • Instal·lació, configuració i ús AnchoreCLI
  • Configuració i ús Complement de l’escàner d’imatge del contenidor d’ancoratge a Jenkins

Prerequisits

A continuació es presenten els requisits per a aquest tutorial;

  • Una màquina local o virtual amb Ubuntu 18.04 i les següents;
  • Atracador
  • Docker-composar
  • Jenkins Instal·lat i en funcionament
  • usuari sudo

Pas 1: configureu els directoris de treball i descarregueu els fitxers de configuració.

Creeu un directori de treball per als fitxers Anchore. Dins aquest directori, creareu dos subdirectoris, un per a la configuració i un altre per a la base de dades.

Creeu un directori propi per als fitxers Anchore

mkdir àncora

Vés al directori nou i crea els subdirectoris de configuració i base de dades.

cd ancoratge

mkdir config

mkdir db

Baixeu els fitxers de configuració

Un cop els directoris estiguin preparats, descarregarem dos fitxers de configuració (docker-compose.yaml i config.yaml) del projecte Github.

Per descarregar el docker-compose.yaml

Vés al directori principal d’ancoratge i utilitza l’ordre

curl https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/docker-compose.yaml > docker-compose.yaml

A continuació, descarregueu el config.yaml al directori ~ / anchore / config

curl https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/config.yaml -o ~ / anchore / config / config.yaml

El fitxer config.yaml és un fitxer de configuració amb la configuració bàsica que cal executar el servei del motor d’ancoratge. Té diversos paràmetres, inclosos els valors predeterminats, nivell de registre, port d’escolta, nom d’usuari, contrasenya i altres que podeu ajustar per complir els requisits específics.

És una bona pràctica de seguretat canviar la contrasenya i podeu fer-ho editant el fitxer config.yaml. Tanmateix, en aquest tutorial, utilitzarem la configuració predeterminada.

Per continuar amb les credencials per defecte, (nom d’usuari – administrador i contrasenya – foobar), continueu a pas 2.

Canvi de les credencials del motor Anchore (opcional)

Des del directori d’ancoratge, utilitzeu l’ordre

nano ~ / anchore / config / config.yaml

Localitzeu el nom d’usuari (administrador) i la contrasenya (foobar) i canvieu als vostres valors preferits.

Premsa CTRL + X, aleshores I per guardar i sortir.

Amb els directoris de treball i els fitxers de configuració al seu lloc, el sistema està a punt per a la instal·lació del motor d’ancoratge.

Pas 2: – Instal·leu i inicieu el motor d’ancoratge

Utilitzeu la composició Docker per instal·lar i iniciar la base de dades i el motor d’Anchore.

Des del directori d’ancoratge, executeu.

docker-compondre -d

Açò tirarà automàticament a la imatge Anchore i, a continuació, crearà el motor i la base de dades Anchore a la llar i ~ / anchore / database / directoris respectivament. Un cop finalitzada, la comanda iniciarà el motor Anchore.

Després d’instal·lar i engegar correctament el motor d’ancoratge, ara podeu escanejar les imatges mitjançant la línia d’ordres d’ancoratge AnchoreCLI. Tot i això, primer necessiteu instal·lar la utilitat de la línia de comandes AnchoreCLI, tal com es mostra a continuació.

Instal·lació, configuració d’AnchoreCLI

En aquest pas, aprendràs a instal·lar i configurar AnchoreCLI eina de línia de comandes.

Pas 3: – Instal·leu AnchoreCLI

En aquest tutorial, primer instal·larem la utilitat python-pip, que després utilitzarà per instal·lar la AnchoreCLI des de la font.

Per instal·lar Python pip. Per accedir al directori inicial d’Anchore i executar-lo

Actualització sudo apt-get
sudo apt-get install python-pip
sudo pip install –upgrade setuptools

Instal·leu el AnchoreCLI fent servir python-pip

pip instal anchorecli

Aquesta ordre descarregarà i instal·larà els fitxers per a AnchoreCLI. Després de la instal·lació, ara hem de fer servir el nostre fitxer .profile per fer servir la comanda

font ~ / .profil

Per verificar si la instal·lació té èxit i la versió de l’Anchorecli, utilitzeu la comanda

àncora-cli –versió

Per comprovar l’estat del sistema anchore-CLI, utilitzeu la comanda

anchore-cli –url http: // localhost: 8228 / v1 –u admin – estat del sistema foobar

Tingueu en compte que heu de passar l’URL, el nom d’usuari i la contrasenya del motor d’ancoratge.

Definiu els paràmetres del motor d’ancoratge

De manera predeterminada, l’AnchoreCLI intentarà accedir al motor Anchore sense autenticació. Tot i això, això no funcionarà i heu de proporcionar les credencials del motor Anchore amb totes les ordres.

Això implica passar el nom d’usuari, la contrasenya i els paràmetres d’URL amb cada comanda Anchore CLI. En lloc de proporcionar-los cada vegada, l’alternativa és definir-los com a variables ambientals en el format següent.

Per passar l’URL, executeu

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Això defineix l’URL del motor d’Anchore juntament amb el port 8228 que utilitza.

Definiu el nom d’usuari i la contrasenya mitjançant els valors predeterminats; en cas contrari, substituïu-los pels nous valors que vau definir Pas 1.

ANCHORE_CLI_USER = administrador

ANCHORE_CLI_PASS = foobar

L’anterior estableix els paràmetres només per al shell actual. Per configurar el shell actual i altres processos que s’inicien a partir d’aquest, utilitzem la comanda export

exporta ANCHORE_CLI_URL

exporta ANCHORE_CLI_USER

exporta ANCHORE_CLI_PASS

Amb els paràmetres definits, la configuració de AchoreCLI està completa i ja esteu preparat per escanejar imatges.

Pas 4: – Afegint i analitzant imatges

Ara que tenim el motor Anchore en funcionament i la configuració de la CLI, aprendràs a afegir i analitzar les imatges per problemes de seguretat. En aquest tutorial, analitzarem dues imatges. -openjdk: 8-jre-alpine amb vulnerabilitats i debian: més recent sense .

Anàlisi d’imatges

Per continuar, primer hem d’afegir les imatges al motor. Per afegir les imatges

imatge de anchore-cli afegeix openjdk: 8-jre-alpine

Afegiu una imatge estable debian: més recent

afegeix-cli imatge afegeix docker.io/library/debian:latest

Afegiu més imatges

imatge per ancorar-cli afegir openjdk: 10-jdk

imatge per ancorar-cli afegir openjdk: 11-jdk

Després d’afegir una imatge al motor Anchore, l’anàlisi s’inicia immediatament. Si hi ha diverses imatges carregades, es posen en una cua i s’analitzen una a la vegada. Podeu comprovar el progrés i veure la llista d’imatges carregades juntament amb l’estat de l’anàlisi.

Per veure la llista, executeu la comanda

llista d’imatges anchore-cli

Sortida

[correu electrònic protegit]: ~ / anchore $ llista anchore-cli d’imatges
Estat de l’anàlisi de la imatge digital completa de l’etiqueta
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analitzat
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analitzat

Segons el nombre d’imatges, la mida i el temps transcorregut després d’afegir-les, obtindreu una anàlisi de les completes, analitzant les en curs i no analitzades per a les imatges de cua..

Pas 5: – Recupereu i visualitzeu els resultats de l’anàlisi

Un cop finalitzada l’anàlisi, podeu consultar els resultats i veure els resultats per a les exploracions de vulnerabilitat, les comprovacions de polítiques i altres problemes que el motor ha identificat..

Per comprovar els resultats de l’exploració de la vulnerabilitat a openjdk: imatge vulnerable de 8-jre-alpine

Correr

imatge anchore-cli vuln openjdk: 8-jre-alpine all

Sortida

[correu electrònic protegit]: ~ / image anchore $ anchore-cli vuln openjdk: 8-jre-alpine all
Vulnerabilitat IDPackage Severity Fix CVE Refs URL de vulnerabilitat
CVE-2018-1000654 libtasn1-4.13-r0 Alt 4.14-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000654
CVE-2019-12900 libbz2-1.0.6-r6 Alt 1.0.6-r7 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12900
CVE-2019-14697 musl-1.1.20-r4 Alt 1.1.20-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14697
CVE-2019-14697 musl-utils-1.1.20-r4 Alt 1.1.20-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14697
CVE-2019-8457 sqlite-libs-3.26.0-r3 Alt 3.28.0-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-8457
CVE-2018-14498 libjpeg-turbo-1.5.3-r4 Mitjà 1.5.3-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14498

L’informe mostra l’identificador CVE, el paquet vulnerable, la gravetat i si hi ha una correcció o no. Per a la nostra imatge openjdk: 8-jre-alpine, l’anàlisi mostra que presenta cinc vulnerabilitats altes i un nombre elevat de vulnerabilitats mitjanes i insignificants. (algunes no mostrades anteriorment).

Per veure els resultats de les vulnerabilitats per a un debian d’imatges estable: més recent

Executeu la comanda

imatge anchore-cli vuln docker.io/library/debian:latest all

Sortida

[correu electrònic protegit]: ~ / anchore $ anchore-cli imatge vuln debian: tot el més recent
Vulnerabilitat IDPackage Severity Fix CVE RefsVulnerability URL
CVE-2005-2541 tar-1.30 + dfsg-6 Negociable Cap https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 Negociable Cap https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 Negociable Cap https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 Negociable Cap https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 Negociable Cap https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 Negociable Cap https://security-tracker.debian.org/tracker/CVE-2019-1010024

Com es pot observar a l’informe, la imatge debian: recent té vulnerabilitats insignificants i no té solucions.

Per veure els resultats de l’avaluació de la política per a la imatge inestable openjdk: 8-jre-alpine

correr

anchore-cli avaluació check openjdk: 8-jre-alpine

Resultat: els resultats mostren un error

[correu electrònic protegit]: ~ / anchore $ anchore-cli avaluació check openjdk: 8-jre-alpine
Imatge Digest: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Etiqueta completa: docker.io/openjdk:8-jre-alpine
Estat: falla
Last Eval: 2019-09-20T12: 03: 32Z
Identificador de la política: 2c53a13c-1765-11e8-82ef-23527761d060

La imatge openjdk: 8-jre-alpine viola l’ID de política especificada (ID de política: 2c53a13c-1765-11e8-82ef-23527761d060) i per tant retorna un estat de fallada.

Ara que hem vist com respon l’Anchore Engine després de detectar una violació de política, és hora de comprovar si es comporta amb la nostra imatge estable de debian: recent.

Comprovació de la política de debian: última imatge estable

anchore-cli avalua check docker.io/library/debian:latest –detail

[correu electrònic protegit]: ~ / anchore $ anchore-cli evaluar check docker.io/library/debian:latest –detail
Image Digest: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Etiqueta completa: docker.io/library/debian:latest
Identificador de la imatge: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Estat: passar
Last Eval: 2019-09-20T12: 00: 06Z
Identificador de la política: 2c53a13c-1765-11e8-82ef-23527761d060
Acció final: advertir
Motiu de l’acció final: avaluació de la política
Estat de disparador de la porta del detall
Dockerfileinstruction No s’ha trobat la directiva “HEALTHCHECK” de la directiva de fitxers que coincideix amb la condició de checkwarn de “not_exists”

Els resultats mostren un estat de passada i una acció final d’avís a causa de la no concordança d’informació amb una directiva Dockerfile. Això no falla, però pot requerir la comprovació i el problema.

Configuració i ús del complement de l’escàner d’imatge del contenidor Anchore a Jenkins

Pas 6: – Afegiu i configureu el connector d’escàner d’imatges del contenidor d’anchore a Jenkins

En aquest pas, integrarem l’Anchor Engine amb el servidor de Jenkins. Jenkins és un servidor de codi obert basat en java per automatitzar una àmplia gamma de tasques repetitives del cicle de desenvolupament de programari.

El Complement d’ancoratge està disponible a Jenkins però no està instal·lat de manera predeterminada.

Inicieu la sessió a Jenkins mitjançant un navegador web

http: // your_server_ip_or_domain: 8080

Introduïu el nom d’usuari i la contrasenya.

Anar a Menkins de Jenkins

Localitza i selecciona Gestiona Jenkins

Anar a Gestiona els complements

A la web Pestanya disponible, desplaceu-vos cap a baix Eines de creació i seleccioneu el botó Escàner d’imatges del contenidor d’ancoratge

Feu clic a la tecla Instal·leu sense reiniciar opció.

Després de la instal·lació amb èxit de l ‘instal·lador Complement de l’escàner d’imatge del contenidor de l’anchore, el següent pas és configurar les credencials.

Anar a la Jenkins i seleccioneu el menú Gestiona Jenkins fitxa.

Obert Configura el sistema.

Localitzeu el fitxer Configuració d’ancoratge.

Selecciona Mode del motor

Introduïu el directori Motor d’ancoratge detalls (URL del motor, nom d’usuari i contrasenya i port 8228 – el port predeterminat del motor).

URL – http: // your_server_IP: 8228 / v1

Introduïu el nom d’usuari = administrador
Introduïu la contrasenya = foobar o contrasenya nova si l’heu canviat Pas 3 (a sobre)

Feu clic a Desa

Configura el connector d’ancoratge

Pas 8: – Afegir i escanejar imatges

Feu clic a Element nou al tauler de taula Jenkins al menú superior esquerre

Això obrirà una pantalla amb diverses opcions.
Escriviu el nom desitjat per al vostre projecte de prova al camp Introduïu el nom de l’element.

En aquest projecte, utilitzarem la versió Pipeline.
Seleccioneu el botó Oleoducte i feu clic D’acord.

Ara esteu preparat per escanejar les imatges. En el nostre cas, utilitzarem imatges que ja estiguin al registre docker a les quals sigui accessible Motor d’ancoratge.

Per fer-ho, afegirà la seqüència de comandes que especificarà la imatge a analitzar.

Pas 9: – Afegiu script de pipeline

Desplaceu-vos cap a la secció Pipeline i afegiu-hi la seqüència de comandes per especificar la imatge a escanejar. Començarem per l’opció openjdk: 8-jre-alpine que conté algunes vulnerabilitats.

node {
def imageLine = ‘openjdk: 8-jre-alpine’`
Fitxer writeFile: ‘ancore_images’, text: imageLine`
nom d’ancoratge: “àncora_imatges”
}

Feu clic a Desa

Pas 10: – Executeu la creació i reviseu els informes d’escaneig

Al menú de Jenkins

Feu clic a Construeix ara

D’aquesta manera s’iniciarà el procés de creació, que dura uns minuts en funció de la mida de la imatge. Un cop finalitzat, apareixerà un número i un botó de color a l’Historial de creació. Això tindrà un color vermell per a Fallar o Blau per passar. Fent clic al botó apareixerà més resultats.

Pas 11: – Revisar els resultats

Fer clic a Construir # per veure més detalls
Això obre una Sortida de la consola finestra que indica un error – Informe d’ancoratge (FAIL)

Els informes detallats indiquen si l’anàlisi ha estat un error o una passada i proporcionen diversos informes que mostren les vulnerabilitats, avisos i altres en funció de la configuració. De manera predeterminada, el connector està configurat per fallar una creació (Atura) sempre que hi hagi vulnerabilitats. A continuació es mostren les captures de pantalla dels informes de política i seguretat.

Resum de l’avaluació de la política d’ancoratge

A continuació, es mostra una captura de pantalla dels resultats de seguretat de la imatge vulnerable.

Llista de vulnerabilitats i exposicions comunes (CVE)

Si ara escanejem una imatge estable, debian: la més recent, sense vulnerabilitats, obtenim els resultats a continuació.

Resum de l’avaluació de la política d’ancoratge (Pass)

Passat de la llista de vulnerabilitats i exposicions comunes (CVE) 

Conclusió

L’Anchore Container Image Scanner és una potent eina d’anàlisi d’imatges que identifica una àmplia gamma de vulnerabilitats i problemes de polítiques a les imatges de Docker. Té moltes opcions de personalització i es pot configurar sobre com respondre quan es detectin problemes durant l’anàlisi. Un d’aquests és trencar la acumulació quan el motor té una greu vulnerabilitat.

Si voleu crear la vostra carrera a DevSecOps, mireu-ho Curs Udemy.

Tags:

  • Codi obert

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map