Kaip įdiegti ir naudoti „Anchore Container Image Security Scanner“?

Inkaro variklis yra atvirojo kodo įrankis, skirtas nuskaityti ir analizuoti konteinerių vaizdus, ​​siekiant nustatyti saugumo spragas ir politikos problemas. Jis tiekiamas kaip „Docker“ konteinerio vaizdas, kurį galima naudoti orkestravimo platformoje, arba kaip atskirą diegimą.


Tai yra naudingas saugos įrankis, leidžiantis kūrėjams ir kokybės užtikrinimo komandoms išbandyti, nustatyti ir pašalinti pažeidimus vaizduose, kuriuos jie naudoja kurdami programas.

Šiame straipsnyje apžvelgsime, kaip įdiegti ir naudoti „Anchore“ vaizdo pažeidžiamumo skaitytuvą. Paprastai yra keli įgyvendinimo metodai. Tačiau atkreipsiu dėmesį į šiuos du dalykus,

  • Naudojant „AnchoreCLI“ komandinės eilutės parinktis
  • GUI pagrindu „Jenkins Anchore Container Image Scanner“ Prijunkite.

Mes jums parodysime, kaip įdiegti, konfigūruoti ir paleisti variklį, sukonfigūruoti ir naudoti komandinės eilutės įrankį „AnchoreCLI“, taip pat „Jenkins“ papildinį. Kiekvienu iš šių dviejų būdų sužinosite, kaip pridėti vaizdus nuskaityti, atlikti nuskaitymą ir peržiūrėti ataskaitas.

Straipsnio pabaigoje išmoksite šiuos tris dalykus.

  • Diegimas ir konfigūravimas Inkaro variklis
  • Įdiegimas, konfigūravimas ir naudojimas „AnchoreCLI“
  • Konfigūravimas ir naudojimas „Inkaro“ konteinerio vaizdo skaitytuvo įskiepis į Jenkinsas

Būtinos sąlygos

Toliau pateikiami šios instrukcijos reikalavimai;

  • Vietinė arba virtuali mašina su „Ubuntu 18.04“ ir kitomis priemonėmis;
  • Dokininkas
  • Daktaras-sudarytojas
  • „Jenkins“ įdiegta ir veikia
  • sudo vartotojas

1 veiksmas: – nustatykite darbinius katalogus ir atsisiųskite konfigūracijos failus.

Sukurkite darbinį „Anchore“ failų katalogą. Tame aplanke sukursite du pakatalogius, vieną konfigūracijai ir kitą duomenų bazei.

Sukurkite pagrindinį katalogą „Anchore“ failams

mkdir inkaras

Eikite į naują katalogą ir sukurkite konfigūracijos ir duomenų bazės pakatalogius.

CD inkaras

mkdir konfig

mkdir db

Atsisiųskite konfigūracijos failus

Kai katalogai bus paruošti, iš „Github“ projekto atsisiųsime du konfigūracijos failus (docker-compose.yaml ir config.yaml)..

Norėdami atsisiųsti „docker-compose.yaml“

Eikite į pagrindinį namų katalogą ir naudokite komandą

garbanoti https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/docker-compose.yaml > dokininkas-sudarytojas.yaml

Tada atsisiųskite „config.yaml“ į ~ / anchore / config katalogą

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

„Config.yaml“ failas yra konfigūracijos failas su pagrindiniais parametrais, kurių reikia inkaro variklio tarnybai paleisti. Jis turi keletą parametrų, įskaitant numatytąjį, žurnalo lygį, klausymo prievadą, vartotojo vardą, slaptažodį ir kitus, kuriuos galite pritaikyti, kad atitiktumėte konkrečius reikalavimus.

Tinkama saugumo praktika yra pakeisti slaptažodį, ir tai galite padaryti redaguodami failą config.yaml. Tačiau šiame vadove mes naudosime numatytuosius nustatymus.

Norėdami tęsti numatytuosius kredencialus (vartotojo vardas – admin ir slaptažodis – foobar), eikite į 2 žingsnis.

„Inkarinio variklio“ kredencialų keitimas (pasirinktinai)

Iš inkaro katalogo naudokite komandą

nano ~ / inkaro / config / config.yaml

Suraskite vartotojo vardą (administratorius) ir slaptažodį (foobar) ir pakeiskite pageidaujamas reikšmes.

Paspauskite CTRL + X, tada Y išsaugoti ir išeiti.

Turėdama darbinius katalogus ir konfigūracijos failus, sistema yra paruošta „Anchore Engine“ įdiegti.

2 žingsnis: – Įdiekite ir paleiskite inkarinį variklį

Norėdami įdiegti ir paleisti „Anchore Engine“ ir duomenų bazę, naudosite „Docker“ sudarymo programą.

Paleiskite iš pagrindinio namų katalogo.

doko sudarytojas -d

Tai automatiškai ištrauks „Anchore“ vaizdą ir tada sukuria „Anchore“ variklį ir duomenų bazę namuose ir ~ / inkarą / duomenų bazę / katalogus. Pabaigus komanda paleis variklį „Anchore“.

Sėkmingai įdiegę ir paleidę inkaro variklį, vaizdus galite nuskaityti naudodami inkaro komandinę eilutę „AnchoreCLI“. Tačiau pirmiausia turite įdiegti komandinės eilutės įrankį „AnchoreCLI“, kaip parodyta žemiau.

„AnchoreCLI“ diegimas, konfigūravimas

Šiame žingsnyje sužinosite, kaip įdiegti ir konfigūruoti „AnchoreCLI“ komandinės eilutės įrankis.

3 žingsnis: – Įdiekite „AnchoreCLI“

Šiame vadove pirmiausia įdiegsime „python-pip“ programą, kuri vėliau bus naudojama įdiegiant „AnchoreCLI“ iš šaltinio.

Norėdami įdiegti Python pip. Norėdami patekti į „Inkaro“ namų katalogą ir paleisti

„sudo apt-get“ atnaujinimas
sudo apt-get install python-pip
„sudo pip install“ – atnaujinkite sąrankos įrankius

Įdiekite „AnchoreCLI“ naudojant python-pip

pip įdiegti anchorecli

Ši komanda atsisiųs ir įdiegs „AnchoreCLI“ failus. Įdiegę, dabar, naudodami komandą, turime nusiųsti savo .profile failą

šaltinis ~ / .profilis

Norėdami patikrinti, ar diegimas pavyko ir ar nėra „Anchorecli“ versijos, naudokite komandą

inkaro klija – perversmas

Norėdami patikrinti anchore-CLI sistemos būseną, naudokite komandą

anchore-cli –url http: // localhost: 8228 / v1 –u admin –p foobar sistemos būsena

Atminkite, kad turite perduoti „Anchore“ variklio URL, vartotojo vardą ir slaptažodį.

Apibrėžkite inkarinio variklio parametrus

Pagal numatytuosius nustatymus „AnchoreCLI“ bandys prieiti prie „Anchore Engine“ be autentifikacijos. Tačiau tai neveiks, ir jūs turite pateikti „Anchore Engine“ kredencialus su kiekviena komanda.

Tai reiškia, kad vartotojo vardas, slaptažodis ir URL parametrai perduodami su kiekviena „Anchore“ CLI komanda. Užuot juos pateikę kiekvieną kartą, alternatyva yra apibrėžti juos kaip aplinkos kintamuosius tokiu formatu.

Jei norite perduoti URL, paleiskite

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Tai apibrėžia „Inkaro variklio“ URL kartu su jo naudojamu prievadu 8228.

Nustatykite vartotojo vardą ir slaptažodį naudodamiesi numatytosiomis reikšmėmis; kitu atveju pakeiskite jas naujomis reikšmėmis, kurias nustatėte 1 žingsnis.

ANCHORE_CLI_USER = administratorius

ANCHORE_CLI_PASS = foobar

Tai, kas išdėstyta aukščiau, nustato tik dabartinio apvalkalo parametrus. Norėdami nustatyti dabartinį apvalkalą ir kitus procesus, kurie prasideda nuo jo, naudojame eksporto komandą

eksportuoti ANCHORE_CLI_URL

eksportuoti ANCHORE_CLI_USER

eksportuoti ANCHORE_CLI_PASS

Nustačius parametrus, „AchoreCLI“ sąranka baigta ir esate pasirengę nuskaityti vaizdus.

4 veiksmas: – vaizdų pridėjimas ir analizė

Dabar, kai jau veikia „Anchore Engine“ ir sukonfigūruota CLI, jūs sužinosite, kaip pridėti ir analizuoti vaizdus saugos problemoms spręsti. Šiame vadove analizuosime du vaizdus. -openjdk: 8-jre-alpine su pažeidžiamumu ir debian: naujausia be .

Vaizdų analizė

Norėdami tęsti, pirmiausia turime pridėti vaizdus prie variklio. Norėdami pridėti vaizdus

„anchore-cli“ vaizdas prideda openjdk: 8-jre-alpine

Pridėti stabilų vaizdą debian: naujausias

„anchore-cli“ vaizdas pridedamas docker.io/library/debian:latest

Pridėkite daugiau vaizdų

„anchore-cli“ vaizdas prideda „openjdk“: 10-jdk

„anchore-cli“ atvaizdas pridedamas „openjdk“: 11-jdk

Pridėjus vaizdą į „Anchore Engine“, analizė pradedama iškart. Jei yra keli įkelti vaizdai, jie sudedami į eilę ir analizuojami po vieną. Galite patikrinti eigą ir pamatyti įkeltų vaizdų sąrašą kartu su jų analizės būsena.

Norėdami pamatyti sąrašą, paleiskite komandą

„anchore-cli“ vaizdų sąrašas

Išėjimas

[apsaugotas el. paštu]: ~ / anchore $ anchore-cli vaizdų sąrašas
Visos žymos vaizdo suvestinės analizės būsena
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analizuota
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analizuoti
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analizuotas

Priklausomai nuo vaizdų skaičiaus, dydžio ir laiko, praėjusio juos pridėjus, analizuosite visus išbaigtus, analizuosite tuos, kurie vykdomi, o neanalizuosite pagal eilėje esančius vaizdus..

5 veiksmas: – nuskaitykite ir peržiūrėkite analizės rezultatus

Baigę analizę, galite patikrinti rezultatus ir pamatyti pažeidžiamumo nuskaitymo, politikos tikrinimo ir kitų problemų, kurias nustatė variklis, rezultatus..

Norėdami patikrinti „openjdk“ pažeidžiamumo nuskaitymo rezultatus: 8 jre-alpine pažeidžiamas vaizdas

Bėk

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

Išėjimas

[apsaugotas el. paštu]: ~ / anchore $ anchore-cli vaizdas vuln openjdk: 8-jre-alpine all
Pažeidžiamumas „IDPackage“ sunkumo pataisymas „CVE Refs“ – pažeidžiamumo 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 didelis 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“ aukštas 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 terpė 1.5.3-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14498

Ataskaitoje rodomas CVE identifikatorius, pažeidžiamas paketas, sunkumas ir tai, ar yra taisymas, ar ne. Mūsų atvaizdo „openjdk: 8-jre-alpine“ analizė rodo, kad jis turi penkis didelius pažeidžiamumus ir nemažai vidutinio ir nereikšmingo pažeidžiamumo. (kai kurie neparodyti aukščiau).

Norėdami peržiūrėti stabilių vaizdų vaizdo įrašų pažeidžiamumo rezultatus: vėliausiai

Vykdykite komandą

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

Išėjimas

[apsaugotas el. paštu]: ~ / anchore $ anchore-cli vaizdas vuln debian: naujausias viskas
Pažeidžiamumas „IDPackage“ sunkumo pataisymas „CVE RefsVilneibility URL“
CVE-2005-2541 tar-1.30 + dfsg-6 nereikšmingas Nėra https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 nereikšmingas nėra https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 Nereikšmingas Nėra https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 nereikšmingas nėra https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 Nereikšmingas Nėra https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 nereikšmingas nė vienas https://security-tracker.debian.org/tracker/CVE-2019-1010024

Kaip matyti iš ataskaitos, vaizdas „debian: naujausias“ turi nereikšmingų pažeidžiamumų ir nepataisytas.

Norėdami pamatyti nestabilios įvaizdžio „openjdk“ politikos įvertinimo rezultatus: 8-jre-alpine

bėgti

anchore-cli įvertinti patikrinkite openjdk: 8-jre-alpine

Išėjimas – rezultatai rodo nesėkmę

[apsaugotas el. paštu]: ~ / anchore $ anchore-cli įvertinti check openjdk: 8-jre-alpine
Vaizdo suvestinė: „sha256“: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Visa žyma: docker.io/openjdk:8-jre-alpine
Statusas: nepavyks
Paskutinis vertinimas: 2019-09-20T12: 03: 32Z
Politikos ID: 2c53a13c-1765-11e8-82ef-23527761d060

Vaizdas „openjdk: 8-jre-alpine“ pažeidžia nurodytą strategijos ID (strategijos ID: 2c53a13c-1765-11e8-82ef-23527761d060), todėl grąžina būsenos Fail būseną..

Dabar, kai pamatėme, kaip „Anchore Engine“ reaguoja aptikę politikos pažeidimą, laikas patikrinti, ar jis elgiasi su mūsų stabiliojo vaizdo deianu: vėliausiai.

Politikos patikrinimas, ar nėra „debian“: naujausias stabilus vaizdas

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

[apsaugotas el. paštu]: ~ / anchore $ anchore-cli įvertinti čekis docker.io/library/debian:latest –detail
Vaizdo suvestinė: „sha256“: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Visa žyma: docker.io/library/debian:latest
Vaizdo ID: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Statusas: praeiti
Paskutinis vertinimas: 2019-09-20T12: 00: 06Z
Politikos ID: 2c53a13c-1765-11e8-82ef-23527761d060
Paskutinis veiksmas: perspėkite
Galutinė veiksmo priežastis: politikos vertinimas
„Gate TriggerDetail“ būsena
„dockerfileinstructionDockerfile“ direktyva „HEALTHCHECK“ nerasta, atitinkanti sąlygą „not_exists“ kontrolinė užklausa

Rezultatai rodo „Pass“ būseną ir „The Last Action of Warn“, nes informacija nesutampa su „Dockerfile“ direktyva. Tai nepavyksta, tačiau gali reikėti patikrinti ir išspręsti problemą.

„Anchore Container Image Scanner“ papildinio konfigūravimas ir naudojimas „Jenkins“

6 žingsnis: – Pridėkite ir sukonfigūruokite „Anchore Container Image Scanner“ papildinį „Jenkins“

Šiame žingsnyje mes integruosime „Anchor Engine“ su „Jenkins“ serveriu. „Jenkins“ yra „Java“ pagrindu sukurtas atvirojo kodo serveris, skirtas automatizuoti daugybę pasikartojančių užduočių programinės įrangos kūrimo cikle.

Inkaro įskiepis galima Jenkins, bet neįdiegta pagal numatytuosius nustatymus.

Prisijunkite prie „Jenkins“ naudodamiesi interneto naršykle

http: // jūsų_serverio_ip_or_domenas: 8080

Įveskite vartotojo vardą ir slaptažodį.

Eiti į „Jenkins“ meniu

Suraskite ir pasirinkite Tvarkykite Jenkins

Eiti į Tvarkykite papildinius

Ant Galimas skirtukas, slinkite žemyn iki Sukurkite įrankius ir pasirinkite „Inkaro“ konteinerio vaizdo skaitytuvas

Spustelėkite Įdiekite be naujo paleidimo variantas.

Po sėkmingo įdiegimo „Anchore Container Image Scanner“ papildinys, kitas žingsnis – sukonfigūruoti kredencialus.

Eik į Jenkinsas meniu ir pasirinkite Tvarkykite Jenkins skirtukas.

Atviras Konfigūruokite sistemą.

Raskite Inkaro konfigūracija.

Pasirinkite Variklio režimas

Įveskite Inkaro variklis išsami informacija (variklio URL, vartotojo vardas ir slaptažodis bei prievadas 8228 – numatytasis variklio prievadas).

URL – http: // jūsų_serverio_IP: 8228 / v1

Įveskite vartotojo vardą = admin
Įveskite slaptažodį = foobar arba naują slaptažodį, jei jį pakeitėte 3 žingsnis (aukščiau)

Spustelėkite Sutaupyti

Konfigūruokite „Inkaro“ papildinį

8 veiksmas: – vaizdų pridėjimas ir nuskaitymas

Spustelėkite Naujas daiktas „Jenkins“ informacijos suvestinėje viršutiniame kairiajame meniu

Tai atvers ekraną su keliomis parinktimis.
Laukelyje Įveskite elemento pavadinimą įveskite norimą bandomojo projekto pavadinimą.

Šiame projekte mes naudosime „Pipeline“ pastatymą.
Pasirinkite Vamzdynas ir spustelėkite Gerai.

Dabar esate pasirengę nuskaityti vaizdus. Mūsų atveju mes naudosime vaizdus, ​​esančius dokų registre, prieinamą Inkaro variklis.

Norėdami tai padaryti, pridėsite dujotiekio scenarijų, kuriame nurodomas nuskaitymo vaizdas.

9 veiksmas: – pridėkite dujotiekio scenarijų

Slinkite žemyn iki skyriaus Vamzdynas ir pridėkite scenarijų, norėdami nurodyti nuskaitytą vaizdą. Pradėsime nuo openjdk: 8-jre-alpine, kuriame yra tam tikrų pažeidžiamumų.

mazgas {
def imageLine = ‘openjdk: 8-jre-alpine’ ‘
„writeFile“ failas: „anchore_images“, tekstas: imageLine “
inkaro pavadinimas: “anchore_images”
}

Spustelėkite Sutaupyti

10 veiksmas: – paleiskite kūrimą ir peržiūrėkite nuskaitymo ataskaitas

Iš „Jenkins“ meniu

Spustelėkite Sukurkite dabar

Tai pradės kūrimo procesą, kuris užtruks keletą minučių, priklausomai nuo vaizdo dydžio. Baigę, „Sukūrimo istorijoje“ pasirodys skaičius ir spalvotas mygtukas. Tai bus raudona spalva „Fail“ arba „Blue for Pass“. Spustelėjus mygtuką bus parodyta daugiau rezultatų.

11 veiksmas: – Peržiūrėkite rezultatus

Spustelėkite Sukurti # norėdami pamatyti daugiau informacijos
Tai atveria a Konsolės išėjimas langas, rodantis gedimą – Inkaro ataskaita (FAIL)

Išsamiose ataskaitose nurodoma, ar analizė buvo nesėkmė, ar praeina, ir pateikiamos kelios ataskaitos, kuriose nurodomi pažeidžiamumai, įspėjimai ir kita, remiantis konfigūracija. Pagal numatytuosius nustatymus papildinys sukonfigūruotas nepavykti sukurti (Sustabdyti) kai yra pažeidžiamumų. Žemiau yra politikos ir saugos ataskaitų ekrano nuotraukos.

Inkaravimo politikos vertinimo santrauka

Žemiau yra pažeidžiamo vaizdo saugos rezultatų ekrano kopija.

Bendrojo pažeidžiamumo ir poveikio (CVE) sąrašas

Jei dabar nuskaitysime stabilų vaizdą, deian: naujausias, be pažeidžiamumų, rezultatus gausime žemiau.

Anchore politikos vertinimo santrauka (Pass)

Bendrojo pažeidžiamumo ir poveikio (CVE) sąrašo leidimas 

Išvada

„Anchore Container Image Scanner“ yra galingas vaizdų analizės įrankis, nustatantis įvairius „Docker“ vaizdų pažeidžiamumus ir politikos problemas. Jis turi daug tinkinimo parinkčių ir gali būti sukonfigūruotas, kaip reaguoti nustatant problemas analizės metu. Vienas iš jų yra nutraukti konstrukciją, kai variklis susiduria su didele pažeidžiamumu.

Jei norite sukurti savo karjerą „DevSecOps“, tada patikrinkite tai Udemy kursas.

ŽENKLAI:

  • Atviro kodo

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