Κυριακή, 14 Ιανουαρίου 2018

Περί Meltdown και Spectre



Αυτή τη φορά, με αυτό το πρόβλημα ασφαλείας, ο καλύτερος τρόπος να προστατευτείς είναι να χρησιμοποιείς ακόμα κάποιον 486 ή 386 επεξεργαστή ώστε να μην πέφτεις στην κατηγορία "είμαι κι εγώ ευάλωτος στο Meltdown και Spectre". Τι προκαλεί όμως αυτό το πρόβλημα ασφαλείας;

Τι είναι το Meltdown και το Spectre: Για τους επεξεργαστές που σχεδιάστηκαν από το 1995 και μετά υλοποιείτε μια τεχνική που ονομάζεται Speculative Execution. Με απλά λόγια όταν σε ένα σύστημα επαναλαμβάνονται συχνά τα ίδια πράγματα, για να επιταχύνουμε την διαδικασία, επεξεργαζόμαστε τα δεδομένα πριν ζητηθεί κάτι τέτοιο. Είναι όπως όταν κάθε πρωί στις 09:05, πάμε  στα Everest και ζητάμε μια τυρόπιτα και έναν Νες μέτριο. Μετά από λίγο ο υπάλληλος θα καταλάβει το μοτίβο και θα έχει έτοιμη την παραγγελίας μας πριν την ζητήσουμε. Άρα το μόνο που μένει είναι να πληρώσουμε και να φύγουμε. 

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

Όχι όμως και για κάποιον που θέλει να πάρει πληροφορίες από εμάς. Το άλλο πρόβλημα λοιπόν που δημιουργεί την τρύπα ασφαλείας σε οποιαδήποτε συσκευή κυκλοφορεί εκεί έξω είναι η απομόνωση ενός προγράμματος από ένα άλλο. Σε κανονικές θα πρέπει κάθε πρόγραμμα να προστατεύει τα δεδομένα του και να μην μπορεί να προσπελάσει δεδομένα άλλου προγράμματος. Με την τεχνική όμως που έχει υλοποιηθεί σε όλους τους επεξεργαστές, το Speculative Execution, υπάρχει τρόπος να διαβάσεις τα δεδομένα κάποιου άλλου προγράμματος. Έτσι, μπορείς να διαβάσεις από την μνήμη κάποια από τα "πεταμένα δεδομένα" που ο επεξεργαστής θεωρεί πως δεν χρειάζεται.

Αυτό πρακτικά σημαίνει πως αν κάποιος θέλει να κλέψει τα στοιχεία της τράπεζα σου μπορεί να σε κάνει να ανοίξεις κάποιο δικό του site, το οποίο χρησιμοποιεί κώδικα σε javascript και να πάρει αυτό που χρειάζεται.

Πως μπορεί να λυθεί το πρόβλημα: Ο πιο σίγουρος τρόπος για να λύσεις το πρόβλημα αυτό είναι να πάρεις έναν νέο επεξεργαστή ο οποίος να έχει σχεδιαστεί χωρίς Speculative Execution. Αυτό βέβαια για τον απλό χρήστη και γι αυτόν που κάνει αναβάθμιση στα μηχανήματα του κάθε 2 μήνες είναι οικονομικά ασύμφορο. Άρα τι μας απομένει να κάνουμε;

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

Τι σημαίνει όμως κλείνω την τρύπα ασφαλείας. Σύμφωνα με έρευνες το μπάλωμα μπορεί να κάνει ένα σύστημα 10% - 30% πιο αργό, κάτι απόλυτα δικαιολογημένο αφού ουσιαστικά η τεχνική του Speculative Execution, η οποία υπήρχε για να κάνει τα πράγματα πιο γρήγορα πάει στα σκουπίδια. Θεωρώ όμως πως για καθημερινή χρήση τα πράγματα θα είναι λιγότερο εμφανή στην μείωση της ταχύτητας με αυτούς που κάνουν "βαριές επεξεργαστικά" εργασίας, όπως video editing να έχουν το μεγαλύτερο πρόβλημα.

Πως μπορώ να ξέρω αν έχω κι εγώ πρόβλημα: Στο internet, έχουν βγει διάφορα scripts που ελέγχουν το αν ο υπολογιστή σου επηρεάζεται από το Meltdown και το Spectre. Για Linux αρκεί να κατεβάσουμε από το github το script και να το τρέξουμε:


Για Windows υπάρχουν λεπτομέρειες εδώ.

Πως μπορώ να προστατευτώ: Αν δεν μπορείς να αγοράσεις κάποιον επεξεργαστή νεότερου σχεδιασμού (που υποθέτω ακόμα δεν θα έχει κυκλοφορήσει στην αγορά) θα πρέπει να κατεβάσεις τα patch του λειτουργικού σου είτε είναι για Windows ή για Linux.

Ένα δεύτερο επίπεδο ασφαλείας είναι το Full Site Isolation του Browser. Σε κάθε περίπτωση, ο Chrome δεν επιτρέπει την ανάγνωση και επέμβαση δεδομένων από tabs άλλων site. Όμως για ένα επιπλέον  επίπεδο ασφαλείας μπορεί κανείς να γράψει στον Chrome:

chrome://flags/#enable-site-per-process

Αυτό θα κάνει τον Chrome να χρησιμοποιεί περισσότερη μνήμη όμως θα υπάρχει ένα επιπλέον επίπεδο ασφάλειας.

Για Firefox μπορεί κανείς να δει λεπτομέρειες εδώ.

Απολογισμός: Αυτό κενό ασφαλείας θεωρώ πως είναι από τα πιο σημαντικά που έχουμε δει ποτέ. Κυρίως γιατί δεν επιλύεται το πρόβλημα 100% με ένα update λογισμικού και απαιτεί περισσότερες και πιο ακριβές ενέργειες. Το image της Intel σίγουρα έχει πληγεί και θέλω να δω πως θα επεκταθεί αυτό στις τιμές των επεξεργαστών. Αν όλος ο κόσμος αποφασίσει να αγοράσει νέους επεξεργαστές τότε οι τιμές θα ανέβουν σε αστρονομικά ποσά γιατί δεν θα υπάρχει αρκετό απόθεμα (κάτι που συμβαίνει και τώρα με τις μνήμες).

Κάτι άλλο που έχει σημασία είναι πως από το 1995 υπήρχε αυτό το κενό ασφαλείας και δεν είχε εντοπιστεί από κανέναν. Ή τουλάχιστον από κανέναν που να το δημοσιοποίησε. Για πολλά χρόνια λοιπόν ήμασταν εκτεθειμένοι και δεν είχαμε ιδέα. Το ερώτημα είναι αν δημοσιεύτηκε μόλις οι εταιρείες έμαθαν για το θέμα ή αποκρύφτηκε για damage control. Όπως και να έχει για άλλη μια φορά τα πράγματα επιβεβαιώνουν αυτό που λέω χρόνια. 

Δεν ήμαστε και δεν θα ήμαστε ποτέ προστατευμένοι. Μπορεί να χρησιμοποιείς τον πιο εξειδικευμένο αλγόριθμο κρυπτογράφησης για τα δεδομένα σου, μπορεί να χρησιμοποιείς password με 666 χαρακτήρες, κεφαλαία, μικρά, νούμερα και ειδικούς χαρακτήρες, μπορεί να είσαι ο πιο παρανοϊκός με την ασφάλεια των δεδομένων σου όμως όσο είσαι σε επικοινωνία με άλλους δεν θα είσαι ποτέ πραγματικά προστατευμένος.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου