Το σημείο ελέγχου παρουσίασε μια τεχνική ασφάλειας ασφαλούς σύνδεσης

Σημείο ελέγχου (παγκόσμιος πάροχος λύσεων ασφάλειας πληροφορικής) κυκλοφόρησε πριν από αρκετές ημέρες την εισαγωγή του μηχανισμού ασφαλείας "Ασφαλής σύνδεση", ότι καθιστά δύσκολη τη δημιουργία εκμεταλλεύσεων που χειρίζονται τον ορισμό ή την αλλαγή των δεικτών σε εκχωρημένους buffer κατά την πραγματοποίηση μιας κλήσης malloc.

Ο νέος μηχανισμός «Safe-Linking» δεν αποκλείει εντελώς τη δυνατότητα εκμετάλλευσης ευπαθειών, αλλά με ελάχιστη επιβάρυνση περιπλέκει τη δημιουργία ορισμένων κατηγοριών εκμεταλλεύσεωνΔεδομένου ότι εκτός από την υπερχείλιση buffer που χρησιμοποιείται, είναι απαραίτητο να βρεθεί μια άλλη ευπάθεια που προκαλεί πληροφορίες σχετικά με τη θέση του σωρού στη μνήμη.

Ετοιμάστηκαν ενημερωμένες εκδόσεις υλοποίησης Safe-Linking για Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) και Google TCMalloc, καθώς και πρόταση για τον εκσυγχρονισμό της προστασίας στο Chromium (από το 2012 το Chromium έχει ήδη ενσωματωθεί με λύσεις στο ίδιο πρόβλημα) Τεχνική προστασίας MaskPtr, αλλά η λύση του Checkpoint δείχνει καλύτερη απόδοση).

Οι προτεινόμενες ενημερώσεις κώδικα έχουν ήδη εγκριθεί για παράδοση στην έκδοση του Glibc 3.32 τον Αύγουστο και η ασφαλής σύνδεση θα είναι ενεργοποιημένη από προεπιλογή. Στο uClibc-NG, η υποστήριξη ασφαλών συνδέσμων συμπεριλήφθηκε στην έκδοση 1.0.33 και είναι ενεργοποιημένη από προεπιλογή. Στα gperftools (παλιά tcmalloc) οι αλλαγές γίνονται αποδεκτές, αλλά θα προσφέρονται ως επιλογή σε μελλοντική έκδοση.

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

Δοκιμές που πραγματοποιήθηκαν από Οι μηχανικοί σημείων ελέγχου έδειξαν ότι η μέθοδος Safe-Linking δεν οδηγεί σε επιπλέον κατανάλωση μνήμης και η απόδοση κατά την εκτέλεση σωρών κατά μέσο όρο μειώνεται μόνο κατά 0.02% και στη χειρότερη περίπτωση κατά 1.5%

Η ενεργοποίηση της ασφαλούς σύνδεσης οδηγεί στην εκτέλεση 2-3 πρόσθετων οδηγιών συναρμολόγησης με κάθε κλήση δωρεάν () και 3-4 οδηγιών κατά την κλήση malloc (). Δεν απαιτείται έναρξη και δημιουργία τυχαίων τιμών.

Το Safe-Linking μπορεί να χρησιμοποιηθεί όχι μόνο για την αύξηση της ασφάλειας διαφόρων εφαρμογών σωρού, sεπίσης να προσθέσετε ελέγχους ακεραιότητας σε οποιαδήποτε δομή δεδομένων που χρησιμοποιεί μια λίστα μεμονωμένων συνδεδεμένων δεικτών που βρίσκονται δίπλα στα buffer.

Η μέθοδος Είναι πολύ απλό να εφαρμοστεί και απαιτεί μόνο την προσθήκη μακροεντολής και εφαρμόστε το στους δείκτες στο επόμενο μπλοκ του κώδικα (για παράδειγμα, για το Glibc μόνο μερικές γραμμές αλλάζουν στον κώδικα).

Η ουσία της μεθόδου είναι η εφαρμογή τυχαίων δεδομένων από τον μηχανισμό τυχαιοποίησης διευθύνσεων ASLR (mmap_base) για την προστασία μεμονωμένων συνδεδεμένων λιστών, όπως Fast-Bins και TCache. Πριν εφαρμόσετε την τιμή του δείκτη στο επόμενο στοιχείο της λίστας, πραγματοποιείται έλεγχος μετατροπής και ευθυγράμμισης μάσκας κατά μήκος της άκρης της σελίδας μνήμης. Ο δείκτης αντικαθίσταται με το αποτέλεσμα της λειτουργίας "(L >> PAGE_SHIFT) XOR (P)", όπου P είναι η τιμή του δείκτη και L είναι η θέση στη μνήμη όπου είναι αποθηκευμένος αυτός ο δείκτης.

Όταν χρησιμοποιούνται στο σύστημα ASLR (Διεύθυνση Space Layout Randomization), μερικά από τα L bits με τη διεύθυνση βάσης του σωρού περιέχουν τυχαίες τιμές που χρησιμοποιούνται ως κλειδί για την κωδικοποίηση P (εξάγονται με μια λειτουργία αλλαγής 12 bit για σελίδες 4096 byte).

Τέτοια χειραγώγηση μειώνει τον κίνδυνο σύλληψης ενός δείκτη σε μια εκμετάλλευση, δεδομένου ότι ο δείκτης δεν είναι αποθηκευμένος στην αρχική του μορφή και για να τον αντικαταστήσετε πρέπει να γνωρίζετε πληροφορίες σχετικά με τη θέση του σωρού.

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

Για παράδειγμα, φαίνεται ότι η χρήση του Safe-Linking στο malloc θα εμποδίσει την εκμετάλλευση της ευπάθειας CVE-2020-6007 που ανακαλύφθηκε πρόσφατα από τους ίδιους ερευνητές στο έξυπνο οπίσθιο φωτισμό της γέφυρας Philips Hue που προκαλείται από την υπερχείλιση του buffer και επιτρέπει τον έλεγχο η συσκευή.

πηγή: https://research.checkpoint.com


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.