Νέα τεχνική για την εκμετάλλευση ευπαθειών Spectre στο Chrome

Μια ομάδα ερευνητών από αμερικανικά, αυστραλιανά και ισραηλινά πανεπιστήμια πρότειναν μια νέα τεχνική επίθεσης πλευρικού καναλιού για την εκμετάλλευση ευπάθειας κατηγορίας Specter σε προγράμματα περιήγησης που βασίζονται στη μηχανή Chromium. Η επίθεση, με την κωδική ονομασία Spook.js, σας επιτρέπει να παρακάμψετε τον μηχανισμό απομόνωσης ιστότοπου εκτελώντας κώδικα JavaScript και να διαβάσετε τα περιεχόμενα ολόκληρου του χώρου διευθύνσεων της τρέχουσας διαδικασίας, π.χ. πρόσβαση σε δεδομένα από σελίδες που εκτελούνται σε άλλες καρτέλες, αλλά υποβάλλονται σε επεξεργασία με την ίδια διαδικασία.

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

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

Οι ερευνητές δημοσίευσαν ένα πρωτότυπο ενός exploit που λειτουργεί στο Chrome 89 σε συστήματα με CPUIntel i7-6700K και i7-7600U. Κατά τη δημιουργία του exploit, χρησιμοποιήθηκαν πρωτότυπα κώδικα JavaScript που είχαν δημοσιευτεί προηγουμένως από την Google για την πραγματοποίηση επιθέσεων κατηγορίας Specter. Σημειώνεται ότι οι ερευνητές μπόρεσαν να προετοιμάσουν λειτουργικά εκμεταλλεύσεις για συστήματα που βασίζονται σε επεξεργαστές Intel και Apple M1, τα οποία καθιστούν δυνατή την οργάνωση ανάγνωσης μνήμης με ταχύτητα 500 byte ανά δευτερόλεπτο και ακρίβεια 96%. Υποτίθεται ότι η μέθοδος είναι επίσης εφαρμόσιμη σε επεξεργαστές AMD, αλλά δεν ήταν δυνατό να προετοιμαστεί ένα πλήρως λειτουργικό exploit.

Η επίθεση ισχύει για όλα τα προγράμματα περιήγησης που βασίζονται στη μηχανή Chromium, συμπεριλαμβανομένων των Google Chrome, Microsoft Edge και Brave. Οι ερευνητές πιστεύουν επίσης ότι η μέθοδος μπορεί να προσαρμοστεί για να λειτουργεί με τον Firefox, αλλά δεδομένου ότι ο κινητήρας του Firefox είναι πολύ διαφορετικός από τον Chrome, η δουλειά για τη δημιουργία ενός τέτοιου exploit μένει για το μέλλον.

Για προστασία από επιθέσεις που βασίζονται σε πρόγραμμα περιήγησης που σχετίζονται με κερδοσκοπική εκτέλεση εντολών, το Chrome εφαρμόζει τμηματοποίηση χώρου διευθύνσεων - η απομόνωση του sandbox επιτρέπει στη JavaScript να λειτουργεί μόνο με δείκτες 32-bit και μοιράζεται τη μνήμη των χειριστών σε χωριστές σωρούς 4 GB. Για να παρέχουν πρόσβαση σε ολόκληρο τον χώρο διευθύνσεων της διαδικασίας και να παρακάμψουν τον περιορισμό των 32 bit, οι ερευνητές χρησιμοποίησαν μια τεχνική που ονομάζεται Σύγχυση Τύπου, η οποία αναγκάζει τη μηχανή JavaScript να επεξεργαστεί ένα αντικείμενο με λανθασμένο τύπο, που καθιστά δυνατό τον σχηματισμό ενός 64-bit. δείκτη που βασίζεται σε συνδυασμό δύο τιμών 32-bit.

Η ουσία της επίθεσης είναι ότι κατά την επεξεργασία ενός ειδικά σχεδιασμένου κακόβουλου αντικειμένου στη μηχανή JavaScript, δημιουργούνται συνθήκες που οδηγούν σε υποθετική εκτέλεση εντολών που έχουν πρόσβαση στον πίνακα. Το αντικείμενο επιλέγεται με τέτοιο τρόπο ώστε τα πεδία που ελέγχονται από τον εισβολέα να τοποθετούνται στην περιοχή όπου χρησιμοποιείται ο δείκτης 64 bit. Δεδομένου ότι ο τύπος του κακόβουλου αντικειμένου δεν ταιριάζει με τον τύπο του πίνακα που υποβάλλεται σε επεξεργασία, υπό κανονικές συνθήκες τέτοιες ενέργειες αποκλείονται στο Chrome από έναν μηχανισμό για την αποβελτιστοποίηση του κώδικα που χρησιμοποιείται για την πρόσβαση σε πίνακες. Για την επίλυση αυτού του προβλήματος, ο κώδικας για την επίθεση Σύγχυσης Τύπου τοποθετείται σε ένα μπλοκ υπό όρους "εάν", το οποίο δεν ενεργοποιείται υπό κανονικές συνθήκες, αλλά εκτελείται σε κερδοσκοπική λειτουργία, εάν ο επεξεργαστής προβλέπει εσφαλμένα περαιτέρω διακλάδωση.

Ως αποτέλεσμα, ο επεξεργαστής αποκτά εικαστικά πρόσβαση στον δημιουργημένο δείκτη 64-bit και επαναφέρει την κατάσταση μετά τον προσδιορισμό μιας αποτυχημένης πρόβλεψης, αλλά τα ίχνη της εκτέλεσης παραμένουν στην κοινόχρηστη κρυφή μνήμη και μπορούν να αποκατασταθούν χρησιμοποιώντας μεθόδους ανίχνευσης κρυφής μνήμης πλευρικού καναλιού που αναλύουν τις αλλαγές σε χρόνους πρόσβασης σε αποθηκευμένα και μη προσωρινά δεδομένα. Για την ανάλυση των περιεχομένων της κρυφής μνήμης σε συνθήκες ανεπαρκούς ακρίβειας του χρονοδιακόπτη που είναι διαθέσιμος σε JavaScript, χρησιμοποιείται μια μέθοδος που προτείνεται από την Google, η οποία παραπλανά τη στρατηγική εξάλειψης κρυφής μνήμης Tree-PLRU που χρησιμοποιείται στους επεξεργαστές και επιτρέπει, αυξάνοντας τον αριθμό των κύκλων, αυξάνει σημαντικά τη διαφορά χρόνου όταν υπάρχει και απουσιάζει μια τιμή στην κρυφή μνήμη.

Πηγή: opennet.ru

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