15Sep
Η ASLR είναι μια τεχνική ασφάλειας που χρησιμοποιείται στα λειτουργικά συστήματα, που εφαρμόστηκε αρχικά το 2001. Οι τρέχουσες εκδόσεις όλων των σημαντικών λειτουργικών συστημάτων( iOS, Android, Windows, macOS και Linux) διαθέτουν προστασία ASLR.Όμως, την περασμένη εβδομάδα, βρέθηκε μια νέα μέθοδος παράκαμψης της ASLR.Έτσι, θα πρέπει να ανησυχείτε;
Σε όσους δεν διαθέτουν υπόβαθρο προγραμματισμού χαμηλού επιπέδου, το ASLR μπορεί να προκαλέσει σύγχυση.Για να το καταλάβετε, πρέπει πρώτα να καταλάβετε την εικονική μνήμη.
Τι είναι η εικονική μνήμη;
Virtual Memory είναι μια τεχνική διαχείρισης μνήμης με πολλά οφέλη, αλλά δημιουργήθηκε κυρίως για να διευκολύνει τον προγραμματισμό.Φανταστείτε ότι έχετε ανοίξει το Google Chrome, το Microsoft Word και πολλά άλλα προγράμματα σε έναν υπολογιστή με μνήμη RAM 4 GB.Συνολικά, τα προγράμματα σε αυτόν τον υπολογιστή χρησιμοποιούν πολύ περισσότερα από 4 GB μνήμης RAM.Ωστόσο, δεν είναι όλα τα προγράμματα ενεργά ανά πάσα στιγμή ή χρειάζονται ταυτόχρονη πρόσβαση σε αυτή τη μνήμη RAM.
Το λειτουργικό σύστημα διαθέτει χοντρά μνήμη σε προγράμματα που ονομάζονται σελίδες .Εάν δεν υπάρχει αρκετή μνήμη RAM για να αποθηκεύσετε όλες τις σελίδες ταυτόχρονα, οι σελίδες που είναι λιγότερο πιθανό να χρειαστούν αποθηκεύονται στον πιο αργό( αλλά πιο ευρύχωρο) σκληρό δίσκο.Όταν οι αποθηκευμένες σελίδες είναι απαραίτητες, θα αλλάξουν χώρους με λιγότερες απαραίτητες σελίδες που βρίσκονται στη μνήμη RAM.Αυτή η διαδικασία ονομάζεται σελιδοποίηση και δίδει το όνομά της στο αρχείο pagefile.sys στα Windows.Η εικονική μνήμη
διευκολύνει τα προγράμματα να διαχειρίζονται τη δική τους μνήμη και να τα καθιστά ασφαλέστερα.Τα προγράμματα δεν χρειάζεται να ανησυχούν για το πού τα άλλα προγράμματα αποθηκεύουν δεδομένα ή πόσα RAM έχουν απομείνει.Μπορούν απλώς να ζητήσουν από το λειτουργικό σύστημα πρόσθετη μνήμη( ή να επιστρέψουν τη μη χρησιμοποιημένη μνήμη) όπως είναι απαραίτητο.Το σύνολο του προγράμματος βλέπει ένα ενιαίο συνεχές κομμάτι διευθύνσεων μνήμης για την αποκλειστική του χρήση, που ονομάζεται εικονική διεύθυνση.Το πρόγραμμα δεν επιτρέπεται να εξετάσει τη μνήμη άλλου προγράμματος.
Όταν ένα πρόγραμμα χρειάζεται πρόσβαση στη μνήμη, δίνει στο λειτουργικό σύστημα μια εικονική διεύθυνση.Το λειτουργικό σύστημα έρχεται σε επαφή με τη μονάδα διαχείρισης μνήμης( MMU) της CPU.Το MMU μεταφράζεται μεταξύ εικονικών και φυσικών διευθύνσεων, επιστρέφοντας τις πληροφορίες αυτές στο λειτουργικό σύστημα.Σε καμία περίπτωση το πρόγραμμα δεν αλληλεπιδρά άμεσα με τη μνήμη RAM.
Τι είναι το ASLR;Το
Randomization Layout Space Address( 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