Μια ευπάθεια στο KVM επιτρέπει την εκτέλεση κώδικα εκτός του συστήματος επισκεπτών σε επεξεργαστές AMD

Ερευνητές από την ομάδα του Google Project Zero αποκάλυψαν πριν από λίγες ημέρες σε μια ανάρτηση ιστολογίου έχουν εντοπίσει μια ευπάθεια (CVE-2021-29657) στον επόπτη KVM (ένας υπεύθυνος ανοιχτού κώδικα που βασίζεται σε Linux και υποστηρίζει εικονικοποίηση με επιτάχυνση υλικού σε x86, ARM, PowerPC και S / 390) που σας επιτρέπει να αποφύγετε την απομόνωση του συστήματος επισκεπτών και εκτελέστε τον κωδικό σας από το περιβάλλον του κεντρικού υπολογιστή.

Η ανάρτηση αναφέρει ότι το πρόβλημα εκδηλώνεται από τον πυρήνα Linux 5.10-rc1 έως v5.12-rc6, δηλαδή, καλύπτει μόνο πυρήνες 5.10 και 5.11 (Οι περισσότεροι από τους σταθερούς κλάδους διανομών δεν επηρεάστηκαν από το πρόβλημα.) Το πρόβλημα υπάρχει στον μηχανισμό nested_svm_vmrun, που εφαρμόζεται με την επέκταση AMD SVM (Secure Virtual Machine) και επιτρέπει την ένθετη εκκίνηση συστημάτων επισκεπτών.

Σε αυτήν την ανάρτηση ιστολογίου, περιγράφω μια ευπάθεια στον κώδικα KVM ειδικά για AMD και συζητώ πώς αυτό το σφάλμα μπορεί να μετατραπεί σε μια πλήρη διαφυγή εικονικής μηχανής. Απ 'όσο γνωρίζω, αυτή είναι η πρώτη δημόσια αναγραφή ενός ξεμπλοκαρίσματος KVM guest-to-host που δεν βασίζεται σε σφάλματα σε στοιχεία χώρου χρήστη όπως το QEMU.

Το σφάλμα που συζητήθηκε ανατέθηκε CVE-2021-29657, επηρεάζει τις εκδόσεις πυρήνα v5.10-rc1 έως v5.12-rc6 και διορθώθηκε στα τέλη Μαρτίου 2021. Καθώς το σφάλμα έγινε αξιοποιήσιμο μόνο στο v5.10 και ανακαλύφθηκε περίπου 5 μήνες αργότερα, οι περισσότερες πραγματικές εφαρμογές KVM δεν πρέπει να επηρεαστούν. Εξακολουθώ να πιστεύω ότι το πρόβλημα είναι μια ενδιαφέρουσα μελέτη περίπτωσης στο έργο που απαιτείται για την οικοδόμηση μιας σταθερής διαφυγής φιλοξενουμένων κατά του KVM και ελπίζω ότι αυτό το άρθρο μπορεί να κάνει ότι οι συμβιβασμοί των υπευθύνων δεν είναι μόνο θεωρητικά προβλήματα.

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

Μετά την ανάλυση της προτεινόμενης εφαρμογής του KVM, οι ερευνητέςαντιμετώπισε ένα λογικό σφάλμα που επιτρέπει το περιεχόμενο του MSR (Εγγραφή για συγκεκριμένο μοντέλο) του κεντρικού υπολογιστή να επηρεαστεί από το σύστημα επισκεπτών, που μπορεί να χρησιμοποιηθεί για την εκτέλεση κώδικα σε επίπεδο κεντρικού υπολογιστή.

Συγκεκριμένα, η εκτέλεση μιας λειτουργίας VMRUN από έναν επισκέπτη δεύτερου επιπέδου (L2 που ξεκίνησε από έναν άλλο επισκέπτη) οδηγεί σε μια δεύτερη κλήση στο nested_svm_vmrun και καταστρέφει τη δομή svm-> nested.have, η οποία επικαλύπτεται με δεδομένα από vmcb από το σύστημα επισκεπτών L2 .

Ως αποτέλεσμα, προκύπτει μια κατάσταση όπου στο επίπεδο επισκέπτη L2 είναι δυνατή η απελευθέρωση της μνήμης στη δομή svm-> nested.msrpm, η οποία αποθηκεύει το bit MSR, παρόλο που συνεχίζει να χρησιμοποιείται και έχει πρόσβαση στο MSR του κεντρικού υπολογιστή περιβάλλον.

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

Επιπλέον, το KVM μπορεί να εκφορτώσει το μεγαλύτερο μέρος της εργασίας που σχετίζεται με την εξομοίωση συσκευών στο στοιχείο χώρου χρήστη.

Το πρόβλημα υπάρχει στον κώδικα που χρησιμοποιείται σε συστήματα με επεξεργαστές AMD (kvm-amd.ko module) και δεν εμφανίζεται σε επεξεργαστές Intel.

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

Οι ερευνητές εκτός από την περιγραφή του προβλήματος Έχουν επίσης προετοιμάσει ένα λειτουργικό πρωτότυπο ενός exploit το οποίο επιτρέπει την εκτέλεση ενός κελύφους ρίζας από ένα περιβάλλον επισκέπτη σε περιβάλλον κεντρικού υπολογιστή σε ένα σύστημα με επεξεργαστή AMD Epyc 7351P και πυρήνα Linux 5.10.

Παρατηρείται ότι αυτός είναι ο πρώτος επισκέπτης που φιλοξενεί την ευπάθεια στον επόπτη KVM το ίδιο, δεν σχετίζεται με σφάλματα σε στοιχεία χώρου χρήστη όπως το QEMU. Η επιδιόρθωση έγινε αποδεκτή στον πυρήνα στα τέλη Μαρτίου.

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


Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.