CLOUD CONCEPT
Νερατζιωτίσσης 15, Μαρούσι, Αθήνα, 15124, Αττική
+30 211 8005 401
info@c2.gr
Οι μηχανικοί software γνωρίζουν ότι όταν υιοθετείται μια νέα τεχνολογία, ένας οργανισμός δίνει έμφαση στο proof-of-concept και σε δοκιμές, ενώ τα ζητήματα ασφαλείας εξετάζονται σε δεύτερο χρόνο. Με την shift-left πολιτική και την ασφάλεια να είναι οι προτεραιότητες των περισσότερων CIO και CTO, οι μηχανικοί οφείλουν να λάβουν υπόψη την ασφάλεια εξαρχής.
Στην περίπτωση των containers, οι προγραμματιστές πρέπει να επικεντρωθούν σε τρία πρωταρχικά vulnerability scans:
- Container image scanning
- Container file scanning
- Kubernetes manifest scanning
Με σωστή υλοποίηση, οι προσπάθειες αυτές μετριάζουν τους κινδύνους ασφαλείας σε επίπεδο εφαρμογής.
Επειδή τα container είναι εικονικά λειτουργικά συστήματα, το αποτύπωμά τους είναι απίστευτα μικρό. Μπορείτε να δημιουργήσετε ένα σε δευτερόλεπτα. Οι μηχανικοί μπορούν να πάνε στο Docker Hub και να τραβήξουν ένα container image από ένα επίσημο repository, όπως το Ubuntu ή το Nginx. Μπορούν να ενορχηστρώσουν την εικόνα του container με το Kubernetes και να το αναπτύξουν μέσω ενός Kubernetes manifest.
Κατά τη διάρκεια αυτής της διαδικασίας, πρέπει να κάνετε μερικές βασικές ερωτήσεις:
- Χρησιμοποιήθηκαν οι βέλτιστες πρακτικές ασφαλείας;
- Υπάρχουν ευπάθειες στην εικόνα του container;
- Εάν έγινε scan του container image, ποια βάση δεδομένων χρησιμοποιήθηκε; Είναι από τη National Vulnerability Database (NVD) και χρησιμοποιεί το Common Vulnerability Scoring System (CVSS);
- Είναι τα Kubernetes manifests μορφοποιημένα και κατασκευασμένα σύμφωνα με την πολιτική των ομάδων ασφαλείας βάση κώδικα;
Είναι πιθανό να διαρρεύσουν τρωτά σημεία κατά τη διάρκεια του CI (continuous integration). Για να διασφαλίσετε ότι λαμβάνετε υπόψη κάθε σημείο ασφαλείας, κάνετε scan τις εικόνες container μετά την κατασκευή τους.
Για παράδειγμα, χρησιμοποιήστε τo docker scan command, που χρησιμοποιεί το Snyk στο back end, για να κάνετε scan ένα container image. Η τιμή του Secure Hash Algorithm-256 cryptographic checksum μπορεί να ελεγχθεί στο container image registry για να επιβεβαιώσετε ότι το container image που χρησιμοποιείτε είναι ακριβές.
Ένα άλλο εργαλείο είναι το JFrog Xray, που κάνει αυτόματα scan container images που βασίζονται σε NVD και βοηθά τους μηχανικούς να επιλέξουν CVSS score. Ρυθμίστε το να κάνει scan το container πολλές φορές μέσα στη μέρα, για να επιβεβαιώσετε ότι είναι ασφαλές.
Το scan των container image μπορεί να επωφεληθεί από το Open Policy Agent (OPA), μια πολιτική που χρησιμοποιείται για να επιβάλλει πολιτικές ατομικής επιλογής. Πολλά εργαλεία πολιτικής ως κώδικα χρησιμοποιούν το OPA ως γενικό πρότυπο κατά την επιβολή κανόνων. Για παράδειγμα, η OpenShift Container Platform της Red Hat χρησιμοποιεί πολιτικές OPA για προηγμένη ασφάλεια cluster.
Ως μέρος της διαδικασίας ασφαλείας, οι μηχανικοί θα πρέπει να χρησιμοποιούν container file scanning. Μπορούν να δημιουργήσουν container images με Dockerfiles, τα οποία συνήθως αποτελούνται από τα ακόλουθα:
- Βάση του container image.
- Εφαρμογή που πρόκειται να ενσωματωθεί στο container image.
- Συγκεκριμένες θύρες και αρχεία που χρειάζονται για την εκτέλεση της εφαρμογής.
- Εντολή εκκίνησης για την εφαρμογή που εκτελείται μέσα στο container image.
Παρόλα αυτά, τα πράγματα μπορούν να πάνε στραβά με ένα Dockerfile. Για να σιγουρευτούμε ότι ένα Dockerfile λειτουργεί σωστά, σκεφτείτε: είναι το base image ασφαλές; Η εφαρμογή που χρησιμοποιείται στο container image βρίσκεται σε κάποιο κίνδυνο; Υπάρχουν σχετικά ελαττώματα στο NVD;
Εργαλεία όπως το Checkov και το Snyk βοηθούν στο scan των Dockerfiles κατά τη διαδικασία CI της δημιουργίας του container image. Με αυτό τον τρόπο, αν υπάρχουν γνωστά τρωτά σημεία, η διαδικασία CI θα πρέπει να αποτύχει, παρεμποδίζοντας το container image να φτάσει το CD στάδιο της ανάπτυξης της containerized εφαρμογής.
Η ενορχήστρωση έρχεται μετά το containerization μιας εφαρμογής. Το container image χρησιμοποιείται συνήθως μέσω ενός Kubernetes manifest, αλλά ακόμα και αυτά μπορούν να έχουν τρωτά σημεία από πολιτική ως κώδικα, ανάλυση στατικού κώδικα και από πλευρά linting.
Το Kubeval, ένα δημοφιλές linter, επικυρώνει μία ή περισσότερες διαμορφώσεις του Kubernetes manifest. Συχνά χρησιμοποιείται ως μέρος των local development ή της φάσης CI.
Επίσης, το Kube-score εκτελεί ανάλυση στατικού κώδικα σε Kubernetes manifests. Υπάρχουν πολλοί έλεγχοι που εκτελεί το Kube-score. Συγκεκριμένα μπορεί να βοηθήσει στα εξής:
- Θέτει όρια container.
- Βρίσκει πού χρησιμοποιούν τα container images με λάθος τρόπο το τελευταίο tag.
- Διασφαλίζει ότι τα readiness probes δεν είναι πανομοιότυπα με τα liveness probes.
Ελέγξτε ότι deployments και stateful sets έχουν pod disruption Policy.
Στην Cloud Concept στόχο αποτελεί η αδιάλειπτη τεχνική υποστήριξη των αναγκών σας, η προσφορά managed υπηρεσιών υψηλού επιπέδου και η παροχή πρόσβασης σε χρήσιμες προτάσεις για την αποδοτική διαχείριση των δεδομένων σας.
Ακολουθήστε μας σε LinkedIn, Facebook & Instagram ή εγγραφείτε στο Newsletter μας, για να μένετε ενημερωμένοι!