Cum se instalează și se utilizează scanerul de securitate a imaginii Anchore Container?

Motor de ancorare este un instrument open-source pentru scanarea și analizarea imaginilor containerului pentru vulnerabilitățile de securitate și problemele de politică. Este disponibil ca o imagine a containerului Docker care poate fi rulat în cadrul unei platforme de orchestrare sau ca o instalație autonomă.


Acesta este un instrument de securitate util care permite dezvoltatorilor și echipelor de QA să testeze, să identifice și să abordeze vulnerabilitățile din imaginile pe care le folosesc pentru a crea aplicații.

În acest articol, vom analiza modul de instalare și utilizare a scanerului de vulnerabilitate a imaginii Anchore. În general, există mai multe metode de implementare. Totuși, mă voi concentra pe următoarele două,

  • Folosind AnchoreCLI opțiune de linie de comandă
  • GUI bazat Scaner Jenkins Anchore Container Image conecteaza.

Vă vom arăta cum să instalați, configurați și porniți motorul, configurați și utilizați instrumentul pentru linia de comandă AnchoreCLI, precum și pluginul Jenkins. Pentru fiecare dintre cele două metode, veți învăța cum să adăugați imaginile de scanat, să efectuați scanarea și să vizualizați rapoarte.

La sfârșitul articolului, veți afla următoarele trei lucruri.

  • Instalarea și configurarea Motor de ancorare
  • Instalarea, configurarea și utilizarea AnchoreCLI
  • Configurarea și utilizarea Pluginul scanerului de imagine pentru ancorare în Jenkins

Cerințe preliminare

Următoarele sunt cerințele pentru acest tutorial;

  • O mașină locală sau virtuală cu Ubuntu 18.04 și următoarele;
  • Docher
  • Docker-scriere
  • Jenkins Instalat și rulat
  • utilizator sudo

Pasul 1: – Configurați directoarele de lucru și descărcați fișierele de configurare.

Creați un director de lucru pentru fișierele dvs. Anchore. În acel director, veți crea două subdirectoare, unul pentru configurație și unul pentru baza de date.

Creați un director de acasă pentru fișierele Anchore

ancorare mkdir

Accesați noul director și creați subdirectoriile de configurare și baza de date.

cd ancora

mkdir config

mkdir db

Descărcați fișierele de configurare

Odată ce directoarele sunt gata, vom descărca două fișiere de configurare (docker-compose.yaml și config.yaml) din proiectul Github.

Pentru a descărca docker-compose.yaml

Accesați directorul home ancora și utilizați comanda

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

Apoi descărcați config.yaml în directorul ~ / anchore / config

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

Fișierul config.yaml este un fișier de configurare cu setările de bază pe care serviciul de motor ancora trebuie să fie rulat. Are mai mulți parametri, incluzând implicit, nivelul de jurnal, portul de ascultare, numele de utilizator, parola și altele pe care le puteți ajusta pentru a îndeplini cerințele specifice.

Este o practică bună de securitate pentru a schimba parola și puteți face acest lucru prin editarea fișierului config.yaml. Cu toate acestea, în acest tutorial, vom folosi setările implicite.

Pentru a continua cu datele de identificare implicite, (nume de utilizator – admin și parolă – foobar), continuați la pasul 2.

Schimbarea certificatelor Anchore Engine (opțional)

Din directorul ancora se folosește comanda

nano ~ / anchore / config / config.yaml

Localizați numele de utilizator (admin) și parola (foobar) și schimbați-vă la valorile preferate.

presa CTRL + X, apoi Y pentru a salva și a ieși.

Cu directoarele de lucru și fișierele de configurare în loc, sistemul este gata pentru instalarea Anchore Engine.

Pasul 2: – Instalați și porniți motorul Anchore

Veți folosi compoziția Docker pentru a instala și porni baza de date Anchore Engine și baza de date.

Din directorul principal de ancorare, executați.

docker-compune -d

Aceasta va trage automat imaginea Anchore și apoi va crea motorul Anchore și baza de date în directorii de acasă și respectiv / / anchore / database / database. După finalizare, comanda va porni motorul Anchore.

După instalarea cu succes și pornirea motorului de ancorare, puteți acum să scanați imaginile folosind linia de comandă ancora AnchoreCLI. Cu toate acestea, trebuie mai întâi să instalați utilitatea liniei de comandă AnchoreCLI, după cum se arată mai jos.

Instalarea, configurarea AnchoreCLI

În acest pas, veți afla cum să instalați și să configurați AnchoreCLI instrument de linie de comandă.

Pasul 3: – Instalați AnchoreCLI

În acest tutorial, vom instala mai întâi utilitatea python-pip, care va fi folosită pentru instalarea AnchoreCLI de la sursă.

Pentru a instala Python pip. Pentru directorul de acasă Anchore și rulați

Actualizare sudo apt-get
sudo apt-get install python-pip
sudo pip install –upgrade setuptools

Instalați dispozitivul AnchoreCLI folosind python-pip

pip instala anchorecli

Această comandă va descărca și instala fișierele pentru AnchoreCLI. După instalare, acum trebuie să furnizăm fișierul nostru .profil pentru a utiliza comanda

sursa ~ / .profil

Pentru a verifica dacă instalarea are succes și versiunea Anchorecli, utilizați comanda

anchore-cli –versiune

Pentru a verifica starea sistemului anchore-CLI, utilizați comanda

anchore-cli –url http: // localhost: 8228 / v1 –u admin – starea sistemului foobar

Vă rugăm să rețineți că trebuie să treceți adresa URL a motorului, numele de utilizator și parola pentru Anchore.

Definiți parametrii Anchore Engine

În mod implicit, AnchoreCLI va încerca să acceseze motorul Anchore fără autentificare. Totuși, acest lucru nu va funcționa și trebuie să furnizați certificatele Anchore Engine cu fiecare comandă.

Aceasta implică trecerea numelui de utilizator, a parolei și a parametrilor URL cu fiecare comandă Anchore CLI. În loc să le furnizați de fiecare dată, alternativa este să le definiți ca variabile de mediu în formatul următor.

Pentru a trece adresa URL, executați

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Aceasta definește URL-ul Anchore Engine împreună cu portul 8228, pe care îl folosește.

Setați numele de utilizator și parola folosind valorile implicite; în caz contrar, înlocuiți-le cu valorile noi setate Pasul 1.

ANCHORE_CLI_USER = admin

ANCHORE_CLI_PASS = foobar

Cele de mai sus setează parametrii doar pentru shell-ul curent. Pentru a seta shell-ul curent și alte procese care pornesc de la acesta, folosim comanda export

exportați ANCHORE_CLI_URL

exportați ANCHORE_CLI_USER

exportați ANCHORE_CLI_PASS

Cu parametrii definiți, configurarea AchoreCLI este completă și sunteți gata să scanați imagini.

Pasul 4: – Adăugarea și analiza imaginilor

După ce avem Anchore Engine în funcțiune și CLI configurat, veți afla cum să adăugați și să analizați imaginile pentru probleme de securitate. În acest tutorial, vom analiza două imagini. -openjdk: 8-jre-alpine cu vulnerabilități și debian: cel mai recent fără .

Analiza imaginilor

Pentru a continua, trebuie mai întâi să adăugăm imaginile la motor. Pentru a adăuga imaginile

imaginea anchore-cli adaugă openjdk: 8-jre-alpine

Adăugați o imagine stabilă debian: cea mai recentă

imaginea anchore-cli adaugă docker.io/library/debian:latest

Adăugați mai multe imagini

imaginea anchore-cli adaugă openjdk: 10-jdk

imaginea anchore-cli adaugă openjdk: 11-jdk

După adăugarea unei imagini la Anchore Engine, analiza începe imediat. Dacă există mai multe imagini încărcate, acestea sunt puse într-o coadă și analizate pe rând. Puteți verifica progresul și puteți vedea lista imaginilor încărcate împreună cu starea analizei lor.

Pentru a vedea lista, executați comanda

lista de imagini anchore-cli

producție

[Email protected]: ~ / anchore $ anchore-cli listă de imagini
Stare completă a analizei digestiei imaginii etichetelor complete
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analizat
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analizat

În funcție de numărul de imagini, dimensiunea și timpul scurs după adăugarea lor, veți fi analizate pentru cele complete, analizând pentru cele în curs și nu analizate pentru imaginile în coadă.

Pasul 5: – Recuperați și vizualizați rezultatele analizei

După ce analiza este completă, puteți verifica rezultatele și puteți vedea rezultatele pentru scanările de vulnerabilitate, verificările de politici și alte probleme pe care le-a identificat motorul..

Pentru a verifica rezultatele scanării vulnerabilității pe openjdk: 8-jre-alpine imagine vulnerabilă

Alerga

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

producție

[Email protected]: ~ / anchore $ anchore-cli image vuln openjdk: 8-jre-alpine all
Vulnerabilitate IDPackage Severity Fix CVE Refs vulnerabilitate URL
CVE-2018-1000654 libtasn1-4.13-r0 Înalt 4.14-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000654
CVE-2019-12900 libbz2-1.0.6-r6 High 1.0.6-r7 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12900
CVE-2019-14697 musl-1.1.20-r4 Înalt 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 High 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 High 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 Mediu 1.5.3-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14498

Raportul arată identificatorul CVE, pachetul vulnerabil, gravitatea și dacă există o rezolvare sau nu. Pentru imaginea noastră openjdk: 8-jre-alpine, analiza arată că are cinci vulnerabilități ridicate și destul de multe vulnerabilități medii și neglijabile. (unele nu sunt arătate mai sus).

Pentru a vizualiza rezultatele vulnerabilităților pentru un debian de imagine stabil: cel mai recent

Rulați comanda

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

producție

[Email protected]: ~ / anchore $ anchore-cli image vuln debian: all recent
Vulnerabilitate IDPackage Severity Fix CVE RefsVulnerability URL
CVE-2005-2541 tar-1.30 + dfsg-6 Neglijabil Niciuna https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 Neglijabil Nici unul https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 Neglijabil Niciuna https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 Neglijabil Niciunul https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 Neglijabil Niciuna https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 Neglijabil Niciuna https://security-tracker.debian.org/tracker/CVE-2019-1010024

După cum se poate observa din raport, imaginea debian: cea mai recentă are vulnerabilități neglijabile și nu are corecții.

Pentru a vedea rezultatele evaluării politicii pentru imaginea instabilă openjdk: 8-jre-alpine

alerga

anchore-cli evaluați check openjdk: 8-jre-alpine

Rezultat – Rezultatele arată un eșec

[Email protected]: ~ / anchore $ anchore-cli evaluați check openjdk: 8-jre-alpine
Imagine Digest: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Tag complet: docker.io/openjdk:8-jre-alpine
Stare: eșuează
Last Eval: 2019-09-20T12: 03: 32Z
ID politică: 2c53a13c-1765-11e8-82ef-23527761d060

Imaginea openjdk: 8-jre-alpine încalcă ID-ul de politică specificat (ID-ul politicii: 2c53a13c-1765-11e8-82ef-23527761d060) și, prin urmare, returnează o stare de eroare.

Acum, când am văzut cum reacționează motorul Anchore după detectarea unei încălcări a politicii, este timpul să verificăm cum se comportă cu debianul nostru de imagine stabilă: cea mai recentă.

Verificare politică pentru debian: ultima imagine stabilă

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

[Email protected]: ~ / anchore $ anchore-cli evalua check docker.io/library/debian:latest –detail
Imagine Digest: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Tag complet: docker.io/library/debian:latest
ID-ul imaginii: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Stare: trece
Last Eval: 2019-09-20T12: 00: 06Z
ID politică: 2c53a13c-1765-11e8-82ef-23527761d060
Acțiune finală: avertizați
Motivul final al acțiunii: evaluarea politicii
Poarta TriggerDetail Status
DockerfileinstructionDirectiva „HEALTHCHECK” nu a fost găsită, respectând condiția „not_exists” checkwarn

Rezultatele arată o stare de trecere și o acțiune finală de avertizare din cauza nepotrivirii informațiilor cu o directivă Dockerfile. Acest lucru nu reușește, dar poate necesita verificarea și soluționarea problemei.

Configurarea și utilizarea pluginului scanerului de imagine Anchore Container în Jenkins

Pasul 6: – Adăugați și configurați pluginul pentru scanerul de imagine Anchore Container din Jenkins

În acest pas, vom integra motorul Anchor cu serverul Jenkins. Jenkins este un server open-source bazat pe java pentru automatizarea unei game largi de sarcini repetitive în ciclul de dezvoltare a software-ului.

Plug-ul Anchore este disponibil în Jenkins, dar nu este instalat implicit.

Conectați-vă la Jenkins folosind un browser web

http: // your_server_ip_or_domain: 8080

Introduceți numele de utilizator și parola.

Mergi la Menkins Jenkins

Localizați și selectați Gestionează Jenkins

Mergi la Gestionați pluginurile

Pe Fila disponibilă, derulați în jos spre Instrumente de construire și selectați tasta Scaner de ancorare a containerului

Apasă pe Instalați fără repornire opțiune.

După instalarea cu succes a Pluginul Scanerului de Ancorare Container, următorul pas este să configurați datele de acreditare.

Du-te la Jenkins meniu și selectați Gestionează Jenkins fila.

Deschis Configurați sistemul.

Localizați Configurarea ancorei.

Selectați Modul motor

Introduceți Motor de ancorare detalii (adresa URL a motorului, numele de utilizator și parola și portul 8228 – portul implicit pentru motor).

URL – http: // your_server_IP: 8228 / v1

Introdu numele de utilizator = admin
Introduceți parola = foobar sau parola nouă dacă ați modificat-o Pasul 3 (de mai sus)

Clic Salvați

Configurați pluginul Anchore

Pasul 8: – Adăugarea și scanarea imaginilor

Clic Element nou la tabloul de bord Jenkins din meniul din stânga sus

Aceasta va deschide un ecran cu mai multe opțiuni.
Tastați numele dorit pentru proiectul dvs. de test în câmpul Introduceți numele articolului.

În acest proiect, vom folosi construcția conductelor.
Selectează Pipeline și faceți clic pe O.K.

Acum sunteți gata să scanați imaginile. În cazul nostru, vom folosi imagini care există deja în registrul docker care este accesibil de către Motor de ancorare.

Pentru a face acest lucru, veți adăuga scriptul conductei care va specifica imaginea de scanat.

Pasul 9: – Adăugați scriptul conductei

Derulați în jos la secțiunea Pipeline și adăugați scriptul pentru a specifica imaginea de scanat. Vom începe cu openjdk: 8-jre-alpine care conține unele vulnerabilități.

nod {
def imageLine = ‘openjdk: 8-jre-alpine’`
Fișier writeFile: ‘ancore_images’, text: imageLine`
nume ancoră: „imagini de ancorare”
}

Clic Salvați

Pasul 10: – Rulați compilarea și examinați rapoartele de scanare

Din meniul Jenkins

Clic Construiți acum

Acest lucru va începe procesul de construire, care durează câteva minute în funcție de dimensiunea imaginii. După finalizare, un număr și un buton colorat vor apărea în Istoricul de construire. Aceasta va avea o culoare roșie pentru Fail sau Blue pentru Pass. Dacă faceți clic pe buton, veți afișa mai multe rezultate.

Pasul 11: – Rezultate recenzii

Click pe Construi # pentru a vizualiza mai multe detalii
Aceasta deschide a Ieșirea consolei fereastră care indică o defecțiune – Raport Anchore (FAIL)

Rapoartele detaliate indică dacă analiza a fost un eșec sau un permis și furnizează mai multe rapoarte care arată vulnerabilitățile, avertismentele și altele bazate pe configurație. În mod implicit, pluginul este configurat pentru a eșua o compilare (Stop) ori de câte ori există vulnerabilități. Mai jos sunt capturi de ecran pentru rapoartele de politică și securitate.

Rezumatul evaluării politicii de ancorare

Mai jos este o captură de ecran a rezultatelor de securitate pentru imaginea vulnerabilă.

Lista vulnerabilităților și expunerilor comune (CVE)

Dacă acum scanăm o imagine stabilă, debian: cea mai recentă, fără vulnerabilități, obținem rezultatele de mai jos.

Rezumatul evaluării politicii de ancorare

Pass-list de vulnerabilități și expuneri comune (CVE) 

Concluzie

Anchore Container Image Scanner este un instrument puternic de analiză a imaginilor care identifică o gamă largă de vulnerabilități și probleme de politică din imaginile Docker. Are multe opțiuni de personalizare și poate fi configurat pentru a răspunde la detectarea problemelor în timpul analizei. Unul dintre acestea este de a sparge construirea atunci când motorul întâmpină o vulnerabilitate severă.

Dacă doriți să vă construiți cariera în DevSecOps, verificați acest lucru Curs Udemy.

ETICHETE:

  • Sursa deschisa

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