Hoe installeer en gebruik Anchore Container Image Security Scanner?

Die Anchore-enjin is ‘n open source-instrument vir die skandering en ontleding van houerprente vir beveiligings kwesbaarhede en beleidskwessies. Dit is beskikbaar as ‘n Docker-houerbeeld wat binne ‘n orkestrasieplatform kan loop, of as ‘n selfstandige installasie.


Dit is ‘n nuttige veiligheidsinstrument wat ontwikkelaars en QA-spanne in staat stel om kwesbaarhede te toets, identifiseer en aan te spreek in die beelde wat hulle gebruik om toepassings te skep.

In hierdie artikel gaan ons kyk hoe om die Anchore-beeldkwesbaarheidsskandeerder te installeer en te gebruik. Oor die algemeen is daar verskillende implementeringsmetodes. Ek sal egter op die volgende twee fokus,

  • Gebruik die AnchoreCLI opdragreëlopsie
  • GUI gebaseer Jenkins Anchore Container Image Scanner plugin.

Ons sal u wys hoe u die enjin kan installeer, instel en begin, die AnchoreCLI-opdraglyninstrument sowel as die Jenkins-inprop kan instel en gebruik. Vir elk van die twee metodes leer u hoe om die prente by te voeg om te skandeer, die skandering uit te voer en verslae te sien.

Aan die einde van die artikel leer u die volgende drie dinge.

  • Die installering en konfigurasie van die Anchore-enjin
  • Installeer, instel en gebruik AnchoreCLI
  • Opstel en gebruik Anchore Container Image Scanner Plugin in Jenkins

voorvereistes

Die volgende is die vereistes vir hierdie tutoriaal;

  • ‘N Plaaslike of virtuele masjien met Ubuntu 18.04 en die volgende;
  • Docker
  • Docker-komponeer
  • Jenkins Geïnstalleer en hardloop
  • sudo gebruiker

Stap 1: – Stel die werkgidse op en laai die konfigurasielêers af.

Skep ‘n werkgids vir u Anchore-lêers. Binne die gids skep u twee subgidse, een vir die konfigurasie en een vir die databasis.

Skep ‘n tuisgids vir die Anchore-lêers

mkdir anker

Gaan na die nuwe gids en skep die konfigurasie- en databasis-subgidse.

CD anker

mkdir opstel

mkdir db

Laai die konfigurasielêers af

Sodra die mappe gereed is, sal ons twee konfigurasielêers (docker-compose.yaml en config.yaml) van die Github-projek aflaai.

Om die docker-compose.yaml af te laai

Gaan na die anker tuisgids en gebruik die opdrag

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

Laai die config.yaml dan af na die ~ / anchore / config-gids

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

Die config.yaml-lêer is ‘n konfigurasielêer met die basiese instellings wat die ankerenjindiens benodig om uit te voer. Dit bevat verskillende parameters, insluitend die standaard, logvlak, luisterpoort, gebruikersnaam, wagwoord en ander wat u kan aanpas om aan spesifieke vereistes te voldoen.

Dit is ‘n goeie veiligheidspraktyk om die wagwoord te verander, en u kan dit doen deur die config.yaml-lêer te redigeer. In hierdie tutoriaal gebruik ons ​​egter die standaardinstellings.

Gaan voort om met die standaardbewyse (gebruikersnaam – admin en wagwoord – foobar) voort te gaan stap 2.

Veranderingsbewyse van Anchore Engine (opsioneel)

Gebruik die opdrag in die ankergids

nano ~ / anchore / config / config.yaml

Soek die gebruikersnaam (admin) en wagwoord (foobar) en verander na u voorkeurwaardes.

Press cTRL + X, dan Y om te red en uit te gaan.

Met die werkgidse en konfigurasielêers op die plek, is die stelsel gereed vir die installering van die Anchore Engine.

Stap 2: – Installeer en begin die Anchore Engine

U sal die Docker-kompos gebruik om die Anchore Engine en databasis te installeer en te begin.

Begin van die anker-tuisgids.

docker-komponeer up -d

Dit sal die Anchore-beeld outomaties trek en dan die Anchore-enjin en databasis in die tuis- en ~ / anchore / database / directories skep. Na voltooiing sal die opdrag die Anchore-enjin begin.

Nadat u die ankerenjin suksesvol geïnstalleer en begin het, kan u die prente nou skandeer met behulp van die ankeropdragreël AnchoreCLI. U moet egter eers die AnchoreCLI-opdragreëlprogram installeer, soos hieronder getoon.

Installeer, stel AnchoreCLI op

In hierdie stap leer u hoe u die AnchoreCLI opdragreëlinstrument.

Stap 3: – Installeer AnchoreCLI

In hierdie handleiding installeer ons eers die python-pip-nut, wat dan gebruik word om die AnchoreCLI van die bron af.

Om Python pip te installeer. Vir die Anchore-tuisgids en hardloop

sudo apt-get update
sudo apt-get installeer python-pip
sudo pip install – opgradeer installeerders

Installeer die AnchoreCLI met behulp van python-pip

pip installeer anker

Hierdie opdrag sal die lêers vir die AnchoreCLI aflaai en installeer. Na die installasie moet ons ons .profiel-lêer na die opdrag gebruik

bron ~ / .profiel

Gebruik die opdrag om te verifieer of die installasie suksesvol is en die weergawe van die Anchorecli

anker-cli -versie

Gebruik die opdrag om anker-CLI-stelselstatus te kontroleer

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

Let daarop dat u die URL, gebruikersnaam en wagwoord van die Anchore-enjin moet deurgee.

Definieer Anchore Engine-parameters

Die AnchoreCLI sal standaard probeer om toegang te verkry tot die Anchore Engine sonder verifikasie. Dit sal egter nie werk nie, en u moet die instruksies van die Anchore Engine voorsien van elke opdrag.

Dit behels die versending van die gebruikersnaam, wagwoord en URL-parameters by elke Anchore CLI-opdrag. In plaas daarvan om dit telkens te voorsien, is die alternatief om dit as omgewingsveranderlikes in die volgende formaat te definieer.

Voer uit om die URL te slaag

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Dit definieer die Anchore Engine-URL tesame met die poort 8228 wat dit gebruik.

Stel die gebruikersnaam en wagwoord in met behulp van die standaardwaardes; anders vervang hulle met die nuwe waardes waarin u ingestel het Stap 1.

ANCHORE_CLI_USER = admin

ANCHORE_CLI_PASS = foobar

Bogenoemde stel die parameters slegs vir die huidige dop. Om die huidige dop en ander prosesse wat daaruit begin, in te stel, gebruik ons ​​die uitvoeropdrag

voer ANCHORE_CLI_URL uit

voer ANCHORE_CLI_USER uit

voer ANCHORE_CLI_PASS uit

Met die parameters wat gedefinieër is, is die AchoreCLI-opstelling voltooi en is u gereed om beelde te skandeer.

Stap 4: – Prente byvoeg en ontleed

Noudat die Anchore Engine aan die gang is en CLI gekonfigureer is, sal u leer hoe om die beelde by te voeg en te ontleed vir veiligheidskwessies. In hierdie handleiding gaan ons twee beelde ontleed. -openjdk: 8-jre-alpien met kwesbaarhede en debian: nuutste sonder .

Ontleed beelde

Om voort te gaan, moet ons eers die prente by die enjin voeg. Om die prente by te voeg

anchore-cli-beeld voeg openjdk: 8-jre-alpine toe

Voeg stabiele beelddebian by: nuutste

anchore-cli-afbeelding voeg docker.io/library/debian:latest by

Voeg nog prente by

anchore-cli-beeld voeg openjdk toe: 10-jdk

anchore-cli-beeld voeg openjdk toe: 11-jdk

Nadat ‘n beeld by die Anchore Engine gevoeg is, begin die ontleding onmiddellik. As daar verskeie gelaaide beelde is, word dit in ‘n ry gesit en een vir een geanaliseer. U kan die vordering nagaan en die lys van gelaaide beelde saam met hul analise-status sien.

Voer die opdrag uit om die lys te sien

anchore-cli-beeldlys

uitset

[Email protected]: ~ / veranker $ anchore-cli-beeldlys
Status vir volledige analise van digest-analise
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analyzed
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analyzed

Afhangend van die aantal beelde, grootte en tyd wat verloop het nadat u dit bygevoeg het, sal u ontleed word vir die volledige, die ontleding van diegene wat aan die gang is en nie ontleed word vir die beelde wat in die ry staan ​​nie..

Stap 5: – Herwin en bekyk ontledingsresultate

Sodra die ontleding voltooi is, kan u die resultate nagaan en die resultate sien vir die kwesbaarheidskanderings, beleidsondersoeke en ander probleme wat die enjin geïdentifiseer het.

Om resultate vir die kwesbaarheidskandering op openjdk te kontroleer: ‘n kwesbare beeld van 8 gre-alpine

Run

anchore-cli beeld vuln openjdk: 8-jre-alpien alles

uitset

[Email protected]: ~ / anchore $ anchore-cli image vuln openjdk: 8-jre-alpien alles
Kwesbaarheid IDPakket Ernstigheidsvermoë CVE verwys na kwesbaarheid URL
CVE-2018-1000654 libtasn1-4.13-r0 Hoog 4.14-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000654
CVE-2019-12900 libbz2-1.0.6-r6 Hoog 1.0.6-r7 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12900
CVE-2019-14697 musl-1.1.20-r4 Hoog 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 Hoog 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

Die verslag toon die CVE-identifiseerder, die kwesbare pakket, die erns daarvan en of daar ‘n oplossing is of nie. Vir ons beeld openjdk: 8-jre-alpien, toon die ontleding dat dit vyf hoë kwesbaarhede het en ‘n hele aantal medium en verwaarloosbare kwesbaarhede. (sommige word nie hierbo getoon nie).

Om kwesbaarheidsresultate vir ‘n stabiele beelddebian te sien: nuutste

Voer die opdrag uit

anchore-cli-beeld vuln docker.io/library/debian: die beste

uitset

[Email protected]: ~ / anchore $ anchore-cli image vuln debian: nuutste alles
Kwesbaarheid IDPakket Ernstigheidsvermoë CVE-verwysings-kwesbaarheid-URL
CVE-2005-2541 tar-1.30 + dfsg-6 weglaatbaar Geen https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 weglaatbaar Geen https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 weglaatbaar Geen https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 weglaatbaar Geen https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 weglaatbaar Geen https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 weglaatbaar Geen https://security-tracker.debian.org/tracker/CVE-2019-1010024

Soos uit die verslag gesien kan word, het die beelddiaan: nuutste weglaatbare kwesbaarhede en geen regstellings nie.

Om die beleidsevalueringsresultate vir die onstabiele beeld openjdk te sien: 8-jre-alpien

run

anchore-cli evalueer check openjdk: 8-jre-alpine

Afvoer – Die resultate toon ‘n mislukking

[Email protected]: ~ / anchore $ anchore-cli evalueer check openjdk: 8-jre-alpine
Beeldvertering: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Volle tag: docker.io/openjdk:8-jre-alpine
Status: misluk
Laaste evaluering: 2019-09-20T12: 03: 32Z
Beleids-ID: 2c53a13c-1765-11e8-82ef-23527761d060

Die prent openjdk: 8-jre-alpine oortree die gespesifiseerde beleids-ID (beleid-ID: 2c53a13c-1765-11e8-82ef-23527761d060) en gee dus ‘n mislukte status.

Noudat ons gesien het hoe die Anchore Engine reageer nadat hy ‘n beleidskending opgemerk het, is dit tyd om te kyk of dit met ons stabiele beelddebian optree: nuutste.

Beleidsondersoek vir debian: nuutste stabiele beeld

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

[Email protected]: ~ / anchore $ anchore-cli evalueer check docker.io/library/debian:latest – detail
Beeldvertering: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Volle tag: docker.io/library/debian:latest
Beeld ID: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Status: slaag
Laaste evaluering: 2019-09-20T12: 00: 06Z
Beleids-ID: 2c53a13c-1765-11e8-82ef-23527761d060
Finale aksie: waarsku
Finale aksie Rede: beleidevaluering
Gate TriggerDetail-status
dokerfileinstruksie Dockerfile richtlijn ‘HEALTHCHECK’ nie gevind nie, wat ooreenstem met die toestand ‘not_exists’ checkwarn

Die resultate toon ‘n slaagstatus en ‘n finale aksie van waarskuwing as gevolg van onvoldoende inligting met ‘n Dockerfile-richtlijn. Dit misluk nie, maar dit kan vereis dat die probleem nagegaan en aangespreek word.

Die instel en gebruik van Anchore Container Image Scanner Plugin in Jenkins

Stap 6: – Voeg die Anchore Container Image Scanner Plugin in Jenkins by en konfigureer dit

In hierdie stap sal ons die Anchor Engine met die Jenkins-bediener integreer. Jenkins is ‘n java-gebaseerde open source-bediener vir die outomatisering van ‘n wye reeks herhalende take in die sagteware-ontwikkelingsiklus..

Die Anker-inprop is beskikbaar in Jenkins, maar is nie standaard geïnstalleer nie.

Teken in met Jenkins met ‘n webblaaier

http: // your_server_ip_or_domain: 8080

Voer die gebruikersnaam en wagwoord in.

Gaan na Jenkins spyskaart

Soek en kies Bestuur Jenkins

Gaan na Bestuur inproppe

Op die Beskikbare oortjie, blaai af na Bou gereedskap en kies die Anker-houer-beeldskandeerder

Klik op die Installeer sonder herbegin opsie.

Na die suksesvolle installasie van die Anchore Container Image Scanner-inprop, die volgende stap is om die geloofsbriewe te konfigureer.

Gaan na die Jenkins kies en kies die Bestuur Jenkins blad.

oop Stel stelsel op.

Soek die Ankeropstelling.

Kies Enjin af

Gaan in die Anchore-enjin besonderhede (die enjin-URL, gebruikersnaam en wagwoord en poort 8228 – die standaardpoort vir die enjin).

URL – http: // your_server_IP: 8228 / v1

Voer die gebruikersnaam = admin in
Voer die Wagwoord = foobar of nuwe wagwoord in as u dit in verander het Stap 3 (Bo)

Klik Save

Stel Anchore-inprop op

Stap 8: – Prente byvoeg en skandeer

Klik Nuwe item in die Jenkins Dashboard aan die linkerkant van die linkerkant

Dit sal ‘n skerm met verskeie opsies oopmaak.
Tik die gewenste naam vir u toetsprojek in die veld Voer die naam van die item in.

In hierdie projek gebruik ons ​​die Pipeline build.
Kies die pyplyn en klik ok.

U is nou gereed om die beelde te skandeer. In ons geval sal ons beelde gebruik wat reeds in die dockerregister beskikbaar is deur die Anchore-enjin.

Om dit te doen, voeg u die pyplynskrip by wat die beeld om te skandeer spesifiseer.

Stap 9: – Voeg pyplynskrip by

Rollees af na die gedeelte Pyplyn en voeg die skrif by om die prentjie wat u wil skandeer, te spesifiseer. Ons sal begin met die openjdk: 8-jre-alpine wat ‘n paar kwesbaarhede bevat.

node {
def imageLine = ‘openjdk: 8-jre-alpine’
writeFile-lêer: ‘anchore_images’, teks: imageLine ‘
ankernaam: ‘anker_beeld’
}

Klik Save

Stap 10: – Begin die opbou en hersien die skanderingverslae

Van die Jenkins-spyskaart

Klik Bou nou

Dit sal begin met die bouproses, wat ‘n paar minute neem, afhangende van die beeldgrootte. Na voltooiing sal ‘n nommer en ‘n gekleurde knoppie onder die Build History verskyn. Dit sal ‘n rooi kleur hê vir Fail of Blue for Pass. As u op die knoppie klik, sal u meer resultate toon.

Stap 11: – Hersien die resultate

Klik op Bou # om meer besonderhede te sien
Dit open ‘n Konsole-uitset venster wat dui op ‘n mislukking – Anchore-verslag (FAIL)

Die gedetailleerde verslae dui aan of die ontleding misluk of slaag, en bevat verskeie verslae wat die kwesbaarhede, waarskuwings en ander wys op grond van die konfigurasie. Die inprop is standaard ingestel om ‘n opbou te misluk (stop) wanneer daar kwesbaarhede is. Hieronder is die skermkiekies van die beleid- en sekuriteitsverslae.

Oorsig oor die evaluering van beleid oor anker

Hieronder is ‘n skermkiekie van die Veiligheidsresultate vir die kwesbare beeld.

Algemene lys van kwesbaarhede en blootstellings (CVE)

As ons nou ‘n stabiele beeld, debian: nuutste, sonder kwesbaarhede skandeer, kry ons die resultate hieronder.

Oorsig oor evaluering van ankerbeleid (slaag)

Algemene lys oor kwesbaarhede en blootstellings (CVE) Slaag 

Afsluiting

Die Anchore Container Image Scanner is ‘n kragtige instrument vir die ontleding van afbeeldings wat ‘n wye verskeidenheid kwesbaarhede en beleidskwessies in Docker-beelde identifiseer. Dit het baie aanpassingsopsies en kan opgestel word om te reageer op die opsporing van probleme tydens die ontleding. Een daarvan is om die konstruksie te verbreek as die enjin ‘n ernstige kwesbaarheid ervaar.

As u op soek is na u loopbaan in DevSecOps, kan u dit ondersoek Udemy-kursus.

Tags:

  • Oop bron

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