Η Google καταδεικνύει την εκμετάλλευση των ευπαθειών Specter χρησιμοποιώντας JavaScript σε ένα πρόγραμμα περιήγησης

Η Google αποκάλυψε πριν από αρκετές ημέρες διάφορα πρωτότυπα εκμετάλλευσης που καταδεικνύουν τη δυνατότητα εκμετάλλευσης ευπαθειών της κλάσης Specter κατά την εκτέλεση κώδικα JavaScript σε ένα πρόγραμμα περιήγησης, χωρίς να ακολουθήσετε τις παραπάνω μεθόδους ασφαλείας.

Οι εκμεταλλεύσεις μπορούν να χρησιμοποιηθούν για πρόσβαση στη μνήμη μιας διαδικασίας που επεξεργάζεται περιεχόμενο ιστού στην τρέχουσα καρτέλα. Για να δοκιμάσετε τη λειτουργία του exploit, ξεκίνησε η ιστοσελίδα για τη σελίδα διαρροής και δημοσιεύτηκε ο κωδικός που περιγράφει τη λογική της λειτουργίας στο GitHub.

Το προτεινόμενο πρωτότυπο έχει σχεδιαστεί για συστήματα επίθεσης με Επεξεργαστές Intel Core i7-6500U σε περιβάλλον Linux και Chrome 88, αν και αυτό δεν αποκλείει ότι μπορούν να γίνουν αλλαγές στη χρήση του exploit σε άλλα περιβάλλοντα.

Η μέθοδος λειτουργίας δεν είναι συγκεκριμένη οι επεξεργαστές Intel: μετά από σωστή προσαρμογή, Το exploit έχει επιβεβαιωθεί ότι λειτουργεί σε συστήματα με CPU τρίτων κατασκευαστών, συμπεριλαμβανομένου του Apple M1 που βασίζεται στην αρχιτεκτονική ARM. Μετά από μικρές τροποποιήσεις, το exploit λειτουργεί επίσης σε άλλα λειτουργικά συστήματα και σε άλλα προγράμματα περιήγησης που βασίζονται στη μηχανή Chromium.

Σε ένα περιβάλλον βασισμένο σε τυπικούς επεξεργαστές Chrome 88 και Intel Skylake, επιτύχαμε διαρροή δεδομένων από τη διαδικασία που είναι υπεύθυνη για την απόδοση περιεχομένου ιστού στην τρέχουσα καρτέλα Chrome (διαδικασία απόδοσης) με ταχύτητα 1 kilobyte ανά δευτερόλεπτο. Επιπλέον, αναπτύχθηκαν εναλλακτικά πρωτότυπα, για παράδειγμα, μια εκμετάλλευση που επιτρέπει, με κόστος μειωμένης σταθερότητας, να αυξήσει το ρυθμό διαρροής στα 8kB / s κατά τη χρήση της απόδοσης. Τώρα () χρονόμετρο με ακρίβεια 5 μικροδευτερόλεπτα (0.005 χιλιοστά του δευτερολέπτου) ). Προετοιμάστηκε επίσης μια παραλλαγή που λειτουργούσε με ακρίβεια χρονοδιακόπτη ενός χιλιοστού του δευτερολέπτου, η οποία θα μπορούσε να χρησιμοποιηθεί για την οργάνωση της πρόσβασης στη μνήμη μιας άλλης διαδικασίας με ρυθμό περίπου 60 byte ανά δευτερόλεπτο.

Ο δημοσιευμένος κωδικός επίδειξης αποτελείται από τρία μέρη:

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

Η προτεινόμενη τεχνική εκμετάλλευσης εξαλείφει τα χρονόμετρα υψηλής ακρίβειας διαθέσιμο μέσω του Performance.now () API και χωρίς υποστήριξη για τον τύπο SharedArrayBuffer, ο οποίος σας επιτρέπει να δημιουργείτε πίνακες σε κοινόχρηστη μνήμη.

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

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

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

Η Google δημοσίευσε ένα πρωτότυπο του exploit για να δείξει τη σκοπιμότητα των επιθέσεων χρησιμοποιώντας ευπάθειες κατηγορίας Specter και να ενθαρρύνουν τους προγραμματιστές ιστού να χρησιμοποιούν τεχνικές που ελαχιστοποιούν τους κινδύνους τέτοιων επιθέσεων.

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

πηγή: https://security.googleblog.com


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

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

*

*

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