Hvordan installere og bruke Anchore Container Image Security Scanner?

De Anchore Engine er et åpen kildekodeverktøy for skanning og analyse av containerbilder for sikkerhetsproblemer og policyproblemer. Det er tilgjengelig som et Docker-containerbilde som kan kjøres innenfor en orkestrasjonsplattform, eller som en frittstående installasjon.


Dette er et nyttig sikkerhetsverktøy som gjør det mulig for utviklere og QA-team å teste, identifisere og adressere sårbarheter i bildene de bruker for å lage applikasjoner.

I denne artikkelen skal vi se på hvordan du installerer og bruker Anchore-bildesårbarhetsskanneren. Generelt er det flere implementeringsmetoder. Imidlertid vil jeg fokusere på de følgende to,

  • Bruker AnchoreCLI kommandolinjealternativ
  • GUI-basert Jenkins Anchore Container Image Scanner plugg inn.

Vi vil vise deg hvordan du installerer, konfigurerer og starter motoren, konfigurerer og bruker AnchoreCLI-kommandolinjeværktøyet samt Jenkins-plugin. For hver av de to metodene lærer du hvordan du legger til bildene du vil skanne, utfører skanningen og viser rapporter.

På slutten av artikkelen lærer du følgende tre ting.

  • Installere og konfigurere Anchore Engine
  • Installere, konfigurere og bruke AnchoreCLI
  • Konfigurere og bruke Anchore Container Image Scanner Plugin i Jenkins

Forutsetninger

Følgende er kravene til denne opplæringen;

  • En lokal eller virtuell maskin med Ubuntu 18.04 og følgende;
  • Docker
  • Docker-komponere
  • Jenkins Installert og kjørt
  • sudo bruker

Trinn 1: – Sett opp arbeidskatalogene og last ned konfigurasjonsfilene.

Lag en arbeidskatalog for Anchore-filene dine. I den katalogen oppretter du to underkataloger, en for konfigurasjonen og en for databasen.

Lag en hjemmekatalog for Anchore-filene

mkdir anker

Gå til den nye katalogen og opprett underkataloger for konfigurasjon og database.

CD ankre

mkdir config

mkdir db

Last ned konfigurasjonsfilene

Når katalogene er klare, vil vi laste ned to konfigurasjonsfiler (docker-compose.yaml og config.yaml) fra Github-prosjektet.

For å laste ned docker-compose.yaml

Gå til forankringens hjemmekatalog og bruk kommandoen

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

Last ned deretter config.yaml til katalogen ~ / anchore / config

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

Config.yaml-filen er en konfigurasjonsfil med de grunnleggende innstillingene som forankringsmotortjenesten krever for å kjøre. Den har flere parametere, inkludert standard, loggenivå, lytteport, brukernavn, passord og andre som du kan justere for å oppfylle spesifikke krav.

Det er en god sikkerhetspraksis å endre passord, og du kan gjøre dette ved å redigere config.yaml-filen. I denne opplæringen vil vi imidlertid bruke standardinnstillingene.

For å fortsette med standardopplysningene, (brukernavn – administrator og passord – foobar), fortsett til steg 2.

Endre legitimasjon fra Anchore Engine (valgfritt)

Bruk kommandoen fra ankerkatalogen

nano ~ / anchore / config / config.yaml

Finn brukernavnet (admin) og passordet (foobar) og endre til de foretrukne verdiene.

trykk CTRL + X, deretter Y for å lagre og avslutte.

Med de fungerende katalogene og konfigurasjonsfilene på plass, er systemet klart for installasjon av Anchore Engine.

Trinn 2: – Installer og start Anchore Engine

Du vil bruke Docker-komposisjonen til å installere og starte Anchore Engine og databasen.

Kjør fra forankringens hjemmekatalog.

docker-komponere opp -d

Dette vil automatisk trekke Anchore-bildet og deretter opprette Anchore-motoren og databasen i henholdsvis hjemme- og ~ / anchore / database / katalogene. Når den er fullført, vil kommandoen starte Anchore-motoren.

Etter å ha installert og startet ankermotoren, kan du nå skanne bildene ved å bruke kommandolinjen for ankeret AnchoreCLI. Du må imidlertid først installere kommandolinjeprogrammet AnchoreCLI, som vist nedenfor.

Installere, konfigurere AnchoreCLI

I dette trinnet lærer du hvordan du installerer og konfigurerer AnchoreCLI kommandolinjeverktøy.

Trinn 3: – Installer AnchoreCLI

I denne opplæringen installerer vi først python-pip-verktøyet, som deretter vil bruke til å installere AnchoreCLI fra kilden.

Slik installerer du Python pip. For til Anchore hjemmekatalog og kjør

sudo apt-get oppdatering
sudo apt-get install python-pip
sudo pip install – oppgradere installasjoner

Installer AnchoreCLI ved bruk av python-pip

pip installere ankerglede

Denne kommandoen vil laste ned og installere filene for AnchoreCLI. Etter installasjonen må vi nå kildes .profile-filen til å bruke kommandoen

kilde ~ / .profil

Bruk kommandoen for å bekrefte om installasjonen er vellykket og versjonen av Anchorecli

anchore-cli –version

For å sjekke anker-CLI-systemstatus, bruk kommandoen

anchore-cli –url http: // localhost: 8228 / v1 –u admin –p foobar systemstatus

Vær oppmerksom på at du må passere Anchore-motorens URL, brukernavn og passord.

Definer parametere for Anchore Engine

Som standard vil AnchoreCLI forsøke å få tilgang til Anchore Engine uten autentisering. Dette vil imidlertid ikke fungere, og du må gi Anchore Engine-legitimasjon med hver kommando.

Dette innebærer å gi brukernavn, passord og URL-parametere med hver Anchore CLI-kommando. I stedet for å gi disse hver gang, er alternativet å definere dem som miljøvariabler i følgende format.

For å passere URL-en, kjør

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Dette definerer Anchore Engine URL sammen med porten 8228, som den bruker.

Angi brukernavn og passord ved å bruke standardverdiene; Ellers bytter du dem ut med de nye verdiene du angir Trinn 1.

ANCHORE_CLI_USER = admin

ANCHORE_CLI_PASS = foobar

Ovennevnte angir parametrene bare for det nåværende skallet. For å stille inn det nåværende skallet og andre prosesser som starter fra det, bruker vi eksportkommandoen

eksporter ANCHORE_CLI_URL

eksporter ANCHORE_CLI_USER

eksporter ANCHORE_CLI_PASS

Med parametrene definert er AchoreCLI-oppsettet fullført, og du er klar til å skanne bilder.

Trinn 4: – Legge til og analysere bilder

Nå som vi har Anchore Engine kjørt og CLI konfigurert, vil du lære hvordan du legger til og analyserer bildene for sikkerhetsproblemer. I denne opplæringen skal vi analysere to bilder. -openjdk: 8-jre-alpin med sårbarheter og debian: siste uten .

Analysere bilder

For å fortsette, må vi først legge bildene til motoren. For å legge til bildene

anchore-cli-bilde legg til openjdk: 8-jre-alpin

Legg til stabil debian image: siste

anchore-cli-bilde legg til docker.io/library/debian:latest

Legg til flere bilder

anchore-cli-bilde legg til openjdk: 10-jdk

anchore-cli-bilde legg til openjdk: 11-jdk

Etter å ha lagt til et bilde til Anchore Engine, starter analysen umiddelbart. Hvis det er flere lastede bilder, blir de satt i en kø og analysert en om gangen. Du kan sjekke fremdriften og se listen over lastede bilder sammen med analysestatusen.

Kjør kommandoen for å se listen

anchore-cli bildeliste

Produksjon

[Email protected]: ~ / anchore $ anchore-cli bildeliste
Status for full tagging av fordøyelsesanalyse
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analysert
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analyzed

Avhengig av antall bilder, størrelse og tid som er gått etter at du har lagt dem til, vil du bli analysert for de fullstendige, analysere for de pågående og ikke analysert for bildene i kø..

Trinn 5: – Hent og se analyseresultater

Når analysen er fullført, kan du sjekke resultatene og se resultatene for sårbarhetsskanninger, policy-sjekker og andre problemer motoren har identifisert.

Slik kontrollerer du resultatene for sårbarhetsskanningen på openjdk: 8-jre-alpint sårbart bilde

Løpe

anchore-cli image vuln openjdk: 8-jre-alpint alt

Produksjon

[Email protected]: ~ / anchore $ anchore-cli image vuln openjdk: 8-jre-alpine all
Sårbarhets-IDPakke Severity Fix CVE Refs Vulnerability URL
CVE-2018-1000654 libtasn1-4.13-r0 High 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 High 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 Medium 1.5.3-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14498

Rapporten viser CVE-identifikatoren, den sårbare pakken, alvorlighetsgraden og om det er en løsning eller ikke. For vårt image openjdk: 8-jre-alpin, viser analysen at den har fem høye sårbarheter og ganske mange middels og ubetydelige sårbarheter. (noen er ikke vist ovenfor).

For å se sårbarhetsresultater for en stabil image-debian: siste

Kjør kommandoen

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

Produksjon

[Email protected]: ~ / anchore $ anchore-cli image vuln debian: siste alle
Sårbarhets-IDPakke Pakke Alvorlighetsrett CVE RefsVulnerability URL
CVE-2005-2541 tar-1.30 + dfsg-6 Ubetydelig Ingen https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 Ubetydelig Ingen https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 Ubetydelig Ingen https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 Ubetydelig Ingen https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 Ubetydelig Ingen https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 Ubetydelig Ingen https://security-tracker.debian.org/tracker/CVE-2019-1010024

Som det fremgår av rapporten, har image debian: last ubetydelige sårbarheter og ingen rettelser.

For å se resultatene av evalueringen av policyen for det ustabile bildet openjdk: 8-jre-alpine

løpe

anchore-cli evalu sjekk openjdk: 8-jre-alpin

Output – Resultatene viser en mislykket

[Email protected]: ~ / anchore $ anchore-cli evalu sjekk openjdk: 8-jre-alpin
Bilde Digest: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Full tag: docker.io/openjdk:8-jre-alpine
Status: mislykkes
Siste eval: 2019-09-20T12: 03: 32Z
Policy-ID: 2c53a13c-1765-11e8-82ef-23527761d060

Bildet openjdk: 8-jre-alpine bryter den angitte policy-ID (policy-ID: 2c53a13c-1765-11e8-82ef-23527761d060) og returnerer derfor en mislyktesstatus.

Nå som vi har sett hvordan Anchore Engine reagerer etter å ha oppdaget et brudd på retningslinjene, er det på tide å sjekke om hvordan det oppfører seg med vår stabile image debian: siste.

Policy-sjekk for debian: siste stabile bilde

anchore-cli evalu sjekk docker.io/library/debian:latest –detail

[Email protected]: ~ / anchore $ anchore-cli evalu sjekk docker.io/library/debian:latest –detail
Bilde Digest: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Full tag: docker.io/library/debian:latest
Bilde-ID: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Status: bestått
Siste eval: 2019-09-20T12: 00: 06Z
Policy-ID: 2c53a13c-1765-11e8-82ef-23527761d060
Avsluttende handling: advare
Endelig tiltak Årsak: policy_evaluation
Gate TriggerDetail-status
dockerfileinstruksjonDockerfile-direktiv ‘HEALTHCHECK’ ikke funnet, samsvarende betingelse ‘not_exists’ checkwarn

Resultatene viser en passeringsstatus og en slutthandling av advarsel på grunn av misforståelse av informasjon med et Dockerfile-direktiv. Dette mislykkes ikke, men kan kreve å sjekke og løse problemet.

Konfigurere og bruke Anchore Container Image Scanner Plugin i Jenkins

Trinn 6: – Legg til og konfigurer Anchore Container Image Scanner Plugin i Jenkins

I dette trinnet integrerer vi Anchor Engine med Jenkins-serveren. Jenkins er en java-basert open source-server for å automatisere et bredt spekter av repeterende oppgaver i programvareutviklingssyklusen.

De Anchore plugin er tilgjengelig i Jenkins, men ikke installert som standard.

Logg deg på Jenkins ved hjelp av en nettleser

http: // your_server_ip_or_domain: 8080

Skriv inn brukernavn og passord.

Gå til Jenkins-menyen

Finn og velg Administrer Jenkins

Gå til Administrer plugins

Tilgjengelig fane, bla ned til Bygg verktøy og velg Anchore Container Image Scanner

Klikk på Installer uten omstart alternativ.

Etter vellykket installasjon av Anchore Container Image Scanner-plugin, neste trinn er å konfigurere legitimasjonsbeskrivelsen.

Gå til Jenkins og velg Administrer Jenkins tab.

Åpen Konfigurer system.

Finn Anchore-konfigurasjon.

Å velge Motormodus

Skriv inn Anchore Engine detaljer (nettadressen til motoren, brukernavnet og passordet og port 8228 – standardporten for motoren).

URL – http: // your_server_IP: 8228 / v1

Skriv inn brukernavnet = administrator
Skriv inn passordet = foobar eller nytt passord hvis du endret det i Trinn 3 (ovenfor)

Klikk Lagre

Konfigurer Anchore Plugin

Trinn 8: – Legge til og skanne bilder

Klikk Ny gjenstand på Jenkins Dashboard øverst til venstre-menyen

Dette vil åpne en skjerm med flere alternativer.
Skriv inn ønsket navn for testprosjektet i feltet Angi navn på elementet.

I dette prosjektet vil vi bruke Pipeline build.
Velg Pipeline og klikk ok.

Du er nå klar til å skanne bildene. I vårt tilfelle vil vi bruke bilder som allerede er i dockerregisteret som er tilgjengelig for Anchore Engine.

For å gjøre dette, vil du legge til rørledningsskriptet som vil spesifisere bildet som skal skannes.

Trinn 9: – Legg til rørledningskript

Bla ned til rørledningsdelen og legg til skriptet for å spesifisere bildet som skal skannes. Vi starter med openjdk: 8-jre-alpine som inneholder noen sårbarheter.

node {
def imageLine = ‘openjdk: 8-jre-alpine’
writeFile-fil: ‘anchore_images’, tekst: imageLine`
ankernavn: ‘anchore_images’ ‘
}

Klikk Lagre

Trinn 10: – Kjør byggingen og gjennomgå skanningsrapportene

Fra Jenkins-menyen

Klikk Bygg nå

Dette starter byggeprosessen, som tar noen minutter avhengig av bildestørrelse. Etter ferdigstillelse vises et nummer og en farget knapp under Bygghistorikk. Dette vil ha en rød farge for Fail eller Blue for Pass. Hvis du klikker på knappen, vises flere resultater.

Trinn 11: – Gjennomgå resultatene

Klikk på Bygge # for å se flere detaljer
Dette åpner a Konsollutgang vindu som indikerer en feil – Anchore Report (FAIL)

De detaljerte rapportene indikerer om analysen var en mislykket eller et pass, og inneholder flere rapporter som viser sårbarheter, advarsler og andre basert på konfigurasjonen. Som standard er plugin-en konfigurert til å mislykkes i en build (Stoppe) når det er sårbarheter. Nedenfor er skjermdumpene for politikk- og sikkerhetsrapportene.

Anchore Policy Evaluation Sammendrag

Nedenfor er et skjermbilde av sikkerhetsresultatene for det sårbare bildet.

Vanlige liste over sårbarheter og eksponeringer (CVE)

Hvis vi nå skanner et stabilt bilde, debian: latest, uten sårbarheter, får vi resultatene nedenfor.

Anchore Policy Evaluation Summary (Pass)

Common Vulnerabilities and Exposures (CVE) List Pass 

Konklusjon

Anchore Container Image Scanner er et kraftig bildeanalyseverktøy som identifiserer et bredt spekter av sårbarheter og policyproblemer i Docker-bilder. Den har mange tilpasningsalternativer og kan konfigureres for hvordan du skal svare når det oppdages problemer under analysen. Et av disse er å ødelegge konstruksjonen når motoren støter på en alvorlig sårbarhet.

Hvis du ønsker å bygge din karriere i DevSecOps, så sjekk ut dette Udemy-kurs.

TAGS:

  • Åpen kilde

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.

    Adblock
    detector