Ένα σφάλμα στο Linux 6.2 επέτρεψε την παράκαμψη της προστασίας επίθεσης Spectre v2

ευπάθεια

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

Πρόσφατα κυκλοφόρησαν πληροφορίες για α Εντοπίστηκε ευπάθεια στον πυρήνα Linux 6.2 (ήδη αναφέρεται παρακάτω CVE-2023-1998) και που ξεχωρίζει γιατί είναι απενεργοποιήστε την προστασία επίθεσης Spectre v2 που επιτρέπουν την πρόσβαση στη μνήμη από άλλες διεργασίες που εκτελούνται σε διαφορετικά νήματα SMT ή Hyper Threading, αλλά στον ίδιο φυσικό πυρήνα επεξεργαστή.

Η ευπάθεια είναι αξιοσημείωτη μεταξύ άλλων γιατί μπορεί να χρησιμοποιηθεί για οργανώστε τη διαρροή δεδομένων μεταξύ εικονικές μηχανές σε συστήματα cloud. 

Για όσους δεν γνωρίζουν για το Spectre, θα πρέπει να γνωρίζουν ότι αυτό είναι ένα από τα δύο αρχικά τρωτά σημεία της CPU μεταβατικής εκτέλεσης (το άλλο είναι το Meltdown), τα οποία περιλαμβάνουν επιθέσεις πλευρικού καναλιού μικροαρχιτεκτονικού χρονισμού. Αυτά επηρεάζουν τους σύγχρονους μικροεπεξεργαστές που εκτελούν προβλέψεις άλματος και άλλες μορφές εικασίας.

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

Από την αποκάλυψη των Spectre και Meltdown τον Ιανουάριο του 2018, έχουν εμφανιστεί αρκετές παραλλαγές και νέοι τύποι ευπάθειας που σχετίζονται με αυτά.

Ο πυρήνας Linux επιτρέπει στις διεργασίες userland να ενεργοποιούν μετριασμούς καλώντας prctl με PR_SET_SPECULATION_CTRL, το οποίο απενεργοποιεί τη λειτουργία προδιαγραφών, καθώς και χρησιμοποιώντας το seccomp. Διαπιστώσαμε ότι σε εικονικές μηχανές από τουλάχιστον έναν μεγάλο πάροχο cloud, ο πυρήνας εξακολουθούσε να αφήνει τη διαδικασία του θύματος ανοιχτή για επίθεση σε ορισμένες περιπτώσεις, ακόμη και μετά την ενεργοποίηση του μετριασμού φάσματος-ΔΔΠ με το prctl. 

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

Σύμφωνα με τους ερευνητές που εντόπισαν το πρόβλημα, εσφαλμένη βελτιστοποίηση σε αριστερές εικονικές μηχανές πυρήνα 6.2 από τουλάχιστον έναν μεγάλο πάροχο cloud χωρίς την κατάλληλη προστασία παρά τη συμπερίληψη του τρόπου αποκλεισμού επίθεσης φάσματος-ΔΔΠ μέσω prctl. Η ευπάθεια εκδηλώνεται επίσης σε κανονικούς διακομιστές με πυρήνα 6.2, οι οποίοι ξεκινούν με τη διαμόρφωση "spectre_v2=ibrs".

Η ουσία της ευπάθειας είναι ότι με την επιλογή των τρόπων προστασίας IBRS ή eIBRS, οι βελτιστοποιήσεις που έγιναν απενεργοποίησαν τη χρήση του μηχανισμού STIBP (Single Thread Indirect Branch Predictors), ο οποίος είναι απαραίτητος για τον αποκλεισμό διαρροών κατά τη χρήση της τεχνολογίας Simultaneous Multi-Threading (SMT ή Hyper-Threading). )

Με τη σειρά του, μόνο η λειτουργία eIBRS παρέχει προστασία από διαρροές μεταξύ των νημάτων, όχι η λειτουργία IBRS, καθώς μαζί της το bit IBRS, το οποίο παρέχει προστασία από διαρροές μεταξύ λογικών πυρήνων, διαγράφεται για λόγους απόδοσης όταν ο έλεγχος επιστρέφει στον χρήστη του χώρου, γεγονός που κάνει νήματα χώρου χρήστη χωρίς προστασία έναντι επιθέσεων από την κλάση Spectre v2.

Το τεστ αποτελείται από δύο διαδικασίες. Ο εισβολέας δηλητηριάζει συνεχώς μια έμμεση κλήση για να την ανακατευθύνει κερδοσκοπικά σε μια διεύθυνση προορισμού. Η διαδικασία του θύματος μετρά το λάθος ποσοστό πρόβλεψης και προσπαθεί να μετριάσει την επίθεση καλώντας το PRCTL ή γράφοντας απευθείας στο MSR χρησιμοποιώντας μια λειτουργική μονάδα πυρήνα που εκθέτει τις λειτουργίες ανάγνωσης και εγγραφής MSR στο χώρο χρήστη.

Το πρόβλημα επηρεάζει μόνο τον πυρήνα του Linux 6.2 και οφείλεται σε εσφαλμένη εφαρμογή βελτιστοποιήσεων που έχουν σχεδιαστεί για τη μείωση σημαντικών επιβαρύνσεων κατά την εφαρμογή προστασίας έναντι του Spectre v2. τρωτό Διορθώθηκε στον πειραματικό κλάδο του πυρήνα Linux 6.3.

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