Το LVI είναι μια νέα κατηγορία επιθέσεων στον κερδοσκοπικό μηχανισμό εκτέλεσης στην CPU

Δημοσίευσε πληροφορίες για μια νέα κατηγορία επιθέσεων HVAC (Έγχυση τιμής φορτίου, CVE-2020-0551) σχετικά με τον κερδοσκοπικό μηχανισμό εκτέλεσης σε επεξεργαστές Intel CPU, ο οποίος μπορεί να χρησιμοποιηθεί για τη διαρροή κλειδιών και μυστικών δεδομένων από θύλακες Intel SGX και άλλες διεργασίες.

Μια νέα κατηγορία επιθέσεων βασίζεται στον χειρισμό των ίδιων μικροαρχιτεκτονικών δομών που χρησιμοποιούνται στις επιθέσεις MDS (Δειγματοληψία μικροαρχιτεκτονικών δεδομένων), Spectre και Meltdown. Ταυτόχρονα, οι νέες επιθέσεις δεν μπλοκάρονται από τις υπάρχουσες μεθόδους προστασίας από Meltdown, Spectre, MDS και άλλες παρόμοιες επιθέσεις. Η αποτελεσματική προστασία LVI απαιτεί αλλαγές υλικού στη CPU. Όταν οργανώνετε την προστασία μέσω προγραμματισμού, προσθέτοντας την εντολή LFENCE από τον μεταγλωττιστή μετά από κάθε λειτουργία φόρτωσης από τη μνήμη και αντικαθιστώντας την εντολή RET με POP, LFENCE και JMP, καταγράφεται υπερβολική επιβάρυνση - σύμφωνα με τους ερευνητές, η πλήρης προστασία λογισμικού θα οδηγήσει σε μείωση του απόδοση κατά 2-19 φορές.

Μέρος της δυσκολίας στην παρεμπόδιση του προβλήματος αντισταθμίζεται από το γεγονός ότι η επίθεση είναι επί του παρόντος περισσότερο θεωρητική παρά πρακτική (η επίθεση είναι θεωρητικά δυνατή, αλλά πολύ δύσκολο να εφαρμοστεί και μπορεί να αναπαραχθεί μόνο σε συνθετικές δοκιμές).
Intel οικειοποιήθηκε το πρόβλημα έχει μέτριο επίπεδο επικινδυνότητας (5.6 στα 10) και απελευθερώθηκε ενημέρωση του υλικολογισμικού και του SDK για το περιβάλλον SGX, στο οποίο προσπάθησε να αποκλείσει την επίθεση χρησιμοποιώντας μια λύση. Οι προτεινόμενες μέθοδοι επίθεσης ισχύουν προς το παρόν μόνο σε επεξεργαστές Intel, αλλά δεν μπορεί να αποκλειστεί η δυνατότητα προσαρμογής του LVI για άλλους επεξεργαστές στους οποίους ισχύουν επιθέσεις κατηγορίας Meltdown.

Το πρόβλημα εντοπίστηκε τον περασμένο Απρίλιο από τον ερευνητή Jo Van Bulck από το Πανεπιστήμιο του Leuven, μετά τον οποίο, με τη συμμετοχή 9 ερευνητών από άλλα πανεπιστήμια, αναπτύχθηκαν πέντε βασικές μέθοδοι επίθεσης, καθεμία από τις οποίες επιτρέπει την ύπαρξη πιο συγκεκριμένων επιλογές. Ανεξάρτητα, τον Φεβρουάριο του τρέχοντος έτους, ερευνητές από το Bitdefender επίσης ανακαλύφθηκε μία από τις παραλλαγές επίθεσης LVI και το ανέφερε στην Intel. Οι παραλλαγές επίθεσης διακρίνονται από τη χρήση διαφορετικών μικροαρχιτεκτονικών δομών, όπως το buffer αποθήκευσης (SB, Store Buffer), το buffer πλήρωσης (LFB, Line Fill Buffer), το buffer διακόπτη περιβάλλοντος FPU και την προσωρινή μνήμη πρώτου επιπέδου (L1D), που χρησιμοποιήθηκαν προηγουμένως σε επιθέσεις όπως ZombieLoad, RIDL, Fallout, LazyFP, Προμηνύω и Meltdown.

Το LVI είναι μια νέα κατηγορία επιθέσεων στον κερδοσκοπικό μηχανισμό εκτέλεσης στην CPU

Το κύριο Διακρίσεις Το LVI έναντι των επιθέσεων MDS είναι ότι το MDS χειρίζεται τον προσδιορισμό των περιεχομένων των μικροαρχιτεκτονικών δομών που παραμένουν στην κρυφή μνήμη μετά από εικαστικό χειρισμό σφαλμάτων ή λειτουργίες φόρτωσης και αποθήκευσης, ενώ
Οι επιθέσεις LVI επιτρέπουν στα δεδομένα του εισβολέα να εισαχθούν σε μικροαρχιτεκτονικές δομές για να επηρεάσουν την επακόλουθη εικαστική εκτέλεση του κώδικα του θύματος. Χρησιμοποιώντας αυτούς τους χειρισμούς, ένας εισβολέας μπορεί να εξαγάγει τα περιεχόμενα δομών ιδιωτικών δεδομένων σε άλλες διεργασίες κατά την εκτέλεση συγκεκριμένου κώδικα στον πυρήνα της CPU-στόχου.

Το LVI είναι μια νέα κατηγορία επιθέσεων στον κερδοσκοπικό μηχανισμό εκτέλεσης στην CPU

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

Η εξαίρεση "βοήθειας", σε αντίθεση με την εξαίρεση "σφάλμα", αντιμετωπίζεται εσωτερικά από τον επεξεργαστή χωρίς να καλεί χειριστές λογισμικού. Το Assist μπορεί να προκύψει, για παράδειγμα, όταν πρέπει να ενημερωθεί το bit A (Accessed) ή D (Dirty) στον πίνακα σελίδων μνήμης. Η κύρια δυσκολία στην πραγματοποίηση μιας επίθεσης σε άλλες διεργασίες είναι πώς να ξεκινήσει η εμφάνιση βοήθειας χειραγωγώντας τη διαδικασία του θύματος. Προς το παρόν δεν υπάρχουν αξιόπιστοι τρόποι για να γίνει αυτό, αλλά είναι πιθανό να βρεθούν στο μέλλον. Η πιθανότητα πραγματοποίησης επίθεσης έχει επιβεβαιωθεί μέχρι στιγμής μόνο για θύλακες Intel SGX, άλλα σενάρια είναι θεωρητικά ή μπορούν να αναπαραχθούν σε συνθετικές συνθήκες (απαιτείται η προσθήκη ορισμένων gadget στον κώδικα)

Το LVI είναι μια νέα κατηγορία επιθέσεων στον κερδοσκοπικό μηχανισμό εκτέλεσης στην CPU

Το LVI είναι μια νέα κατηγορία επιθέσεων στον κερδοσκοπικό μηχανισμό εκτέλεσης στην CPU

Πιθανοί φορείς επίθεσης:

  • Διαρροή δεδομένων από δομές πυρήνα στη διαδικασία σε επίπεδο χρήστη. Η προστασία του πυρήνα Linux από επιθέσεις Spectre 1, καθώς και ο μηχανισμός προστασίας SMAP (Supervisor Mode Access Prevention), μειώνουν σημαντικά την πιθανότητα επίθεσης LVI. Η προσθήκη πρόσθετης προστασίας στον πυρήνα μπορεί να είναι απαραίτητη εάν στο μέλλον εντοπιστούν απλούστερες μέθοδοι επίθεσης LVI.
  • Διαρροή δεδομένων μεταξύ διαφορετικών διεργασιών. Η επίθεση απαιτεί την παρουσία ορισμένων κομματιών κώδικα στην εφαρμογή και τον ορισμό μιας μεθόδου για τη δημιουργία εξαίρεσης στη διαδικασία στόχου.
  • Διαρροή δεδομένων από το περιβάλλον υποδοχής στο σύστημα φιλοξενουμένων. Η επίθεση ταξινομείται ως πολύ περίπλοκη, που απαιτεί διάφορα δύσκολα στην εφαρμογή βήματα και προβλέψεις δραστηριότητας στο σύστημα.
  • Διαρροή δεδομένων μεταξύ διεργασιών σε διαφορετικά συστήματα φιλοξενούμενων. Ο φορέας επίθεσης είναι κοντά στην οργάνωση της διαρροής δεδομένων μεταξύ διαφορετικών διεργασιών, αλλά επιπλέον απαιτεί πολύπλοκους χειρισμούς για να παρακάμψει την απομόνωση μεταξύ των φιλοξενούμενων συστημάτων.

Δημοσιεύτηκε από ερευνητές μερικοί πρωτότυπα με επίδειξη των αρχών διεξαγωγής μιας επίθεσης, αλλά δεν είναι ακόμη κατάλληλες για πραγματικές επιθέσεις. Το πρώτο παράδειγμα σάς επιτρέπει να ανακατευθύνετε την κερδοσκοπική εκτέλεση κώδικα στη διαδικασία του θύματος, παρόμοια με τον προγραμματισμό προσανατολισμένο στην επιστροφή (ΠΕΠ,Προγραμματισμός με προσανατολισμό την επιστροφή). Σε αυτό το παράδειγμα, το θύμα είναι μια ειδικά προετοιμασμένη διαδικασία που περιέχει τα απαραίτητα gadget (η εφαρμογή μιας επίθεσης σε πραγματικές διαδικασίες τρίτων είναι δύσκολη). Το δεύτερο παράδειγμα μάς επιτρέπει να παρέμβουμε στους υπολογισμούς κατά την κρυπτογράφηση AES εντός του θύλακα Intel SGX και να οργανώσουμε μια διαρροή δεδομένων κατά την κερδοσκοπική εκτέλεση εντολών για να επαναφέρουμε την τιμή του κλειδιού που χρησιμοποιείται για την κρυπτογράφηση.


Πηγή: opennet.ru

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