Το BHI είναι μια νέα ευπάθεια κατηγορίας Spectre στους επεξεργαστές Intel και ARM

Μια ομάδα ερευνητών από το Vrije Universiteit Amsterdam εντόπισε μια νέα ευπάθεια στις μικροαρχιτεκτονικές δομές των επεξεργαστών Intel και ARM, η οποία είναι μια εκτεταμένη έκδοση της ευπάθειας Specter-v2, η οποία επιτρέπει σε κάποιον να παρακάμψει τους μηχανισμούς προστασίας eIBRS και CSV2 που προστίθενται στους επεξεργαστές. . Η ευπάθεια έχει λάβει διάφορα ονόματα: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) και Specter-BHB (CVE-2022-23960), τα οποία περιγράφουν διαφορετικές εκδηλώσεις το ίδιο πρόβλημα (BHI - μια επίθεση που επηρεάζει διαφορετικά επίπεδα προνομίων, για παράδειγμα, τη διαδικασία χρήστη και τον πυρήνα, BHB - μια επίθεση στο ίδιο επίπεδο προνομίων, για παράδειγμα, το eBPF JIT και τον πυρήνα).

Οι ερευνητές έχουν επιδείξει ένα λειτουργικό exploit που επιτρέπει την εξαγωγή αυθαίρετων δεδομένων από τη μνήμη του πυρήνα από το χώρο του χρήστη. Για παράδειγμα, φαίνεται πώς, χρησιμοποιώντας ένα προετοιμασμένο exploit, είναι δυνατό να εξαγάγετε από τα buffer του πυρήνα μια συμβολοσειρά με έναν κατακερματισμό του κωδικού πρόσβασης χρήστη root που έχει φορτωθεί από το αρχείο /etc/shadow. Το exploit δείχνει τη δυνατότητα εκμετάλλευσης μιας ευπάθειας εντός ενός επιπέδου προνομίου (επιθεση πυρήνα σε πυρήνα) χρησιμοποιώντας ένα πρόγραμμα eBPF που φορτώνεται από τον χρήστη. Είναι επίσης δυνατό να χρησιμοποιηθούν αντί για eBPF υπάρχοντα gadgets Spectre στον κώδικα του πυρήνα, ακολουθίες εντολών που οδηγούν σε υποθετική εκτέλεση εντολών.

Η ευπάθεια εμφανίζεται στους περισσότερους τρέχοντες επεξεργαστές Intel, με εξαίρεση τους επεξεργαστές της οικογένειας Atom. Μεταξύ των επεξεργαστών ARM, οι Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 και πιθανώς ορισμένα τσιπ Cortex-R επηρεάζονται από το πρόβλημα. Σύμφωνα με έρευνα, η ευπάθεια δεν εμφανίζεται στους επεξεργαστές AMD. Για την εξάλειψη του προβλήματος, έχουν προταθεί διάφορες μέθοδοι λογισμικού για τον αποκλεισμό της ευπάθειας, οι οποίες μπορούν να χρησιμοποιηθούν πριν από την εμφάνιση προστασίας υλικού σε μελλοντικά μοντέλα CPU.

Για τον αποκλεισμό επιθέσεων μέσω του υποσυστήματος eBPF, συνιστάται να απενεργοποιήσετε από προεπιλογή τη δυνατότητα λήψης προγραμμάτων eBPF από μη προνομιούχους χρήστες γράφοντας το 1 στο αρχείο "/proc/sys/kernel/unprivileged_bpf_disabled" ή εκτελώντας την εντολή "sysctl -w kernel". unprivileged_bpf_disabled=1”. Για να αποκλείσετε επιθέσεις gadget, συνιστάται η χρήση της εντολής LFENCE σε περιοχές κώδικα που ενδέχεται να οδηγήσουν σε κερδοσκοπική εκτέλεση. Αξίζει να σημειωθεί ότι η προεπιλεγμένη ρύθμιση παραμέτρων των περισσότερων διανομών Linux περιέχει ήδη τα απαραίτητα μέτρα προστασίας που είναι επαρκή για να μπλοκάρουν την επίθεση eBPF που έδειξαν οι ερευνητές. Οι συστάσεις της Intel για την απενεργοποίηση της μη προνομιακής πρόσβασης στο eBPF είναι επίσης οι προεπιλογές από τον πυρήνα του Linux 5.16 και θα μεταφερθούν σε προηγούμενα υποκαταστήματα.

Εννοιολογικά, το BHI είναι μια εκτεταμένη έκδοση της επίθεσης Specter-v2, στην οποία, για να παρακάμψει την προστιθέμενη προστασία (Intel eIBRS και Arm CSV2) και να οργανώσει τη διαρροή δεδομένων, χρησιμοποιείται η αντικατάσταση τιμής στο Branch History Buffer, που χρησιμοποιείται στην CPU για την αύξηση της πρόβλεψης διακλάδωση ακρίβειας λαμβάνοντας υπόψη την ιστορία των προηγούμενων μεταβάσεων. Κατά τη διάρκεια της επίθεσης, μέσω χειρισμών με το ιστορικό των μεταβάσεων, δημιουργούνται συνθήκες για λανθασμένη πρόβλεψη της μετάβασης και κερδοσκοπική εκτέλεση των απαραίτητων εντολών, το αποτέλεσμα των οποίων καταλήγει στην κρυφή μνήμη.

Με εξαίρεση τη χρήση ενός Branch History Buffer αντί του Branch Target Buffer, η νέα επίθεση είναι πανομοιότυπη με το Specter-v2. Το καθήκον του εισβολέα είναι να δημιουργήσει συνθήκες έτσι ώστε η διεύθυνση, όταν εκτελεί μια κερδοσκοπική λειτουργία, να λαμβάνεται από την περιοχή των καθορισμένων δεδομένων. Μετά την εκτέλεση ενός κερδοσκοπικού έμμεσου άλματος, η διεύθυνση μεταπήδησης που διαβάζεται από τη μνήμη παραμένει στη μνήμη cache, μετά την οποία μπορεί να χρησιμοποιηθεί μία από τις μεθόδους για τον προσδιορισμό των περιεχομένων της κρυφής μνήμης για την ανάκτησή της με βάση μια ανάλυση των αλλαγών στο χρόνο πρόσβασης σε προσωρινή και μη προσωρινή μνήμη δεδομένα.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο