Δύο από τις πιο δημοσιευμένες ευπάθειες τη δεκαετία του 2010 ήταν πολύ στενά συνδεδεμένες μεταξύ τους. Αντί να είναι ευπάθειες ασφαλείας στο λογισμικό, το Spectre και το Meltdown είναι ευπάθειες στη θεμελιώδη σχεδίαση των CPU που καθιστούν πιο δύσκολη την επίλυση του ζητήματος. Τα ίδια τα ζητήματα είναι ιδιαίτερα σοβαρά, επιτρέποντας την αποκάλυψη μνήμης από άλλες εφαρμογές και το λειτουργικό σύστημα.
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
Οι CPU χρησιμοποιούν απίστευτα προηγμένα σχέδια για να επιτύχουν την υψηλότερη απόδοση, συμπεριλαμβανομένων τεχνικών που περιλαμβάνουν κερδοσκοπική εκτέλεση και πρόβλεψη κλάδου. Η κερδοσκοπική εκτέλεση είναι όπου η CPU ξεκινά να εκτελεί μια διεργασία πριν καταλάβει αν χρειάζεται, σε μια προσπάθεια να εξοικονομήσει χρόνο όταν όντως καθορίσει ότι χρειάζεται. Η πρόβλεψη διακλάδωσης είναι ένα υποσύνολο κερδοσκοπικής εκτέλεσης που προσπαθεί να προβλέψει το αποτέλεσμα μιας διεργασίας και στη συνέχεια αρχίζει να υπολογίζει το επόμενο βήμα με βάση αυτήν την προβλεπόμενη τιμή επιτρέποντας στην CPU να εκτελέσει μια σειρά εντολών εκτός λειτουργίας.
Η ευπάθεια Spectre προέρχεται από την υλοποίηση αυτών των δύο χαρακτηριστικών. Επιτρέπει σε μια εφαρμογή να παραβιάζει τις τεχνικές απομόνωσης μνήμης που είναι ενσωματωμένες στο πιο σύγχρονο λογισμικό που επιτρέπει την αποκάλυψη της μνήμης, συμπεριλαμβανομένων μυστικών όπως κωδικών πρόσβασης και κλειδιών κρυπτογράφησης. Ένα από τα ζητήματα με το Spectre, είναι ότι τα δεδομένα μπορούν να έχουν πρόσβαση από εφαρμογές που δεν έχουν ευπάθειες ασφαλείας, καθώς απαιτείται μόνο ένα κακόβουλο πρόγραμμα.
Η ευπάθεια Meltdown βασίζεται σε ορισμένες τεχνικές μνήμης, καθώς και στο κερδοσκοπικό σύστημα εκτέλεσης που αναφέρθηκε παραπάνω. Χρησιμοποιεί μια «συνθήκη αγώνα» μεταξύ της εκτέλεσης της διαδικασίας και του ελέγχου προνομίων και επιτρέπει σε ένα κακόβουλο πρόγραμμα να έχει πρόσβαση στη μνήμη άλλων εφαρμογών και στο λειτουργικό σύστημα.
Συμβουλή: Η "συνθήκη αγώνα" είναι ένα ζήτημα όπου μια εργασία υποτίθεται ότι βασίζεται σε μια άλλη, αλλά η σωστή εντολή εκτέλεσης δεν επιβάλλεται. Αυτό μπορεί να έχει ως αποτέλεσμα η «δεύτερη» διαδικασία να εκτελείται πρώτη και να χρησιμοποιεί μη αρχικοποιημένη μνήμη που θα έπρεπε να περιέχει το αποτέλεσμα της «πρώτης» διαδικασίας, με αποτέλεσμα να διαρρεύσει τα προηγούμενα περιεχόμενα αυτής της μνήμης. Σε αυτήν τη συγκεκριμένη περίπτωση, η διαδικασία δεν θα πρέπει να εκτελείται μέχρι να επαληθεύσει ο έλεγχος αδειών ότι επιτρέπεται, αλλά ο έλεγχος αδειών μπορεί να γίνει δεύτερος λόγω βελτιστοποιήσεων απόδοσης.
Υπάρχοντα
Στα μέσα του 2017 πολλές ομάδες ανακάλυψαν ανεξάρτητα και ανέφεραν ιδιωτικά τόσο το Meltdown όσο και το Spectre σε κατασκευαστές CPU που ανέπτυξαν ενημερώσεις κώδικα. Λόγω των ενημερώσεων κώδικα που στοχεύουν βελτιστοποιήσεις απόδοσης, κατέληξαν να μειώσουν την απόδοση των CPU έως και 30% στα χειρότερα σενάρια, με μια μείωση απόδοσης 2-14% να είναι πιο αντιπροσωπευτική των εμπειριών των ανθρώπων.
Τα τρωτά σημεία επηρέασαν πολλές επεξεργαστές x86, επεξεργαστές IBM POWER και ορισμένες CPU που βασίζονται σε ARM. Το Meltdown επηρεάζει το υλικό που βρίσκεται συνήθως σε προσωπικούς υπολογιστές καθώς και σε διακομιστές cloud. Το Spectre επηρεάζει προσωπικούς υπολογιστές, διακομιστές cloud και κινητές συσκευές. Όλες οι CPU της Intel από το 1995 έως τα μέσα του 2018 ήταν ευάλωτες στα προβλήματα (με τον αποκλεισμό των γραμμών Itanium και Atom πριν από το 2013). Οι CPU της AMD δεν επηρεάστηκαν από το Meltdown αλλά ήταν ευάλωτοι στο Spectre.
Οι ενημερώσεις κώδικα μετριασμού λογισμικού αναπτύχθηκαν και κυκλοφόρησαν μέσω παρόχων λειτουργικών συστημάτων που επιλύουν τα περισσότερα ζητήματα. Από τα μέσα του 2018, η Intel έχει ενημερώσει τον σχεδιασμό της CPU για να περιλαμβάνει μετριασμούς υλικού για τα προβλήματα.
Και τα δύο ζητήματα μπορούν να αξιοποιηθούν μέσω κακόβουλων ιστοσελίδων με επεξεργασμένη JavaScript, επομένως είναι πολύ σημαντικό να βεβαιωθείτε ότι οι ενημερώσεις κώδικα ασφαλείας είναι εγκατεστημένες σε κάθε σύστημα, ακόμα κι αν η απώλεια απόδοσης είναι σοβαρή. Δυστυχώς, τα προβλήματα δεν μπορούν να επιλυθούν με μία ενημερωμένη έκδοση κώδικα, καθώς είναι εξαιρετικά περίπλοκα ζητήματα με βαθιά ενσωμάτωση στο υλικό, οι ενημερώσεις κώδικα ασφαλείας θα συνεχίσουν να κυκλοφορούν με την πάροδο του χρόνου καθώς ανακαλύπτονται νεότερες παραλλαγές.