SWAPGS μια νέα κερδοσκοπική εκτέλεση ευπάθειας

SWAPGS-exploit-2

Ο Οι ερευνητές του Bitdefender εντόπισαν μια νέα ευπάθεια στον μηχανισμό για την κερδοσκοπική εκτέλεση οδηγιών σε σύγχρονους επεξεργαστές, που έλαβε το όνομα SWAPGS, Αντιστοιχεί στο όνομα της εντολής του επεξεργαστή που προκαλεί το πρόβλημα.

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

Οι μέθοδοι κατά της ευπάθειας Specter and Meltdown που εφαρμόστηκαν προηγουμένως δεν προστατεύουν από επιθέσεις SWAPGS χρησιμοποιώντας επεξεργαστές Intel, αλλά έχουν ήδη προταθεί λύσεις για Linux, ChromeOS, Android και Windows.

Η ευπάθεια ανήκει στην κατηγορία Specter v1 και βασίζεται στην ιδέα της ανάκτησης δεδομένων από την προσωρινή μνήμη του επεξεργαστή που παραμένει μετά την κερδοσκοπική εκτέλεση των οδηγιών.

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

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

Σχετικά με τα SWAPGS

Η ιδιαιτερότητα της νέας επίθεσης είναι η χρήση διαρροής που προκύπτει κατά την κερδοσκοπική εκτέλεση της εντολής SWAPGS, που χρησιμοποιείται σε λειτουργικά συστήματα για να αντικαταστήσει την τιμή μητρώου GS όταν ο έλεγχος μεταφέρεται από τον χώρο χρήστη στον πυρήνα του λειτουργικού συστήματος (η τιμή GS που χρησιμοποιείται στον χώρο χρήστη αντικαθίσταται από την τιμή που χρησιμοποιείται στις λειτουργίες του πυρήνα).

Ο πυρήνας Linux σε GS αποθηκεύει το δείκτη per_cpu, το οποίο χρησιμοποιείται για πρόσβαση στα δεδομένα του πυρήνα και δείχνει το TLS (Thread Local Storage) στο χώρο του χρήστη.

Για να εξαιρέσετε τη διπλή επίκληση της εντολής SWAPGS μετά από επαναλαμβανόμενη πρόσβαση στον πυρήνα από το χώρο του πυρήνα ή όταν εκτελείτε κώδικα που δεν απαιτεί αντικατάσταση του μητρώου GS, πραγματοποιείται έλεγχος και μετάβαση υπό όρους πριν από την οδηγία.

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

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

Οι ερευνητές πρότειναν δύο σενάρια επίθεσης για τα οποία προετοιμάστηκαν τα πρωτότυπα εκμετάλλευσης.

  • Το πρώτο σενάριο βασίζεται στην κατάσταση όπου η εντολή SWAPGS δεν εκτελείται κερδοσκοπικά, παρόλο που χρησιμοποιείται στην πραγματική εκτέλεση, και το δεύτερο σενάριο είναι το αντίθετο, όταν η εντολή SWAPGS εκτελείται κερδοσκοπικά, αν και πραγματικά δεν θα έπρεπε.
  • Για κάθε σενάριο, υπάρχουν δύο λειτουργικές επιλογές: ο εισβολέας μπορεί να καθορίσει την τιμή σε μια συγκεκριμένη διεύθυνση στην κεντρική περιοχή και ο εισβολέας μπορεί να αναζητήσει μια συγκεκριμένη τιμή σε τυχαίες διευθύνσεις στον πυρήνα.

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

Η λύση είναι διαθέσιμη ως ενημερωμένη έκδοση κώδικα για τον πυρήνα Linux, το οποίο περιλαμβάνεται ήδη στις εκδόσεις 4.19.65, 5.2.7, 4.14.137, 4.9.188 και 4.4.188, ενώ για τις διάφορες διανομές Linux οι σχετικές επιδιορθώσεις θα φτάσουν κατά τη διάρκεια αυτής της περιόδου και της επόμενης εβδομάδας.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.