Μια άλλη ευπάθεια έχει εντοπιστεί στους επεξεργαστές AMD που επιτρέπει επιθέσεις Meltdown

Μια ομάδα ερευνητών από το Τεχνικό Πανεπιστήμιο του Γκρατς (Αυστρία) και το Κέντρο Ασφάλειας Πληροφοριών Helmholtz (CISPA) αποκάλυψε μια ευπάθεια (CVE-2021-26318) σε όλους τους επεξεργαστές AMD που καθιστά δυνατή την εκτέλεση της κατηγορίας Meltdown. επιθέσεις καναλιών (αρχικά θεωρήθηκε ότι οι επεξεργαστές AMD δεν επηρεάζονται από την ευπάθεια Meltdown). Πρακτικά, η επίθεση μπορεί να χρησιμοποιηθεί για τη δημιουργία κρυφών καναλιών επικοινωνίας, την παρακολούθηση της δραστηριότητας στον πυρήνα ή τη λήψη πληροφοριών σχετικά με διευθύνσεις στη μνήμη του πυρήνα για να παρακάμψει την προστασία KASLR ενώ εκμεταλλεύεται ευπάθειες στον πυρήνα.

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

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

Κατά τη διάρκεια του πειράματος, οι ερευνητές κατάφεραν να διαρρεύσουν πληροφορίες από τον πυρήνα σε μια διεργασία στο χώρο χρήστη με ταχύτητα 52 byte ανά δευτερόλεπτο, δεδομένης της παρουσίας ενός gadget στον πυρήνα που εκτελεί τη λειτουργία "if (offset < data_len) tmp = LUT[data[offset] * 4096];” . Έχουν προταθεί αρκετές μέθοδοι για την ανάκτηση πληροφοριών μέσω πλευρικών καναλιών που καταλήγουν στην κρυφή μνήμη κατά τη διάρκεια της κερδοσκοπικής εκτέλεσης. Η πρώτη μέθοδος βασίζεται στην ανάλυση των αποκλίσεων στο χρόνο εκτέλεσης της εντολής του επεξεργαστή "PREFETCH" (Prefetch+Time) και η δεύτερη στην αλλαγή της αλλαγής στην κατανάλωση ενέργειας κατά την εκτέλεση του "PREFETCH" (Prefetch+Power).

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

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

Πηγή: opennet.ru

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