Ο ευκολότερος τρόπος για να βρείτε τρωτά σημεία σε εικόνες Docker χρησιμοποιώντας το Snyk

Ο Snyk είναι ένας συντάκτης που ειδικεύεται στην ανάλυση τρωτών σημείων στον κώδικα των αρχείων διαμόρφωσης υποδομής, συμπεριλαμβανομένων εκείνων που υπάρχουν σε κοντέινερ και πακέτα εφαρμογών.

Snyk προσφέρει πρώτα μια πλατφόρμα cloud, αλλά προσφέρει διάφορα προϊόντα.

Το Snyk OpenSource ενσωματώνεται μέσω του CLI του συντάκτη σε μια ροή Git. Μετά την εκκίνηση, το λογισμικό εντοπίζει τρωτά σημεία, τα ταξινομεί κατά βαθμό ευαισθησίας και διορθώνει αυτόματα τα γνωστά σφάλματα ασφαλείας. Αυτή η λειτουργία μπορεί να ενσωματωθεί στον κύκλο αιτημάτων έλξης προκειμένου να εφαρμοστεί στον κώδικα που αποστέλλεται σε αποθετήρια.

Το Snyk Infrastructure as Code, από την άλλη πλευρά, αναλύει τα τρωτά σημεία και τα διορθώνει στα αρχεία διαμόρφωσης JSON και YAML Kubernetes. Εδώ, μια μηχανή κανόνων σάς επιτρέπει να διαμορφώνετε την ευαισθησία των ανιχνεύσεων εντός των αποθετηρίων Git σύμφωνα με τις παραμέτρους που αποφασίζουν οι διαχειριστές.

Το Snyk Container σάς επιτρέπει να δοκιμάζετε εικόνες docker και συσχετιζόμενα μητρώα κατά τη στιγμή της δημιουργίας τους και μετά. Το πρόγραμμα μπορεί να ενσωματωθεί σε CLI, SCM, εργαλεία CI, μητρώα κοντέινερ και Kubernetes.

Σήμερα, θα δούμε πώς μπορούμε να χρησιμοποιήσουμε το Snyk Container, το οποίο έρχεται ενσωματωμένο με το Docker για τον εντοπισμό τρωτών σημείων.

Δείγμα αρχείου docker

Το πρώτο πράγμα που χρειάζεστε για τη χρήση του Snyk για τον εντοπισμό τρωτών σημείων είναι μια εικόνα docker. Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε την ακόλουθη εικόνα docker:

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

Το πρώτο πράγμα που πρέπει να κάνουμε είναι να δημιουργήσουμε την εικόνα τοπικά μέσω της ακόλουθης εντολής:

docker build -t 0xyz0/python-app.

Τώρα έχουμε μια εικόνα για ανάλυση.

  11 καλύτερες εφαρμογές για παρακολούθηση και διακοπή του ροχαλητού

Σαρώστε την εικόνα από το πρόγραμμα-πελάτη Docker

Η ενσωμάτωση της υπηρεσίας Snyk με το Docker κάνει αυτή τη διαδικασία απίστευτα απλή. Για να ξεκινήσετε τη σάρωση, πρέπει απλώς να εκτελέσετε τα εξής:

docker scan 0***0/python-app

Αυτό θα ξεκινήσει με την ανάλυση όπου θα επιστρέψει ένα περισσότερο ή λιγότερο εκτεταμένο αποτέλεσμα, ανάλογα με τα τρωτά σημεία που θα βρει, και με μια τελική περίληψη:

Η σάρωση Docker δείχνει όλα τα τρωτά σημεία της εικόνας

Όπως μπορείτε να δείτε, όχι μόνο σας λέει πόσα τρωτά σημεία έχει βρει. Ακόμα κι αν κάνετε κύλιση προς τα πάνω, μπορείτε να δείτε ποια είναι και την κρισιμότητα τους, αλλά κάνει επίσης συστάσεις σχετικά με τη βασική εικόνα που πρέπει να χρησιμοποιήσετε.

Μπορείτε επίσης να ελέγξετε τις λεπτομέρειες της ευπάθειας από το Βάση δεδομένων ευπάθειας Snyk.

Στην περίπτωσή μου, μου προσφέρει πολλές εναλλακτικές, οπότε πρόκειται να τροποποιήσω το Dockerfile μου με την πρώτη επιλογή:

FROM python:3.7.11-slim

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

EXPOSE 8000

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

Αν ξαναφτιάξω την εικόνα και τη σαρώσω:

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

Θα δείτε ότι η έξοδος εμφανίζει τώρα λιγότερα τρωτά σημεία και σε αυτήν την περίπτωση, σας λέει ότι αυτήν τη στιγμή χρησιμοποιείτε την πιο ασφαλή εικόνα βάσης:

  Πώς να προσαρμόσετε την Αναζήτηση Spotlight σε iPhone και iPad

Η σάρωση Docker διασφαλίζει ότι χρησιμοποιείτε την πιο ασφαλή εικόνα βάσης

Μπορείτε επίσης να λάβετε μια πιο λεπτομερή αναφορά εάν προσθέσετε το αρχείο docker που δημιουργεί την εικόνα στην εντολή:

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

Εξαιρέστε ακόμη και τη βασική εικόνα από την ανάλυση, σε περίπτωση που θέλετε να εστιάσετε σε αυτό που κάνατε λάθος:

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

Αυτή η υπηρεσία μπορεί επίσης να ενσωματωθεί με τα αποθετήρια Docker Hub:

Αλλά για αυτό, πρέπει να έχετε μία από τις συνδρομές επί πληρωμή. Ωστόσο, μπορείτε να το εκκινήσετε τοπικά, με το δωρεάν πρόγραμμα που έχετε μόνο για τη σύνδεση στο Docker Hub (έχει σαφή όρια σάρωσης), ενώ αναπτύσσετε ή θέλετε να ελέγξετε πόσο ασφαλής είναι μια εικόνα τρίτου μέρους που θέλετε να χρήση.

Χρήση του Snyk με τις ενέργειες Github

Το πρώτο πράγμα που πρέπει να κάνετε είναι να δημιουργήσετε ένα αποθετήριο και μέσα να δημιουργήσετε έναν φάκελο.

.github / worflows /

Στη συνέχεια, για να χρησιμοποιήσετε το Snyk Container στο Github είναι να δημιουργήσετε μια νέα εικόνα ή να λάβετε αυτήν την εικόνα που δημιουργήσαμε στο Docker Hub. Για να χρησιμοποιήσετε το Snyk, πρέπει να δημιουργήσετε ένα νέο μυστικό που ονομάζεται SNYK_TOKEN και για να αποκτήσετε το διακριτικό, πρέπει να δημιουργήσετε έναν λογαριασμό στο Snyk. Από τις Γενικές Ρυθμίσεις, όπου λέει το API Token, μπορείτε να το δημιουργήσετε γρήγορα.

  Διορθώστε ένα σφάλμα που παρουσιάστηκε κατά τη φόρτωση μιας έκδοσης υψηλότερης ποιότητας αυτής της φωτογραφίας στο iPhone

Με το διακριτικό, μπορείτε να δημιουργήσετε το μυστικό στο Github και να το χρησιμοποιήσετε στη Δράση. Τώρα, πρέπει να του δώσετε το όνομα του αποθετηρίου που δημιουργήθηκε στο Docker Hub. Στη συνέχεια, πρέπει να περάσετε το μήνυμα που πρέπει να στείλει. Μπορείτε να αποκτήσετε πρόσβαση στις εξόδους των βημάτων για χρήση ως μεταβλητή στο μήνυμα.

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}} '

Πώς να εκτελέσετε ολόκληρη τη ροή εργασίας; Απλό απλά πιέζοντας τον Master. Το Github Action θα εντοπίσει το αρχείο μέσα στο .github / workflows /.

Τελικές λέξεις 👈

Με την αυξανόμενη δημοτικότητα των εμπορευματοκιβωτίων, τα περιστατικά παραβιάσεων της ασφάλειας γίνονται όλο και πιο συνηθισμένα, τα περισσότερα από τα οποία οφείλονται σε σφάλματα λανθασμένης διαμόρφωσης κατά την ανάπτυξη των εμπορευματοκιβωτίων. Το Snyk παρέχει ένα αποτελεσματικό και απλό εργαλείο που μπορεί να μας βοηθήσει να αποφύγουμε σφάλματα λανθασμένης διαμόρφωσης και να εντοπίσουμε τα πιο κοινά τρωτά σημεία στις εικόνες docker.