Kako instalirati i koristiti sigurnosni skener slike spremnika Anchore Container?

Motor za sidrenje je alat otvorenog koda za skeniranje i analizu slika spremnika radi sigurnosnih ranjivosti i problema s pravilima. Dostupan je kao slika Docker kontejnera koja se može izvoditi unutar orkestracijske platforme ili kao samostalna instalacija.


Ovo je koristan sigurnosni alat koji programerima i QA timovima omogućuje testiranje, prepoznavanje i rješavanje ranjivosti na slikama koje koriste za stvaranje aplikacija.

U ovom ćemo članku pogledati kako instalirati i koristiti skener ranjivosti slike Anchore. Postoji općenito nekoliko načina provedbe. Međutim, usredotočit ću se na sljedeća dva,

  • Koristiti AnchoreCLI opcija naredbenog retka
  • Temeljen na GUI-u Skener za slike spremnika Jenkins Anchore uključiti.

Pokazat ćemo vam kako instalirati, konfigurirati i pokrenuti motor, konfigurirati i koristiti alatni redak AnchoreCLI kao i dodatak Jenkins. Za svaku od dvije metode naučit ćete kako dodati slike za skeniranje, izvršiti skeniranje i pregled izvještaja.

Na kraju članka naučit ćete sljedeće tri stvari.

  • Instaliranje i konfiguriranje Motor za sidrenje
  • Instalacija, konfiguracija i uporaba AnchoreCLI
  • Konfiguriranje i uporaba Dodatak za skeniranje slike spremnika za sidrenje u Jenkins

Preduvjeti

Slijede zahtjevi za ovaj tutorial;

  • Lokalni ili virtualni stroj s Ubuntu 18.04 i sljedećim;
  • Lučki radnik
  • Lučki radnik-za novu poruku
  • Jenkins instaliran i pokrenut
  • sudo korisnik

Korak 1: – Postavljanje radnih mapa i preuzimanje konfiguracijskih datoteka.

Stvorite radni direktorij za svoje datoteke sidra. Unutar te mape stvorit ćete dva poddirektorija, jedan za konfiguraciju i jedan za bazu podataka.

Stvorite kućni direktorij za datoteke Anchore

mkdir sidrište

Otvorite novi direktorij i stvorite poddirektoriju konfiguracije i baze podataka.

cd sidro

mkdir config

mkdir db

Preuzmite konfiguracijske datoteke

Nakon što su direktorije spremne, preuzet ćemo dvije konfiguracijske datoteke (docker-compose.yaml i config.yaml) iz Github projekta.

Da biste preuzeli docker-compose.yaml

Otvorite kućni direktorij sidrenja i upotrijebite naredbu

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

Zatim preuzmite config.yaml u direktorij ~ / anchore / config

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

Datoteka config.yaml je konfiguracijska datoteka s osnovnim postavkama koje usluga pokretanja sidra treba pokrenuti. Ima nekoliko parametara, među kojima su zadana razina, razina dnevnika, ulaz za slušanje, korisničko ime, lozinka i drugi koje možete prilagoditi da ispune specifične zahtjeve.

Dobra je sigurnosna praksa promijeniti lozinku, a to možete učiniti uređivanjem datoteke config.yaml. No, u ovom ćemo udžbeniku koristiti zadane postavke.

Za nastavak zadanih vjerodajnica (korisničko ime – administrator i lozinka – foobar) nastavite na korak 2.

Promjena vjerodajnica za sidreni motor (izborno)

Pomoću naredbe za sidrenje koristite naredbu

nano ~ / anchore / config / config.yaml

Pronađite korisničko ime (admin) i lozinku (foobar) i promijenite željene vrijednosti.

tisak CTRL + x, zatim Y spremiti i izaći.

S postavljenim radnim direktorijem i konfiguracijskim datotekama, sustav je spreman za ugradnju motora sidra.

Korak 2: – Instalirajte i pokrenite sidreni motor

Upotrijebit ćete Docker-ovu naredbu za instaliranje i pokretanje Anchore Engine-a i baze podataka.

Pokrenite iz kućnog imenika sidra.

docker-compose up -d

Ovo će automatski povući sliku sidrišta, a zatim će stvoriti motor za sidrenje i bazu podataka u kući, odnosno ~ / anchore / database / direktoriji. Po završetku naredba će pokrenuti Anchore motor.

Nakon uspješne instalacije i pokretanja motora za sidrenje, sada možete skenirati slike pomoću naredbenog retka za sidrenje AnchoreCLI. No prvo je potrebno instalirati uslužni program AnchoreCLI naredbenog retka, kao što je prikazano u nastavku.

Instalacija, konfiguriranje AnchoreCLI

U ovom ćete koraku naučiti kako instalirati i konfigurirati AnchoreCLI alat naredbenog retka.

Korak 3: – Instalirajte anchoreCLI

U ovom ćemo udžbeniku prvo instalirati uslužni program python-pip, koji će potom koristiti za instalaciju AnchoreCLI od izvora.

Da biste instalirali Python pip. Za kućni direktorij Anchore i pokrenite

sudo apt-get update
sudo apt-get install python-pip
sudo pip install – nadogradnja setuptools

Instalirajte AnchoreCLI koristeći python-pip

pip instalirati anchorecli

Ova naredba će preuzeti i instalirati datoteke za AnchoreCLI. Nakon instalacije sada moramo izvoriti .profile datoteku pomoću naredbe

izvor ~ / .profile

Da biste provjerili je li instalacija uspješna i inačica Anchorecli, koristite naredbu

anchore-cli –verzija

Za provjeru statusa anchore-CLI sustava upotrijebite naredbu

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

Imajte na umu da morate proći URL motora, korisničko ime i lozinku za sidrište.

Definirajte parametre sidrenog motora

AnchoreCLI će prema zadanim postavkama pokušati pristupiti Anchore Engine bez provjere autentičnosti. Međutim, to neće uspjeti, a svakoj naredbi morate osigurati vjerodajnice za sidrište.

To uključuje slanje korisničkog imena, lozinke i parametara URL-a sa svakom naredbom Anchore CLI. Umjesto da ih svaki put pružamo, alternativa je definirati ih kao varijable okoliša u sljedećem formatu.

Da biste proslijedili URL, pokrenite

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Ovo definira URL sidrišta motora zajedno s priključkom 8228 koji koristi.

Postavite korisničko ime i lozinku koristeći zadane vrijednosti; u suprotnom, zamijenite ih novim vrijednostima koje ste postavili Korak 1.

ANCHORE_CLI_USER = admin

ANCHORE_CLI_PASS = foobar

Navedeno postavlja parametre samo za trenutnu ljusku. Za postavljanje trenutne ljuske i ostale procese koji počinju od nje, koristimo naredbu za izvoz

izvoz ANCHORE_CLI_URL

izvoz ANCHORE_CLI_USER

izvoz ANCHORE_CLI_PASS

Uz definirane parametre, postavljanje AchoreCLI je završeno i spremni ste za skeniranje slika.

Korak 4: – Dodavanje i analiza slika

Sada kada imamo pokrenut Anchore Engine i CLI konfiguriran, naučit ćete kako dodati i analizirati slike radi sigurnosnih problema. U ovom ćemo udžbeniku analizirati dvije slike. -openjdk: 8-jre-alpine s ranjivostima i debian: najnovije bez .

Analiza slika

Da bismo nastavili, prvo moramo dodati slike u motor. Za dodavanje slika

slika anchore-cli dodaj openjdk: 8-jre-alpine

Dodajte stabilnu sliku debian: najnovije

anchore-cli slika dodaj docker.io/library/debian:latest

Dodajte još slika

slika za sidrenje-cli dodaj openjdk: 10-jdk

anchore-cli slika dodaj openjdk: 11-jdk

Nakon dodavanja slike motoru za sidrenje, analiza počinje odmah. Ako ima nekoliko učitanih slika, oni se stavljaju u red i analiziraju jednu po jednu. Možete provjeriti napredak i vidjeti popis učitanih slika zajedno s njihovim statusom analize.

Da biste vidjeli popis, pokrenite naredbu

popis slika anchore-cli

Izlaz

[E zaštićeni]: ~ / anchore $ anchore-cli popis slika
Status analize potpunog pregleda podataka s oznakom
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analyzed
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analyzed

Ovisno o broju slika, veličini i vremenu koji je protekao nakon dodavanja, analizirat ćete se za one cjelovite, analizirati one u tijeku, a ne analizirati za slike u redu..

Korak 5: – Dohvaćanje i pregled rezultata analize

Nakon dovršetka analize možete provjeriti rezultate i vidjeti rezultate za skeniranje ranjivosti, provjere pravila i druge probleme koje je motor utvrdio..

Za provjeru rezultata skeniranja ranjivosti na openjdku: ranjiva slika od 8 jre-alpi

Trčanje

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

Izlaz

[E zaštićeni]: ~ / anchore $ anchore-cli image vuln openjdk: 8-jre-alpine all
Popravak ozbiljnosti IDPackage ozbiljnosti CVE reflektira URL ranjivosti
CVE-2018-1000654 libtasn1-4.13-r0 Visoki 4.14-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000654
CVE-2019-12900 libbz2-1.0.6-r6 Visoki 1.0.6-r7 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12900
CVE-2019-14697 musl-1.1.20-r4 Visoki 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 Visok 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 Visoki 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

Izvještaj prikazuje CVE identifikator, ranjivi paket, ozbiljnost i postoji li ispravljanje ili ne. Za našu sliku openjdk: 8-jre-alpine, analiza pokazuje da ima pet velikih ranjivosti i prilično velik broj srednjih i zanemarivih ranjivosti. (neki nisu prikazani gore).

Da biste vidjeli rezultate ranjivosti za stabilni slikovni debian: najnoviji

Pokrenite naredbu

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

Izlaz

[E zaštićeni]: ~ / anchore $ anchore-cli slika vuln debian: najnovije sve
Popravka ozbiljnosti IDPackage-a Fiks CVE RefsVulnerability URL
CVE-2005-2541 tar-1,30 + dfsg-6 zanemarivo None https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2,28-10 Zanemarivo Nema https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 Zanemarivo Ništa https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2,28-10 Zanemarivo Nema https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 Zanemarivo Ništa https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2,28-10 Zanemarivo Nema https://security-tracker.debian.org/tracker/CVE-2019-1010024

Kao što se može vidjeti iz izvješća, image debian: latest ima zanemarive ranjivosti i nema ispravka.

Da biste vidjeli rezultate evaluacije politike za nestabilnu sliku openjdk: 8-jre-alpine

trčanje

anchore-cli evaluacija check openk: 8-jre-alpine

Rezultat – Rezultati pokazuju neuspjeh

[E zaštićeni]: ~ / anchore $ anchore-cli evaluacija check openk: 8-jre-alpine
Pregled slika: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Cijela oznaka: docker.io/openjdk:8-jre-alpine
Status: nije uspio
Zadnji Eval: 2019-09-20T12: 03: 32Z
ID pravila: 2c53a13c-1765-11e8-82ef-23527761d060

Slika openjdk: 8-jre-alpine krši specificirani ID politike (ID politike: 2c53a13c-1765-11e8-82ef-23527761d060) i stoga vraća status Fail.

Sad kad smo vidjeli kako Anchore Engine reagira nakon otkrivanja kršenja pravila, vrijeme je da provjerimo kako se ponaša s našim stabilnim imidžom debian: najnovije.

Provjera politike za debian: najnovija stabilna slika

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

[E zaštićeni]: ~ / anchore $ anchore-cli procijeni check docker.io/library/debian:latest –detail
Pregled slika: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Cijela oznaka: docker.io/library/debian:latest
ID slike: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Status: prolaz
Zadnji Eval: 2019-09-20T12: 00: 06Z
ID pravila: 2c53a13c-1765-11e8-82ef-23527761d060
Završna radnja: upozoriti
Završni razlog akcije: procjena_politike
Status aktiviranja vrata
dockerfileinstructionDockerfile direktiva ‘HEALTHCHECK’ nije pronađena, podudaranje uvjeta ‘not_exists’ upozorenje

Rezultati pokazuju status prolaza i Final Action of Warn zbog neusklađenosti informacija s dockerfile direktivom. To ne uspijeva, ali može zahtijevati provjeru i rješavanje problema.

Konfiguriranje i upotreba dodatka za skeniranje sidrišta za sidro u Jenkinsu

Korak 6: – Dodajte i konfigurirajte dodatak skenera za slike sidrišta u Jenkinsu

U ovom ćemo koraku integrirati Anchor Engine s Jenkinsovim poslužiteljem. Jenkins je otvoreni izvorni poslužitelj za automatizaciju širokog spektra ponavljajućih zadataka u ciklusu razvoja softvera.

Dodatak za usidrenje je dostupan na Jenkinsu, ali nije instaliran prema zadanim postavkama.

Prijavite se na Jenkins putem web-preglednika

http: // your_server_ip_or_domain: 8080

Unesite korisničko ime i lozinku.

Ići Jenkinsov izbornik

Pronađite i odaberite Upravljajte Jenkins

Ići Upravljanje dodacima

Na Dostupna kartica, pomaknite se prema do Alati za pravljenje i odaberite Skener za slike usidrenog spremnika

Kliknite gumb Instalirajte bez ponovnog pokretanja opcija.

Nakon uspješne instalacije Dodatak za skeniranje slike sidrenja za sidrenje, sljedeći je korak konfiguriranje vjerodajnica.

Idi na Jenkins izbornika i odaberite Upravljajte Jenkins kartica.

Otvorena Konfiguriranje sustava.

Pronađite mjesto Konfiguracija sidrenja.

Odaberi Način rada motora

Uđi Motor za sidrenje pojedinosti (URL motora, korisničko ime i lozinka i port 8228 – zadani priključak za motor).

URL – http: // your_server_IP: 8228 / v1

Unesite korisničko ime = admin
Unesite lozinku = foobar ili novu lozinku ako ste je promijenili 3. korak (iznad)

Klik Uštedjeti

Konfigurirajte dodatak za sidrenje

Korak 8: – Dodavanje i skeniranje slika

Klik Nova stvar na Jenkins nadzornoj ploči u gornjem lijevom izborniku

Otvorit će se zaslon s nekoliko opcija.
U polje Unesite naziv predmeta unesite željeno ime svog testnog projekta.

U ovom projektu koristit ćemo izgradnju cjevovoda.
Odaberite Cjevovod i kliknite U redu.

Sada ste spremni skenirati slike. U našem slučaju koristit ćemo slike već u registru doktora kojima je pristup dostupan Motor za sidrenje.

Da biste to učinili, dodaćete skriptu cjevovoda koja će odrediti sliku koju treba skenirati.

9. korak: – Dodajte skriptu cjevovoda

Pomaknite se prema dolje do odjeljka Cjevovod i dodajte skriptu da odredite sliku koju želite skenirati. Počet ćemo s openjdkom: 8-jre-alpine koji sadrži određene ranjivosti.

čvor {
def imageLine = ‘openjdk: 8-jre-alpine’`
fileFile file: ‘anchore_images’, tekst: imageLine`
sidrište ime: ‘anchore_images’`
}

Klik Uštedjeti

Korak 10: – Pokrenite gradnju i pregledajte izvješća o skeniranju

S Jenkinsovog izbornika

Klik Izgradite sada

Ovo će započeti postupak sastavljanja, koji traje nekoliko minuta, ovisno o veličini slike. Nakon dovršetka, u Povijesti gradnje pojavit će se broj i obojeni gumb. To će imati crvenu boju za Fail ili plavu za Pass. Klikom na gumb prikazat će se više rezultata.

Korak 11: – Pregled rezultata

Kliknite na Izgradi # da biste vidjeli više detalja
Ovo otvara Izlaz konzole prozor koji ukazuje na neuspjeh – Izvještaj za sidrenje (FAIL)

Detaljna izvješća ukazuju na to je li analiza bila neuspjeh ili prolazak te pružaju nekoliko izvještaja koja pokazuju ranjivosti, upozorenja i druga na temelju konfiguracije. Dodatak je prema zadanim postavkama konfiguriran za neuspjeh gradnje (Stop) kad god postoje ranjivosti. Ispod su snimke zaslona za izvješća o politici i sigurnosti.

Sažetak sažetka ocjene politike usidrenja

Ispod je snimka zaslona rezultata sigurnosti za ranjivu sliku.

Popis uobičajenih ranjivosti i izloženosti (CVE)

Ako sada skeniramo stabilnu sliku, debian: najnoviji, bez ranjivosti, dobit ćemo rezultate u nastavku.

Sažetak sažetka procjene politike usidrenja (prolaz)

Propusni popis uobičajenih ranjivosti i izloženosti (CVE) 

Zaključak

Skener za slike spremnika za sidro je moćan alat za analizu slika koji identificira širok raspon ranjivosti i problema s pravilima na Docker slikama. Ima mnogo mogućnosti prilagodbe i može se konfigurirati na koji način odgovoriti na otkrivanje problema tijekom analize. Jedna od njih je probijanje sastava kad motor naiđe na ozbiljnu ranjivost.

Ako želite graditi svoju karijeru u DevSecOpsu, provjerite ovo Udemy tečaj.

OZNAKE:

  • Otvoreni izvor

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