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

Στον φορτωτή εκκίνησης GRUB2 αποκάλυψε 8 τρωτά σημεία. Το πιο επικίνδυνο ένα πρόβλημα (CVE-2020-10713), το οποίο έχει την κωδική ονομασία BootHole, δώστε μια ευκαιρία παρακάμψτε τον μηχανισμό UEFI Secure Boot και εγκαταστήστε μη επαληθευμένο κακόβουλο λογισμικό. Η ιδιαιτερότητα αυτής της ευπάθειας είναι ότι για την εξάλειψή της δεν αρκεί η ενημέρωση του GRUB2, καθώς ο εισβολέας μπορεί να χρησιμοποιήσει εκκινήσιμα μέσα με μια παλιά ευάλωτη έκδοση πιστοποιημένη με ψηφιακή υπογραφή. Ένας εισβολέας μπορεί να θέσει σε κίνδυνο τη διαδικασία επαλήθευσης όχι μόνο του Linux, αλλά και άλλων λειτουργικών συστημάτων, συμπεριλαμβανομένων Windows.

Το πρόβλημα μπορεί να λυθεί μόνο με ενημέρωση του συστήματος λίστα ανάκλησης πιστοποιητικού (dbx, UEFI Revocation List), αλλά σε αυτήν την περίπτωση θα χαθεί η δυνατότητα χρήσης παλιών μέσων εγκατάστασης με Linux. Ορισμένοι κατασκευαστές εξοπλισμού έχουν ήδη συμπεριλάβει μια ενημερωμένη λίστα πιστοποιητικών ανάκλησης στο υλικολογισμικό τους· σε τέτοια συστήματα, μόνο ενημερωμένες εκδόσεις διανομών Linux μπορούν να φορτωθούν σε λειτουργία Ασφαλούς εκκίνησης UEFI.

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

Τρωτό προκαλούνται μια υπερχείλιση buffer που μπορεί να αξιοποιηθεί για την εκτέλεση αυθαίρετου κώδικα κατά τη διαδικασία εκκίνησης.
Η ευπάθεια εμφανίζεται κατά την ανάλυση των περιεχομένων του αρχείου διαμόρφωσης grub.cfg, το οποίο βρίσκεται συνήθως στο ESP (EFI System Partition) και μπορεί να επεξεργαστεί από έναν εισβολέα με δικαιώματα διαχειριστή χωρίς να παραβιάζεται η ακεραιότητα των υπογεγραμμένων εκτελέσιμων αρχείων shim και GRUB2. Εξαιτίας Λάθη στον κώδικα ανάλυσης διαμόρφωσης, το πρόγραμμα χειρισμού για ανεπανόρθωτα σφάλματα ανάλυσης YY_FATAL_ERROR εμφάνιζε μόνο μια προειδοποίηση, αλλά δεν τερμάτισε το πρόγραμμα. Ο κίνδυνος ευπάθειας μειώνεται από την ανάγκη για προνομιακή πρόσβαση στο σύστημα· ωστόσο, το πρόβλημα μπορεί να χρειαστεί να εισαγάγετε κρυφά rootkits εάν υπάρχει φυσική πρόσβαση στον εξοπλισμό (αν είναι δυνατή η εκκίνηση από τα δικά σας μέσα).

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

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

Άλλα τρωτά σημεία στο GRUB2:

  • CVE-2020-14308 — υπερχείλιση buffer λόγω έλλειψης ελέγχου του μεγέθους της εκχωρημένης περιοχής μνήμης στο grub_malloc.
  • CVE-2020-14309 - μια υπερχείλιση ακέραιου αριθμού στο grub_squash_read_symlink, η οποία μπορεί να οδηγήσει σε εγγραφή δεδομένων πέρα ​​από το εκχωρημένο buffer.
  • CVE-2020-14310 - υπερχείλιση ακέραιου αριθμού στο read_section_from_string, που μπορεί να οδηγήσει σε εγγραφή δεδομένων πέρα ​​από το εκχωρημένο buffer.
  • CVE-2020-14311 - μια υπερχείλιση ακέραιου αριθμού στο grub_ext2_read_link, η οποία μπορεί να οδηγήσει σε εγγραφή δεδομένων πέρα ​​από το εκχωρημένο buffer.
  • CVE-2020-15705 — σας επιτρέπει να φορτώνετε μη υπογεγραμμένους πυρήνες κατά τη διάρκεια της άμεσης εκκίνησης σε λειτουργία Ασφαλούς εκκίνησης χωρίς στρώμα shim.
  • CVE-2020-15706 — πρόσβαση σε μια ήδη ελευθερωμένη περιοχή μνήμης (χρήση-μετά-ελεύθερο) κατά τον επαναπροσδιορισμό μιας συνάρτησης κατά το χρόνο εκτέλεσης.
  • CVE-2020-15707 — υπερχείλιση ακεραίων στον χειριστή πρώτου μεγέθους.

Έχουν κυκλοφορήσει ενημερώσεις για το πακέτο επείγουσας επιδιόρθωσης Debian, Ubuntu, RHEL и SUSE. Για το GRUB2 προτείνεται σετ μπαλωμάτων.

Πηγή: opennet.ru

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