Λογότυπο Zephyrnet

Επιδιορθώστε τώρα: Το ελάττωμα του Kubernetes RCE επιτρέπει την πλήρη εξαγορά των κόμβων των Windows

Ημερομηνία:

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

Ο ερευνητής ασφαλείας της Akamai, Tomer Peled, ανακάλυψε το ελάττωμα, το οποίο παρακολουθείται ως CVE-2023-5528 και έχει βαθμολογία CVSS 7.2. Η εκμετάλλευση έγκειται στον χειρισμό τόμων του Kubernetes, ένα χαρακτηριστικό που στοχεύει στην υποστήριξη της κοινής χρήσης δεδομένων μεταξύ pods σε ένα σύμπλεγμα ή στην επίμονη αποθήκευση τους εκτός του κύκλου ζωής ενός pod, εξήγησε. σε ένα blog post δημοσιεύθηκε στις 13 Μαρτίου.

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

«Είναι πολύ εύκολο να εκμεταλλευτεί κανείς αυτήν την ευπάθεια επειδή ένας εισβολέας θα χρειαστεί μόνο να τροποποιήσει μια παράμετρο και να εφαρμόσει 3 αρχεία YAML για να αποκτήσει RCE στα τελικά σημεία των Windows», λέει ο Peled στο Dark Reading. Το πλαίσιο Kubernetes «Χρησιμοποιεί αρχεία YAML βασικά για τα πάντα», έγραψε στην ανάρτηση.

Συστάδες Kubernetes επηρεάζονται μόνο εάν χρησιμοποιούν μια προσθήκη αποθήκευσης σε δέντρο για Windows. Ωστόσο, «υπάρχουν πολλοί διαφορετικοί τύποι τόμων που μπορούν να χρησιμοποιήσουν οι προγραμματιστές», δημιουργώντας διαφορετικά σενάρια επίθεσης, παρατήρησε ο Peled στη δημοσίευση.

Οι προεπιλεγμένες εγκαταστάσεις του Kubernetes προγενέστερες από την έκδοση 1.28.4 που εκτελούνται τόσο on-prem όσο και η υπηρεσία Azure Kubernetes είναι ευάλωτες. Η ομάδα Kubernetes έχει ειδοποιηθεί για το ελάττωμα και υπάρχει διαθέσιμο ένα patch για αποκατάσταση, το οποίο συνιστάται ανεπιφύλακτα.

"Δεδομένου ότι το πρόβλημα βρίσκεται στον πηγαίο κώδικα, αυτή η απειλή θα παραμείνει ενεργή και η εκμετάλλευσή της πιθανότατα θα αυξηθεί - γι' αυτό συμβουλεύουμε ανεπιφύλακτα να επιδιορθώσετε το σύμπλεγμα σας ακόμα κι αν δεν έχει κόμβους Windows", έγραψε ο Peled.

Ακολουθώντας τα ελαττώματα

Ο Peled ανακάλυψε το ελάττωμα μετά από έρευνα για μια άλλη ευπάθεια που μοιράζεται την ίδια βασική αιτία: ανασφαλής κλήση συνάρτησης και έλλειψη εξυγίανσης εισόδου χρήστη στο Kubernetes. Αυτό το ελάττωμα ήταν CVE-2023-3676, μια ευπάθεια ένεσης εντολών που θα μπορούσε να χρησιμοποιηθεί με την εφαρμογή ενός κακόβουλου αρχείου YAML στο σύμπλεγμα. Η ανακάλυψη αυτής της ευπάθειας οδήγησε στην ανακάλυψη δύο άλλων που προκαλούνται επίσης από την έλλειψη εξυγίανσης της παραμέτρου subPath στα αρχεία YAML, η οποία δημιουργεί pods με τόμους και ανοίγει μια ευκαιρία για ένεση κακόβουλου κώδικα.

«Στο τέλος αυτής της έρευνας, παρατηρήσαμε μια πιθανή θέση στον κώδικα που φαινόταν ότι θα μπορούσε να οδηγήσει σε μια άλλη ευπάθεια ένεσης εντολών», η οποία τελικά έγινε CVE-2023-5528, εξήγησε ο Peled.

«Μετά από πολλές προσπάθειες, καταφέραμε να επιτύχουμε ένα παρόμοιο αποτέλεσμα: εκτέλεση εντολών ως υπηρεσία kubelet (προνόμια SYSTEM)», έγραψε.

Εκμετάλλευση και επιδιόρθωση

Η απόδειξη της ιδέας που εκτέλεσαν οι ερευνητές επικεντρώθηκε σε τοπικούς τόμους, έναν από τους τύπους τόμων στο Kubernetes. Κατά τη δημιουργία ενός pod που περιλαμβάνει έναν τοπικό τόμο, η υπηρεσία kubelet θα φτάσει τελικά σε μια συνάρτηση με μια κλήση γραμμής cmd στο "exec.command", δημιουργώντας μια συμβολική σύνδεση μεταξύ της θέσης του τόμου στον κόμβο και της θέσης μέσα στο pod.

Όπως πολλά τερματικά, η γραμμή εντολών των Windows (cmd) επιτρέπει την εκτέλεση δύο ή περισσότερων εντολών η μία μετά την άλλη, καθώς και πολλές εντολές στην ίδια γραμμή εντολών. «Το γεγονός ότι μπορούμε να ελέγξουμε μία από τις παραμέτρους στην εκτέλεση cmd σημαίνει ότι μπορούμε να χρησιμοποιήσουμε την ένεση εντολών», εξήγησε ο Peled.

Υπάρχουν προϋποθέσεις για να επιτευχθεί αυτό σε τοπικούς τόμους, συμπεριλαμβανομένης της ανάγκης καθορισμού ή δημιουργίας ενός persistentVolume, μεταξύ άλλων. Ωστόσο, μόλις δημιουργηθεί αυτός ο τόμος, «ένας χρήστης μπορεί να ζητήσει χώρο αποθήκευσης χρησιμοποιώντας ένα persistentVolumeClaim», έγραψε. "Εδώ μπορεί να τοποθετηθεί η ένεση."

Η ενημέρωση κώδικα που δημιουργήθηκε για το ελάττωμα αφαιρεί την ευκαιρία για ένεση διαγράφοντας την κλήση cmd και αντικαθιστώντας την με μια εγγενή συνάρτηση GO που θα εκτελέσει την ίδια λειτουργία για τη δημιουργία του συμβολικού συνδέσμου. «Τώρα, η βιβλιοθήκη GO 'os' θα εκτελεί μόνο μια λειτουργία συμβολικής σύνδεσης, όπως είχε αρχικά προβλεφθεί», εξήγησε.

Είναι το σύστημά σας ευάλωτο;

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

"Το Kubernetes είναι ένα πολύ περίπλοκο και ισχυρό εργαλείο", λέει ο Peled. «Αφενός η στιβαρότητά του επιτρέπει στους χρήστες να προσαρμόσουν την εμπειρία τους στις ανάγκες του οργανισμού τους, αλλά από την άλλη καθιστά πολύ δύσκολη την ασφάλεια κάθε πτυχής του τόσο από την άποψη του προγραμματιστή όσο και από την άποψη του χρήστη.»

Πράγματι, η ανακάλυψη του CVE-2023-5528 και των σχετικών ελαττωμάτων του υπογραμμίζει για τις επιχειρήσεις που αναπτύσσουν Kubernetes «πόσο κρίσιμο είναι να επαληθεύσουν τα YAML διαμόρφωσης Kubernetes, καθώς λείπει η απολύμανση εισόδου σε πολλές περιοχές κώδικα στο ίδιο το Kubernetes και τα έργα sidecar του», έγραψε ο Peled. .

Η παρακολούθηση βέλτιστων πρακτικών όπως ο έλεγχος πρόσβασης βάσει ρόλων (RBAC) και η διασφάλιση ότι τα cluster είναι ενημερωμένα, «θα πρέπει επίσης να μετριάσουν ένα μεγάλο μέρος των γνωστών απειλών», λέει στο Dark Reading.

Ένα εταιρικό περιβάλλον που εκτελεί το Kubernetes είναι ευάλωτο στην εκμετάλλευση του ελαττώματος μόνο εάν μια έκδοση του συστήματος είναι παλαιότερη από την 1.28.4 και το σύστημα εκτελεί κόμβους των Windows. Εάν συμβαίνει αυτό, η Akamai παρείχε μια εντολή στους διαχειριστές για να προσδιορίσουν εάν το σύστημα πρέπει να διορθωθεί. Εάν ναι, θα πρέπει να δοθεί προτεραιότητα στην επιδιόρθωση.  

"Εάν το σύμπλεγμα Kubernetes σας δεν έχει κόμβους Windows, δεν χρειάζεται να βιαστείτε να επιδιορθώσετε αυτήν τη συγκεκριμένη ευπάθεια", σημείωσε ο Peled. "Αλλά είναι σημαντικό να το διορθώσετε ούτως ή άλλως όταν έχετε χρόνο."

Εάν η άμεση επιδιόρθωση δεν είναι επιλογή, το Akamai επίσης παρέχει έναν κανόνα Open Policy Agent (OPA) που βοηθά στον εντοπισμό και τον αποκλεισμό αυτού του είδους συμπεριφοράς. Το OPA είναι ένας πράκτορας ανοιχτού κώδικα που επιτρέπει στους χρήστες να λαμβάνουν δεδομένα σχετικά με την κίνηση που εισέρχεται και βγαίνει από κόμβους και να λαμβάνουν ενέργειες βάσει πολιτικής για τα δεδομένα που λαμβάνονται.

spot_img

Τελευταία Νοημοσύνη

spot_img