Το Project Zero έχει αναπτύξει μια μέθοδο για την εκμετάλλευση των τρωτών σημείων στο Linux

Linux

Εκμετάλλευση μηδενικών αναφορών στον πυρήνα του Linux

Πρόσφατα κυκλοφόρησε η είδηση ​​ότι το έχουν αναπτύξει ερευνητές από την ομάδα Google Project Zero un μέθοδος για την εκμετάλλευση ευπαθειών στον πυρήνα του Linux που προκαλείται από την κατάργηση αναφοράς του δείκτη NULL.

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

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

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

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

Επί του παρόντος, όταν ο πυρήνας Linux ενεργοποιεί μια μηδενική αποαναφορά μέσα από ένα περιβάλλον διεργασίας, δημιουργεί ένα ουπς , που είναι διαφορετικό από τον πανικό πυρήνα. Ένας πανικός εμφανίζεται όταν ο πυρήνας κρίνει ότι δεν υπάρχει ασφαλής τρόπος να συνεχιστεί η εκτέλεση, και επομένως κάθε εκτέλεση πρέπει να σταματήσει. Ωστόσο, ο πυρήνας Όχι.  σταματά όλη την εκτέλεση για ένα ωχ. Αντίθετα, ο πυρήνας προσπαθεί να ανακτήσει όσο καλύτερα μπορεί και συνεχίζει την εκτέλεση.

Η αποαναφορά ενός δείκτη NULL χρησιμοποιείται εδώ ως τρόπος δημιουργίας της κατάστασης "oops" με ελεγχόμενο τρόπο. Το πρόβλημα είναι ότι χρειάζονται περίπου 232 κλήσεις κατάστασης "oops" για να επιτευχθεί υπερχείλιση επαναμέτρησης 32 bit.

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

Η παραπομπή δείκτη NULL που χρησιμοποιήθηκε στο exploit διορθώθηκε τον Οκτώβριο, αλλά επειδή παρόμοια ζητήματα δεν είναι ασυνήθιστα και στο παρελθόν αντιμετωπίζονταν ως σφάλματα, όχι ως τρωτά σημεία, οι προγραμματιστές θα προσθέσουν γενική προστασία στον πυρήνα του Linux για να αποτρέψουν επιθέσεις που χειραγωγούν τη δημιουργία "oops ."

 Στην περίπτωση μιας εργασίας, αυτό σημαίνει απόρριψη της υπάρχουσας στοίβας πυρήνα και μετάβαση απευθείας στο make_task_dead που καλεί do_exit. Ο πυρήνας θα δημοσιεύσει επίσης στο dmesg ένα αρχείο καταγραφής "crash" και ένα ίχνος πυρήνα που θα δείχνει σε ποια κατάσταση ήταν ο πυρήνας όταν παρουσιάστηκε το σφάλμα. Αυτό μπορεί να φαίνεται σαν μια περίεργη επιλογή όταν έχει εμφανιστεί σαφώς καταστροφή της μνήμης. Ωστόσο, ο στόχος είναι να γίνει ευκολότερος ο εντοπισμός και η καταγραφή των σφαλμάτων του πυρήνα, σύμφωνα με τη φιλοσοφία ότι ένα τρέχον σύστημα είναι πολύ πιο εύκολο να διορθωθεί από ό,τι ένα μη λειτουργικό.

Συγκεκριμένα, ο πυρήνας 6.2 περιλαμβάνει αλλαγές για τον περιορισμό του μέγιστου αριθμού "ωχ". Αφού φτάσετε το όριο, το οποίο έχει οριστεί σε 10 χιλιάδες oops από προεπιλογή (μπορείτε να το αλλάξετε μέσω της παραμέτρου oops_limit εάν θέλετε), ο πυρήνας θα ξεκινήσει μια μετάβαση στην κατάσταση "πανικού", ακολουθούμενη από μια επανεκκίνηση, η οποία δεν θα επιτρέψει ο αριθμός των επαναλήψεων που απαιτούνται για να μηδενιστεί η επαναμέτρηση.

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

Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες στο παρακάτω σύνδεσμο.


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

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

*

*

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