Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker

Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker
Ahoj, Habr!

V súčasnej realite, vzhľadom na rastúcu úlohu kontajnerizácie v procesoch vývoja, je dôležitým aspektom zabezpečenie rôznych fáz a entít spojených s kontajnermi. Ručné overovanie je veľmi pracné, preto by bolo dobré urobiť aspoň počiatočné kroky k automatizácii tohto procesu.

V tomto článku sa podelím o hotové skripty na implementáciu niekoľkých utilít na zabezpečenie Dockeru, ako aj o pokynoch, ako nasadiť malú demo stanicu na testovanie tohto procesu. Materiály môžete využiť na experimentovanie s tým, ako organizovať proces testovania bezpečnosti obrazov a inštrukcií Dockerfile. Je jasné, že infraštruktúra vývoja a implementácie je u všetkých odlišná, preto nižšie uvediem niekoľko možných variantov.

Nástroje na kontrolu bezpečnosti

Existuje veľa rôznych pomocných aplikácií a skriptov, ktoré vykonávajú kontroly rôznych aspektov Docker infraštruktúry. Niektoré z nich už boli opísané v predchádzajúcom článku (https://habr.com/ru/company/swordfish_security/blog/518758/#docker-security), a v tomto materiáli by som sa rád zameral na tri z nich, ktoré pokrývajú väčšinu požiadaviek na bezpečnosť Docker obrazov, ktoré sa vytvárajú v procese vývoja. Okrem toho ukážem príklad, ako tieto tri utilitky spojiť do jedného pipeline na vykonávanie kontrol bezpečnosti.

Hadolint
https://github.com/hadolint/hadolint

Relatívne jednoduchá konzolová utilita, ktorá pomáha na prvý pohľad posúdiť správnosť a bezpečnosť inštrukcií Dockerfile-ov (napríklad používanie len povolených registri obrazov alebo používanie sudo).

Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker

Dockle
https://github.com/goodwithtech/dockle

Konzolová utilita, ktorá pracuje s obrazom (alebo so uloženým tar-archívom obrazu), ktorá kontroluje správnosť a bezpečnosť konkrétneho obrazu ako takého, analyzujúc jeho vrstvy a konfiguráciu - akí používatelia sú vytvorení, aké inštrukcie sú použité, aké zväzky sú pripojené, prítomnosť prázdneho hesla atď. Zatiaľ je počet kontrol relatívne malý a zakladá sa na niekoľkých vlastných kontrolách a odporúčaniach. CIS (Center for Internet Security) Benchmark pre Docker.
Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker

Trivy
https://github.com/aquasecurity/trivy

Tento nástroj je zameraný na identifikáciu zraniteľností dvoch typov – problémy so zostavením OS (podporované Alpine, RedHat (EL), CentOS, Debian GNU, Ubuntu) a problémy so závislosťami (Gemfile.lock, Pipfile.lock, composer.lock, package-lock.json, yarn.lock, Cargo.lock). Trivy dokáže skenovať ako obraz v repozitári, tak aj lokálny obraz, a taktiež vykonávať skenovanie na základe poskytnutého .tar súboru s Docker obrazom.

Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker

Možnosti implementácie nástrojov

Aby ste si mohli v izolovaných podmienkach vyskúšať popísané aplikácie, uvediem pokyny na inštaláciu všetkých nástrojov v rámci určitého zjednodušeného procesu.

Hlavná myšlienka spočíva v tom, že demonštrujeme, ako zaviesť automatizovanú kontrolu obsahu Dockerfile a Docker obrazov, ktoré sa vytvárajú v procese vývoja.

Samotná kontrola pozostáva z nasledujúcich krokov:

  1. Kontrola správnosti a bezpečnosti inštrukcií Dockerfile – pomocou nástroja linter Hadolint
  2. Kontrola správnosti a bezpečnosti konečných a medzistupňových obrazov – pomocou nástroja Dockle
  3. Kontrola prítomnosti známych zraniteľností (CVE) v základnom obraze a niekoľkých závislostiach – pomocou nástroja Trivy

Ďalej v článku uvediem tri možnosti implementácie týchto krokov:
Prvá – prostredníctvom konfigurácie CI/CD pipeline na príklade GitLab (s popisom procesu spustenia testovacej inštancie).
Druhá – s použitím shell skriptu.
Tretia – s vytvorením Docker obrazu na skenovanie Docker obrazov.
Môžete si vybrať variant, ktorý vám najviac vyhovuje, preniesť ho na svoju infraštruktúru a prispôsobiť podľa svojich potrieb.

Všetky potrebné súbory a dodatočné pokyny sú tiež v repozitári: https://github.com/Swordfish-Security/docker_cicd

Integrácia do GitLab CI/CD

V prvej možnosti preskúmame, ako možno zaviesť kontroly bezpečnosti na príklade systému repozitárov GitLab. Prejdeme krokmi a podrobne si ukážeme, ako nainštalovať z nuly testovacie prostredie s GitLab, zostaviť proces skenovania a spustiť nástroje na kontrolu testovacieho Dockerfile a náhodného obrazu – aplikácie JuiceShop.

Inštalácia GitLab
1. Nainštalujte Docker:

sudo apt-get update && sudo apt-get install docker.io

2. Pridajte aktuálneho používateľa do skupiny docker, aby ste mohli pracovať s Dockerom bez sudo:

sudo addgroup  docker

3. Zistite svoju IP adresu:

ip addr

4. Nainštalujte a spustite GitLab v kontajneri, pričom nahraďte IP adresu v hostname svojou:

docker run --detach 
--hostname 192.168.1.112 
--publish 443:443 --publish 80:80 
--name gitlab 
--restart always 
--volume /srv/gitlab/config:/etc/gitlab 
--volume /srv/gitlab/logs:/var/log/gitlab 
--volume /srv/gitlab/data:/var/opt/gitlab 
gitlab/gitlab-ce:latest

Čakáme, kým GitLab vykoná všetky potrebné inštalačné postupy (môžete sledovať proces prostredníctvom výstupu log súboru: docker logs -f gitlab).

5. Otvorte vo svojom prehliadači svoju lokálnu IP adresu a uvidíte stránku s návrhom na zmenu hesla pre používateľa root:
Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker
Zadajte nové heslo a prihláste sa do GitLab.

6. Vytvorte nový projekt, napríklad cicd-test a inicializujte ho štartovacím súborom README.md:
Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker
7. Teraz je potrebné nainštalovať GitLab Runner: agenta, ktorý na požiadanie spúšťa všetky potrebné operácie.
Stiahnite si najnovšiu verziu (v tomto prípade — pre Linux 64-bit):

sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

8. Urobte ho spustiteľným:

sudo chmod +x /usr/local/bin/gitlab-runner

9. Pridajte používateľa OS pre Runner-a a spustite službu:

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

Malo by to vyzerať približne takto:

local@osboxes:~$ sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
Runtime platform arch=amd64 os=linux pid=8438 revision=0e5417a3 version=12.0.1
local@osboxes:~$ sudo gitlab-runner start
Runtime platform arch=amd64 os=linux pid=8518 revision=0e5417a3 version=12.0.1

10. Teraz zaregistrujte Runner, aby mohol komunikovať s naším inštanciou GitLab.
Na to otvoríme stránku Settings-CI/CD (http://OUR_ IP_ADDRESS/root/cicd-test/-/settings/ci_cd) a na karte Runners nájdeme URL a Registration token:
Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker
11. Zaregistrujte Runner s použitím URL a Registration token:

sudo gitlab-runner register 
--non-interactive 
--url "http:///" 
--registration-token "" 
--executor "docker" 
--docker-privileged 
--docker-image alpine:latest 
--description "docker-runner" 
--tag-list "docker,privileged" 
--run-untagged="true" 
--locked="false" 
--access-level="not_protected"

Nakoniec získame funkčný GitLab, do ktorého je potrebné pridať inštrukcie na spustenie našich utilít. V tomto demonštračnom prípade nemáme kroky na zostavenie aplikácie a jej kontajnerizáciu, ale v reálnom prostredí budú predchádzať krokom skenovania a vytvárať obrazy a Dockerfile na analýzu.

Konfigurácia pipeline

1. Pridajte do repozitára súbory mydockerfile.df (toto je akýsi testovací Dockerfile, ktorý budeme kontrolovať) a konfiguračný súbor GitLab CI/CD procesu .gitlab-cicd.yml, ktorý obsahuje inštrukcie pre skenery (venujte pozornosť bodke v názve súboru).

Konfiguračný YAML súbor obsahuje pokyny na spustenie troch utilít (Hadolint, Dockle a Trivy), ktoré analyzujú zvolený Dockerfile a obraz zadaný v premennej DOCKERFILE. Všetky potrebné súbory si môžete stiahnuť z repozitára: https://github.com/Swordfish-Security/docker_cicd/

Výňatok z mydockerfile.df (toto je abstraktný súbor s množinou náhodných pokynov iba na demonštráciu fungovania utilít). Priama linka na súbor: mydockerfile.df

Obsah mydockerfile.df

FROM amd64/node:10.16.0-alpine@sha256:f59303fb3248e5d992586c76cc83e1d3700f641cbcd7c0067bc7ad5bb2e5b489 AS tsbuild
COPY package.json .
COPY yarn.lock .
RUN yarn install
COPY lib lib
COPY tsconfig.json tsconfig.json
COPY tsconfig.app.json tsconfig.app.json
RUN yarn build
FROM amd64/ubuntu:18.04@sha256:eb70667a801686f914408558660da753cde27192cd036148e58258819b927395
LABEL maintainer="Rhys Arkins "
LABEL name="renovate"
...
COPY php.ini /usr/local/etc/php/php.ini
RUN cp -a /tmp/piik/* /var/www/html/
RUN rm -rf /tmp/piwik
RUN chown -R www-data /var/www/html
ADD piwik-cli-setup /piwik-cli-setup
ADD reset.php /var/www/html/
## ENTRYPOINT ##
ADD entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
USER root

Konfigurácia YAML vyzerá takto (súbor si môžete stiahnuť priamo tu: .gitlab-ci.yml):

Obsah .gitlab-ci.yml

premenné:
    DOCKER_HOST: "tcp://docker:2375/"
    DOCKERFILE: "mydockerfile.df" # názov Dockerfile na analýzu   
    DOCKERIMAGE: "bkimminich/juice-shop" # názov Docker image na analýzu
    # DOCKERIMAGE: "knqyf263/cve-2018-11235" # testovací Docker image s niekoľkými KRITICKÝMI CVE
    SHOWSTOPPER_PRIORITY: "KRITICKÉ" # úroveň kritickosti, ktorá spôsobí zlyhanie Trivy úlohy
    TRIVYCACHE: "$CI_PROJECT_DIR/.cache" # kde ukladať databázu zraniteľností Trivy pre rýchlejšie opätovné použitie
    ARTIFACT_FOLDER: "$CI_PROJECT_DIR"
 
služby:
    - docker:dind # na to, aby bolo možné vytvárať docker image vo vnútri Runnera
 
stavy:
    - skenovanie
    - správa
    - publikovanie
 
HadoLint:
    # Základná analýza lint Dockerfile inštrukcií
    etapa: skenovanie
    obrázok: docker:git
 
    po_script:
    - cat $ARTIFACT_FOLDER/hadolint_results.json
 
    skript:
    - export VERSION=$(wget -q -O - https://api.github.com/repos/hadolint/hadolint/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*//1/')
    - wget https://github.com/hadolint/hadolint/releases/download/v${VERSION}/hadolint-Linux-x86_64 && chmod +x hadolint-Linux-x86_64
     
    # NB: hadolint vždy ukončí s kódom 0
    - ./hadolint-Linux-x86_64 -f json $DOCKERFILE > $ARTIFACT_FOLDER/hadolint_results.json || exit 0
 
    artefakty:
        kedy: vždy # vrátiť artefakty aj po zlyhaní úlohy       
        cesty:
        - $ARTIFACT_FOLDER/hadolint_results.json
 
Dockle:
    # Analyzovanie najlepších praktík ohľadom docker image (povolenia používateľov, inštrukcie dodržané pri vytvorení image, atď.)
    etapa: skenovanie   
    obrázok: docker:git
 
    po_script:
    - cat $ARTIFACT_FOLDER/dockle_results.json
 
    skript:
    - export VERSION=$(wget -q -O - https://api.github.com/repos/goodwithtech/dockle/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*//1')
    - wget https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.tar.gz && tar zxf dockle_${VERSION}_Linux-64bit.tar.gz
    - ./dockle --exit-code 1 -f json --output $ARTIFACT_FOLDER/dockle_results.json $DOCKERIMAGE   
     
    artefakty:
        kedy: vždy # vrátiť artefakty aj po zlyhaní úlohy       
        cesty:
        - $ARTIFACT_FOLDER/dockle_results.json
 
Trivy:
    # Analyzovanie docker image a závislostí balíkov voči niekoľkým CVE databázam
    etapa: skenovanie   
    obrázok: docker:git
 
    skript:
    # získavanie najnovšieho Trivy
    - apk add rpm
    - export VERSION=$(wget -q -O - https://api.github.com/repos/knqyf263/trivy/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*//1')
    - wget https://github.com/knqyf263/trivy/releases/download/v${VERSION}/trivy_${VERSION}_Linux-64bit.tar.gz && tar zxf trivy_${VERSION}_Linux-64bit.tar.gz
     
    # zobrazenie všetkých zraniteľností bez zlyhania zostavy
    - ./trivy -d --cache-dir $TRIVYCACHE -f json -o $ARTIFACT_FOLDER/trivy_results.json --exit-code 0 $DOCKERIMAGE    
    
    # zapíšte informácie o zraniteľnostiach do stdout v čitateľnom formáte (čítať čistý json nie je zábavné, že?). Toto môžete odstrániť, ak to nepotrebujete.
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 0 $DOCKERIMAGE    
 
    # zlyhanie zostavy, ak je nájdená priorita SHOWSTOPPER
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 1 --severity $SHOWSTOPPER_PRIORITY --quiet $DOCKERIMAGE
         
    artefakty:
        kedy: vždy # vrátiť artefakty aj po zlyhaní úlohy
        cesty:
        - $ARTIFACT_FOLDER/trivy_results.json
 
    cache:
        cesty:
        - .cache
 
Správa:
    # kombinovanie výstupov nástrojov do jedného HTML
    etapa: správa
    kedy: vždy
    obrázok: python:3.5
     
    skript:
    - mkdir json
    - cp $ARTIFACT_FOLDER/*.json ./json/
    - pip install json2html
    - wget https://raw.githubusercontent.com/shad0wrunner/docker_cicd/master/convert_json_results.py
    - python ./convert_json_results.py
     
    artefakty:
        cesty:
        - results.html

V prípade potreby je možné skenovať aj uložené obrazy vo forme .tar archívu (ale v YAML súbore bude potrebné zmeniť vstupné parametre pre nástroje)

NB: Trivy vyžaduje pre svoje spustenie nainštalované rpm a git. Inak bude vyhadzovať chyby pri skenovaní obrazov založených na RedHat a získavaní aktualizácií databázy zraniteľností.

2. Po pridaní súborov do repozitára, v súlade s pokynmi v našom konfiguračnom súbore, GitLab automaticky začne proces zostavovania a skenovania. Na karte CI/CD → Pipelines bude možné vidieť priebeh vykonávania pokynov.

V dôsledku toho máme štyri úlohy. Tri v nich sa zaoberajú priamo skenovaním a posledná (Report) zhromažďuje jednoduchú správu z roztrhnutých súborov s výsledkami skenovania.
Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker
Trivy predvolene zastaví svoje vykonávanie, ak sú zistené CRITICAL zraniteľnosti v obraze alebo závislostiach. Na druhej strane Hadolint vždy vracia kód úspechu, keďže výsledkom jeho vykonania sú vždy poznámky, čo vedie k zastaveniu zostavy.

V závislosti od konkrétnych požiadaviek je možné nakonfigurovať kód výstupu, aby tieto nástroje pri zistení problémov určitej kritickosti zastavili aj proces zostavovania. V našom prípade sa zostava zastaví, iba ak Trivy zistí zraniteľnosť s kritickosťou, ktorú sme uviedli v premennej SHOWSTOPPER v .gitlab-ci.yml.
Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker

Výsledok činnosti každého nástroja si môžete pozrieť v logu každej skenujúcej úlohy, priamo v json súboroch v sekcii artifacts alebo v jednoduchom HTML reporte (o ňom si povieme nižšie):
Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker

3. Na zobrazenie správ nástrojov v trochu čitateľnejšej forme sa používa malý skript v Pythone na konverziu troch json súborov do jedného HTML súboru s tabuľkou defektov.
Tento skript sa spúšťa ako samostatná úloha Report a jeho konečným artefaktom je HTML súbor so správou. Zdrojový skript je tiež uložený v repozitári a môže sa prispôsobiť vašim potrebám, farbám atď.
Spôsoby a príklady implementácie nástrojov na kontrolu bezpečnosti Docker

Shell skript

Druhá varianta je vhodná pre prípady, keď je potrebné testovať Docker obrazy mimo rámca CI/CD systému alebo je potrebné mať všetky inštrukcie vo forme, ktorú je možné vykonať priamo na hoste. Táto varianta je pokrytá pripraveným shell skriptom, ktorý sa dá spustiť na čistej virtuálnej (alebo aj reálnej) mašine. Skript vykonáva tie isté inštrukcie, ako je uvedené vyššie na gitlab-runner.

Na úspešné fungovanie skriptu musí byť v systéme nainštalovaný Docker a aktuálny používateľ musí byť v skupine docker.

Samotný skript si môžete vziať tu: docker_sec_check.sh

Na začiatku súboru sú premenné, ktoré určujú, ktorý obraz sa má skenovať a aké kritickosti defekty budú spôsobovať odchod z utility Trivy s uvedeným kódom chyby.

Počas vykonávania skriptu budú všetky utilitky stiahnuté do adresára docker_tools, výsledky ich práce budú v adresári docker_tools/json, a HTML report bude umiestnený v súbore results.html.

Príklad výstupu skriptu

~\/docker_cicd$ .\/docker_sec_check.sh

[+] Nastavenie premenných prostredia
[+] Inštalácia potrebných balíčkov
[+] Príprava potrebných adresárov
[+] Načítavanie vzorového Dockerfile
2020-10-20 10:40:00 (45.3 MB\/s) - ‘Dockerfile’ uložený [8071\/8071]
[+] Sťahovanie obrazu na skenovanie
latest: Sťahovanie z bkimminich\/juice-shop
[+] Spustenie Hadolint
...
Dockerfile:205 DL3015 Vyhnite sa dodatočným balíčkom špecifikovaním `--no-install-recommends`
Dockerfile:248 DL3002 Posledný používateľ by nemal byť root
...
[+] Spustenie Dockle
...
WARN    - DKL-DI-0006: Vyhnite sa značke latest
        * Vyhnite sa značke 'latest'
INFO    - CIS-DI-0005: Aktivujte dôveru v obsah pre Docker
        * export DOCKER_CONTENT_TRUST=1 pred docker pull\/build
...
[+] Spustenie Trivy
juice-shop\/frontend\/package-lock.json
=====================================
Celkom: 3 (UNKNOWN: 0, LOW: 1, MEDIUM: 0, HIGH: 2, CRITICAL: 0)

+---------------------+------------------+----------+---------+-------------------------+
|       KNIŽNICA      | ID ZRANITEĽNOSTI  | ZÁVAŽNOSŤ| VERZIA  |           NÁZOV        |
+---------------------+------------------+----------+---------+-------------------------+
| object-path         | CVE-2020-15256   | VYSOKÁ   | 0.11.4  | Zneužiteľnosť prototypov|
|                     |                  |          |         | v object-path          |
+---------------------+------------------+          +---------+-------------------------+
| tree-kill           | CVE-2019-15599   |          | 1.2.2   | Vstrekovanie kódu       |
+---------------------+------------------+----------+---------+-------------------------+
| webpack-subresource  | CVE-2020-15262   | NÍZKA    | 1.4.1   | Nechránené dynamicky   |
|                     |                  |          |         | načítané kusy          |
+---------------------+------------------+----------+---------+-------------------------+

juice-shop\/package-lock.json
============================
Celkom: 20 (UNKNOWN: 0, LOW: 1, MEDIUM: 6, HIGH: 8, CRITICAL: 5)

...

juice-shop\/package-lock.json
============================
Celkom: 5 (CRITICAL: 5)

...
[+] Odstraňovanie zvyškov
[+] Upravovanie výstupu
[+] Konvertovanie JSON výsledkov
[+] Písanie výsledkov HTML
[+] Bezproblémový odchod ============================================================
[+] Všetko je hotové. Nájdite výsledný HTML report v results.html

Docker obraz so všetkými utilitami

Ako tretiu alternatívu som vytvoril dva jednoduché Dockerfile na vytvorenie obrazu s bezpečnostnými utilitami. Prvý Dockerfile pomôže zostaviť sadu na skenovanie obrazu z repozitára, druhý (Dockerfile_tar) – zostaviť sadu na skenovanie tar súboru s obrazom.

1. Berieme príslušný Docker súbor a skripty z repozitára https://github.com/Swordfish-Security/docker_cicd/tree/master/Dockerfile.
2. Spúšťame ho na zostavenie:

docker build -t dscan:image -f docker_security.df .

3. Po skončení zostavenia vytvoríme kontajner z obrazu. Pri tom predávame premennú prostredia DOCKERIMAGE s názvom zaujímavého obrazu a montujeme Dockerfile, ktorý chceme analyzovať, z našej mašiny na súbor /Dockerfile (všimnite si, že vyžaduje absolútnu cestu k tomuto súboru):

docker run --rm -v $(pwd)/results:/results -v $(pwd)/docker_security.df:/Dockerfile -e DOCKERIMAGE="bkimminich/juice-shop" dscan:image


[+] Nastavovanie premenných prostredia
[+] Spúšťanie Hadolint
/Dockerfile:3 DL3006 Vždy špecifikujte verziu obrazu explicitne
[+] Spúšťanie Dockle
WARN    - DKL-DI-0006: Vyhýbajte sa najnovšiemu tagu
        * Vyhnite sa 'latest' tagu
INFO    - CIS-DI-0005: Aktivujte dôveryhodnosť obsahu pre Docker
        * export DOCKER_CONTENT_TRUST=1 pred docker pull/build
INFO    - CIS-DI-0006: Pridajte inštrukciu HEALTHCHECK do kontajnerového obrazu
        * nenájdená inštrukcia HEALTHCHECK
INFO    - DKL-LI-0003: Ukladajte iba potrebné súbory
        * zbytočný súbor : juice-shop/node_modules/sqlite3/Dockerfile
        * zbytočný súbor : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm64/Dockerfile
        * zbytočný súbor : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm/Dockerfile
[+] Spúšťanie Trivy
...
juice-shop/package-lock.json
============================
Celkom: 20 (UNKNOWN: 0, NÍZKE: 1, STREDNÉ: 6, VYSOKÉ: 8, KRITICKÉ: 5)
...
[+] Upravovanie výstupu na pekný vzhľad
[+] Spúšťanie hlavného modulu ============================================================
[+] Konvertovanie JSON výsledkov
[+] Zapisovanie výsledkov HTML
[+] Čistý výstup ============================================================
[+] Všetko je hotové. Nájdite výslednú HTML správu v results.html

Výsledky

Preskúmali sme len základný súbor utilít na skenovanie artefaktov Docker, ktorý, podľa môjho názoru, veľmi efektívne pokrýva značnú časť požiadaviek na bezpečnosť obrazov. Existuje ešte veľké množstvo platených a bezplatných nástrojov, ktoré môžu vykonávať rovnaké kontroly, vytvárať pekné správy alebo fungovať čisto v konzolovom režime, pokrývať systémy správy kontajnerov atď. Prehľad týchto nástrojov a spôsobov ich integrácie sa možno objaví neskôr.

Pozitívnym aspektom súpravy nástrojov opísaných v článku je to, že všetky sú postavené na otvorenom zdrojovom kóde a môžete s nimi aj s inými podobnými nástrojmi experimentovať, aby ste našli to, čo najlepšie vyhovuje vašim požiadavkám a špecifikám infraštruktúry. Bezpochyby všetky zraniteľnosti, ktoré budú objavené, by mali byť preskúmané na apliciabilitu v konkrétnych podmienkach, ale to je téma na budúci rozsiahly článok.

Dúfam, že tento návod, skripty a nástroje vám pomôžu a stanú sa východiskovým bodom na vytvorenie bezpečnejšej infraštruktúry v oblasti kontajnerizácie.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster