Είναι πιθανό η ταχύτητα του επεξεργαστή σας να είναι ακριβώς αυτό που θέτει σε κίνδυνο την ασφάλειά σας; Για να κατανοήσουμε πώς οι επεξεργαστές επιτυγχάνουν την ταχύτητά τους , πρέπει να λάβουμε υπόψη ότι λειτουργούν «προβλέποντας το μέλλον»... Όχι, δεν είναι μαγικοί ούτε έχουν μια μικροσκοπική κρυστάλλινη σφαίρα...
Ο τρόπος λειτουργίας των επεξεργαστών είναι ότι αντί να περιμένει να δει ποια διαδρομή θα ακολουθήσει ένα πρόγραμμα, το τσιπ προβλέπει την πιθανή διαδρομή και την αναμένει. Εάν η πρόβλεψη είναι λανθασμένη, η εργασία απορρίπτεται, αλλά τα ίχνη παραμένουν στη μνήμη. Εδώ έρχεται το Spectre , ένα από τα πιο σημαντικά τρωτά σημεία που ανακαλύφθηκαν τα τελευταία χρόνια. Από την ανακάλυψή του, οι εισβολείς έχουν μάθει πώς να διαβάζουν αυτά τα ίχνη, δημιουργώντας ολοένα και πιο εξελιγμένες παραλλαγές. Το TONTOU είναι ένα από αυτά τα νέα τρωτά σημεία.
Ερευνητές του MIT ανακάλυψαν την TONTOU (Time-of-Neutralization to Time-of-Use), μια εξελιγμένη νέα τεχνική για την αξιοποίηση των ευπαθειών του Spectre v2 , επιτρέποντας την ανάγνωση της μνήμης του πυρήνα από τον χώρο του χρήστη.
Παρόλο που οι κατασκευαστές και οι προγραμματιστές έχουν σχεδιάσει διάφορους μηχανισμούς προστασίας από προγνωστικές επιθέσεις εδώ και χρόνια, οι επιτιθέμενοι έχουν καταφέρει να ανακαλύψουν νέες διαδρομές και αυτή η νέα μελέτη CSAIL δείχνει πώς να παρακάμψουν αυτές τις προστασίες.
Οι ερευνητές ανακάλυψαν ότι υπάρχει ένα αναπόφευκτο χρονικό κενό μεταξύ της στιγμής εκκαθάρισης του buffer και της στιγμής που χρησιμοποιούνται οι προβλέψεις, και σε αυτό το μικρό κενό εγχέεται κώδικας (μερικές φορές μόνο μια χούφτα εντολών) μέσω διακοπών συστήματος, καθιστώντας δυνατή την επαναμόλυνση του υλικού και την εξαγωγή κρίσιμων δεδομένων.
Σχετικά με την Επίθεση: Διαταραχές και Παραβίαση στο Safe-RET
Η AMD διαθέτει μια άμυνα κατά των ευπαθειών SRSO (Speculative Return Stack Overflow) που ονομάζεται Saferet, η οποία καθαρίζει τον μηχανισμό πρόβλεψης αμέσως πριν από κάθε χρήση. Αυτό αφήνει ένα παράθυρο ευπάθειας που μπορεί να αξιοποιηθεί σε μερικές δεκάδες νανοδευτερόλεπτα. Για να επιτεθούν σε ένα τόσο μικρό παράθυρο, οι ερευνητές ανέπτυξαν μια τεχνική που ονόμασαν Interrupt Injection.
Οι επεξεργαστές διακόπτουν συνεχώς τις εργασίες τους για να χειριστούν διακοπές και τα κοινά προγράμματα μπορούν να διαμορφώσουν αυτούς τους χρονοδιακόπτες . Έχοντας αυτό κατά νου, οι ερευνητές ρύθμισαν με ακρίβεια έναν χρονοδιακόπτη και, χρησιμοποιώντας μια τεχνική για να επιβραδύνουν την CPU, προκάλεσαν τη διακοπή του επεξεργαστή ακριβώς τη λάθος στιγμή . Κατά τη διάρκεια αυτής της διακοπής, ένας εισβολέας μπορεί να αναγκάσει την εκτέλεση μεγάλου αριθμού κλήσεων, υπερχειλίζοντας τη στοίβα διευθύνσεων. Όταν ολοκληρωθεί η εσφαλμένη εκτέλεση, ο επεξεργαστής απορρίπτει τη διεργασία, αλλά τα δεδομένα στα οποία έγινε πρόσβαση παραμένουν στις κοινόχρηστες προσωρινές μνήμες , από όπου μπορούν να εξαχθούν αναλύοντας τους χρόνους πρόσβασης.
Εξαγωγή και δοκιμή κωδικού πρόσβασης σε πραγματικά συστήματα
Για να καταδείξει τη σοβαρότητα του TONTOU, η ομάδα δημιούργησε ένα λειτουργικό exploit σε ένα σύστημα AMD που εκτελούσε έναν τρέχοντα πυρήνα Linux. Το πρώτο εμπόδιο ήταν η παράκαμψη της άμυνας που τυχαιοποιεί τη θέση του λειτουργικού συστήματος στη μνήμη, κάτι που κατάφεραν να κάνουν σε δέκα προσπάθειες, με διάρκεια περίπου εννέα λεπτών ανά δοκιμή.
Στη συνέχεια, επέδειξαν μια τοπική επίθεση ως μη προνομιούχος χρήστης για να προσδιορίσουν το hash του κωδικού πρόσβασης root, εξάγοντας με επιτυχία δεδομένα με ρυθμό 5.47 byte ανά δευτερόλεπτο με ακρίβεια 91.97%. Στο 50% των δοκιμών (οι οποίες διήρκεσαν κατά μέσο όρο 18 λεπτά), εντόπισαν και εξήγαγαν με επιτυχία τα περιεχόμενα του αρχείου κωδικού πρόσβασης. Ενώ αυτή είναι μια αργή ταχύτητα, είναι περισσότερο από επαρκής για να θέσει σε κίνδυνο έναν διακομιστή.
Επιπτώσεις στην Intel, την AMD και την ενημέρωση κώδικα μετριασμού
Η ομάδα δοκίμασε τέσσερις γενιές επεξεργαστών Intel και AMD, επιτυγχάνοντας αποτυχίες πρόβλεψης και στις δύο αρχιτεκτονικές. Ενώ η τεχνική αποδείχθηκε βιώσιμη στις οικογένειες Zen 1 έως 4 της AMD , στα τσιπ Intel η επίθεση παρέκαμψε δύο διαφορετικές προστασίες , αν και παρατηρήθηκε ασυνεπής συμπεριφορά μεταξύ διαφορετικών γενεών Intel, γεγονός που υποδηλώνει ότι οι ονομαστικές άμυνες εφαρμόζονται διαφορετικά στο υλικό.
Ως λύση, οι ερευνητές προτείνουν την εκκαθάριση του μηχανισμού πρόβλεψης για δεύτερη φορά μετά το τέλος της διακοπής. Ενώ αυτό το μέτρο φαίνεται βιώσιμο για την AMD, θα μπορούσε να είναι αντιπαραγωγικό για την Intel, καθώς η επίθεση βασίζεται στην έξοδο της διακοπής από μια συνεπή κατάσταση και θα μπορούσε να την κάνει πιο αξιόπιστη.
Οι ερευνητές ενημέρωσαν την AMD και την Intel στις αρχές Φεβρουαρίου και τους συντηρητές του πυρήνα του Linux τον Μάρτιο. Ως αποτέλεσμα, το μπλοκάρισμα κώδικα για τον μετριασμό της ευπάθειας ενσωματώθηκε στον πυρήνα του Linux στις 5 Αυγούστου.
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα, μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.