Ευπάθεια στους επεξεργαστές Intel που οδηγεί σε διαρροή δεδομένων μέσω καναλιών τρίτων

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

Η ουσία της ευπάθειας είναι ότι μια αλλαγή στο μητρώο επεξεργαστή EFLAGS, η οποία προέκυψε ως αποτέλεσμα κερδοσκοπικής εκτέλεσης εντολών, επηρεάζει τον μετέπειτα χρόνο εκτέλεσης των εντολών JCC (άλμα όταν πληρούνται συγκεκριμένες προϋποθέσεις). Οι κερδοσκοπικές πράξεις δεν ολοκληρώνονται και το αποτέλεσμα απορρίπτεται, αλλά η αλλαγή EFLAGS που απορρίφθηκε μπορεί να προσδιοριστεί αναλύοντας τον χρόνο εκτέλεσης των εντολών JCC. Οι υποθετικά εκτελούμενες λειτουργίες σύγκρισης πριν από το άλμα, εάν η σύγκριση είναι επιτυχής, έχουν ως αποτέλεσμα μια μικρή καθυστέρηση που μπορεί να μετρηθεί και να χρησιμοποιηθεί ως χαρακτηριστικό για την αντιστοίχιση περιεχομένου.

Ευπάθεια στους επεξεργαστές Intel που οδηγεί σε διαρροή δεδομένων μέσω καναλιών τρίτων

Σε αντίθεση με άλλες παρόμοιες επιθέσεις μέσω καναλιών τρίτων, η νέα μέθοδος δεν αναλύει την αλλαγή του χρόνου πρόσβασης σε προσωρινά και μη αποθηκευμένα δεδομένα και δεν απαιτεί το στάδιο επαναφοράς του καταχωρητή EFLAGS στην αρχική κατάσταση, γεγονός που καθιστά δύσκολη την εντοπίσει και μπλοκάρει την επίθεση. Ως επίδειξη, οι ερευνητές εφάρμοσαν μια παραλλαγή της επίθεσης Meltdown, χρησιμοποιώντας μια νέα μέθοδο σε αυτήν για να λάβουν πληροφορίες σχετικά με το αποτέλεσμα μιας κερδοσκοπικής επιχείρησης. Η λειτουργία της μεθόδου οργάνωσης διαρροής πληροφοριών κατά τη διάρκεια επίθεσης Meltdown έχει αποδειχθεί με επιτυχία σε συστήματα με επεξεργαστές Intel Core i7-6700 και i7-7700 σε περιβάλλον με Ubuntu 22.04 και πυρήνα Linux 5.15. Σε ένα σύστημα με επεξεργαστή Intel i9-10980XE, η επίθεση ήταν μόνο εν μέρει επιτυχής.

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

Στην κλασική έκδοση του Meltdown, δεδομένου ότι η ίδια κρυφή μνήμη χρησιμοποιείται για υποθετικά εκτελούμενες λειτουργίες όπως και για κανονικά εκτελούμενες εντολές, είναι δυνατό κατά τη διάρκεια της κερδοσκοπικής εκτέλεσης να οριστούν δείκτες στη μνήμη cache που αντικατοπτρίζουν τα περιεχόμενα μεμονωμένων bit σε μια κλειστή περιοχή μνήμης και στη συνέχεια στον κανονικά εκτελούμενο κώδικα για να προσδιορίσετε το νόημά τους μέσω ανάλυσης του χρόνου πρόσβασης σε κρυφά και μη αποθηκευμένα δεδομένα. Η νέα παραλλαγή χρησιμοποιεί την αλλαγή στον καταχωρητή EFLAGS ως δείκτη για διαρροή. Στην επίδειξη του Covert Channel, μια διεργασία διαμόρφωσε τα δεδομένα που αποστέλλονται για να αλλάξει τα περιεχόμενα του καταχωρητή EFLAGS και μια άλλη διεργασία ανέλυσε την αλλαγή στον χρόνο εκτέλεσης εντολών JCC για να δημιουργήσει εκ νέου τα δεδομένα που στάλθηκαν από την πρώτη διεργασία.

Πηγή: opennet.ru

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