Νέα επίθεση στις μικροαρχιτεκτονικές δομές των επεξεργαστών Intel και AMD

Μια ομάδα ερευνητών από το Πανεπιστήμιο της Βιρτζίνια και το Πανεπιστήμιο της Καλιφόρνια παρουσίασαν έναν νέο τύπο επίθεσης στις μικροαρχιτεκτονικές δομές των επεξεργαστών Intel και AMD, που εντοπίστηκαν κατά τη διάρκεια της αντίστροφης μηχανικής μη τεκμηριωμένων δυνατοτήτων CPU. Η προτεινόμενη μέθοδος επίθεσης περιλαμβάνει τη χρήση μιας ενδιάμεσης κρυφής μνήμης micro-op σε επεξεργαστές, η οποία μπορεί να χρησιμοποιηθεί για την ανάκτηση πληροφοριών που συσσωρεύονται κατά την κερδοσκοπική εκτέλεση εντολών.

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

Σημειώνεται ότι η νέα μέθοδος ξεπερνά σημαντικά την επίθεση Spectre v1, καθιστά την επίθεση δύσκολη την ανίχνευση και δεν μπλοκάρεται από υπάρχουσες μεθόδους προστασίας από επιθέσεις πλευρικού καναλιού που έχουν σχεδιαστεί για να αποκλείουν ευπάθειες που προκαλούνται από κερδοσκοπική εκτέλεση εντολών (για παράδειγμα, η χρήση της εντολής LFENCE αποκλείει τις διαρροές στα τελευταία στάδια της κερδοσκοπικής εκτέλεσης, αλλά δεν προστατεύει από διαρροές μέσω μικροαρχιτεκτονικών δομών).

Η μέθοδος επηρεάζει τα μοντέλα επεξεργαστών Intel και AMD που κυκλοφόρησαν από το 2011, συμπεριλαμβανομένων των σειρών Intel Skylake και AMD Zen. Οι σύγχρονες CPU διαχωρίζουν πολύπλοκες οδηγίες επεξεργαστή σε απλούστερες μικρολειτουργίες τύπου RISC, οι οποίες αποθηκεύονται στην κρυφή μνήμη σε ξεχωριστή κρυφή μνήμη. Αυτή η κρυφή μνήμη είναι θεμελιωδώς διαφορετική από τις κρυφές μνήμες υψηλότερου επιπέδου, δεν είναι άμεσα προσβάσιμη και λειτουργεί ως προσωρινή μνήμη ροής για γρήγορη πρόσβαση στα αποτελέσματα της αποκωδικοποίησης εντολών CISC σε μικροεντολές RISC. Ωστόσο, οι ερευνητές βρήκαν έναν τρόπο να δημιουργήσουν συνθήκες που προκύπτουν όταν η πρόσβαση στην κρυφή μνήμη συγκρούεται και να επιτρέπει σε κάποιον να κρίνει τα περιεχόμενα της κρυφής μνήμης μικρολειτουργίας αναλύοντας τις διαφορές στο χρόνο εκτέλεσης ορισμένων ενεργειών.

Νέα επίθεση στις μικροαρχιτεκτονικές δομές των επεξεργαστών Intel και AMD

Η κρυφή μνήμη μικρολειτουργίας στους επεξεργαστές Intel είναι τμηματοποιημένη σε σχέση με τα νήματα της CPU (Hyper-Threading), ενώ οι επεξεργαστές AMD Zen χρησιμοποιούν μια κοινόχρηστη κρυφή μνήμη, η οποία δημιουργεί συνθήκες για διαρροή δεδομένων όχι μόνο σε ένα νήμα εκτέλεσης, αλλά και μεταξύ διαφορετικών νημάτων στο SMT (πιθανή διαρροή δεδομένων μεταξύ κώδικα που εκτελείται σε διαφορετικούς λογικούς πυρήνες CPU).

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

Κατά την οργάνωση μιας παραλλαγής της επίθεσης Spectre χρησιμοποιώντας μια κρυφή μνήμη μικρολειτουργίας, οι ερευνητές μπόρεσαν να επιτύχουν απόδοση 965.59 Kbps με ποσοστό σφάλματος 0.22% και 785.56 Kbps κατά τη χρήση διόρθωσης σφαλμάτων, στην περίπτωση οργάνωσης μιας διαρροής στην ίδια διεύθυνση χώρο και επίπεδο προνομίων. Με μια διαρροή που εκτείνεται σε διαφορετικά επίπεδα προνομίων (μεταξύ πυρήνα και χώρου χρήστη), η απόδοση ήταν 85.2 Kbps με προσθήκη διόρθωσης σφαλμάτων και 110.96 Kbps με ποσοστό σφάλματος 4%. Κατά την επίθεση σε επεξεργαστές AMD Zen, δημιουργώντας διαρροή μεταξύ διαφορετικών λογικών πυρήνων CPU, η απόδοση ήταν 250 Kbps με ποσοστό σφάλματος 5.59% και 168.58 Kbps με διόρθωση σφαλμάτων. Σε σύγκριση με την κλασική μέθοδο Spectre v1, η νέα επίθεση ήταν 2.6 φορές πιο γρήγορη.

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

Όπως και στις επιθέσεις Spectre, η οργάνωση μιας διαρροής από τον πυρήνα ή άλλες διεργασίες απαιτεί την εκτέλεση μιας συγκεκριμένης ακολουθίας εντολών (gadgets) από την πλευρά των διεργασιών του θύματος, που οδηγεί σε εικαστική εκτέλεση εντολών. Περίπου 100 παρόμοια gadgets έχουν βρεθεί στον πυρήνα του Linux, τα οποία θα αφαιρεθούν, αλλά εντοπίζονται περιοδικά λύσεις για τη δημιουργία τους, για παράδειγμα, που σχετίζονται με την εκτέλεση ειδικά σχεδιασμένων προγραμμάτων BPF στον πυρήνα.

Πηγή: opennet.ru

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