Το Plundervolt είναι μια νέα μέθοδος επίθεσης στους επεξεργαστές Intel που επηρεάζει την τεχνολογία SGX

Intel απελευθερώθηκε ενημέρωση μικροκώδικα που διορθώνει τρωτό (CVE-2019-14607) επιτρέποντας μέσω του χειρισμού του δυναμικού μηχανισμού ελέγχου τάσης και συχνότητας στην CPU, να προκαλέσει βλάβη στο περιεχόμενο των κυψελών δεδομένων, συμπεριλαμβανομένων των περιοχών που χρησιμοποιούνται για υπολογισμούς σε απομονωμένους θύλακες Intel SGX. Η επίθεση ονομάζεται Plundervolt και δυνητικά επιτρέπει σε έναν τοπικό χρήστη να κλιμακώσει τα προνόμιά του στο σύστημα, να προκαλέσει άρνηση υπηρεσίας και να αποκτήσει πρόσβαση σε ευαίσθητα δεδομένα.

Η επίθεση είναι επικίνδυνη μόνο στο πλαίσιο χειρισμών με υπολογισμούς σε θύλακες SGX, καθώς απαιτεί δικαιώματα ρίζας στο σύστημα για να πραγματοποιηθεί. Στην απλούστερη περίπτωση, ένας εισβολέας μπορεί να επιτύχει παραμόρφωση των πληροφοριών που υποβάλλονται σε επεξεργασία στον θύλακα, αλλά σε πιο περίπλοκα σενάρια, η δυνατότητα αναδημιουργίας των ιδιωτικών κλειδιών που είναι αποθηκευμένα στον θύλακα που χρησιμοποιείται για κρυπτογράφηση χρησιμοποιώντας τους αλγόριθμους RSA-CRT και AES-NI δεν είναι εξαιρούνται. Η τεχνική μπορεί επίσης να χρησιμοποιηθεί για τη δημιουργία σφαλμάτων σε αρχικά σωστούς αλγόριθμους για την πρόκληση ευπάθειας κατά την εργασία με τη μνήμη, για παράδειγμα, για την οργάνωση της πρόσβασης σε μια περιοχή εκτός των ορίων του εκχωρημένου buffer.
Πρωτότυπος κώδικας για την εκτέλεση επίθεσης δημοσιεύθηκε στο GitHub

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

Αλλάζοντας την τάση, μπορείτε να δημιουργήσετε συνθήκες υπό τις οποίες η φόρτιση δεν επαρκεί για την αναγέννηση μιας κυψέλης μνήμης εντός της CPU και αλλάζει η τιμή της. Βασική διαφορά από την επίθεση RowHammer είναι ότι το RowHammer σάς επιτρέπει να αλλάζετε τα περιεχόμενα μεμονωμένων bit στη μνήμη DRAM διαβάζοντας κυκλικά δεδομένα από γειτονικά κελιά, ενώ το Plundervolt σας επιτρέπει να αλλάζετε bit μέσα στην CPU όταν τα δεδομένα έχουν ήδη φορτωθεί από τη μνήμη για υπολογισμό. Αυτή η δυνατότητα σάς επιτρέπει να παρακάμψετε τους μηχανισμούς ελέγχου ακεραιότητας και κρυπτογράφησης που χρησιμοποιούνται στο SGX για δεδομένα στη μνήμη, καθώς οι τιμές στη μνήμη παραμένουν σωστές, αλλά μπορούν να παραμορφωθούν κατά τη διάρκεια εργασιών με αυτές πριν εγγραφεί το αποτέλεσμα στη μνήμη.

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

Έχοντας αναλύσει τα ζεύγη τιμών των σωστών και κατεστραμμένων κρυπτογραφημένων κειμένων που συσσωρεύτηκαν κατά τη διάρκεια διαφόρων αστοχιών, χρησιμοποιώντας μεθόδους ανάλυσης διαφορικής αστοχίας (DFA, Διαφορική Ανάλυση Βλαβών) Μπορώ προλέγω πιθανά κλειδιά που χρησιμοποιούνται για τη συμμετρική κρυπτογράφηση AES και, στη συνέχεια, αναλύοντας τις τομές των κλειδιών σε διαφορετικά σύνολα, προσδιορίστε το επιθυμητό κλειδί.

Διάφορα μοντέλα επεξεργαστών Intel επηρεάζονται από το πρόβλημα, συμπεριλαμβανομένων των επεξεργαστών Intel Core με 6
10ης γενιάς, καθώς και η πέμπτη και έκτη γενιά του Xeon E3, η πρώτη και δεύτερη γενιά του Intel Xeon Scalable, Xeon D,
Xeon W και Xeon E.

Να σας υπενθυμίσουμε ότι η τεχνολογία SGX (Επεκτάσεις λογισμικού φύλαξης) εμφανίστηκε στους επεξεργαστές Intel Core έκτης γενιάς (Skylake) και προσφέρει μια σειρά οδηγιών που επιτρέπουν σε εφαρμογές σε επίπεδο χρήστη να εκχωρούν περιοχές κλειστής μνήμης - θύλακες, τα περιεχόμενα των οποίων δεν μπορούν να διαβαστούν ή να τροποποιηθούν ακόμη και από τον πυρήνα και τον κώδικα που εκτελούνται σε λειτουργίες ring0, SMM και VMM. Είναι αδύνατο να μεταφερθεί ο έλεγχος στον κώδικα στο θύλακα χρησιμοποιώντας παραδοσιακές συναρτήσεις άλματος και χειρισμούς με καταχωρητές και τη στοίβα· για να μεταφερθεί ο έλεγχος στον θύλακα, χρησιμοποιείται μια ειδικά δημιουργημένη νέα εντολή που εκτελεί έλεγχο αρχής. Σε αυτήν την περίπτωση, ο κώδικας που τοποθετείται στον θύλακα μπορεί να χρησιμοποιήσει κλασικές μεθόδους κλήσης για πρόσβαση σε συναρτήσεις εντός του θύλακα και ειδικές οδηγίες για την κλήση εξωτερικών συναρτήσεων. Η κρυπτογράφηση μνήμης εγκλεισμού χρησιμοποιείται για την προστασία από επιθέσεις υλικού, όπως η σύνδεση σε μια μονάδα DRAM.

Πηγή: opennet.ru

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