Ako nainštalovať a používať Anchore Container Image Security Scanner?

Kotvový motor je nástroj s otvoreným zdrojovým kódom na skenovanie a analýzu obrázkov kontajnerov z hľadiska slabých miest zabezpečenia a problémov s politikou. Je k dispozícii ako obraz kontajnera Docker, ktorý môže bežať v rámci orchestračnej platformy alebo ako samostatná inštalácia.


Je to užitočný bezpečnostný nástroj, ktorý umožňuje vývojárom a tímom kontroly kvality testovať, identifikovať a riešiť zraniteľné miesta v obrázkoch, ktoré používajú na vytváranie aplikácií..

V tomto článku sa zameriame na to, ako nainštalovať a používať skener zraniteľnosti obrázkov Anchore. Všeobecne existuje niekoľko implementačných metód. Zameriam sa však na nasledujúce dva,

  • Pomocou AnchoreCLI možnosť príkazového riadku
  • GUI založené Kontajnerový skener Jenkins Anchore zapojiť.

Ukážeme vám, ako nainštalovať, nakonfigurovať a spustiť motor, nakonfigurovať a používať nástroj príkazového riadku AnchoreCLI a doplnok Jenkins. Pre každú z týchto dvoch metód sa dozviete, ako pridať obrázky na skenovanie, vykonať skenovanie a zobraziť správy.

Na konci tohto článku sa dozviete nasledujúce tri veci.

  • Inštalácia a konfigurácia Kotvový motor
  • Inštalácia, konfigurácia a používanie AnchoreCLI
  • Konfigurácia a používanie Anchore Plugin Scanner Image Scanner v Jenkins

predpoklady

Nasledujú požiadavky na tento návod;

  • Lokálny alebo virtuálny počítač s Ubuntu 18.04 a nasledujúcimi;
  • prístavný robotník
  • Docker-komponovať
  • Jenkins Inštalácia a prevádzka
  • sudo užívateľ

Krok 1: – Nastavte pracovné adresáre a stiahnite konfiguračné súbory.

Vytvorte pracovný adresár pre svoje súbory Anchore. V tomto adresári vytvoríte dva podadresáre, jeden pre konfiguráciu a jeden pre databázu.

Vytvorte domovský adresár pre súbory Anchore

mkdir kotva

Prejdite do nového adresára a vytvorte podadresáre konfigurácie a databázy.

cd kotva

mkdir config

mkdir db

Stiahnite si konfiguračné súbory

Keď budú adresáre pripravené, stiahneme z projektu Github dva konfiguračné súbory (docker-compose.yaml a config.yaml)..

Ak chcete stiahnuť docker-compose.yaml

Prejdite do domovského adresára kotvy a použite príkaz

stočte https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/docker-compose.yaml > prístavný robotník-compose.yaml

Potom stiahnite súbor config.yaml do adresára ~ / anchore / config

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

Súbor config.yaml je konfiguračný súbor so základnými nastaveniami, ktoré vyžaduje služba motora kotvy. Má niekoľko parametrov vrátane predvoleného nastavenia, úrovne denníka, portu na počúvanie, používateľského mena, hesla a ďalších, ktoré môžete prispôsobiť konkrétnym požiadavkám..

Je dobrým bezpečnostným postupom zmeniť heslo a môžete to urobiť úpravou súboru config.yaml. V tomto návode však použijeme predvolené nastavenia.

Ak chcete pokračovať s predvolenými povereniami (používateľské meno – admin a heslo – foobar), pokračujte na Krok 2.

Zmena poverení Anchore Engine (voliteľné)

Z adresára kotvy použite príkaz

nano ~ / anchore / config / config.yaml

Vyhľadajte používateľské meno (admin) a heslo (foobar) a zmeňte požadované hodnoty.

lis CTRL + X, potom Y uložiť a ukončiť.

So zavedenými pracovnými adresármi a konfiguračnými súbormi je systém pripravený na inštaláciu Anchore Engine.

Krok 2: – Nainštalujte a spustite motor Anchore

Na inštaláciu a spustenie Anchore Engine a databázy budete používať kompiláciu Docker.

Z domovského adresára kotvy spustite.

docker-compose up -d

Tým sa automaticky vytiahne obraz Anchore a potom sa vytvorí Anchore engine a databáza v domácom a ~ / anchore / database / adresári. Po dokončení príkazu sa spustí motor Anchore.

Po úspešnej inštalácii a spustení motora kotvy môžete teraz skenovať obrázky pomocou príkazového riadka kotvy AnchoreCLI. Najprv však musíte nainštalovať pomôcku príkazového riadku AnchoreCLI, ako je uvedené nižšie.

Inštalácia a konfigurácia AnchoreCLI

V tomto kroku sa dozviete, ako nainštalovať a nakonfigurovať AnchoreCLI nástroj príkazového riadku.

Krok 3: – Nainštalujte AnchoreCLI

V tomto návode najprv nainštalujeme obslužný program python-pip, ktorý potom použije na inštaláciu AnchoreCLI zo zdroja.

Ak chcete nainštalovať program Python pip. Pre domovský adresár Anchore a spustite ho

aktualizácia sudo apt-get
sudo apt-get install python-pip
inštalácia sudo pip – aktualizujte nastavenia

Nainštalujte AnchoreCLI pomocou python-pip

pip inštalujte kotvu

Tento príkaz stiahne a nainštaluje súbory pre AnchoreCLI. Po inštalácii potrebujeme zdrojový súbor .profile na použitie príkazu

zdroj ~ / .profile

Na overenie úspešnosti inštalácie a verzie Anchorecli použite príkaz

anchore-cli – konverzia

Ak chcete skontrolovať stav systému anchore-CLI, použite príkaz

anchore-cli –url http: // localhost: 8228 / v1 –u admin –p foobar stav systému

Upozorňujeme, že musíte zadať adresu URL, používateľské meno a heslo nástroja Anchore.

Definujte parametre motora kotvy

V predvolenom nastavení sa AnchoreCLI pokúsi získať prístup k Anchore Engine bez autentifikácie. To však nebude fungovať a musíte zadať poverenia Anchore Engine každému príkazu.

To zahŕňa odovzdanie používateľského mena, hesla a parametrov adresy URL pri každom príkaze CLI Anchore. Namiesto toho, aby sa poskytovali zakaždým, ich alternatívou je definovať ich ako premenné prostredia v nasledujúcom formáte.

Ak chcete adresu URL odovzdať, spustite ju

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Toto definuje URL Anchore Engine spolu s portom 8228, ktorý používa.

Nastavte používateľské meno a heslo pomocou predvolených hodnôt; v opačnom prípade ich nahraďte novými hodnotami, ktoré ste nastavili Krok 1.

ANCHORE_CLI_USER = admin

ANCHORE_CLI_PASS = foobar

Vyššie uvedené nastavuje parametre iba pre aktuálny shell. Na nastavenie aktuálneho shellu a ďalších procesov, ktoré z neho začínajú, použijeme príkaz export

exportovať ANCHORE_CLI_URL

exportovať ANCHORE_CLI_USER

export ANCHORE_CLI_PASS

Po definovaní parametrov je nastavenie AchoreCLI dokončené a ste pripravení skenovať obrázky.

Krok 4: – Pridávanie a analýza obrázkov

Teraz, keď máme spustený Anchore Engine a nakonfigurované CLI, sa dozviete, ako pridať a analyzovať obrázky z dôvodu bezpečnostných problémov. V tomto návode budeme analyzovať dva obrázky. -openjdk: 8-jre-alpský s zraniteľnosťou a debian: najnovšie bez .

Analýza obrázkov

Aby sme mohli pokračovať, musíme najprv pridať obrázky do motora. Ak chcete pridať obrázky

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

Pridajte stabilný obrázok debian: najnovšie

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

Pridajte ďalšie obrázky

obrázok anchore-cli pridať openjdk: 10-jdk

obrázok anchore-cli pridať openjdk: 11-jdk

Po pridaní obrázka do Anchore Engine sa analýza začne okamžite. Ak existuje niekoľko načítaných obrázkov, vložia sa do frontu a analyzujú sa naraz. Môžete skontrolovať priebeh a zobraziť zoznam načítaných obrázkov spolu s ich stavom analýzy.

Zoznam zobrazíte spustením príkazu

zoznam obrázkov anchore-cli

Výkon

[Email protected]: ~ / anchore $ anchore-cli zoznam obrázkov
Úplný stav analýzy obrázkov na obrázkoch
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analyzed
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analyzed

V závislosti od počtu obrázkov, veľkosti a času, ktorý uplynul po ich pridaní, dostanete analyzované úplné, analyzujúce práve prebiehajúce a neanalyzované obrázky vo fronte..

Krok 5: – Získanie a zobrazenie výsledkov analýzy

Po dokončení analýzy môžete skontrolovať výsledky a zobraziť výsledky skenovania zraniteľnosti, kontroly politiky a ďalších problémov, ktoré motor zistil..

Ak chcete skontrolovať výsledky kontroly zraniteľnosti na snímke openjdk: 8-jre-alpine

beh

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

Výkon

[Email protected]: ~ / anchore $ anchore-cli image vuln openjdk: 8-jre-alpine all
Chyba zraniteľnosti IDPackage závažnosť Oprava CVE odkazuje na webovú adresu chyby zabezpečenia
CVE-2018-1000654 libtasn1-4.13-r0 Vysoká 4,14-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000654
CVE-2019-12900 libbz2-1.0.6-r6 Vysoká 1.0.6-r7 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12900
CVE-2019-14697 musl-1.1.20-r4 Vysoká 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 Vysoká 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 Vysoká 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

Správa obsahuje identifikátor CVE, zraniteľný balík, závažnosť a to, či existuje alebo nie je oprava. Pre náš obrázok openjdk: 8-jre-alpine analýza ukazuje, že má päť veľkých zraniteľností a pomerne veľa stredných a zanedbateľných zraniteľností. (niektoré nie sú zobrazené vyššie).

Zobrazenie výsledkov zraniteľností pre stabilný obrazový Debian: najnovšie

Spustite príkaz

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

Výkon

[Email protected]: ~ / anchore $ anchore-cli image vuln debian: najnovšie všetky
Chyba zraniteľnosti IDPackage Severity Fix CVE RefsVulnerability URL
CVE-2005-2541 tar-1.30 + dfsg-6 zanedbateľné žiadne https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 zanedbateľné žiadne https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 zanedbateľné žiadne https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 zanedbateľné žiadne https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 zanedbateľné žiadne https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 zanedbateľné žiadne https://security-tracker.debian.org/tracker/CVE-2019-1010024

Ako vidno zo správy, debian image: latest má zanedbateľné zraniteľné miesta a žiadne opravy.

Ak chcete vidieť výsledky hodnotenia politiky pre nestabilný obraz openjdk: 8-jre-alpine

beh

anchore-cli vyhodnotiť kontrolu openjdk: 8-jre-alpine

Výstup – výsledky ukazujú zlyhanie

[Email protected]: ~ / anchore $ anchore-cli vyhodnotí šek openjdk: 8-jre-alpine
Prehľad obrázkov: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Úplná značka: docker.io/openjdk:8-jre-alpine
Stav: zlyhanie
Posledný Eval: 2019-09-20T12: 03: 32Z
ID politiky: 2c53a13c-1765-11e8-82ef-23527761d060

Obrázok openjdk: 8-jre-alpine porušuje určené ID politiky (ID politiky: 2c53a13c-1765-11e8-82ef-23527761d060), a preto vracia stav zlyhania.

Teraz, keď sme videli, ako Anchore Engine reaguje po zistení porušenia pravidiel, je čas skontrolovať, ako sa správa s našim stabilným debian image: najnovšie.

Kontrola politiky pre Debian: posledný stabilný obraz

anchore-cli vyhodnotí kontrolu docker.io/library/debian:latest –detail

[Email protected]: ~ / anchore $ anchore-cli vyhodnotí šek docker.io/library/debian:latest –detail
Prehľad obrázkov: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Úplná značka: docker.io/library/debian:latest
ID záberu: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Stav: prejsť
Posledný Eval: 2019-09-20T12: 00: 06Z
ID politiky: 2c53a13c-1765-11e8-82ef-23527761d060
Záverečná akcia: varovať
Dôvod konečnej akcie: policy_evaluation
Stav spúšťača brány
dockerfileinstructionDockerfile direktíva ‘HEALTHCHECK’ nenájdená, vyhovujúca podmienka ‘not_exists’ checkwarn

Výsledky ukazujú stav Pass a Final Action of Warn kvôli nesúladu informácií so smernicou Dockerfile. Toto nie je neúspešné, ale môže si to vyžadovať kontrolu a riešenie problému.

Konfigurácia a používanie doplnku Anchore Container Image Scanner Plugin v Jenkins

Krok 6: – Pridajte a nakonfigurujte doplnok Anchore Container Image Scanner Plugin v Jenkins

V tomto kroku integrujeme Anchor Engine so serverom Jenkins. Jenkins je server s otvoreným zdrojovým kódom založený na java, ktorý automatizuje širokú škálu opakujúcich sa úloh v cykle vývoja softvéru.

Anchore plugin je k dispozícii v Jenkins, ale v predvolenom nastavení nie je nainštalovaný.

Prihláste sa do Jenkins pomocou webového prehliadača

http: // your_server_ip_or_domain: 8080

Zadajte používateľské meno a heslo.

Ísť do Jenkins menu

Vyhľadajte a vyberte Spravujte Jenkins

Ísť do Spravovať doplnky

Na internete K dispozícii karta, prejdite nadol na Zostavte nástroje a vyberte ikonu Anchore Container Image Scanner

Kliknite na ikonu Inštalácia bez reštartu voľba.

Po úspešnej inštalácii Doplnok Anchore Container Image Scanner, ďalším krokom je konfigurácia poverení.

Prejdite na stránku Jenkins menu a vyberte Spravujte Jenkins pútko.

Otvorené Konfigurácia systému.

Vyhľadajte Konfigurácia kotvy.

vybrať Režim motora

Zadajte Kotvový motor podrobnosti (adresa URL, používateľské meno a heslo a port 8228 – predvolený port pre motor).

URL – http: // your_server_IP: 8228 / v1

Zadajte meno používateľa = admin
Ak ste heslo zmenili, zadajte heslo = foobar alebo nové heslo Krok 3 (Pozri vyššie)

cvaknutie Uložiť

Konfigurácia doplnku Anchore

Krok 8: – Pridávanie a skenovanie obrázkov

cvaknutie Nová vec na paneli Jenkins v ľavom hornom menu

Otvorí sa obrazovka s niekoľkými možnosťami.
Do poľa Zadajte názov položky zadajte požadovaný názov pre váš testovací projekt.

V tomto projekte použijeme zostavenie plynovodu.
Vyberte ikonu potrubie a kliknite na tlačidlo OK ok.

Teraz ste pripravení skenovať obrázky. V našom prípade použijeme obrázky, ktoré sa už nachádzajú v registri dokov, ktorý je prístupný pre Kotvový motor.

Za týmto účelom pridáte skript potrubia, ktorý určí obrázok, ktorý sa má skenovať.

Krok 9: – Pridajte skript potrubia

Posuňte zobrazenie nadol do sekcie Potrubie a pridajte skript na určenie obrázka, ktorý sa má skenovať. Začneme s openjdk: 8-jre-alpine, ktorý obsahuje niektoré zraniteľné miesta.

uzol {
def imageLine = ‘openjdk: 8-jre-alpine’`
writeFile file: ‘anchore_images’, text: imageLine`
názov kotvy: ‘anchore_images’`
}

cvaknutie Uložiť

Krok 10: – Spustite zostavenie a skontrolujte správy o skenovaní

Z ponuky Jenkins

cvaknutie Zostavte teraz

Spustí sa proces zostavovania, ktorý v závislosti od veľkosti obrázka trvá niekoľko minút. Po dokončení sa v rámci histórie zostavenia zobrazí číslo a farebné tlačidlo. Toto bude mať červenú farbu pri zlyhaní alebo modré pri prechode. Kliknutím na tlačidlo zobrazíte ďalšie výsledky.

Krok 11: – Skontrolujte výsledky

Kliknite na Zostaviť # zobraziť ďalšie podrobnosti
Tým sa otvorí a Výstup konzoly okno označujúce poruchu – Anchore Report (FAIL)

Podrobné správy naznačujú, či ide o analýzu Fail alebo Pass, a poskytujú niekoľko správ, ktoré ukazujú zraniteľné miesta, varovania a ďalšie na základe konfigurácie. V predvolenom nastavení je doplnok nakonfigurovaný tak, aby zlyhal pri zostavovaní (Stop) vždy, keď existujú zraniteľné miesta. Nižšie sú uvedené snímky obrazovky pre správy o politike a bezpečnosti.

Zhrnutie vyhodnotenia politiky Anchore

Nižšie je uvedená snímka výsledkov zabezpečenia pre zraniteľný obrázok.

Zoznam bežných zraniteľností a expozícií (CVE)

Ak teraz skenujeme stabilný obraz, debian: najnovšie, bez zraniteľností, výsledky sú uvedené nižšie.

Zhrnutie hodnotenia Anchore Policy (Pass)

Pass Pass Zoznam bežných zraniteľností a expozícií (CVE) 

záver

Anchore Container Image Scanner je výkonný nástroj na analýzu obrázkov, ktorý identifikuje širokú škálu zraniteľností a problémov s politikami v obrazoch Docker. Má veľa možností prispôsobenia a dá sa nakonfigurovať tak, ako reagovať na zistenie problémov počas analýzy. Jedným z nich je prerušiť zostavenie, keď sa motor stretne so závažnou zraniteľnosťou.

Ak hľadáte budovanie svojej kariéry v DevSecOps, pozrite sa na toto Kurz Udemy.

Tagy:

  • Open Source

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