Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited

Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited
Tere, Habr!

Kaasaegses reaalsuses, arvestades konteinerimise kasvavat rolli arendusprotsessides, on konteineritega seotud erinevate etappide ja subjektide turvalisuse tagamine oluline teema. Manuaalsed kontrollid on aeganÔudvad, seega oleks hea teha vÀhemalt esimesed sammud selle protsessi automatiseerimiseks.

Selles artiklis jagan valmis skripte, et rakendada mitmeid Docker'i turvalisuse tööriistu ja juhiseid selle protsessi testimiseks vĂ€ikese demo keskkonna seadistamiseks. Materjale saab kasutada, et katsetada, kuidas korraldada turvatestide protsessi Docker'i piltide ja Dockerfile'i kĂ€skude jaoks. On selge, et igalĂŒhel on erinev arendus- ja juurutus-infrastruktuur, seega toon allpool mĂ”ned vĂ”imalikud lahendused.

Turvalisuse kontrollimise tööriistad

On olemas palju erinevaid abirakendusi ja skripte, mis teostavad kontrollimist erinevate aspektide ĂŒle Docker'i infrastruktuuris. Osad neist on juba eelnevas artiklis kirjeldatud (https://habr.com/ru/company/swordfish_security/blog/518758/#docker-security), kuid kĂ€esolevas materjalis soovin peatuda kolmel, mis katab suurima osa Docker'i piltide turvanĂ”uetest, mille loomine toimub arendusprotsessis. Lisaks nĂ€itan ka nĂ€idet, kuidas neid kolme tööriista kokku ĂŒhendada ĂŒhe vĂ”rgustikku turvalisuse kontrollimiseks.

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

Suhteliselt lihtne konsoolitööriist, mis aitab esialgu hinnata Dockerfile'i kÀskude korrektsust ja turvalisust (nÀiteks ainult lubatud piltide registrite kasutamine vÔi sudo kasutamine).

Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited

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

Konsoolitööriist, mis töötab pildiga (vĂ”i salvestatud pildi tar-archiiviga), kontrollides konkreetse pildi korrektsust ja turvalisust, analĂŒĂŒsides selle kihte ja konfiguratsiooni – millised kasutajad on loodud, milliseid kĂ€ske kasutatakse, millised vabrikud on ĂŒhendatud, olemasolu tĂŒhja parooli jne. Hetkel on kontrollide arv veel ĂŒsna vĂ€ike ning pĂ”hineb mitmetel enda kontrollidel ja soovitustel. CIS (Center for Internet Security) Benchmark Docker'i jaoks.
Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited

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

See tööriist on suunatud kahe tĂŒĂŒpi haavatavuste leidmisele – operatsioonisĂŒsteemi kogumite probleemid (toetatakse Alpine, RedHat (EL), CentOS, Debian GNU ja Ubuntu) ning sĂ”ltuvuste probleemid (Gemfile.lock, Pipfile.lock, composer.lock, package-lock.json, yarn.lock, Cargo.lock). Trivy suudab skaneerida nii pilti hoidlas kui ka kohalikku pilti ja viia skaneerimist lĂ€bi edastatud .tar-faili pĂ”hjal, mis sisaldab Docker-pilti.

Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited

Tööriistade juurutamise variandid

Kuna soovin proovida kirjeldatud rakendusi isoleeritud tingimustes, toon vÀlja juhised kÔikide tööriistade installimiseks lihtsustatud protsessi raames.

Peamine idee on nÀidata, kuidas automaatset kontrolli Dockerfile'i ja arendusprotsessi kÀigus loodud Docker-piltide sisu rakendada.

Kontroll koosneb jÀrgmistest etappidest:

  1. Dockerfile'i kÀskude Ôigsuse ja turvalisuse kontrollimine - linteri tööriistaga Hadolint
  2. LÔpp- ja vahepilti Ôigsuse ja turvalisuse kontrollimine - tööriistaga Dockle
  3. Tuntud haavatavuste (CVE) olemasolu kontrollimine pÔhijoonel ja mitmesse sÔltuvusse - tööriistaga Trivy

Edasiartiklis toon vÀlja kolm varianti nende sammude juurutamiseks:
Esimene - CI/CD pipeline'i konfigureerimise teel GitLabi nÀitel (vÔttes arvesse testinstantsi tÔstmisprotsessi).
Teine - shell-skripti abil.
Kolmas - Docker-pildi loomisega Docker-piltide skaneerimiseks.
Saate valida variandi, mis sobib teile kÔige paremini, viia selle oma infrastruktuuri ja kohandada oma vajadustega.

KÔik vajalikud failid ja tÀiendavad juhised on samuti hoidlas: https://github.com/Swordfish-Security/docker_cicd

Integreerimine GitLab CI/CD-sse

Esimeses variandis vaatame, kuidas saab juurutada turvaparandusi GitLabi hoidlasĂŒsteemi nĂ€itel. Siin kĂ€ime samm-sammult lĂ€bi, kuidas seadistada nullist testkeskkond GitLabiga, koostada skaneerimisprotsess ja kĂ€ivitada tööriistad test Dockerfile'i ja juhusliku pildi - rakenduse JuiceShop - kontrollimiseks.

GitLabi installimine
1. Installige Docker:

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

2. Lisage praegune kasutaja docker-gruppi, et saaksite Dockeriga töötada ilma sudo't kasutamata:

sudo addgroup  docker

3. Leidke oma IP:

ip addr

4. Installige ja kÀivitage GitLab konteineris, asendades hostname'is IP aadress oma omaga:

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

Ootame, kuni GitLab tÀidab kÔik vajalikud installatsiooniprotseduurid (protsessi saab jÀlgida logifaili vÀljundi kaudu: docker logs -f gitlab).

5. Avame oma kohaliku IP-aadressi brauseris ja nÀeme lehte, kus pakutakse muuta root kasutaja parooli:
Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited
Seame uue parooli ja siseneme GitLabi.

6. Loome uue projekti, nÀiteks cicd-test, ja initsialiseerime selle algfailiga README.md:
Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited
7. NĂŒĂŒd peame installima GitLab Runneri: agendi, mis kĂ€ivitab kĂ”ik vajalikud toimingud vastavalt pĂ€ringule.
Laadime alla uusima versiooni (sel juhul - 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. Teeme selle kÀivitatavaks:

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

9. Lisame operatsioonisĂŒsteemi kasutaja Runner-ile ja kĂ€ivitame teenuse:

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

Tulemus peaks olema ligikaudu jÀrgmine:

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. NĂŒĂŒd registreerime Runneri, et see saaks suhelda meie GitLabi instantsiga.
Selleks avame lehe Settings-CI\/CD (http:\/\/OUR_ IP_ADDRESS\/root\/cicd-test\/-\/settings\/ci_cd) ja vahekaardil Runners leiame URL-i ja Registration tokeni:
Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited
11. Registreerime Runneri, asetades URL-i ja Registration tokeni:

sudo gitlab-runner register 
--non-interactive 
--url "http:\/\/<URL>\/" 
--registration-token "<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"

LĂ”puks saame töötava GitLabi, kuhu tuleb lisada juhiseid meie utiliitide kĂ€ivitamiseks. Antud demonstreerimisel puuduvad meil rakenduse koostamise ja konteineriseerimise etapid, kuid reaalses keskkonnas jĂ€rgnevad need skaneerimise etappidele ja loovad analĂŒĂŒsiks pildid ja Dockerfile.

Pipeline'i konfiguratsioon

1. Lisame reposse failid mydockerfile.df (see on teatud testimiseks mÔeldud Dockerfile, mida me vaatame) ja GitLab CI\/CD protsessi konfiguratsioonifaili .gitlab-cicd.yml, mis loetleb skanneritele antud juhised (tÀhelepanu punkt faili nimetuses).

YAML konfiguratsioonifail sisaldab juhiseid kolme tööriista (Hadolint, Dockle ja Trivy) kĂ€ivitamiseks, mis analĂŒĂŒsivad valitud Dockerfile'i ja pilti, mis on mÀÀratud muutuja DOCKERFILE kaudu. KĂ”ik vajalikud failid on saadaval hoidlas: https://github.com/Swordfish-Security/docker_cicd/

VÀljavÔte mydockerfile.df (see on abstraktne fail juhuslike kÀskude kogumiga, mis on mÔeldud ainult tööriista demonstreerimiseks). Otsene link faili juurde: mydockerfile.df

mydockerfile.df sisu

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 konfiguratsioon nÀeb vÀlja jÀrgmine (ise faili saab siit otse alla laadida: .gitlab-ci.yml):

.gitlab-ci.yml sisu

muutujad:
    DOCKER_HOST: "tcp://docker:2375/"
    DOCKERFILE: "mydockerfile.df" # analĂŒĂŒsidokumendi nimi
    DOCKERIMAGE: "bkimminich/juice-shop" # analĂŒĂŒsitava Docker pildi nimi
    # DOCKERIMAGE: "knqyf263/cve-2018-11235" # test Docker pilt, kus on mitu KRIITILIST CVE
    SHOWSTOPPER_PRIORITY: "CRITICAL" # milline kriitilisus tÔukab Trivy töö ebaÔnnestuma
    TRIVYCACHE: "$CI_PROJECT_DIR/.cache" # kus salvestada Trivy haavatavuste andmebaas kiiremaks kasutamiseks
    ARTIFACT_FOLDER: "$CI_PROJECT_DIR"

teenused:
    - docker:dind # et saaksime Runneris Docker piltide ehitamiseks

etapid:
    - skaneerida
    - raport
    - avalikustada

HadoLint:
    # Dockerfile'i juhiste pĂ”hianalĂŒĂŒs
    etapp: skaneerida
    pilt: docker:git

    pÀrast_skripti:
    - cat $ARTIFACT_FOLDER/hadolint_results.json

    skript:
    - eksport 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 lahkub alati 0 vÀljumise koodiga
    - ./hadolint-Linux-x86_64 -f json $DOCKERFILE > $ARTIFACT_FOLDER/hadolint_results.json || exit 0

    artefaktid:
        kui: alati # tagastage artefaktid isegi pÀrast töö ebaÔnnestumist
        teed:
        - $ARTIFACT_FOLDER/hadolint_results.json

Dockle:
    # Parimate praktikate analĂŒĂŒs docker pildi kohta (kasutajaĂ”igused, juhised, mida jĂ€rgiti pildi ehitamisel jne)
    etapp: skaneerida
    pilt: docker:git

    pÀrast_skripti:
    - cat $ARTIFACT_FOLDER/dockle_results.json

    skript:
    - eksport 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
    
    artefaktid:
        kui: alati # tagastage artefaktid isegi pÀrast töö ebaÔnnestumist
        teed:
        - $ARTIFACT_FOLDER/dockle_results.json

Trivy:
    # AnalĂŒĂŒsib docker pilti ja pakettide sĂ”ltuvusi erinevate CVE baaside vastu
    etapp: skaneerida
    pilt: docker:git

    skript:
    # viimase Trivy saamine
    - apk add rpm
    - eksport 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
    
    # kÔik haavatavused ilma ehitust ebaÔnnestumata
    - ./trivy -d --cache-dir $TRIVYCACHE -f json -o $ARTIFACT_FOLDER/trivy_results.json --exit-code 0 $DOCKERIMAGE
    
    # kirjutage haavatavuste info stdout-i inimeste loetavas formaadis (puhta json-i lugemine ei ole lÔbus, eks?). Saate selle eemaldada, kui te ei vaja seda.
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 0 $DOCKERIMAGE
    
    # ehitamise ebaÔnnestumine, kui SHOWSTOPPER prioriteet tuvastatakse
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 1 --severity $SHOWSTOPPER_PRIORITY --quiet $DOCKERIMAGE
    
    artefaktid:
        kui: alati # tagastage artefaktid isegi pÀrast töö ebaÔnnestumist
        teed:
        - $ARTIFACT_FOLDER/trivy_results.json

    vahemÀlu:
        teed:
        - .cache

Raport:
    # ĂŒhendab tööriistade vĂ€ljundid ĂŒheks HTML-iks
    etapp: raport
    kui: alati
    pilt: 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
    
    artefaktid:
        teed:
        - results.html

Vajadusel on vÔimalik skannida ka salvestatud pilte .tar-arhiivina (kuid YAML-failis tuleb muuta utiliitide sisendparameetreid)

NB: Trivy nÔuab oma kÀivitamiseks installitud rpm ja git. Vastasel juhul annavad nad skannimise ajal RedHat-pÔhiste piltide ja haavatavuste andmebaasi vÀrskenduste puhul vigu.

2. PĂ€rast failide lisamist reposse alustab GitLab automaatselt koostamise ja skaneerimise protsessi vastavalt meie konfiguratsioonifaili juhistele. CI/CD → Pipelines vahekaardil saab jĂ€lgida juhiste tĂ€itmise kĂ€iku.

Kokku on meil neli ĂŒlesannet. Kolm neist tegelevad otse skaneerimisega ja viimane (Report) kogub skaneerimistulemustest kokku lihtsa aruande.
Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited
Vaikimisi lÔpetab Trivy oma toimimise, kui avastatakse pildis vÔi sÔltuvustes CRITICAL haavatavusi. Samas tagastab Hadolint alati Success vÀljakoodiga, kuna selle tÀitmisel on alati tÀhelepanekud, mis viivad koostamise lÔpetamiseni.

SÔltuvalt konkreetsetest nÔudmistest on vÔimalik konfigureerida vÀljakoodi, et need utiliidid katkestaksid ka koostamisprotsessi teatud kriitilisuse probleemide tuvastamisel. Meie juhul peatub koostamine ainult siis, kui Trivy avastab haavatavuse, mille kriitilisuse oleme mÀÀranud muutuja SHOWSTOPPER'isse .gitlab-ci.yml.
Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited

Iga utiliidi töö tulemust saab vaadata iga skaneerimisĂŒlesande logis, otse json-failides artifacts ja lihtsas HTML-aruandes (millest rÀÀgime natuke madalamal):
Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited

3. Utiliitide aruannete esitamiseks veidi loetavamal viisil kasutatakse vĂ€ikest Python-skripti kolme json-faili konverteerimiseks ĂŒheks HTML-failiks koos defektide tabeliga.
Seda skripti kĂ€ivitab eraldi ĂŒlesanne Report, mille lĂ”pptooteks on HTML-fail aruandega. Skripti lĂ€htekood on samuti repos ja seda saab kohandada vastavalt oma vajadustele, vĂ€rvidele jne.
Docker'i turvalisuse kontrollimise utiliitide rakendamise viisid ja nÀited

Shell-skript

Teine variant sobib juhtudeks, kui on vajalik kontrollida Docker-pilte mitte CI/CD sĂŒsteemi kontekstis vĂ”i kui on vajalik, et kĂ”ik juhised oleksid vormingus, mida saab otse hostis tĂ€ita. See variant on kaetud valmis shell-skriptiga, mida saab kĂ€ivitada puhtal virtuaal- (vĂ”i isegi fĂŒĂŒsilisel) masinal. Skript tĂ€idab samu juhiseid, mis eelmainitud gitlab-runner.

Skripti edukaks tööks peab sĂŒsteemis olema installitud Docker ja praegune kasutaja peab olema docker rĂŒhmas.

Kogu skripti saab leida siit: docker_sec_check.sh

Faili alguses mÀÀratakse muutujate abil, millist pilti on vaja skannida ja milliseid tÔrkeid eri tÔsidustega pÔhjustab utiliit Trivy kaugtöötlusest vÀljumisega koos mÀÀratud veakoodiga.

Skripti tÀitmise kÀigus laaditakse kÔik utiliidid katalooge docker_tools, nende töö tulemused salvestatakse katalooge docker_tools/json, ja HTML aruanne asub failis results.html.

Skripti vÀljundi nÀide

~\/docker_cicd$ .\/docker_sec_check.sh

[+] Keskkonnamuutujate seadmine
[+] NÔutavate pakettide installimine
[+] Vajalikud kataloogid ettevalmistamine
[+] NĂ€idis Dockerfile'i hankimine
2020-10-20 10:40:00 (45.3 MB/s) - 'Dockerfile' salvestatud [8071/8071]
[+] Pildi tÔmbamine skannimiseks
latest: TÔmbamine from bkimminich\/juice-shop
[+] Hadolint'i kÀitamine
...
Dockerfile:205 DL3015 VÀltige lisapakette, mÀÀrates `--no-install-recommends`
Dockerfile:248 DL3002 Viimane KASUTAJAS ei tohiks olla root
...
[+] Dockle'i kÀitamine
...
WARN    - DKL-DI-0006: VÀltige viimast mÀrgendit
        * VÀltige 'latest' mÀrgendit
INFO    - CIS-DI-0005: LĂŒlitage Dockerisse sisu usaldus
        * eksportige DOCKER_CONTENT_TRUST=1 enne docker pull/buildi
...
[+] Trivy kÀitamine
juice-shop\/frontend\/package-lock.json
=====================================
Kokku: 3 (UNKNOWN: 0, LOW: 1, MEDIUM: 0, HIGH: 2, CRITICAL: 0)

+---------------------+------------------+----------+---------+-------------------------+
|       TEGEVUS       | TÕRGE ID        | TÕSIDUS  | VERSIOON|             PEALKIRI   |
+---------------------+------------------+----------+---------+-------------------------+
| object-path         | CVE-2020-15256   | HIGH     | 0.11.4  | PrototĂŒĂŒbi saastumine  |
|                     |                  |          |         | object-path             |
+---------------------+------------------+          +---------+-------------------------+
| tree-kill           | CVE-2019-15599   |          | 1.2.2   | Koodi sisestamine      |
+---------------------+------------------+----------+---------+-------------------------+
| webpack-subresource | CVE-2020-15262   | LOW      | 1.4.1   | Kaitsmata dĂŒnaamilised  |
|                     |                  |          |         | laaditud tĂŒkid         |
+---------------------+------------------+----------+---------+-------------------------+

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

...

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

...
[+] JÀÀkide eemaldamine
[+] VĂ€ljundi ilusaks muutmine
[+] JSON tulemuste konverteerimine
[+] Tulemuste HTML-i kirjutamine
[+] Ühepoolne vĂ€ljumine ============================================================
[+] KÔik on tehtud. Leidke valminud HTML aruanne failist results.html

Docker-pilt koos kÔigi utiliitidega

Kolmanda alternatiivina koostasin kaks lihtsat Dockerfile'i, et luua pilt turbeutiliitidega. Üks Dockerfile aitab koguda komplekti pildi skaneerimiseks oma hoidlast, teine (Dockerfile_tar) - koguda komplekti tar-failist pildi skaneerimiseks.

1. VÔtame asjakohase Docker faili ja skriptid hoidlast https://github.com/Swordfish-Security/docker_cicd/tree/master/Dockerfile.
2. KĂ€ivitame selle koostamiseks:

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

3. PĂ€rast koostamise lĂ”ppu loome konteineri pildist. Selle kĂ€igus edastame keskkonnamuutujate DOCKERIMAGE koos meid huvitava pildi nimega ja monteerime analĂŒĂŒsitava Dockerfile'i oma masinal failina /Dockerfile (pange tĂ€hele, et selle faili jaoks on vajalik absoluutne tee):

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


[+] Keskkonnamuutujate seadmine
[+] KĂ€itame Hadolinti
\/Dockerfile:3 DL3006 Alati mÀrgistage pildi versioon selgelt
[+] KĂ€itame Dockle'i
HOIATUS - DKL-DI-0006: VĂ€ltige viimase sildi kasutamist
        * VĂ€ltige 'viimane' silt
INFO - CIS-DI-0005: Luba Dockeris sisu usaldus
        * eksportige DOCKER_CONTENT_TRUST=1 enne docker pull\/build
INFO - CIS-DI-0006: Lisage tervise kontrollimise juhis konteineri pilti
        * ei leitud tervise kontrollimise avaldust
INFO - DKL-LI-0003: Pange ainult vajalikud failid
        * mittevajalik fail : juice-shop\/node_modules\/sqlite3\/Dockerfile
        * mittevajalik fail : juice-shop\/node_modules\/sqlite3\/tools\/docker\/architecture\/linux-arm64\/Dockerfile
        * mittevajalik fail : juice-shop\/node_modules\/sqlite3\/tools\/docker\/architecture\/linux-arm\/Dockerfile
[+] KĂ€itame Trivy
...
juice-shop\/package-lock.json
============================
Kokku: 20 (TUNNULIK: 0, MADAL: 1, KESKMINE: 6, KÕRGE: 8, KRIITILINE: 5)
...
[+] VĂ€ljaande ilustamine
[+] Peamooduli kÀivitamine ============================================================
[+] Muudame JSON tulemused
[+] Kirjutame tulemused HTML
[+] Puhta vÀljapÀÀs ============================================================
[+] KÔik on valmis. Leidke tulemuste HTML aruanne failist results.html

tulemused nÀitasid ainult nelja ebaolulise koodibloki kattuvust, mis olid tingitud POSIX ja ANSI C nÔuetest.

Oleme kĂ€sitlenud ainult ĂŒhte pĂ”hilist utiliitide komplekti Docker artefaktide skaneerimiseks, mis minu arvates katab tĂ”husalt suure osa piltide turvanĂ”uetest. On veel palju tasulisi ja tasuta tööriistu, mis saavad teha samu kontrolle, koostada ilusaid aruandeid vĂ”i töötada puhtalt konsoolis, katma konteinerite haldus sĂŒsteeme jne. Ülevaade nendest tööriistadest ja nende integreerimise viisidest vĂ”ib ilmuda natuke hiljem.

Positiivne kĂŒlg artiklis kirjeldatud tööriistade komplekti puhul on see, et kĂ”ik need on loodud avatud lĂ€htekoodiga ning saate katsetada neid ja teisi sarnaseid tööriistu, et leida, mis kĂ”ige paremini vastab teie nĂ”udmistele ja infrastruktuuri omadustele. Ilma kahtluseta tuleks uurida kĂ”iki leitud haavatavusi nende sobivuse osas konkreetsetes tingimustes, kuid see on tulevase suure artikli teema.

Loodetavasti aitavad see juhend, skriptid ja utiliidid teid ning saavad lÀhtepunktiks turvalisema infrastruktuuri vÀljatöötamisel konteineriseerimise valdkonnas.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster