Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak

Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak
Aupa Habr!

Gaur egungo errealitatean, garapen prozesuetan edukiontziak gero eta protagonismo handiagoa duelako, edukiontziekin lotutako hainbat fase eta entitateen segurtasuna bermatzeko gaia ez dago azkeneko postuan. Egiaztapenak eskuz egitea lan neketsua da, beraz, ondo legoke prozesu hau automatizatzeko hasierako urratsak gutxienez ematea.

Artikulu honetan, Docker segurtasun-erabilgarritasun batzuk ezartzeko prest dauden scriptak partekatuko ditut eta prozesu hau probatzeko demo txiki bat konfiguratzeko argibideak partekatuko ditut. Materialak erabil ditzakezu Dockerfile irudien eta argibideen segurtasuna probatzeko prozesua nola antolatu esperimentatzeko. Garbi dago garapen eta ezarpenaren azpiegitura desberdina dela guztiontzat, beraz, jarraian hainbat aukera posible emango ditut.

Segurtasuna egiaztatzeko utilitateak

Docker azpiegituraren hainbat alderdiren egiaztapenak egiten dituzten laguntza-aplikazio eta script ugari daude. Horietako batzuk aurreko artikulu batean deskribatu dira jada (https://habr.com/ru/company/swordfish_security/blog/518758/#docker-security), eta artikulu honetan horietako hirutan zentratu nahiko nuke, garapen prozesuan zehar eraikitzen diren Docker irudien segurtasun-eskakizun gehienak estaltzen dituztenak. Horrez gain, hiru utilitate hauek kanalizazio batean konbina daitezkeen adibide bat ere erakutsiko dut segurtasun egiaztapenak egiteko.

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

Dockerfile argibideen zuzentasuna eta segurtasuna lehenik eta behin ebaluatzen laguntzen duen kontsola-erabilgarritasun nahiko sinplea (adibidez, baimendutako irudi-erregistroak soilik erabiliz edo sudo erabiliz).

Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak

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

Irudi batean (edo gordetako irudien tarball batean) funtzionatzen duen kontsola-erabilgarri bat, irudi jakin baten zuzentasuna eta segurtasuna egiaztatzen duena bere geruzak eta konfigurazioa aztertuz - zer erabiltzaile sortzen diren, zer argibide erabiltzen diren, zer bolumen muntatzen diren. , pasahitz huts baten presentzia, etab. e. Egiaztapen-kopurua oso handia ez den arren eta hainbat egiaztapen eta gomendiotan oinarritzen da. CIS (Internet Security for Center) Benchmark dockerrentzat.
Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak

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

Erabilgarritasun hau bi ahultasun mota aurkitzera zuzenduta dago: OS eraikitzeko arazoak (Alpine, RedHat (EL), CentOS, Debian GNU, Ubuntu onartzen dira) eta mendekotasun arazoak (Gemfile.lock, Pipfile.lock, composer.lock, package-lock). .json, yarn.lock, Cargo.lock). Trivy-k biltegiko irudia zein tokiko irudia eskaneatu dezake, eta transferitutako .tar fitxategian oinarrituta eskaneatu dezake Docker irudiarekin.

Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak

Utilitateak ezartzeko aukerak

Deskribatutako aplikazioak baldintza isolatuetan probatzeko, utilitate guztiak prozesu sinplifikatu baten barruan instalatzeko argibideak emango ditut.

Ideia nagusia garapenean sortzen diren Dockerfiles eta Docker irudietarako edukien egiaztapen automatikoa nola ezar dezakezun erakustea da.

Egiaztapenak berak urrats hauek ditu:

  1. Dockerfile argibideen zuzentasuna eta segurtasuna egiaztatzea linter utilitate batekin Hadolint
  2. Azken eta tarteko irudien zuzentasuna eta segurtasuna egiaztatzea - ​​erabilgarritasuna Dockle
  3. Oinarrizko irudian eta hainbat mendekotasun ahultasun ezagunen (CVE) egiaztatzea - ​​utilitatearen bidez Bitxikeria

Geroago artikuluan urrats hauek ezartzeko hiru aukera emango ditut:
Lehenengoa CI / CD kanalizazioa GitLab-en adibidea erabiliz konfiguratzen du (proba-instantzia bat sortzeko prozesuaren deskribapenarekin).
Bigarrena shell script bat erabiltzea da.
Hirugarrena Docker irudi bat eraikitzea da, Docker irudiak eskaneatzeko.
Gehien egokitzen zaizun aukera aukeratu dezakezu, zure azpiegiturara eraman eta zure beharretara egokitu.

Beharrezko fitxategi guztiak eta argibide osagarriak ere biltegian daude: https://github.com/Swordfish-Security/docker_cicd

GitLab CI/CD integrazioa

Lehenengo aukeran, GitLab biltegi sistema erabiliz segurtasun-egiaztapenak nola inplementa daitezkeen aztertuko dugu adibide gisa. Hemen urratsak emango ditugu eta GitLab-ekin proba-ingurune bat hutsetik konfiguratu, eskaneatu prozesu bat sortu eta Dockerfile proba eta ausazko irudi bat probatzeko utilitateak exekutatu - JuiceShop aplikazioa.

GitLab instalatzen
1. Instalatu Docker:

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

2. Gehitu uneko erabiltzailea docker taldean, sudo erabili gabe dockerrekin lan egin ahal izateko:

sudo addgroup <username> docker

3. Aurkitu zure IPa:

ip addr

4. Instalatu eta exekutatu GitLab edukiontzian, ostalari-izeneko IP helbidea zurearekin ordezkatuz:

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

GitLab-ek beharrezko instalazio-prozedura guztiak betetzeko zain gaude (prozesua erregistro-fitxategiaren irteeraren bidez jarraitu dezakezu: docker logs -f gitlab).

5. Ireki zure IP lokala arakatzailean eta ikusi root erabiltzaileari pasahitza aldatzeko eskaintzen duen orrialde bat:
Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak
Ezarri pasahitz berri bat eta joan GitLab-era.

6. Sortu proiektu berri bat, adibidez, cicd-test eta hasieratu hasierako fitxategi batekin IRAKURRI.md:
Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak
7. Orain GitLab Runner instalatu behar dugu: eskatuz gero beharrezko eragiketa guztiak abiaraziko dituen agentea.
Deskargatu azken bertsioa (kasu honetan, Linux 64 biteko pean):

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

8. Egin exekutagarria:

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

9. Gehitu OS erabiltzaile bat Runner-erako eta hasi zerbitzua:

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

Honelako itxura izan beharko luke:

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. Orain Runner erregistratzen dugu, gure GitLab instantziarekin elkarreragin dezan.
Horretarako, ireki Ezarpenak-CI/CD orria (http://OUR_IP_ADDRESS/root/cicd-test/-/settings/ci_cd) eta Korrikalariak fitxan aurkitu URLa eta Erregistro-tokena:
Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak
11. Erregistratu Korrikalaria URLa eta Izena emateko tokena ordezkatuz:

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"

Ondorioz, prest egindako GitLab bat lortzen dugu, eta bertan argibideak gehitu behar ditugu gure utilitateak abiarazteko. Demo honetan, ez dugu aplikazioen eraikuntza eta edukiontzien urratsik, baina ingurune errealean eskaneatu urratsen aurretik egongo dira eta irudiak eta Dockerfile bat sortuko dituzte aztertzeko.

kanalizazio konfigurazioa

1. Gehitu fitxategiak biltegian mydockerfile.df (probatuko dugun Dockerfile proba bat da) eta GitLab CI/CD prozesuen konfigurazio fitxategia .gitlab-cicd.yml, eskanerentzako argibideak zerrendatzen dituena (kontuan izan puntua fitxategiaren izenan).

.yaml konfigurazio fitxategiak aukeratutako Dockerfile eta DOCKERFILE aldagaian zehaztutako irudia analizatuko dituzten hiru utilitate (Hadolint, Dockle eta Trivy) exekutatzeko argibideak ditu. Beharrezko fitxategi guztiak biltegitik har daitezke: https://github.com/Swordfish-Security/docker_cicd/

-tik atera mydockerfile.df (Fitxategi abstraktu bat da, argibide arbitrarioen multzoa duena, erabilgarritasuna nola funtzionatzen duen erakusteko). Fitxategirako esteka zuzena: mydockerfile.df

mydockerfile.df-ren edukia

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 <[email protected]>"
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 konfigurazioak honela dauka (fitxategia bera hemen dagoen esteka zuzenetik har daiteke: .gitlab-ci.yml):

.gitlab-ci.yml-ren edukia

variables:
    DOCKER_HOST: "tcp://docker:2375/"
    DOCKERFILE: "mydockerfile.df" # name of the Dockerfile to analyse   
    DOCKERIMAGE: "bkimminich/juice-shop" # name of the Docker image to analyse
    # DOCKERIMAGE: "knqyf263/cve-2018-11235" # test Docker image with several CRITICAL CVE
    SHOWSTOPPER_PRIORITY: "CRITICAL" # what level of criticality will fail Trivy job
    TRIVYCACHE: "$CI_PROJECT_DIR/.cache" # where to cache Trivy database of vulnerabilities for faster reuse
    ARTIFACT_FOLDER: "$CI_PROJECT_DIR"
 
services:
    - docker:dind # to be able to build docker images inside the Runner
 
stages:
    - scan
    - report
    - publish
 
HadoLint:
    # Basic lint analysis of Dockerfile instructions
    stage: scan
    image: docker:git
 
    after_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 will always exit with 0 exit code
    - ./hadolint-Linux-x86_64 -f json $DOCKERFILE > $ARTIFACT_FOLDER/hadolint_results.json || exit 0
 
    artifacts:
        when: always # return artifacts even after job failure       
        paths:
        - $ARTIFACT_FOLDER/hadolint_results.json
 
Dockle:
    # Analysing best practices about docker image (users permissions, instructions followed when image was built, etc.)
    stage: scan   
    image: docker:git
 
    after_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   
     
    artifacts:
        when: always # return artifacts even after job failure       
        paths:
        - $ARTIFACT_FOLDER/dockle_results.json
 
Trivy:
    # Analysing docker image and package dependencies against several CVE bases
    stage: scan   
    image: docker:git
 
    script:
    # getting the latest 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
     
    # displaying all vulnerabilities w/o failing the build
    - ./trivy -d --cache-dir $TRIVYCACHE -f json -o $ARTIFACT_FOLDER/trivy_results.json --exit-code 0 $DOCKERIMAGE    
    
    # write vulnerabilities info to stdout in human readable format (reading pure json is not fun, eh?). You can remove this if you don't need this.
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 0 $DOCKERIMAGE    
 
    # failing the build if the SHOWSTOPPER priority is found
    - ./trivy -d --cache-dir $TRIVYCACHE --exit-code 1 --severity $SHOWSTOPPER_PRIORITY --quiet $DOCKERIMAGE
         
    artifacts:
        when: always # return artifacts even after job failure
        paths:
        - $ARTIFACT_FOLDER/trivy_results.json
 
    cache:
        paths:
        - .cache
 
Report:
    # combining tools outputs into one HTML
    stage: report
    when: always
    image: 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
     
    artifacts:
        paths:
        - results.html

Beharrezkoa izanez gero, gordetako irudiak .tar artxibo gisa ere eskaneatu ditzakezu (hala ere, YAML fitxategiko utilitateen sarrera-parametroak aldatu beharko dituzu)

OHARRA: Trivy instalatu behar da rpm и git. Bestela, erroreak sortuko ditu RedHat-en oinarritutako irudiak eskaneatzean eta ahultasun datu-basearen eguneraketak eskuratzean.

2. Fitxategiak biltegian gehitu ondoren, gure konfigurazio fitxategiko argibideen arabera, GitLab-ek automatikoki hasiko du eraikitze eta eskaneatu prozesua. CI / CD → Pipelines fitxan, argibideen aurrerapena ikus dezakezu.

Ondorioz, lau zeregin ditugu. Horietako hiruk zuzenean parte hartzen dute eskaneatzen, eta azkenak (Txostena) txosten soil bat biltzen du sakabanatuta dauden fitxategietatik eskaneatze emaitzekin.
Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak
Berez, Trivy-k bere exekuzioa gelditzen du irudian edo mendekotasunetan ahultasun KRITIKOAK aurkitzen badira. Aldi berean, Hadolint-ek Arrakasta itzultzen du beti exekuzio-kodean, bere exekuzioak beti ditu oharrak, eta horrek eraikuntza gelditzea eragiten du.

Zure eskakizun espezifikoen arabera, irteera-kode bat konfigura dezakezu, utilitate hauek ere eraikitze-prozesua geldiarazteko kritikotasun jakin bateko arazoak hautematen direnean. Gure kasuan, eraikuntza Trivy-k SHOWSTOPPER aldagaian zehaztu dugun larritasuna duen ahultasun bat detektatzen badu bakarrik geldituko da. .gitlab-ci.yml.
Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak

Erabilgarritasun bakoitzaren funtzionamenduaren emaitza eskaneatzeko zeregin bakoitzaren erregistroan ikus daiteke, artefaktuen atalean json fitxategietan zuzenean edo HTML txosten soil batean (hori gehiago behean):
Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak

3. Erabilgarritasun-txostenak apur bat gizakiek irakurtzeko moduko forma batean aurkezteko, Python script txiki bat erabiltzen da hiru json fitxategi HTML fitxategi batean akatsen taula batekin bihurtzeko.
Script hau Txostenaren ataza bereizi batek abiarazten du, eta bere azken artefaktua HTML fitxategi bat da txosten batekin. Script-iturria ere biltegian dago eta zure beharretara, koloreetara eta abarretara egokitu daiteke.
Docker segurtasun egiaztatzeko utilitateen inplementazio metodoak eta adibideak

Shell gidoia

Bigarren aukera egokia da CI / CD sisteman ez dauden Docker irudiak egiaztatu behar dituzun kasuetarako, edo argibide guztiak ostalari zuzenean exekutatu daitezkeen inprimaki batean izan behar dituzunean. Aukera hau prest egindako shell script batek estaltzen du, makina birtual garbi batean (edo benetako) batean exekutatu daitekeena. Scriptak goiko gitlab-runner-en jarraibide berdinak jarraitzen ditu.

Scriptak ongi funtziona dezan, Docker sisteman instalatu behar da eta uneko erabiltzailea docker taldean egon behar du.

Gidoia bera hemen aurki daiteke: docker_sec_check.sh

Fitxategiaren hasieran, aldagaiek zehazten dute zein irudi eskaneatu behar den eta zein akatsen larritasunak eragingo duen Trivy utilitatea zehaztutako errore-kodearekin irtetea.

Scriptaren exekuzioan zehar, utilitate guztiak deskargatuko dira direktoriora docker_tools, beren lanaren emaitzak - direktorioan docker_tools/json, eta txostena duen HTMLa fitxategian egongo da emaitzak.html.

Script irteera adibidea

~/docker_cicd$ ./docker_sec_check.sh

[+] Setting environment variables
[+] Installing required packages
[+] Preparing necessary directories
[+] Fetching sample Dockerfile
2020-10-20 10:40:00 (45.3 MB/s) - ‘Dockerfile’ saved [8071/8071]
[+] Pulling image to scan
latest: Pulling from bkimminich/juice-shop
[+] Running Hadolint
...
Dockerfile:205 DL3015 Avoid additional packages by specifying `--no-install-recommends`
Dockerfile:248 DL3002 Last USER should not be root
...
[+] Running Dockle
...
WARN    - DKL-DI-0006: Avoid latest tag
        * Avoid 'latest' tag
INFO    - CIS-DI-0005: Enable Content trust for Docker
        * export DOCKER_CONTENT_TRUST=1 before docker pull/build
...
[+] Running Trivy
juice-shop/frontend/package-lock.json
=====================================
Total: 3 (UNKNOWN: 0, LOW: 1, MEDIUM: 0, HIGH: 2, CRITICAL: 0)

+---------------------+------------------+----------+---------+-------------------------+
|       LIBRARY       | VULNERABILITY ID | SEVERITY | VERSION |             TITLE       |
+---------------------+------------------+----------+---------+-------------------------+
| object-path         | CVE-2020-15256   | HIGH     | 0.11.4  | Prototype pollution in  |
|                     |                  |          |         | object-path             |
+---------------------+------------------+          +---------+-------------------------+
| tree-kill           | CVE-2019-15599   |          | 1.2.2   | Code Injection          |
+---------------------+------------------+----------+---------+-------------------------+
| webpack-subresource | CVE-2020-15262   | LOW      | 1.4.1   | Unprotected dynamically |
|                     |                  |          |         | loaded chunks           |
+---------------------+------------------+----------+---------+-------------------------+

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

...

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

...
[+] Removing left-overs
[+] Making the output look pretty
[+] Converting JSON results
[+] Writing results HTML
[+] Clean exit ============================================================
[+] Everything is done. Find the resulting HTML report in results.html

Docker irudia utilitate guztiekin

Hirugarren alternatiba gisa, bi Dockerfile soil konpilatu nituen segurtasun utilitateekin irudi bat sortzeko. Dockerfile batek biltegitik irudia eskaneatzeko multzo bat eraikitzen lagunduko du, bigarrenak (Dockerfile_tar) tar fitxategia irudiarekin eskaneatzeko multzo bat eraikiko du.

1. Docker fitxategi eta script egokiak hartzen ditugu biltegitik https://github.com/Swordfish-Security/docker_cicd/tree/master/Dockerfile.
2. Exekutatu muntatzeko:

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

3. Muntaia amaitu ondoren, iruditik edukiontzi bat sortzen dugu. Aldi berean, DOCKERIMAGE ingurune-aldagaia interesatzen zaigun irudiaren izenarekin pasatzen dugu eta gure makinatik aztertu nahi dugun Dockerfile fitxategira muntatzen dugu. /Dockerfile (kontuan izan fitxategi honetarako bide absolutua beharrezkoa dela):

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


[+] Setting environment variables
[+] Running Hadolint
/Dockerfile:3 DL3006 Always tag the version of an image explicitly
[+] Running Dockle
WARN    - DKL-DI-0006: Avoid latest tag
        * Avoid 'latest' tag
INFO    - CIS-DI-0005: Enable Content trust for Docker
        * export DOCKER_CONTENT_TRUST=1 before docker pull/build
INFO    - CIS-DI-0006: Add HEALTHCHECK instruction to the container image
        * not found HEALTHCHECK statement
INFO    - DKL-LI-0003: Only put necessary files
        * unnecessary file : juice-shop/node_modules/sqlite3/Dockerfile
        * unnecessary file : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm64/Dockerfile
        * unnecessary file : juice-shop/node_modules/sqlite3/tools/docker/architecture/linux-arm/Dockerfile
[+] Running Trivy
...
juice-shop/package-lock.json
============================
Total: 20 (UNKNOWN: 0, LOW: 1, MEDIUM: 6, HIGH: 8, CRITICAL: 5)
...
[+] Making the output look pretty
[+] Starting the main module ============================================================
[+] Converting JSON results
[+] Writing results HTML
[+] Clean exit ============================================================
[+] Everything is done. Find the resulting HTML report in results.html

Findings

Docker artefaktuak eskaneatzeko tresnen oinarrizko multzo bakarra estali dugu, irudien segurtasun-baldintza nahiko modu eraginkorrean estaltzen duela uste dut. Badaude beste hainbat ordainpeko eta doako tresnak egiaztapen berak egin ditzaketenak, txosten ederrak marraztu edo kontsola moduan soilik lan egin dezaketenak, edukiontziak kudeatzeko sistemak estaltzeko, etab. Geroago ager daiteke tresna hauen ikuspegi orokorra eta nola integratzeko.

Artikuluan deskribatutako tresna-multzoaren alde positiboa da guztiak kode irekian eraikita daudela eta haiekin eta antzeko beste tresna batzuekin esperimentatu dezakezula zure eskakizunetara eta azpiegitura-eginbideetara zehazki zer egokitzen den aurkitzeko. Noski, aurkitzen diren ahultasun guztiak aztertu beharko lirateke baldintza zehatzetan aplikatzeko, baina etorkizuneko artikulu handi baterako gaia da.

Espero dut argibide, script eta utilitate hauek lagungarri izatea eta edukiontzien alorrean azpiegitura seguruago bat sortzeko abiapuntua izatea.

Iturria: www.habr.com

Gehitu iruzkin berria