Το 19% των κορυφαίων εικόνων Docker δεν έχουν κωδικό πρόσβασης root

Το περασμένο Σάββατο, 18 Μαΐου, ο Jerry Gamblin της Kenna Security τετραγωνισμένος 1000 από τις πιο δημοφιλείς εικόνες από το Docker Hub με βάση τον κωδικό πρόσβασης root που χρησιμοποιούν. Στο 19% των περιπτώσεων ήταν άδειο.

Το 19% των κορυφαίων εικόνων Docker δεν έχουν κωδικό πρόσβασης root

Φόντο με αλπικό

Ο λόγος για τη μίνι-έρευνα ήταν η Αναφορά ευπάθειας Talos που εμφανίστηκε νωρίτερα αυτό το μήνα (TALOS-2019-0782), οι συντάκτες του οποίου - χάρη στην ανακάλυψη του Peter Adkins από την Cisco Umbrella - ανέφεραν ότι οι εικόνες Docker με τη δημοφιλή διανομή κοντέινερ Alpine δεν έχουν κωδικό πρόσβασης root:

«Οι επίσημες εκδόσεις των εικόνων Alpine Linux Docker (από την έκδοση 3.3) περιέχουν έναν κωδικό πρόσβασης NULL για τον χρήστη root. Αυτή η ευπάθεια προέκυψε από μια παλινδρόμηση που εισήχθη τον Δεκέμβριο του 2015. Η ουσία αυτού είναι ότι τα συστήματα που αναπτύσσονται με προβληματικές εκδόσεις του Alpine Linux σε ένα κοντέινερ και χρησιμοποιούν Linux PAM ή άλλο μηχανισμό που χρησιμοποιεί το σκιώδες αρχείο συστήματος ως βάση δεδομένων ελέγχου ταυτότητας, ενδέχεται να δέχονται έναν κωδικό πρόσβασης NULL για τον χρήστη root."

Οι εκδόσεις των εικόνων Docker με το Alpine που δοκιμάστηκαν για το πρόβλημα ήταν 3.3–3.9, καθώς και η πιο πρόσφατη έκδοση του edge.

Οι συγγραφείς έκαναν την ακόλουθη σύσταση για τους επηρεαζόμενους χρήστες:

«Ο λογαριασμός root πρέπει να είναι ρητά απενεργοποιημένος στις εικόνες Docker που έχουν δημιουργηθεί από προβληματικές εκδόσεις του Alpine. Η πιθανή εκμετάλλευση της ευπάθειας εξαρτάται από το περιβάλλον, καθώς η επιτυχία της απαιτεί μια εξωτερικά προωθούμενη υπηρεσία ή εφαρμογή που χρησιμοποιεί Linux PAM ή άλλο παρόμοιο μηχανισμό."

Το πρόβλημα ήταν εξαλειφθεί στις εκδόσεις Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 και edge (στιγμιότυπο 20190228) και ζητήθηκε από τους κατόχους εικόνων που επηρεάζονται από αυτό να σχολιάσουν τη γραμμή με root στο /etc/shadow ή βεβαιωθείτε ότι λείπει η συσκευασία linux-pam.

Συνέχεια με το Docker Hub

Ο Jerry Gamblin αποφάσισε να είναι περίεργος για το «πόσο συνηθισμένη μπορεί να είναι η πρακτική της χρήσης μηδενικών κωδικών πρόσβασης σε κοντέινερ». Για το σκοπό αυτό έγραψε ένα μικρό Σενάριο Bash, η ουσία του οποίου είναι πολύ απλή:

  • μέσω ενός αιτήματος curl στο API στο Docker Hub, ζητείται μια λίστα εικόνων Docker που φιλοξενούνται εκεί.
  • μέσω jq ταξινομείται κατά πεδίο popularity, και από τα αποτελέσματα που προέκυψαν, απομένουν οι πρώτες χίλιες.
  • για καθένα από αυτά εκπληρώνεται docker pull;
  • για κάθε εικόνα που λαμβάνεται από το Docker Hub εκτελείται docker run με την ανάγνωση της πρώτης γραμμής από το αρχείο /etc/shadow;
  • αν η τιμή της συμβολοσειράς είναι ίση με root:::0:::::, το όνομα της εικόνας αποθηκεύεται σε ξεχωριστό αρχείο.

Τι συνέβη? ΣΕ αυτό το αρχείο Υπήρχαν 194 γραμμές με τα ονόματα των δημοφιλών εικόνων Docker με συστήματα Linux, στις οποίες ο χρήστης root δεν έχει ορίσει κωδικό πρόσβασης:

«Μεταξύ των πιο γνωστών ονομάτων σε αυτή τη λίστα ήταν τα govuk/governmentpaas, hashicorp, microsoft, monsanto και mesosphere. Και το kylemanna/openvpn είναι το πιο δημοφιλές κοντέινερ στη λίστα, με τα στατιστικά του συνολικά περισσότερα από 10 εκατομμύρια έλξεις.

Αξίζει, ωστόσο, να υπενθυμίσουμε ότι αυτό το φαινόμενο από μόνο του δεν σημαίνει άμεση ευπάθεια στην ασφάλεια των συστημάτων που τα χρησιμοποιούν: όλα εξαρτώνται από το πώς ακριβώς χρησιμοποιούνται (βλ. σχόλιο από την υπόθεση Alpine παραπάνω). Ωστόσο, έχουμε δει πολλές φορές το «ηθικό της ιστορίας»: η φαινομενική απλότητα έχει συχνά ένα μειονέκτημα, το οποίο πρέπει πάντα να θυμόμαστε και οι συνέπειες του οποίου λαμβάνονται υπόψη στα σενάρια της τεχνολογικής εφαρμογής σας.

PS

Διαβάστε επίσης στο blog μας:

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο