03/28/2024

Cel mai simplu mod de a găsi vulnerabilități în imaginile Docker folosind Snyk

Snyk este un editor specializat în analiza vulnerabilităților din codul fișierelor de configurare a infrastructurii, inclusiv cele prezente în containere și pachete de aplicații.

Snyk oferă mai întâi o platformă cloud, dar oferă diverse produse.

Snyk OpenSource se integrează prin intermediul CLI al editorului într-un flux Git. Odată lansat, software-ul detectează vulnerabilitățile, le clasifică după gradul de sensibilitate și corectează automat erorile de securitate cunoscute. Această funcționalitate poate fi încorporată în ciclul de solicitare de extragere pentru a se aplica codului trimis către depozite.

Snyk Infrastructure as Code, pe de altă parte, analizează vulnerabilitățile și le remediază în fișierele de configurare JSON și YAML Kubernetes. Aici, un motor de reguli vă permite să configurați sensibilitatea detecțiilor din depozitele Git în funcție de parametrii hotărâți de administratori.

Snyk Container vă permite să testați imaginile docker și registrele asociate în momentul creării lor și după aceea. Programul poate fi integrat în CLI, SCM, instrumente CI, registre de containere și Kubernetes.

Astăzi, vom vedea cum putem folosi Snyk Container, care vine încorporat cu Docker pentru a detecta vulnerabilități.

Exemplu de fișier docker

Primul lucru de care aveți nevoie pentru a utiliza Snyk pentru a detecta vulnerabilități este o imagine docker. În acest exemplu, vom folosi următoarea imagine docker:

FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000 CMD
[“python”, “app.py”]

Primul lucru pe care trebuie să-l facem este să generăm imaginea local prin următoarea comandă:

docker build -t 0xyz0/python-app.

Acum avem o imagine de analizat.

  Cum să intri în ecosistemul Apple la ieftin

Scanați imaginea de la clientul Docker

Integrarea serviciului Snyk cu Docker face acest proces incredibil de simplu. Pentru a începe scanarea, trebuie doar să executați următoarele:

docker scan 0***0/python-app

Aceasta va începe cu analiza în care va returna o ieșire mai mult sau mai puțin extinsă, în funcție de vulnerabilitățile pe care le găsește, și cu un rezumat final:

Scanarea Docker arată toate vulnerabilitățile imaginii

După cum puteți vedea, nu vă spune doar câte vulnerabilități a găsit. Chiar dacă defilați în sus, puteți vedea care sunt acestea și criticitatea lor, dar face și recomandări cu privire la imaginea de bază pe care ar trebui să o utilizați.

De asemenea, puteți verifica detaliile vulnerabilității din Baza de date de vulnerabilități Snyk.

În cazul meu, îmi oferă mai multe alternative, așa că am de gând să-mi modific Dockerfile cu prima opțiune:

FROM python:3.7.11-slim

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["python", "app.py"]

Dacă reconstruiesc imaginea și o scanez:

docker build -t 0***0/python-app . && docker scan 0***0/python-app

Veți vedea că rezultatul arată acum mai puține vulnerabilități și, în acest caz, vă spune că utilizați în prezent imaginea de bază mai sigură:

Scanarea Docker vă asigură că utilizați cea mai sigură imagine de bază

De asemenea, puteți obține un raport mai detaliat dacă adăugați fișierul docker care generează imaginea la comandă:

docker scan -f Dockerfile 0***0/python-app

Și chiar excludeți imaginea de bază din analiză, doar în cazul în care doriți să vă concentrați pe ceea ce ați greșit:

docker scan -f Dockerfile --exclude-base 0***0/python-app

Acest serviciu poate fi integrat și cu depozitele Docker Hub:

  Cele mai bune 10 jocuri clasice 2D care te vor face nostalgic [2023]

Dar pentru aceasta, trebuie să aveți unul dintre abonamentele plătite. Cu toate acestea, îl puteți lansa local, cu planul gratuit pe care îl aveți doar pentru a fi conectat la Docker Hub (are limite clare de scanare), în timp ce dezvoltați sau doriți să verificați cât de sigură este o imagine terță parte pe care doriți să o faceți utilizare.

Utilizarea Snyk cu acțiuni Github

Primul lucru de făcut este să creați un depozit și în interior să creați un folder.

.github / worflows /

În continuare, a folosi Snyk Container în Github înseamnă a crea o nouă imagine sau a lua acea imagine pe care am creat-o în Docker Hub. Pentru a utiliza Snyk, trebuie să creați un nou secret numit SNYK_TOKEN, iar pentru a obține tokenul, trebuie să vă creați un cont la Snyk. Din Setări generale, unde scrie API Token, îl puteți genera rapid.

Cu simbolul, puteți crea secretul pe Github și îl puteți utiliza în Acțiune. Acum, trebuie să îi transmiteți numele depozitului care a fost creat în Docker Hub. În continuare, trebuie să transmiteți mesajul pe care trebuie să-l trimită. Puteți accesa ieșirile pașilor de utilizat ca variabilă în mesaj.

with:
args: 'A new commit has been pushed. Please verify github action:
| worflow $ {{fromJson (steps.repo.outputs.result) .html_url}} / actions
| Exec: $ {{steps.prep.outputs.created}}
| Version: $ {{steps.prep.outputs.version}} '

Cum să rulezi întregul flux de lucru? Simplu doar împingând Maestrul. Github Action va detecta fișierul din .github / workflows /.

Cuvinte finale 👈

Odată cu creșterea popularității containerelor, incidentele de încălcare a securității devin din ce în ce mai frecvente, majoritatea din cauza erorilor de configurare greșită în desfășurarea containerelor. Snyk oferă un instrument eficient și simplu care ne poate ajuta să evităm erorile de configurare greșită și să detectăm cele mai comune vulnerabilități în imaginile docker.

  Cum vă puteți recupera cuvintele cu conturile Friends 2

x