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

Το έργο Grsecurity δημοσίευσε λεπτομέρειες και μια επίδειξη της μεθόδου επίθεσης για μια νέα ευπάθεια (CVE-2021-26341) σε επεξεργαστές AMD που σχετίζονται με την κερδοσκοπική εκτέλεση εντολών μετά από άνευ όρων προωθητικές λειτουργίες. Εάν η επίθεση είναι επιτυχής, η ευπάθεια επιτρέπει τον προσδιορισμό των περιεχομένων των αυθαίρετων περιοχών μνήμης. Για παράδειγμα, οι ερευνητές έχουν ετοιμάσει ένα exploit που τους επιτρέπει να προσδιορίσουν τη διάταξη διεύθυνσης και να παρακάμψουν τον μηχανισμό προστασίας KASLR (τυχαιοποίηση μνήμης πυρήνα) εκτελώντας μη προνομιούχο κώδικα στο υποσύστημα πυρήνα ePBF. Δεν μπορούν να αποκλειστούν άλλα σενάρια επίθεσης που θα μπορούσαν να οδηγήσουν σε διαρροή των περιεχομένων της μνήμης του πυρήνα.

Η ευπάθεια σάς επιτρέπει να δημιουργήσετε συνθήκες υπό τις οποίες ο επεξεργαστής, κατά την προληπτική εκτέλεση, επεξεργάζεται υποθετικά την εντολή αμέσως μετά την εντολή άλματος στη μνήμη (SLS, Straight Line Speculation). Επιπλέον, μια τέτοια βελτιστοποίηση λειτουργεί όχι μόνο για τελεστές άλματος υπό όρους, αλλά και για οδηγίες που συνεπάγονται άμεσο άνευ όρων άλμα, όπως JMP, RET και CALL. Ακολουθώντας τις οδηγίες άνευ όρων άλματος, μπορούν να τοποθετηθούν αυθαίρετα δεδομένα που δεν προορίζονται για εκτέλεση. Αφού προσδιορίσει ότι ένας κλάδος δεν περιλαμβάνει την εκτέλεση της επόμενης εντολής, ο επεξεργαστής απλώς επαναφέρει την κατάσταση και αγνοεί την υποθετική εκτέλεση, αλλά το ίχνος της εκτέλεσης εντολής παραμένει στην κοινόχρηστη κρυφή μνήμη και είναι διαθέσιμο για ανάλυση χρησιμοποιώντας τεχνικές ανάκτησης πλευρικού καναλιού.

Όπως και με την εκμετάλλευση της ευπάθειας Specter-v1, η επίθεση απαιτεί την παρουσία ορισμένων ακολουθιών εντολών (gadgets) στον πυρήνα που οδηγούν σε κερδοσκοπική εκτέλεση. Ο αποκλεισμός μιας ευπάθειας σε αυτήν την περίπτωση καταλήγει στον εντοπισμό τέτοιων gadget στον κώδικα και στην προσθήκη πρόσθετων οδηγιών σε αυτά που εμποδίζουν την κερδοσκοπική εκτέλεση. Οι συνθήκες για κερδοσκοπική εκτέλεση μπορούν επίσης να δημιουργηθούν από μη προνομιακά προγράμματα που εκτελούνται στην εικονική μηχανή eBPF. Για να αποκλείσετε τη δυνατότητα κατασκευής gadget χρησιμοποιώντας eBPF, συνιστάται η απενεργοποίηση της μη προνομιακής πρόσβασης στο eBPF στο σύστημα (“sysctl -w kernel.unprivileged_bpf_disabled=1”).

Η ευπάθεια επηρεάζει επεξεργαστές που βασίζονται στη μικροαρχιτεκτονική Zen1 και Zen2, συμπεριλαμβανομένων της πρώτης και δεύτερης γενιάς επεξεργαστών AMD EPYC και AMD Ryzen Threadripper, καθώς και των AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon Threadrizen. Επεξεργαστές σειρών PRO και APU A. Για να αποκλείσετε την κερδοσκοπική εκτέλεση εντολών, συνιστάται η κλήση εντολών INT3 ή LFENCE μετά από λειτουργίες διακλάδωσης (RET, JMP, CALL).

Πηγή: opennet.ru

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