Τι είναι το ASLR και πώς κρατά τον υπολογιστή σας ασφαλή;
Το ASLR είναι μια τεχνική ασφαλείας που χρησιμοποιείται στα λειτουργικά συστήματα και εφαρμόζεται για πρώτη φορά το 2001. Οι τρέχουσες εκδόσεις όλων των σημαντικών λειτουργικών συστημάτων (iOS, Android, Windows, macOS και Linux) διαθέτουν προστασία ASLR. Αλλά την περασμένη εβδομάδα βρέθηκε μια νέα μέθοδος παράκαμψης της ASLR. Έτσι, θα πρέπει να ανησυχείς?
Για όσους δεν διαθέτουν υπόβαθρο προγραμματισμού χαμηλού επιπέδου, η ASLR μπορεί να προκαλέσει σύγχυση. Για να το καταλάβετε, πρέπει πρώτα να καταλάβετε την εικονική μνήμη.
Τι είναι η εικονική μνήμη?
Η εικονική μνήμη είναι μια τεχνική διαχείρισης μνήμης με πολλά οφέλη, αλλά δημιουργήθηκε κυρίως για να διευκολύνει τον προγραμματισμό. Φανταστείτε ότι έχετε το Google Chrome, το Microsoft Word και πολλά άλλα προγράμματα που ανοίγουν σε έναν υπολογιστή με 4 GB μνήμης RAM. Συνολικά, τα προγράμματα σε αυτόν τον υπολογιστή χρησιμοποιούν πολύ περισσότερο από 4 GB μνήμης RAM. Ωστόσο, δεν είναι όλα τα προγράμματα ενεργά ανά πάσα στιγμή ή χρειάζονται ταυτόχρονη πρόσβαση σε αυτή τη μνήμη RAM.
Το λειτουργικό σύστημα διαθέτει κομμάτια μνήμης σε προγράμματα που ονομάζονται σελίδες. Αν δεν υπάρχει αρκετή μνήμη RAM για να αποθηκεύσετε όλες τις σελίδες ταυτόχρονα, οι σελίδες που είναι λιγότερο πιθανό να χρειαστούν αποθηκεύονται στον πιο αργό (αλλά πιο ευρύχωρο) σκληρό δίσκο. Όταν χρειάζονται οι αποθηκευμένες σελίδες, θα αλλάξουν διαστήματα με λιγότερες απαραίτητες σελίδες που βρίσκονται στη μνήμη RAM. Αυτή η διαδικασία ονομάζεται σελιδοποίηση και δανείζει το όνομά της στο αρχείο pagefile.sys στα Windows.
Η εικονική μνήμη διευκολύνει τα προγράμματα να διαχειρίζονται τη δική τους μνήμη και επίσης τους καθιστά ασφαλέστερα. Τα προγράμματα δεν χρειάζεται να ανησυχούν για το πού τα άλλα προγράμματα αποθηκεύουν δεδομένα ή πόσα RAM έχουν απομείνει. Μπορούν απλώς να ζητήσουν από το λειτουργικό σύστημα πρόσθετη μνήμη (ή να επιστρέψουν τη μη χρησιμοποιημένη μνήμη) όπως είναι απαραίτητο. Το σύνολο του προγράμματος βλέπει ένα ενιαίο συνεχές κομμάτι διευθύνσεων μνήμης για την αποκλειστική του χρήση, που ονομάζεται εικονική διεύθυνση. Το πρόγραμμα δεν επιτρέπεται να εξετάσει τη μνήμη άλλου προγράμματος.
Όταν ένα πρόγραμμα χρειάζεται να έχει πρόσβαση στη μνήμη, δίνει στο λειτουργικό σύστημα μια εικονική διεύθυνση. Το λειτουργικό σύστημα έρχεται σε επαφή με τη μονάδα διαχείρισης μνήμης (MMU) της CPU. Το MMU μεταφράζεται μεταξύ εικονικών και φυσικών διευθύνσεων, επιστρέφοντας τις πληροφορίες αυτές στο λειτουργικό σύστημα. Σε καμία περίπτωση το πρόγραμμα δεν αλληλεπιδρά άμεσα με τη μνήμη RAM.
Τι είναι το ASLR?
Το Randomization Layout Space Layout (ASLR) χρησιμοποιείται κυρίως για την προστασία από επιθέσεις υπερχείλισης buffer. Σε μια υπερχείλιση buffer, οι επιτιθέμενοι τροφοδοτούν μια συνάρτηση όπως πολύ σκουπίδια δεδομένα που μπορεί να χειριστεί, ακολουθούμενη από ένα κακόβουλο ωφέλιμο φορτίο. Το ωφέλιμο φορτίο θα αντικαταστήσει τα δεδομένα που σκοπεύει να έχει πρόσβαση το πρόγραμμα. Οι οδηγίες για να μεταβείτε σε άλλο σημείο του κώδικα είναι ένα κοινό ωφέλιμο φορτίο. Η διάσημη μέθοδος JailbreakMe για jailbreaking iOS 4, για παράδειγμα, χρησιμοποίησε μια επίθεση υπερχείλισης buffer, ωθώντας την Apple να προσθέσει ASLR σε iOS 4.3.
Οι υπερχείλιση buffer απαιτούν από έναν εισβολέα να γνωρίζει πού βρίσκεται κάθε μέρος του προγράμματος στη μνήμη. Η εκπόνηση αυτού του στοιχείου είναι συνήθως μια δύσκολη διαδικασία δοκιμής και λάθους. Αφού το προσδιορίσουν, πρέπει να δημιουργήσουν ένα ωφέλιμο φορτίο και να βρουν ένα κατάλληλο μέρος για να το εγχύσουν. Εάν ο εισβολέας δεν γνωρίζει πού εντοπίζεται ο κώδικας στόχου, μπορεί να είναι δύσκολο ή αδύνατο να το εκμεταλλευτεί.
Το ASLR λειτουργεί παράλληλα με τη διαχείριση εικονικής μνήμης για να τυχαιοποιήσει τις θέσεις των διαφόρων τμημάτων του προγράμματος στη μνήμη. Κάθε φορά που εκτελείται το πρόγραμμα, τα στοιχεία (συμπεριλαμβανομένης της στοίβας, του σωρού και των βιβλιοθηκών) μετακινούνται σε διαφορετική διεύθυνση στην εικονική μνήμη. Οι επιτιθέμενοι δεν μπορούν πλέον να μάθουν πού είναι ο στόχος τους μέσω δοκιμών και σφαλμάτων, διότι η διεύθυνση θα είναι διαφορετική κάθε φορά. Γενικά, οι εφαρμογές πρέπει να συντάσσονται με υποστήριξη ASLR, αλλά αυτό καθίσταται προεπιλεγμένη και απαιτείται ακόμη και στο Android 5.0 και αργότερα.
Έτσι, το ASLR εξακολουθεί να σας προστατεύει?
Την περασμένη Τρίτη, οι ερευνητές του SUNY Binghamton και του Πανεπιστημίου της Καλιφόρνιας, Riverside, παρουσίασαν ένα έγγραφο που ονομάζεται Jump Over ASLR: Επίθεση Προπονητών Υποκαταστημάτων για την παράκαμψη του ASLR. Το χαρτί περιγράφει έναν τρόπο να επιτεθεί στο Buffer Target Buffer (BTB). Το BTB είναι μέρος του επεξεργαστή που επιταχύνει εάν οι δηλώσεις προβλέπουν το αποτέλεσμα. Χρησιμοποιώντας τη μέθοδο των συγγραφέων, είναι δυνατόν να προσδιορίσετε τοποθεσίες των γνωστών οδηγιών διακλάδωσης σε ένα τρέχον πρόγραμμα. Η εν λόγω επίθεση εκτελέστηκε σε μια μηχανή Linux με επεξεργαστή Intel Haswell (που κυκλοφόρησε για πρώτη φορά το 2013), αλλά θα μπορούσε πιθανώς να εφαρμοστεί σε οποιοδήποτε σύγχρονο λειτουργικό σύστημα και επεξεργαστή.
Τούτου λεχθέντος, δεν πρέπει απαραίτητα να απελπίζεστε. Το έγγραφο προσέφερε μερικούς τρόπους ώστε οι προγραμματιστές του υλικού και του λειτουργικού συστήματος να μετριάσουν αυτήν την απειλή. Οι νεώτερες τεχνικές ASLR λεπτών κόκκων θα απαιτούσαν περισσότερη προσπάθεια από τον εισβολέα και η αύξηση της ποσότητας της εντροπίας (τυχαιότητα) μπορεί να καταστήσει την επίθεση Jump Over ανέφικτη. Πιθανότατα, τα νεότερα λειτουργικά συστήματα και επεξεργαστές θα είναι άνοσα σε αυτή την επίθεση.
Έτσι τι έχει απομείνει εσύ να κάνω? Η παράκαμψη Jump Over είναι νέα και δεν έχει εντοπιστεί ακόμα στη φύση. Όταν οι επιτιθέμενοι το εκμεταλλευτούν, το ελάττωμα θα αυξήσει την πιθανή ζημιά που μπορεί να προκαλέσει ένας εισβολέας στη συσκευή σας. Αυτό το επίπεδο πρόσβασης δεν είναι άνευ προηγουμένου. Η Microsoft και η Apple εφάρμοσαν μόνο ASLR στα λειτουργικά τους συστήματα που κυκλοφόρησαν το 2007 και αργότερα. Ακόμα κι αν αυτό το ύφος της επίθεσης καθίσταται συνηθισμένο, δεν θα είστε χειρότερο από ό, τι ήσουν πίσω στις ημέρες των Windows XP.
Λάβετε υπόψη ότι οι επιτιθέμενοι εξακολουθούν να πρέπει να βρουν τον κωδικό τους στη συσκευή σας για να κάνουν κακό. Αυτό το ελάττωμα δεν τους παρέχει πρόσθετους τρόπους για να σας μολύνουν. Όπως πάντα, θα πρέπει να ακολουθείτε τις βέλτιστες πρακτικές ασφαλείας. Χρησιμοποιήστε το λογισμικό προστασίας από ιούς, μείνετε μακριά από σκανδιναβικές ιστοσελίδες και προγράμματα και διατηρήστε το λογισμικό σας ενημερωμένο. Ακολουθώντας αυτά τα βήματα και κρατώντας κακόβουλους ηθοποιούς από τον υπολογιστή σας, θα είστε τόσο ασφαλείς όσο και εσείς.
Πιστωτική εικόνα: Steve / Flickr