Ευπάθειες στο GRUB2 που σας επιτρέπουν να παρακάμψετε το UEFI Secure Boot

Έχουν επιδιορθωθεί 2 ευπάθειες στο πρόγραμμα εκκίνησης GRUB7 που σας επιτρέπουν να παρακάμψετε τον μηχανισμό Ασφαλούς εκκίνησης UEFI και να εκτελέσετε μη επαληθευμένο κώδικα, για παράδειγμα, να εφαρμόσετε κακόβουλο λογισμικό που εκτελείται σε επίπεδο φορτωτή εκκίνησης ή πυρήνα. Επιπλέον, υπάρχει ένα θέμα ευπάθειας στο επίπεδο shim, το οποίο σας επιτρέπει επίσης να παρακάμψετε την Ασφαλή εκκίνηση του UEFI. Η ομάδα ευπάθειας είχε την κωδική ονομασία Boothole 3, παρόμοια με παρόμοια προβλήματα που είχαν εντοπιστεί προηγουμένως στον bootloader.

Για την αντιμετώπιση προβλημάτων στο GRUB2 και στο shim, οι διανομές θα μπορούν να χρησιμοποιούν τον μηχανισμό SBAT (UEFI Secure Boot Advanced Targeting), ο οποίος υποστηρίζεται για GRUB2, shim και fwupd. Το SBAT αναπτύχθηκε από κοινού με τη Microsoft και περιλαμβάνει την προσθήκη πρόσθετων μεταδεδομένων στα εκτελέσιμα αρχεία των στοιχείων UEFI, τα οποία περιλαμβάνουν πληροφορίες σχετικά με τον κατασκευαστή, το προϊόν, το στοιχείο και την έκδοση. Τα καθορισμένα μεταδεδομένα είναι πιστοποιημένα με ψηφιακή υπογραφή και μπορούν να συμπεριληφθούν χωριστά στις λίστες των επιτρεπόμενων ή απαγορευμένων στοιχείων για την Ασφαλή εκκίνηση του UEFI.

Οι περισσότερες διανομές Linux χρησιμοποιούν ένα μικρό στρώμα shim ψηφιακά υπογεγραμμένο από τη Microsoft για επαληθευμένη εκκίνηση σε λειτουργία ασφαλούς εκκίνησης UEFI. Αυτό το επίπεδο επαληθεύει το GRUB2 με το δικό του πιστοποιητικό, το οποίο επιτρέπει στους προγραμματιστές διανομής να μην έχουν κάθε πυρήνα και ενημέρωση GRUB πιστοποιημένη από τη Microsoft. Τα τρωτά σημεία στο GRUB2 σάς επιτρέπουν να επιτύχετε την εκτέλεση του κώδικά σας στο στάδιο μετά την επιτυχή επαλήθευση shim, αλλά πριν από τη φόρτωση του λειτουργικού συστήματος, ενσωματώνοντας την αλυσίδα εμπιστοσύνης όταν είναι ενεργή η λειτουργία Ασφαλούς εκκίνησης και αποκτώντας πλήρη έλεγχο της περαιτέρω διαδικασίας εκκίνησης, συμπεριλαμβανομένων φόρτωση άλλου λειτουργικού συστήματος, τροποποίηση του συστήματος στοιχείων λειτουργικού συστήματος και παράκαμψη της προστασίας κλειδώματος.

Για να διορθωθούν προβλήματα στον bootloader, οι διανομές θα πρέπει να δημιουργήσουν νέες εσωτερικές ψηφιακές υπογραφές και προγράμματα εγκατάστασης ενημερώσεων, bootloaders, πακέτα πυρήνα, υλικολογισμικό fwupd και στρώμα shim. Πριν από την εισαγωγή του SBAT, η ενημέρωση της λίστας ανάκλησης πιστοποιητικών (dbx, UEFI Revocation List) ήταν απαραίτητη προϋπόθεση για τον πλήρη αποκλεισμό της ευπάθειας, καθώς ένας εισβολέας, ανεξάρτητα από το λειτουργικό σύστημα που χρησιμοποιούσε, μπορούσε να χρησιμοποιήσει εκκινήσιμα μέσα με μια παλιά ευάλωτη έκδοση του GRUB2. πιστοποιημένο με ψηφιακή υπογραφή, για να παραβιάσει την Ασφαλή εκκίνηση του UEFI .

Αντί να ανακαλέσετε μια υπογραφή, το SBAT σάς επιτρέπει να αποκλείσετε τη χρήση του για μεμονωμένους αριθμούς έκδοσης στοιχείων χωρίς να χρειάζεται να ανακαλέσετε τα κλειδιά για την Ασφαλή εκκίνηση. Ο αποκλεισμός τρωτών σημείων μέσω SBAT δεν απαιτεί τη χρήση λίστας ανάκλησης πιστοποιητικών UEFI (dbx), αλλά πραγματοποιείται στο επίπεδο αντικατάστασης του εσωτερικού κλειδιού για τη δημιουργία υπογραφών και την ενημέρωση GRUB2, shim και άλλων τεχνουργημάτων εκκίνησης που παρέχονται από διανομές. Επί του παρόντος, η υποστήριξη SBAT έχει ήδη προστεθεί στις πιο δημοφιλείς διανομές Linux.

Εντοπίστηκαν τρωτά σημεία:

  • Τα CVE-2021-3696, CVE-2021-3695 είναι υπερχειλίσεις buffer που βασίζονται σε σωρό κατά την επεξεργασία ειδικά σχεδιασμένων εικόνων PNG, οι οποίες θεωρητικά μπορούν να χρησιμοποιηθούν για την εκτέλεση κώδικα εισβολέα και την παράκαμψη της Ασφαλούς εκκίνησης UEFI. Σημειώνεται ότι το πρόβλημα είναι δύσκολο να εκμεταλλευτεί κανείς, καθώς η δημιουργία ενός λειτουργικού exploit απαιτεί να ληφθεί υπόψη ένας μεγάλος αριθμός παραγόντων και η διαθεσιμότητα πληροφοριών σχετικά με τη διάταξη της μνήμης.
  • CVE-2021-3697 - Μια υποροή buffer στον κώδικα επεξεργασίας εικόνας JPEG. Η εκμετάλλευση του προβλήματος απαιτεί γνώση της διάταξης της μνήμης και είναι περίπου στο ίδιο επίπεδο πολυπλοκότητας με το ζήτημα PNG (CVSS 7.5).
  • CVE-2022-28733 - Μια υπερχείλιση ακέραιου αριθμού στη συνάρτηση grub_net_recv_ip4_packets() επιτρέπει στην παράμετρο rsm->total_len να επηρεαστεί με την αποστολή ενός ειδικά κατασκευασμένου πακέτου IP. Το ζήτημα επισημαίνεται ως το πιο επικίνδυνο από τα τρωτά σημεία που παρουσιάζονται (CVSS 8.1). Εάν γίνει επιτυχής εκμετάλλευση, η ευπάθεια επιτρέπει την εγγραφή δεδομένων πέρα ​​από το όριο της προσωρινής μνήμης, εκχωρώντας ένα σκόπιμα μικρότερο μέγεθος μνήμης.
  • CVE-2022-28734 - Υπερχείλιση προσωρινής μνήμης ενός byte κατά την επεξεργασία απογυμνωμένων κεφαλίδων HTTP. Ένα πρόβλημα μπορεί να προκαλέσει καταστροφή των μεταδεδομένων GRUB2 (εγγραφή ενός μηδενικού byte αμέσως μετά το τέλος του buffer) κατά την ανάλυση ειδικά διαμορφωμένων αιτημάτων HTTP.
  • CVE-2022-28735 Ένα πρόβλημα στον επαληθευτή shim_lock επιτρέπει τη φόρτωση αρχείων χωρίς πυρήνα. Η ευπάθεια μπορεί να χρησιμοποιηθεί για τη φόρτωση μη υπογεγραμμένων λειτουργικών μονάδων πυρήνα ή μη επαληθευμένου κώδικα στη λειτουργία Ασφαλούς εκκίνησης UEFI.
  • CVE-2022-28736 Μια ήδη ελευθερωμένη πρόσβαση στη μνήμη στη συνάρτηση grub_cmd_chainloader() μέσω μιας επανάληψης της εντολής chainloader, που χρησιμοποιείται για την εκκίνηση λειτουργικών συστημάτων που δεν υποστηρίζονται από το GRUB2. Η εκμετάλλευση θα μπορούσε να οδηγήσει σε εκτέλεση κώδικα εισβολέα εάν ο εισβολέας είναι σε θέση να προσδιορίσει την κατανομή μνήμης στο GRUB2
  • CVE-2022-28737 - Μια υπερχείλιση buffer στο επίπεδο shim εμφανίζεται στη συνάρτηση handle_image() κατά τη φόρτωση και την εκτέλεση δημιουργημένων εικόνων EFI.

Πηγή: opennet.ru

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