How to Install and use Anchore Container Image Security Scanner?

De Anchore Engine is een open-source software voor het scannen en analyseren van containerafbeeldingen op beveiligingsproblemen en beleidskwesties. Het is beschikbaar als een Docker-containerimage die binnen een orkestratieplatform kan worden uitgevoerd, of als een zelfstandige installatie.

Dit is een handige beveiligingstool waarmee ontwikkelaars en QA-teams kwetsbaarheden kunnen testen, identificeren en aanpakken in de afbeeldingen die ze gebruiken om applicaties te maken.

In dit artikel bekijken we hoe u de Anchore-scanner voor kwetsbaarheden voor afbeeldingen installeert en gebruikt. Over het algemeen zijn er verschillende implementatiemethoden. Ik zal me echter concentreren op de volgende twee,

  • De … gebruiken AnchoreCLI opdrachtregel optie
  • GUI gebaseerd Jenkins Anchore containerbeeldscanner inpluggen.

We laten u zien hoe u de engine installeert, configureert en begin, en hoe u de AnchoreCLI-opdrachtregeltool en de Jenkins-plug-in configureert en gebruikt. Voor elk van de twee methoden leert u hoe u de te scannen afbeeldingen kunt toevoegen, de scan kunt uitvoeren en rapporten kunt bekijken.

Aan het einde van het artikel leert u de volgende drie dingen.

  • Het installeren en configureren van de Anchore-motor
  • Installeren, configureren en gebruiken AnchoreCLI
  • Configureren en gebruiken Anchore Container Picture Scanner-plug-in in Jenkins

Vereisten

Dit zijn de vereisten voor deze zelfstudie;

  • Een lokale of virtuele machine met Ubuntu 18.04 en het volgende;
  • Dokwerker
  • Docker-composeren
  • Jenkins Geïnstalleerd en actief
  • sudo-gebruiker

Stap 1: Stel de werkmappen in en obtain de configuratiebestanden.

Maak een werkmap voor uw Anchore-bestanden. Binnen die listing maakt u twee subdirectories, één voor de configuratie en één voor de database.

Maak een thuismap voor de Anchore-bestanden

mkdir anchore

Ga naar de nieuwe map en maak de configuratie- en database-submappen aan.

cd anchore

mkdir config

mkdir db

Obtain de configuratiebestanden

Zodra de mappen klaar zijn, zullen we twee configuratiebestanden downloaden (docker-compose.yaml En config.yaml) van het Github-project.

Om de te downloaden docker-compose.yaml

Ga naar de homedirectory van Anchore en gebruik de opdracht

curl https://uncooked.githubusercontent.com/anchore/anchore-engine/grasp/scripts/docker-compose/docker-compose.yaml > docker-compose.yaml

Obtain vervolgens de config.yaml naar de ~/anchore/config map

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

De config.yaml bestand is een configuratiebestand met de basisinstellingen die de Anchore Engine-service nodig heeft om te worden uitgevoerd. Het heeft verschillende parameters, waaronder de standaard, logniveau, luisterpoort, gebruikersnaam, wachtwoord en andere die u kunt aanpassen om aan specifieke vereisten te voldoen.

Het is een goede beveiligingspraktijk om het wachtwoord te wijzigen en u kunt dit doen door het config.yaml bestand. In deze zelfstudie gebruiken we echter de standaardinstellingen.

Om door te gaan met de standaard inloggegevens, (username – beheerder en password – foobar), ga verder naar stap 2.

Anchore Engine-referenties wijzigen (optioneel)

Gebruik vanuit de anchore-directory de opdracht

nano ~/anchore/config/config.yaml

Zoek de gebruikersnaam (admin) en het wachtwoord (foobar) en wijzig deze naar uw voorkeurswaarden.

druk op CTRL + XDan Y om op te slaan en af ​​te sluiten.

Met de werkdirectories en configuratiebestanden is het systeem klaar voor de installatie van de Anchore Engine.

Stap 2: — Installeer en begin de Anchore Engine

Je gebruikt de Docker compose om de Anchore Engine en database te installeren en te starten.

Voer vanuit de homedirectory van anchore.

docker-compose up -d

Dit zal automatisch de Anchore-afbeelding ophalen en vervolgens de Anchore-engine en database maken in respectievelijk de home- en ~/anchore/database/-directory’s. Na voltooiing begin de opdracht de Anchore-engine.

Na het succesvol installeren en starten van de anchore-engine, kunt u nu de afbeeldingen scannen met behulp van de anchore-opdrachtregel AnchoreCLI. U moet echter eerst het opdrachtregelhulpprogramma AnchoreCLI installeren, zoals hieronder weergegeven.

AnchoreCLI installeren, configureren

In deze stap leert u hoe u het AnchoreCLI opdrachtregelprogramma.

Stap 3: — Installeer AnchoreCLI

In deze zelfstudie zullen we eerst het hulpprogramma python-pip installeren, dat vervolgens zal worden gebruikt om het AnchoreCLI van de bron.

Om Python pip te installeren. Ga naar de basismap van Anchore en voer het uit

sudo apt-get replace
sudo apt-get set up python-pip
sudo pip set up --upgrade setuptools

Installeer de AnchoreCLI met behulp van python-pip

pip set up anchorecli

Met deze opdracht worden de bestanden voor de AnchoreCLI gedownload en geïnstalleerd. Na de installatie moeten we nu ons .profile-bestand gebruiken om de opdracht te gebruiken

supply ~/.profile

Om te controleren of de installatie succesvol is en de versie van het Anchorecligebruik de opdracht

anchore-cli --version

Gebruik de opdracht om de systeemstatus van Anchore-CLI te controleren

anchore-cli --url http://localhost:8228/v1 --u admin --p foobar system standing

Houd er rekening mee dat u de Anchore-engine-URL, gebruikersnaam en wachtwoord moet doorgeven.

Definieer Anchore Engine-parameters

Standaard zal de AnchoreCLI proberen toegang te krijgen tot de Anchore Engine zonder authenticatie. Dit zal echter niet werken en u moet bij elke opdracht de Anchore Engine-referenties opgeven.

Dit omvat het doorgeven van de gebruikersnaam, het wachtwoord en de URL-parameters bij elke Anchore CLI-opdracht. In plaats van deze elke keer weer te geven, is het alternatief om ze te definiëren als omgevingsvariabelen in het volgende formaat.

Voer uit om de URL door te geven

ANCHORE_CLI_URL=http://localhost:8228/v1

Dit definieert de URL van de Anchore Engine samen met de poort 8228 die wordt gebruikt.

Stel de gebruikersnaam en het wachtwoord in met de standaardwaarden; vervang ze anders door de nieuwe waarden die u hebt ingesteld Stap 1.

ANCHORE_CLI_USER=admin

ANCHORE_CLI_PASS=foobar

Het bovenstaande stelt alleen de parameters in voor de huidige shell. Om de huidige shell en andere processen die ermee beginnen in te stellen, gebruiken we de opdracht exporteren

export ANCHORE_CLI_URL

export ANCHORE_CLI_USER

export ANCHORE_CLI_PASS

Met de gedefinieerde parameters is de AchoreCLI-installatie voltooid en bent u klaar om afbeeldingen te scannen.

Stap 4: — Afbeeldingen toevoegen en analyseren

Nu we de Anchore Engine hebben uitgevoerd en CLI hebben geconfigureerd, leert u hoe u de afbeeldingen kunt toevoegen en analyseren op beveiligingsproblemen. In deze zelfstudie analyseren we twee afbeeldingen. -openjdk:8-jre-alpine met kwetsbaarheden en debian:newest with out .

Analyseren van beelden

Om verder te gaan, moeten we eerst de afbeeldingen aan de engine toevoegen. Om de afbeeldingen toe te voegen

anchore-cli picture add openjdk:8-jre-alpine

Stabiel beeld toevoegen debian:newest

anchore-cli picture add docker.io/library/debian:newest

Voeg meer afbeeldingen toe

anchore-cli picture add openjdk:10-jdk

anchore-cli picture add openjdk:11-jdk

Na het toevoegen van een afbeelding aan de Anchore Engine begin de analyse direct. Als er meerdere geladen afbeeldingen zijn, worden deze in een wachtrij geplaatst en één voor één geanalyseerd. U kunt de voortgang controleren en de lijst met geladen afbeeldingen bekijken, samen met hun analysestatus.

Voer de opdracht uit om de lijst te zien

anchore-cli picture checklist  

Uitgang

user1@Imagescan:~/anchore$ anchore-cli picture checklist
Full Tag                   Picture Digest                Evaluation Standing
docker.io/openjdk:10-jdk     sha256:923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256:9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analyzed
docker.io/openjdk:8-jre-alpine   sha256:b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analyzed

Afhankelijk van het aantal afbeeldingen, de grootte en de verstreken tijd nadat u ze hebt toegevoegd, wordt u geanalyseerd voor de volledige afbeeldingen, voor de lopende afbeeldingen en niet voor de afbeeldingen in de wachtrij.

Stap 5: — Analyseresultaten ophalen en bekijken

Zodra de analyse is voltooid, kunt u de resultaten controleren en de resultaten bekijken voor de kwetsbaarheidsscans, beleidscontroles en andere problemen die de engine heeft geïdentificeerd.

Om de resultaten voor de kwetsbaarheidsscan aan te zetten openjdk:8-jre-alpine kwetsbaar beeld

Loop

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

Uitgang

user1@Imagescan:~/anchore$ anchore-cli picture vuln openjdk:8-jre-alpine all
Vulnerability    IDPackage             Severity  Repair        CVE Refs Vulnerability URL
CVE-2018-1000654 libtasn1-4.13-r0        Excessive    4.14-r0      http://cve.mitre.org/cgi-bin/cvename.cgi?identify=CVE-2018-1000654
CVE-2019-12900   libbz2-1.0.6-r6         Excessive    1.0.6-r7     http://cve.mitre.org/cgi-bin/cvename.cgi?identify=CVE-2019-12900
CVE-2019-14697   musl-1.1.20-r4          Excessive    1.1.20-r5    http://cve.mitre.org/cgi-bin/cvename.cgi?identify=CVE-2019-14697
CVE-2019-14697   musl-utils-1.1.20-r4    Excessive    1.1.20-r5    http://cve.mitre.org/cgi-bin/cvename.cgi?identify=CVE-2019-14697
CVE-2019-8457    sqlite-libs-3.26.0-r3   Excessive    3.28.0-r0    http://cve.mitre.org/cgi-bin/cvename.cgi?identify=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?identify=CVE-2018-14498

Het rapport toont de CVE-identificatie, het kwetsbare pakket, de ernst en of er een oplossing is of niet. Voor onze afbeelding openjdk:8-jre-alpine laat de analyse zien dat het vijf hoge kwetsbaarheden heeft en een behoorlijk aantal middelgrote en verwaarloosbare kwetsbaarheden. (sommige niet hierboven weergegeven).

Resultaten van kwetsbaarheden bekijken voor een stabiel beeld debian:newest

Voer de opdracht uit

anchore-cli picture vuln docker.io/library/debian:newest all

Uitgang

user1@Imagescan:~/anchore$ anchore-cli picture vuln debian:newest all
Vulnerability  IDPackage         Severity   Repair   CVE RefsVulnerability URL
CVE-2005-2541   tar-1.30+dfsg-6  Negligible None  https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 Negligible None  https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10    Negligible None  https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 Negligible None  https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10    Negligible None  https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 Negligible None  https://security-tracker.debian.org/tracker/CVE-2019-1010024

Zoals uit het rapport blijkt, heeft de afbeelding debian:newest verwaarloosbare kwetsbaarheden en geen oplossingen.

De resultaten van de beleidsevaluatie voor de instabiele afbeelding bekijken openjdk:8-jre-alpine

loop

anchore-cli consider verify openjdk:8-jre-alpine

Uitvoer – De resultaten laten een mislukking zien

user1@Imagescan:~/anchore$ anchore-cli consider verify openjdk:8-jre-alpine
Picture Digest: sha256:b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Full Tag: docker.io/openjdk:8-jre-alpine
Standing: fail
Final Eval: 2019-09-20T12:03:32Z
Coverage ID: 2c53a13c-1765-11e8-82ef-23527761d060

De afbeelding openjdk:8-jre-alpine schendt de opgegeven beleids-ID (Coverage ID: 2c53a13c-1765-11e8-82ef-23527761d060) en retourneert daarom de standing Mislukt.

Nu we hebben gezien hoe de Anchore-engine reageert na het detecteren van een beleidsschending, is het tijd om te controleren hoe deze zich gedraagt ​​met onze stabiele afbeelding debian:newest.

Beleidscontrole voor debian:newest stabiel beeld

anchore-cli consider verify docker.io/library/debian:newest --detail

user1@Imagescan:~/anchore$ anchore-cli consider verify docker.io/library/debian:newest --detail
Picture Digest: sha256:d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Full Tag: docker.io/library/debian:newest
Picture ID: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Standing: cross
Final Eval: 2019-09-20T12:00:06Z
Coverage ID: 2c53a13c-1765-11e8-82ef-23527761d060
Last Motion: warn
Last Motion Cause: policy_evaluation
Gate  TriggerDetail Standing
dockerfileinstructionDockerfile directive 'HEALTHCHECK' not discovered, matching situation 'not_exists' checkwarn

De resultaten tonen een Move standing en een laatste actie van Warn omdat informatie niet overeenkomt met een Dockerfile-richtlijn. Dit mislukt niet, maar het kan nodig zijn om het probleem te controleren en aan te pakken.

De plug-in Anchore Container Picture Scanner configureren en gebruiken in Jenkins

Stap 6:— Voeg de Anchore Container Picture Scanner-plug-in toe en configureer deze in Jenkins

In deze stap gaan we de Anchor Engine integreren met de Jenkins-server. Jenkins is een op Java gebaseerde open-sourceserver voor het automatiseren van een groot aantal repetitieve taken in de softwareontwikkelingscyclus.

De Anchore-plug-in is beschikbaar in Jenkins maar wordt niet standaard geïnstalleerd.

Meld u aan bij Jenkins met een webbrowser

http://your_server_ip_or_domain:8080

Voer de username En password.

Ga naar Jenkins-menu

Zoek en selecteer Jenkins beheren

Ga naar Plug-ins beheren

Op de Beschikbaar tabbladscrol omlaag naar Hulpmiddelen bouwen en selecteer de Anchore containerbeeldscanner

Klik op de Installeer zonder opnieuw op te starten keuze.

Na de succesvolle installatie van de Anchore Container Picture Scanner-plug-inis de volgende stap het configureren van de inloggegevens.

Ga naar de Jenkins menu en selecteer de Jenkins beheren tabblad.

Open Systeem configureren.

Zoek de Anchore-configuratie.

Selecteer Engine-modus

Voer de Anchore-motor particulars (de motor URL, username En passwordEn port 8228 – de standaardpoort voor de motor).

URL- http://your_server_IP:8228/v1

Voer de username = beheerder
Voer de Password = foobar of nieuw wachtwoord als je het hebt gewijzigd Stap 3 (boven)

Klik Redden

Configureer de Anchore-plug-in

Stap 8:— Afbeeldingen toevoegen en scannen

Klik Nieuw merchandise bij de Jenkins-dashboard in het menu linksboven

Dit opent een scherm met verschillende opties.
Typ de gewenste naam voor uw testproject in het veld Voer de itemnaam in.

In dit challenge gebruiken we de Pipeline-build.
Selecteer de Pijpleiding en klik OK.

U bent nu klaar om de afbeeldingen te scannen. In ons geval zullen we afbeeldingen gebruiken die al in het docker-register staan ​​en toegankelijk zijn voor de Anchore-motor.

Om dit te doen, voegt u het pijplijnscript toe dat de te scannen afbeelding specificeert.

Stap 9:— Pijplijnscript toevoegen

Scrol omlaag naar het gedeelte Pijplijn en voeg het script toe om de afbeelding op te geven die moet worden gescand. We beginnen met de openjdk:8-jre-alpine die enkele kwetsbaarheden bevat.

node {
def imageLine = 'openjdk:8-jre-alpine'`
writeFile file: 'anchore_images', textual content: imageLine`
anchore identify: 'anchore_images'`
}

Klik Redden

Stap 10: Voer de construct uit en bekijk de scanrapporten

Van het Jenkins-menu

Klik Bouw nu

Hiermee wordt het bouwproces gestart, dat enkele minuten duurt, afhankelijk van de afbeeldingsgrootte. Na voltooiing verschijnen een cijfer en een gekleurde knop onder de bouwgeschiedenis. Deze heeft een rode kleur voor Gezakt of Blauw voor Geslaagd. Als u op de knop klikt, worden meer resultaten weergegeven.

Stap 11:— Bekijk de resultaten

Klik op bouwen # om meer particulars te bekijken
Dit opent een Console-uitvoer venster dat een storing aangeeft – Anchore-rapport (FAIL)

De gedetailleerde rapporten geven aan of de analyse een mislukte of geslaagde analyse was en bieden verschillende rapporten met de kwetsbaarheden, waarschuwingen en andere op foundation van de configuratie. De plug-in is standaard geconfigureerd om een ​​construct te mislukken (Cease) wanneer er kwetsbaarheden zijn. Hieronder staan ​​de schermafbeeldingen voor de beleids- en beveiligingsrapporten.

Samenvatting beleidsevaluatie Anchore

Hieronder ziet u een screenshot van de beveiligingsresultaten voor de kwetsbare afbeelding.

Lijst met veelvoorkomende kwetsbaarheden en blootstellingen (CVE).

Als we nu een stabiel beeld scannen, debian:newestzonder kwetsbaarheden, krijgen we de onderstaande resultaten.

Samenvatting beleidsevaluatie Anchore (geslaagd)

Lijst met veelvoorkomende kwetsbaarheden en blootstellingen (CVE) Geslaagd

Conclusie

De Anchore Container Picture Scanner is een krachtige software voor beeldanalyse die een breed scala aan kwetsbaarheden en beleidskwesties in Docker-images identificeert. Het heeft veel aanpassingsopties en kan worden geconfigureerd om te reageren op het detecteren van problemen tijdens de analyse. Een daarvan is om de construct te breken wanneer de engine een ernstige kwetsbaarheid tegenkomt.

Als je je carrière in DevSecOps wilt opbouwen, bekijk dan deze Udemy-cursus.

Leave a Comment

porno izle altyazılı porno porno