CROSSTalk - μια ευπάθεια σε επεξεργαστές Intel που οδηγεί σε διαρροή δεδομένων μεταξύ πυρήνων

Μια ομάδα ερευνητών από το Vrije Universiteit Amsterdam εντόπισε ένα νέο τρωτό (CVE-2020-0543) στις μικροαρχιτεκτονικές δομές των επεξεργαστών Intel, αξιοσημείωτο από το ότι σας επιτρέπει να επαναφέρετε τα αποτελέσματα της εκτέλεσης ορισμένων εντολών που εκτελούνται σε άλλο πυρήνα CPU. Αυτή είναι η πρώτη ευπάθεια στον κερδοσκοπικό μηχανισμό εκτέλεσης εντολών που επιτρέπει τη διαρροή δεδομένων μεταξύ μεμονωμένων πυρήνων CPU (προηγουμένως οι διαρροές περιορίζονταν σε διαφορετικά νήματα του ίδιου πυρήνα). Οι ερευνητές ονόμασαν το πρόβλημα CROSSTalk, αλλά Έγγραφα Intel Η ευπάθεια αναφέρεται ως SRBDS (Special Register Buffer Data Sampling).

Η ευπάθεια σχετίζεται με παρουσιάζεται πριν από ένα χρόνο στην κατηγορία των προβλημάτων MDS (Microarchitectural Data Sampling) και βασίζεται στην εφαρμογή μεθόδων ανάλυσης πλευρικών καναλιών σε δεδομένα σε μικροαρχιτεκτονικές δομές. Αρχή λειτουργίας Το CROSSTalk είναι κοντά σε ευπάθεια RIDL, αλλά διαφέρει ως προς την πηγή της διαρροής.
Η νέα ευπάθεια χειρίζεται τη διαρροή ενός προηγουμένως μη τεκμηριωμένου ενδιάμεσου buffer που είναι κοινόχρηστο από όλους τους πυρήνες της CPU.

CROSSTalk - μια ευπάθεια σε επεξεργαστές Intel που οδηγεί σε διαρροή δεδομένων μεταξύ πυρήνων

Η ουσία του προβλήματος είναι ότι ορισμένες οδηγίες μικροεπεξεργαστή, συμπεριλαμβανομένων των RDAND, RDSEED και SGX EGETKEY, υλοποιούνται χρησιμοποιώντας την εσωτερική μικροαρχιτεκτονική λειτουργία SRR (Special Register Reads). Στους επηρεαζόμενους επεξεργαστές, τα δεδομένα που επιστρέφονται για το SRR κατατίθενται σε ένα ενδιάμεσο buffer κοινό για όλους τους πυρήνες της CPU, μετά το οποίο μεταφέρονται σε ένα buffer πλήρωσης που σχετίζεται με τον συγκεκριμένο φυσικό πυρήνα της CPU στον οποίο ξεκίνησε η λειτουργία ανάγνωσης. Στη συνέχεια, η τιμή από το buffer πλήρωσης αντιγράφεται σε καταχωρητές ορατές στις εφαρμογές.

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

CROSSTalk - μια ευπάθεια σε επεξεργαστές Intel που οδηγεί σε διαρροή δεδομένων μεταξύ πυρήνων

CROSSTalk - μια ευπάθεια σε επεξεργαστές Intel που οδηγεί σε διαρροή δεδομένων μεταξύ πυρήνων

Εάν η επίθεση είναι επιτυχής, ένας τοπικός χρήστης που έχει πιστοποιηθεί στο σύστημα μπορεί να καθορίσει το αποτέλεσμα της εκτέλεσης των εντολών RDRAND, RDSEED και EGETKEY σε μια ξένη διεργασία ή μέσα σε έναν θύλακα Intel SGX, ανεξάρτητα από τον πυρήνα της CPU στον οποίο εκτελείται ο κώδικας.
Ερευνητές που εντόπισαν το πρόβλημα δημοσιεύθηκε Ένα πρωτότυπο exploit που δείχνει την ικανότητα διαρροής πληροφοριών σχετικά με τυχαίες τιμές που λαμβάνονται μέσω των οδηγιών RDRAND και RDSEED για την ανάκτηση ενός ιδιωτικού κλειδιού ECDSA που έχει υποστεί επεξεργασία στον θύλακα Intel SGX μετά την εκτέλεση μόνο μιας λειτουργίας ψηφιακής υπογραφής στο σύστημα.


πρόβλημα ευαίσθητος ένα ευρύ φάσμα επεξεργαστών Intel για επιτραπέζιους υπολογιστές, κινητά και διακομιστές, συμπεριλαμβανομένων των Core i3, i5, i7, i9, m3, Celeron (σειρές J, G και N), Atom (σειρές C, E και X), Xeon (E3, E5, Οικογένειες E7, W και D), Xeon Scalable, κ.λπ. Αξίζει να σημειωθεί ότι η Intel ειδοποιήθηκε για την ευπάθεια τον Σεπτέμβριο του 2018 και τον Ιούλιο του 2019 δόθηκε ένα πρωτότυπο exploit που καταδεικνύει διαρροή δεδομένων μεταξύ πυρήνων CPU, αλλά η ανάπτυξη μιας επιδιόρθωσης καθυστέρησε λόγω της πολυπλοκότητας της εφαρμογής της. Η σημερινή προτεινόμενη ενημέρωση μικροκώδικα αντιμετωπίζει το πρόβλημα αλλάζοντας τη συμπεριφορά των οδηγιών RDRAND, RDSEED και EGETKEY για την αντικατάσταση δεδομένων στην κοινόχρηστη προσωρινή μνήμη για να αποτραπεί η εγκατάσταση υπολειπόμενων πληροφοριών εκεί. Επιπλέον, η πρόσβαση στο buffer διακόπτεται μέχρι να διαβαστούν και να ξαναγραφτούν τα περιεχόμενα.

Μια παρενέργεια αυτού του τύπου προστασίας είναι η αυξημένη καθυστέρηση κατά την εκτέλεση των RDRAND, RDSEED και EGETKEY και η μειωμένη απόδοση κατά την ταυτόχρονη προσπάθεια εκτέλεσης αυτών των εντολών σε διαφορετικούς λογικούς επεξεργαστές. Η εκτέλεση των RDRAND, RDSEED και EGETKEY αναστέλλει επίσης την πρόσβαση στη μνήμη από άλλους λογικούς επεξεργαστές. Αυτές οι δυνατότητες ενδέχεται να επηρεάσουν αρνητικά την απόδοση ορισμένων εφαρμογών διακομιστή, επομένως το υλικολογισμικό παρέχει έναν μηχανισμό (RNGDS_MITG_DIS) για την απενεργοποίηση της προστασίας για οδηγίες RDAND και RDSEED που εκτελούνται εκτός του θύλακα Intel SGX.

Πηγή: opennet.ru

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