Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker

Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker
Hej, Habr!

I den moderna verkligheten, pÄ grund av den ökande rollen av containerisering i utvecklingsprocesserna, Àr frÄgan om att sÀkerstÀlla sÀkerheten för olika faser och enheter relaterade till containrar av stor vikt. Att genomföra kontroller manuellt Àr en mödosam uppgift, sÄ det skulle vara bra att ta Ätminstone de första stegen mot att automatisera denna process.

I den hÀr artikeln kommer jag att dela fÀrdiga skript för att implementera flera sÀkerhetsverktyg för Docker och en instruktion för hur man stÀller in en liten demo-miljö för att testa denna process. Materialen kan anvÀndas för att experimentera med hur man organiserar testprocessen för sÀkerheten i Docker-bilder och Dockerfile-instruktioner. Det Àr tydligt att infrastrukturen för utveckling och implementering varierar, sÄ nedan kommer jag att ge nÄgra möjliga alternativ.

SĂ€kerhetskontrollverktyg

Det finns ett stort antal olika hjÀlpprogram och skript som utför kontroller av olika aspekter av Docker-infrastruktur. En del av dem beskrevs i den tidigare artikeln (https://habr.com/ru/company/swordfish_security/blog/518758/#docker-security), och i detta material vill jag fokusera pÄ tre av dem som tÀcker huvuddelarna av sÀkerhetskraven för Docker-bilder som byggs under utvecklingsprocessen. Utöver detta kommer jag ocksÄ att visa ett exempel pÄ hur man kan samla dessa tre verktyg i en pipeline för att utföra sÀkerhetskontroller.

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

Ett ganska enkelt kommandoradsverktyg som hjÀlper till att initialt bedöma korrektheten och sÀkerheten i Dockerfile-instruktioner (till exempel att endast anvÀnda godkÀnda bildregister eller anvÀnda sudo).

Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker

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

Ett kommandoradsverktyg som arbetar med en bild (eller med en sparad tar-arkiv av bilden), som kontrollerar korrektheten och sĂ€kerheten för en specifik bild genom att analysera dess lager och konfiguration – vilka anvĂ€ndare som har skapats, vilka instruktioner som anvĂ€nds, vilka volymer som Ă€r monterade, förekomsten av ett tomt lösenord, etc. Även om antalet kontroller för tillfĂ€llet inte Ă€r stort, Ă€r det baserat pĂ„ nĂ„gra egna kontroller och rekommendationer. CIS (Center for Internet Security) Benchmark för Docker.
Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker

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

Det hĂ€r verktyget syftar till att hitta sĂ„rbarheter av tvĂ„ typer – problem med operativsystemets byggnationer (stöder Alpine, RedHat (EL), CentOS, Debian GNU, Ubuntu) och problem med beroenden (Gemfile.lock, Pipfile.lock, composer.lock, package-lock.json, yarn.lock, Cargo.lock). Trivy kan skanna bĂ„de en bild i ett register och en lokal bild, samt genomföra skanning baserat pĂ„ en överförd .tar-fil med Docker-bilden.

Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker

Alternativ för implementering av verktyg

För att prova de beskrivna applikationerna i en isolerad miljö kommer jag att ge instruktioner för installation av alla verktyg inom ramen för en nÄgot förenklad process.

Huvudidén Àr att demonstrera hur man kan implementera automatisk kontroll av innehÄllet i Dockerfile och Docker-bilder som skapas under utvecklingsprocessen.

SjÀlva kontrollen bestÄr av följande steg:

  1. Kontroll av korrekthet och sĂ€kerhet hos instruktioner i Dockerfile – med verktyget linter Hadolint
  2. Kontroll av korrekthet och sĂ€kerhet hos slutliga och mellanliggande bilder – med verktyget Dockle
  3. Kontroll av kĂ€nda sĂ„rbarheter (CVE) i basbilden och ett antal beroenden – med verktyget Trivy

DÀrefter i artikeln kommer jag att ge tre alternativ för implementering av dessa steg:
Det första – genom att konfigurera CI/CD-pipeline med ett exempel frĂ„n GitLab (med beskrivning av processen för att sĂ€tta upp en testinstans).
Det andra – med anvĂ€ndning av ett shell-skript.
Det tredje – med byggandet av en Docker-bild för att skanna Docker-bilder.
Du kan vÀlja det alternativ som passar dig bÀst, överföra det till din infrastruktur och anpassa det efter dina behov.

Alla nödvÀndiga filer och ytterligare instruktioner finns ocksÄ i registret: https://github.com/Swordfish-Security/docker_cicd

Integration i GitLab CI/CD

I det första alternativet kommer vi att titta pĂ„ hur man kan implementera sĂ€kerhetskontroller med exemplet pĂ„ GitLabs paketregister. HĂ€r gĂ„r vi genom stegen och beskriver hur man installerar en testmiljö med GitLab frĂ„n grunden, sammanstĂ€ller en skanningsprocess och kör verktygen för att kontrollera test-Dockerfile och en slumpmĂ€ssig bild – applikationen JuiceShop.

Installation av GitLab
1. Installera Docker:

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

2. LÀgg till den aktuella anvÀndaren i docker-gruppen sÄ att du kan arbeta med Docker utan sudo:

sudo addgroup  docker

3. Ta reda pÄ din IP:

ip addr

4. Installera och starta GitLab i en container, och ersÀtt IP-adressen i hostname med din egen:

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

Vi vÀntar pÄ att GitLab ska utföra alla nödvÀndiga installationsprocedurer (man kan följa processen genom att kolla loggfilen: docker logs -f gitlab).

5. Öppna din lokala IP-adress i webblĂ€saren och se sidan med förslag att Ă€ndra lösenordet för anvĂ€ndaren root:
Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker
Ange ett nytt lösenord och logga in pÄ GitLab.

6. Skapa ett nytt projekt, till exempel cicd-test, och initiera det med en startfil. README.md:
Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker
7. Nu mÄste vi installera GitLab Runner: agenten som ska starta alla nödvÀndiga operationer pÄ begÀran.
Ladda ner den senaste versionen (i detta fall för 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. Gör den körbar:

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

9. LÀgg till en OS-anvÀndare för Runner och starta tjÀnsten:

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

Det bör se ungefÀr ut sÄ hÀr:

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. Nu registrerar vi Runner sÄ att den kan interagera med vÄr GitLab-instans.
För detta öppnar vi sidan InstÀllningar-CI/CD (http://OUR_IP_ADDRESS/root/cicd-test/-/settings/ci_cd) och pÄ fliken Runners hittar vi URL och Registration token:
Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker
11. Registrera Runner genom att ange URL och 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"

Som ett resultat fÄr vi en fungerande GitLab dÀr vi behöver lÀgga till instruktioner för att starta vÄra verktyg. I detta demonstrationsfall har vi inga steg för byggandet av applikationen och dess containerisering, men i en verklig miljö kommer dessa att föregÄ stegen för skanning och skapa bilder och Dockerfile för analys.

Pipelinekonfiguration

1. LÄt oss lÀgga till filer i repot mydockerfile.df (detta Àr en slags test-Dockerfile som vi kommer att kontrollera) och konfigurationsfilen för GitLab CI/CD processen .gitlab-cicd.yml, som listar instruktionerna för skannrarna (observera punkten i filnamnet).

YAML-konfigurationsfilen innehÄller instruktioner för att köra tre verktyg (Hadolint, Dockle och Trivy) som analyserar den valda Dockerfilen och bilden som anges i variabeln DOCKERFILE. Alla nödvÀndiga filer kan tas frÄn repot: https://github.com/Swordfish-Security/docker_cicd/

Utdrag frÄn mydockerfile.df (detta Àr en abstrakt fil med en uppsÀttning godtyckliga instruktioner endast för att demonstrera verktygets funktion). DirektlÀnk till filen: mydockerfile.df

InnehÄllet i 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 <rhys@arkins.net>"
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

YAML-konfigurationen ser ut pÄ följande sÀtt (sjÀlva filen kan hÀmtas direkt hÀr: .gitlab-ci.yml):

InnehÄllet i .gitlab-ci.yml

variabler:
    DOCKER_HOST: "tcp://docker:2375/"
    DOCKERFILE: "mydockerfile.df" # namn pÄ Dockerfile att analysera
    DOCKERIMAGE: "bkimminich/juice-shop" # namn pÄ Dockerbild att analysera
    # DOCKERIMAGE: "knqyf263/cve-2018-11235" # test Dockerbild med flera KRI
    SHOWSTOPPER_PRIORITY: "KRI" # vilken nivÄ av kritikalitet som fÄr Trivy-jobbet att misslyckas
    TRIVYCACHE: "$CI_PROJECT_DIR/.cache" # var man cacher Trivy-databasen för sÄrbarheter för snabbare ÄteranvÀndning
    ARTIFACT_FOLDER: "$CI_PROJECT_DIR"
 
tjÀnster:
    - docker:dind # för att kunna bygga Dockerbilder inuti Runnern
 
steg:
    - skanna
    - rapportera
    - publicera
 
HadoLint:
    # GrundlÀggande lintanalys av Dockerfile-instruktioner
    steg: skanna
    bild: docker:git
 
    efter_script:
    - cat $ARTIFACT_FOLDER/hadolint_results.json
 
    script:
    - 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 kommer alltid att avsluta med 0 exit-kod
    - ./hadolint-Linux-x86_64 -f json $DOCKERFILE > $ARTIFACT_FOLDER/hadolint_results.json || exit 0
 
    artefakter:
        nÀr: alltid # returnera artefakter Àven efter jobbmisslyckande
        sökvÀgar:
        - $ARTIFACT_FOLDER/hadolint_results.json
 
Dockle:
    # Analyserar bÀsta praxis kring Dockerbild (anvÀndarbehörigheter, instruktioner som följdes nÀr bilden byggdes, etc.)
    steg: skanna 
    bild: docker:git
 
    efter_script:
    - cat $ARTIFACT_FOLDER/dockle_results.json
 
    script:
    - 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   
     
    artefakter:
        nÀr: alltid # returnera artefakter Àven efter jobbmisslyckande
        sökvÀgar:
        - $ARTIFACT_FOLDER/dockle_results.json
 
Trivy:
    # Analyserar Dockerbild och paketberoenden mot flera CVE-databaser
    steg: skanna 
    bild: docker:git
 
    script:
    # hÀmtar den senaste 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
     
    # visar alla sÄrbarheter utan att misslyckas i bygget
    - ./trivy -d --cache-dir $TRIVYCACHE -f json -o $ARTIFACT_FOLDER/trivy_results.json --exit-code 0 $DOCKERIMAGE    
    
    # skriver sÄrbarhetsinformation till stdout i ett lÀsbart format (att lÀsa ren json Àr inte kul, eller hur?). Du kan ta bort detta om du inte behöver det.
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 0 $DOCKERIMAGE    
 
    # misslyckas bygget om SHOWSTOPPER-prioritet hittas
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 1 --severity $SHOWSTOPPER_PRIORITY --quiet $DOCKERIMAGE
         
    artefakter:
        nÀr: alltid # returnera artefakter Àven efter jobbmisslyckande
        sökvÀgar:
        - $ARTIFACT_FOLDER/trivy_results.json
 
    cache:
        sökvÀgar:
        - .cache
 
Rapport:
    # kombinerar verktygens utdata till en HTML
    steg: rapportera
    nÀr: alltid
    bild: python:3.5
     
    script:
    - 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
     
    artefakter:
        sökvÀgar:
        - results.html

Om det behövs kan man ocksÄ skanna och spara bilder som .tar-arkiv (men det kommer att krÀva att ingÄngsparametrarna Àndras i YAML-filen för verktygen)

Obs: Trivy krÀver installerade rpm och git. Annars kommer det att ge fel vid skanning av RedHat-baserade bilder och vid hÀmtning av uppdateringar för sÄrbarhetsdatabasen.

2. Efter att filerna har lagts till i repositoryt, kommer GitLab automatiskt att pĂ„börja bygg- och skanningsprocessen enligt instruktionerna i vĂ„r konfigurationsfil. Under fliken CI/CD → Pipelines kan man se hur instruktionerna genomförs.

Som ett resultat har vi fyra uppgifter. Tre av dem fokuserar pÄ sjÀlva skanningen och den sista (Report) sammanstÀller en enkel rapport frÄn de olika filerna med skanningsresultat.
Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker
Som standard stoppar Trivy sin körning om det upptÀcker CRITICAL sÄrbarheter i bilden eller dess beroenden. Samtidigt ger Hadolint alltid en Success-kod som resultat, eftersom det alltid finns anmÀrkningar, vilket leder till att byggprocessen stoppas.

Beroende pÄ specifika krav kan man konfigurera exitkoden sÄ att dessa verktyg stoppar byggprocessen vid upptÀckta problem av viss kritikalitet. I vÄrt fall stannar byggprocessen bara om Trivy upptÀcker en sÄrbarhet med den kritikalitet som vi angav i variabeln SHOWSTOPPER i .gitlab-ci.yml.
Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker

Resultatet av varje verktags körning kan ses i loggen för varje skanningsuppgift, antingen i json-filerna under artifacts eller i en enkel HTML-rapport (mera om det snart):
Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker

3. För att presentera rapporterna frÄn verktygen i en nÄgot mer lÀsbar form anvÀnds ett litet Python-skript för att konvertera tre json-filer till en HTML-fil med en felstabell.
Detta skript körs som en separat Report-uppgift, och dess slutliga artefakt Àr en HTML-fil med rapporten. KÀllkoden till skriptet finns ocksÄ i repositoryt och kan anpassas efter egna behov, fÀrger etc.
Metoder och exempel pÄ implementering av verktyg för att kontrollera sÀkerheten i Docker

Shell-skript

Det andra alternativet Àr lÀmpligt för situationer dÀr det Àr nödvÀndigt att kontrollera Docker-bilder utanför CI/CD-systemet eller dÀr alla instruktioner behöver vara i ett format som kan köras direkt pÄ vÀrden. Detta alternativ tÀcks av ett fÀrdigt shell-skript som kan köras pÄ en ren virtuell (eller till och med fysisk) maskin. Skriptet kör samma instruktioner som det ovan nÀmnda gitlab-runner.

För att skriptet ska fungera korrekt mÄste Docker vara installerat i systemet och den aktuella anvÀndaren mÄste vara i docker-gruppen.

SjÀlva skriptet kan hÀmtas hÀr: docker_sec_check.sh

I början av filen anges med variabler vilken bild som ska skannas och vilka typer av sÄrbarheter som kommer att orsaka att Trivy lÀmnar med den angivna felkoden.

Under skriptets körning kommer alla verktyg att laddas ner till katalogen docker_tools, resultaten frĂ„n deras arbete — till katalogen docker_tools/json, och HTML-rapporten kommer att ligga i filen results.html.

Exempel pÄ skriptutdata

~\/docker_cicd$ .\/docker_sec_check.sh

[+] SÀtter miljövariabler
[+] Installerar nödvÀndiga paket
[+] Förbereder nödvÀndiga kataloger
[+] HĂ€mtar exempel Dockerfile
2020-10-20 10:40:00 (45.3 MB/s) - ‘Dockerfile’ sparad [8071/8071]
[+] HÀmtar bild för skanning
latest: HÀmtar frÄn bkimminich/juice-shop
[+] Kör Hadolint
...
Dockerfile:205 DL3015 Undvik extra paket med `--no-install-recommends`
Dockerfile:248 DL3002 Sista anvÀndare ska inte vara root
...
[+] Kör Dockle
...
WARN    - DKL-DI-0006: Undvik latest-tag
        * Undvik 'latest' tag
INFO    - CIS-DI-0005: Aktivera innehÄllsutbyte för Docker
        * export DOCKER_CONTENT_TRUST=1 innan docker pull/build
...
[+] Kör Trivy
juice-shop/frontend/package-lock.json
=====================================
Totalt: 3 (UNKNOWN: 0, LOW: 1, MEDIUM: 0, HIGH: 2, CRITICAL: 0)

+---------------------+------------------+----------+---------+-------------------------+
|       BIBLIOTEK     | SÄKERHETS-ID      | SVARIGHET| VERSION |             TITEL       |
+---------------------+------------------+----------+---------+-------------------------+
| object-path         | CVE-2020-15256   | HÖG      | 0.11.4  | Prototypförorening i   |
|                     |                  |          |         | object-path             |
+---------------------+------------------+          +---------+-------------------------+
| tree-kill           | CVE-2019-15599   |          | 1.2.2   | Kodinjektion          |
+---------------------+------------------+----------+---------+-------------------------+
| webpack-subresource | CVE-2020-15262   | LÅG      | 1.4.1   | Oskyddade dynamiskt    |
|                     |                  |          |         | laddade chunks         |
+---------------------+------------------+----------+---------+-------------------------+

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

...

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

...
[+] Tar bort överblivna filer
[+] Gör utdata snygg
[+] Konverterar JSON-resultat
[+] Skriver resultat HTML
[+] Ren avslutning ============================================================
[+] Allt Àr klart. Hitta den resulterande HTML-rapporten i results.html

Docker-image med alla verktyg

Som ett tredje alternativ har jag skapat tvÄ enkla Dockerfile för att skapa en bild med sÀkerhetsverktyg. Den första Dockerfile hjÀlper till att bygga ett kit för att skanna bild frÄn ett förrÄd, den andra (Dockerfile_tar) - att bygga ett kit för att skanna en tar-fil med bilden.

1. Ta motsvarande Docker-fil och skripten frÄn förrÄdet https://github.com/Swordfish-Security/docker_cicd/tree/master/Dockerfile.
2. Kör den för att bygga:

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

3. Efter byggandet skapar vi en container frÄn bilden. Under tiden skickar vi miljövariabeln DOCKERIMAGE med namnet pÄ den bild vi Àr intresserade av och monterar Dockerfile som vi vill analysera frÄn vÄr maskin pÄ filen /Dockerfile (observera att absolut sökvÀg till denna fil krÀvs):

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


[+] StÀller in miljövariabler
[+] Kör Hadolint
/Dockerfile:3 DL3006 MĂ€rk alltid versionen av en bild explicit
[+] Kör Dockle
WARN - DKL-DI-0006: Undvik senaste taggen
 * Undvik 'latest' tagg
INFO - CIS-DI-0005: Aktivera innehÄllsförtroende för Docker
 * export DOCKER_CONTENT_TRUST=1 innan docker pull/build
INFO - CIS-DI-0006: LĂ€gg till HEALTHCHECK-instruktion i containerbilden
 * hittades inte HEALTHCHECK-sats
INFO - DKL-LI-0003: SÀtt bara nödvÀndiga filer
 * onödig fil : juice-shop/node_modules/sqlite3/Dockerfile
 * onödig fil : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm64/Dockerfile
 * onödig fil : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm/Dockerfile
[+] Kör Trivy
...
juice-shop/package-lock.json
============================
Totalt: 20 (UNKNOWN: 0, LOW: 1, MEDIUM: 6, HIGH: 8, CRITICAL: 5)
...
[+] Gör utdata vackrare
[+] Startar huvudmodulen ============================================================
[+] Konverterar JSON-resultat
[+] Skriver resultat HTML
[+] Ren avslutning ============================================================
[+] Allt Àr klart. Hitta den resulterande HTML-rapporten i results.html

Resultat

Vi har bara tÀckt ett grundlÀggande kit av verktyg för att skanna Docker-artifakter, som jag tycker effektivt tÀcker en ganska stor del av sÀkerhetskraven för bilder. Det finns mÄnga fler betalda och gratis verktyg som kan utföra samma kontroller, skapa vackra rapporter eller fungera helt i kommandoradslÀge, tÀcka containerhanteringssystem osv. En översikt över dessa verktyg och sÀtt att integrera dem kan komma senare.

En positiv aspekt av verktygssatsen som beskrivs i artikeln Àr att alla bygger pÄ öppen kÀllkod, vilket gör att du kan experimentera med dem och andra liknande verktyg för att hitta vad som passar dina krav och infrastrukturen. SjÀlvklart bör alla sÄrbarheter som upptÀcks undersökas för tillÀmplighet i specifika omstÀndigheter, men det Àr ett Àmne för en framtida stor artikel.

Jag hoppas att denna instruktion, skript och verktyg hjÀlper dig och blir en utgÄngspunkt för att skapa en sÀkrare infrastruktur inom containerisering.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster