Specter: Ερευνητές της Google που διερευνούν το εύρος και τον αντίκτυπο των επιθέσεων Spectre δημοσίευσαν ένα έγγραφο (PDF) το οποίο επιβεβαιώνει ότι τα τρωτά σημεία τύπου Specter θα συνεχίσουν να υπάρχουν στους υπολογιστές και ότι οι τεχνικές που χρησιμοποιούν software θα επιφέρουν πολύ υψηλό κόστος στην απόδοση.
Ανεξάρτητα από το κόστος, σύμφωνα με την έρευνα, το λογισμικό θα είναι ανεπαρκές, γιατί κάποια από τα ελαττώματα του Specter δεν επιδιορθώνονται με τέτοιες αλλαγές.
Η ανακάλυψη και η εξέλιξη των επιθέσεων Meltdown και Specter ήταν αναμφισβήτητα μια από τις μεγαλύτερες στην ιστορία ασφαλείας των υπολογιστών. Αρχικά αποκαλύφθηκε τον περασμένο Ιανουάριο, και από τότε άρχιζαν να εμφανίζονται νέες παραλλαγές καθ ‘όλη τη διάρκεια του χρόνου.
Σημείωση:
Παρακάτω θα προσπαθήσουμε, όσο πιο απλά γίνεται να εξηγήσουμε τις ευπάθειες, αλλά και το γιατί δεν μπορεί να βοηθήσουν οι αλλαγές στο software. Αν δεν καταλαβαίνετε κάτι μην απογοητεύεστε, το εξηγούμε παρακάτω.
Και οι δύο επιθέσεις βασίζονται στις αποκλίσεις μεταξύ της θεωρητικής συμπεριφοράς ενός επεξεργαστή και της τεκμηριωμένης συμπεριφοράς που εξαρτάται από τους προγραμματιστές και το πως γράφουν τα προγράμματά τους για να καθορίσουν την πραγματική συμπεριφορά των εφαρμογών.
Συγκεκριμένα, όλοι οι σύγχρονοι επεξεργαστές πραγματοποιούν κάτι που ονομάζουμε θεωρητική εκτέλεση (από το speculative execution).
Τι σημαίνει αυτό; Κάνουν υποθέσεις.
Για παράδειγμα, σκεφτείτε μια τιμή που διαβάζεται από τη μνήμη με υποθέσεις. Αν η υπόθεση είναι αληθινή ή ψευδής επιτρέπει ή δεν επιτρέπει αντίστοιχα την εκτέλεση μιας εντολής. Αν οι υποθέσεις είναι σωστές, τα θεωρητικά αποτελέσματα διατηρούνται. Αν δεν είναι, τα θεωρητικά αποτελέσματα απορρίπτονται και ο επεξεργαστής επαναλαμβάνει τον υπολογισμό.
Η θεωρητική εκτέλεση δεν αποτελεί αρχιτεκτονικό χαρακτηριστικό του επεξεργαστή. Είναι ένα χαρακτηριστικό υλοποιήσεων και έτσι υποτίθεται ότι είναι εντελώς αόρατο στις εφαρμογές που τρέχουν στον υπολογιστή σας. Όταν ο επεξεργαστής απορρίπτει μια λάθος υπόθεση, θα πρέπει να είναι σαν να μην συνέβη ποτέ.
Αυτό που διαπίστωσαν οι ερευνητές των ευπαθειών Meltdown και Specter είναι ότι η θεωρητική εκτέλεση δεν είναι εντελώς αόρατη και ότι όταν ο επεξεργαστής απορρίψει τα αποτελέσματα, κάποια στοιχεία από τις λάθος υποθέσεις παραμένουν πίσω.
Για παράδειγμα, το speculation μπορεί να αλλάξει τα δεδομένα που διατηρούνται στην κρυφή μνήμη του επεξεργαστή. Υπάρχουν λοιπόν εφαρμογές που μπορούν να ανιχνεύσουν αυτές τις αλλαγές με τη μέτρηση του χρόνου για την ανάγνωση των τιμών από τη μνήμη.
Specter: η επίθεση και τα αντίμετρα
Έτσι ο επιτιθέμενος μπορεί να κάνει τον επεξεργαστή να υποθέσει σε λάθος τιμές και να χρησιμοποιήσει τις αλλαγές της κρυφής μνήμης για να αποκαλύψει την πραγματική τιμή. Αυτό γίνεται ιδιαίτερα απειλητικό σε εφαρμογές όπως τα προγράμματα περιήγησης στο Web: ένα κακόβουλο JavaScript μπορεί να χρησιμοποιήσει τέτοια δεδομένα για να μάθει για τη διάταξη μνήμης, της διεργασίας που τρέχει και στη συνέχεια, να χρησιμοποιήσει αυτές τις πληροφορίες για να εκμεταλλευτεί άλλες ατέλειες και να εκτελέσει αυθαίρετο κώδικα.
Οι προγραμματιστές των προγραμμάτων περιήγησης υποθέτουν ότι μπορούν να κατασκευάσουν ασφαλή sandboxes για να τρέχουν οι διεργασίες ενός προγράμματος περιήγησης. Με αυτό τον τρόπο τα scripts από κακόβουλα domains δεν θα μπορούν να μάθουν για τη διάταξη της μνήμης και τις διεργασίες που εκτελούνται. Αρχιτεκτονικά, αυτές οι υποθέσεις είναι σωστές. Αλλά η πραγματικότητα του Spectre, ήρθε και προσγείωσε πάρα πολλούς.
Meltdown και Specter: η διαφορετικότητα
Η επίθεση Meltdown, η οποία στόχευε και στοχεύει chips της Intel, της Apple και άλλων κατασκευαστών, ήταν μια ιδιαίτερα δυσάρεστη παραλλαγή των παραπάνω. Η ευπάθεια επιτρέπει σε ένα κακόβουλο πρόγραμμα να εξάγει δεδομένα από τον πυρήνα του λειτουργικού συστήματος. Αμέσως μετά την ανακάλυψη του Meltdown, έγιναν αλλαγές στα λειτουργικά συστήματα για μπορούν να κρύβουν τα δεδομένα τους από τέτοια κακόβουλα προγράμματα.
Η ευπάθεια Specter όμως διαθέτει πάρα πολλές διαφορετικές παραλλαγές μέχρι σήμερα (και συνεχίζουν να ανακαλύπτονται) κάτι που την καθιστά πολύ πιο ύπουλη. Έτσι οι προγραμματιστές προσπαθούν με διάφορες τεχνικές ανάπτυξης λογισμικού να εμποδίσουν την διαρροή δεδομένων στον επεξεργαστή ή και απλά να περιορίσουν τις πληροφορίες που μπορούν να αποκαλυφθούν μέσω της θεωρητικής εκτέλεσης του επεξεργαστή.
Η έρευνα της Google έδειξε ότι αυτά τα μέτρα μέσω λογισμικού, είναι ημί-μέτρα ουσιαστικά. Ορισμένα από αυτά, όπως η παρεμπόδιση όλων των υποθέσεων μετά τη φόρτωση των τιμών από τη μνήμη, προστατεύουν από πολλές επιθέσεις, αλλά είναι πάρα πολύ εξουθενωτικές στο σύστημα για να χρησιμοποιηθούν στην πράξη.
Οι ερευνητές πειραματίστηκαν με τροποποιημένες εκδόσεις της μηχανής JavaScript V8 στον Chrome και η χρήση αυτής της τεχνικής έριξε την απόδοση μεταξύ του ενός τρίτου και του ενός πέμπτου.
Εδώ να αναφέρουμε ότι όσα μέτρα κι αν πήραν, δεν ανακάλυψαν κάτι που προστατεύει απόλυτα. Σύμφωνα με τους ερευνητές πρέπει να χρησιμοποιηθεί ένα συνδυασμός τεχνικών και αυτό θα έχει αθροιστικές επιπτώσεις στην απόδοση.
Και τώρα τι;
Έτσι η εταιρεία κατέληξε στο συμπέρασμα ότι δεν μπορούμε να έχουμε προστασία από την ευπάθεια Spectre μόνο με επιδιορθώσεις λογισμικού. Θα πρέπει να ληφθούν τα κατάλληλα μέτρα και στο hardware, αλλά η σκέψη αυτή τρομάζει γιατί προϋποθέτει αναβαθμίσεις σε εκατομμύρια συστήματα.
Προς το παρόν, οι εφαρμογές που προσπαθούν να κατασκευάσουν ασφαλή περιβάλλοντα που θα βασίζονται σε εγγυήσεις που παρέχονται από το hardware για την προστασία μεταξύ των διεργασιών.
Για παράδειγμα, ο Chrome έχει αλλάξει κώδικα για να μην επιτρέπει την εκτέλεση περιεχομένου από πολλά domains στην ίδια διεργασία. Αυτό εξακολουθεί να μην προστατεύει το ίδιο το sandbox του Chrome από μια επίθεση με scripts, αλλά εξασφαλίζει ότι ένα script δεν μπορεί να επιτεθεί από πολλά domains. Όπως κι αν το κάνουμε, είναι ένα είδος προστασίας…
Συνολικά, η έρευνα δείχνει ότι το Specter θα απασχολήσει τους προγραμματιστές λογισμικού, τους κατασκευαστές hardware αλλά και τους τελικούς χρήστες για τα επόμενα χρόνια.
Καλή δύναμη…
Οι ευπάθειες meltdown και specter υπάρχουν μόνο σε επεξεργαστές Ιntel και Αpple, ή και άλλους επεξεργαστές (Amd & snapdragon);
έχουν βρεθεί και σε άλλους, διαβάστε: Meltdown και Specter: ποιοι επεξεργαστές δεν κινδυνεύουν