Ένα θέμα ευπάθειας στο eBPF επιτρέπει την παράκαμψη προστασίας από επιθέσεις Spectre

Χθες δημοσιεύσαμε εδώ στο blog τα νέα για Aya, μια βιβλιοθήκη για τη δημιουργία ελεγκτών eBPF στο Rust και ο σκοπός αυτού είναι η δημιουργία πιο ασφαλών ελεγκτών ή του Prossimo project για την ασφάλεια της μνήμης του πυρήνα Linux με Rust (δύο μεγάλα έργα που θα δώσουν πολλά να μιλήσουμε τους επόμενους μήνες).

Και σε σύντομο χρονικό διάστημα έχουν αναφερθεί διάφορα τρωτά σημεία στο οποίο εκμεταλλευτείτε σφάλματα στο eBPF και ότι είναι ένα θέμα στο οποίο οι προγραμματιστές του Kernel δεν έχουν σταματήσει να δουλεύουν και ίσως το Rust είναι η λύση.

Ο λόγος που θίγουμε αυτό το θέμα είναι ότι πρόσφατα κυκλοφόρησε η είδηση ​​ότι έχουν ταυτοποιηθεί "άλλη" ευπάθεια στον πυρήνα του Linux (CVE-2021-33624) για προστασία παράκαμψης έναντι ευπαθειών της κλάσης Spectre, καθώς αυτό επιτρέπει στη χρήση του υποσυστήματος eBPF να μπορεί να προσδιορίσει το περιεχόμενο της μνήμης ως αποτέλεσμα της δημιουργίας συνθηκών για εικασίες σχετικά με την εκτέλεση ορισμένων λειτουργιών.

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

Κατά την εκτέλεση ενός προγράμματος BPF, οι επιλογές διακλάδωσης που δεν ελήφθησαν υπόψη από τον ελεγκτή μπορεί να προβλεφθούν εσφαλμένα από τον επεξεργαστή και να εκτελεστούν σε κερδοσκοπική λειτουργία.

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

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

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

Επιπλέον, μπορείτε να σημειώσετε μια σημείωση σχετικά με τον αντίκτυπο στην απόδοση των περιουσιακών στοιχείων για προστασία από την κατηγορία ευπάθειας Spectre.

Αυτή η σημείωση συνοψίζει τα αποτελέσματα rr (Record and Replay) εργαλείο βελτιστοποίησης εντοπισμού σφαλμάτων, που δημιουργήθηκε από τη Mozilla για τον εντοπισμό σφαλμάτων που είναι δύσκολο να επαναληφθούν στον Firefox. Η προσωρινή αποθήκευση των κλήσεων συστήματος που χρησιμοποιούνται για τον έλεγχο της ύπαρξης καταλόγων μείωσε τη λειτουργία "rr sources" για το δοκιμαστικό έργο από 3 λεπτά 19 δευτερόλεπτα σε 36 δευτερόλεπτα.

Ο συντάκτης της βελτιστοποίησης αποφάσισε να ελέγξει πόσο θα αλλάξει απόδοση μετά την απενεργοποίηση της προστασίας Spectre. Μετά την εκκίνηση του συστήματος με την παράμετρο «mitigations=off», ο χρόνος εκτέλεσης των «rr sources» χωρίς βελτιστοποίηση ήταν 2 λεπτά 5 δευτερόλεπτα (1.6 φορές ταχύτερη) και με βελτιστοποίηση 33 δευτερόλεπτα (9% ταχύτερη).

Περιέργως, Η απενεργοποίηση της προστασίας Spectre όχι μόνο μείωσε τον χρόνο εκτέλεσης του κώδικα σε επίπεδο πυρήνα σε 1.4 φορές (από 2 λεπτά 9 δευτερόλεπτα έως 1 λεπτό 32 δευτερόλεπτα), αλλά μείωσε επίσης στο μισό τον χρόνο εκτέλεσης στο χώρο του χρήστη (από 1 λεπτό 9 σε 33 δευτερόλεπτα), πιθανώς λόγω της μείωσης της απόδοσης της κρυφής μνήμης της CPU και της επαναφοράς του TLB όταν είναι ενεργοποιημένη η προστασία Specter.

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

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


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

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

*

*

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