Μέθοδοι απενεργοποίησης της ασφάλειας κλειδώματος στο Ubuntu για παράκαμψη της ασφαλούς εκκίνησης του UEFI από απόσταση

Andrey Konovalov από την Google δημοσιεύεται τρόπος απομακρυσμένης απενεργοποίησης της προστασίας Lockdownπροσφέρεται στο πακέτο πυρήνα Linux που αποστέλλεται με το Ubuntu (θεωρητικά προτεινόμενες μέθοδοι έχω δουλεύουν με τον πυρήνα του Fedora και άλλες διανομές, αλλά δεν έχουν δοκιμαστεί).

Το κλείδωμα περιορίζει την πρόσβαση του χρήστη root στον πυρήνα και αποκλείει τις διαδρομές παράκαμψης Ασφαλούς εκκίνησης UEFI. Για παράδειγμα, σε λειτουργία κλειδώματος, πρόσβαση σε /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debugging mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), μερικά οι διεπαφές είναι περιορισμένες Οι καταχωρητές ACPI και MSR της CPU, οι κλήσεις σε kexec_file και kexec_load είναι αποκλεισμένες, η κατάσταση αναστολής λειτουργίας απαγορεύεται, η χρήση DMA για συσκευές PCI είναι περιορισμένη, η εισαγωγή κωδικού ACPI από μεταβλητές EFI απαγορεύεται, οι χειρισμοί με θύρες I/O δεν είναι επιτρέπεται, συμπεριλαμβανομένης της αλλαγής του αριθμού διακοπής και της θύρας I/O για σειριακή θύρα.

Ο μηχανισμός Lockdown προστέθηκε πρόσφατα στον κύριο πυρήνα του Linux 5.4, αλλά στους πυρήνες που παρέχονται σε διανομές εξακολουθεί να υλοποιείται με τη μορφή patches ή να συμπληρώνεται με patches. Μία από τις διαφορές μεταξύ των πρόσθετων που παρέχονται στα κιτ διανομής και της ενσωματωμένης υλοποίησης στον πυρήνα είναι η δυνατότητα απενεργοποίησης του παρεχόμενου κλειδώματος εάν έχετε φυσική πρόσβαση στο σύστημα.

Στο Ubuntu και στο Fedora, παρέχεται ο συνδυασμός πλήκτρων Alt+SysRq+X για την απενεργοποίηση του Lockdown. Εννοείται ότι ο συνδυασμός Alt+SysRq+X μπορεί να χρησιμοποιηθεί μόνο με φυσική πρόσβαση στη συσκευή και σε περίπτωση απομακρυσμένης εισβολής και απόκτησης πρόσβασης root, ο εισβολέας δεν θα μπορεί να απενεργοποιήσει το Lockdown και, για παράδειγμα, να φορτώσει ένα μονάδα με ένα rootkit που δεν είναι ψηφιακά υπογεγραμμένο στον πυρήνα.

Ο Andrey Konovalov έδειξε ότι οι μέθοδοι που βασίζονται σε πληκτρολόγιο για την επιβεβαίωση της φυσικής παρουσίας του χρήστη είναι αναποτελεσματικές. Ο απλούστερος τρόπος για να απενεργοποιήσετε το Lockdown θα ήταν μέσω προγραμματισμού προσομοίωση πατώντας Alt+SysRq+X μέσω /dev/uinput, αλλά αυτή η επιλογή είναι αρχικά αποκλεισμένη. Ταυτόχρονα, ήταν δυνατό να εντοπιστούν τουλάχιστον δύο ακόμη μέθοδοι υποκατάστασης Alt+SysRq+X.

Η πρώτη μέθοδος περιλαμβάνει τη χρήση της διεπαφής "sysrq-trigger" - για να την προσομοιώσετε, απλώς ενεργοποιήστε αυτήν τη διεπαφή γράφοντας "1" στο /proc/sys/kernel/sysrq και μετά γράψτε "x" στο /proc/sysrq-trigger. Είπε παραθυράκι εξαλειφθεί στην ενημέρωση του πυρήνα του Ubuntu Δεκεμβρίου και στο Fedora 31. Είναι αξιοσημείωτο ότι οι προγραμματιστές, όπως και στην περίπτωση του /dev/uinput, αρχικά προσπάθησε να αποκλεισμός αυτής της μεθόδου, αλλά ο αποκλεισμός δεν λειτούργησε λόγω Λάθη στον κώδικα.

Η δεύτερη μέθοδος περιλαμβάνει εξομοίωση πληκτρολογίου μέσω USB/IP και στη συνέχεια αποστολή της ακολουθίας Alt+SysRq+X από το εικονικό πληκτρολόγιο. Ο πυρήνας USB/IP που αποστέλλεται με το Ubuntu είναι ενεργοποιημένος από προεπιλογή (CONFIG_USBIP_VHCI_HCD=m και CONFIG_USBIP_CORE=m) και παρέχει τις ψηφιακά υπογεγραμμένες μονάδες usbip_core και vhci_hcd που απαιτούνται για τη λειτουργία. Ο εισβολέας μπορεί δημιουργήστε εικονική συσκευή USB, εκτοξεύτηκε χειριστή δικτύου στη διεπαφή loopback και τη σύνδεσή του ως απομακρυσμένη συσκευή USB χρησιμοποιώντας USB/IP. Σχετικά με την καθορισμένη μέθοδο έχουν αναφερθεί στους προγραμματιστές του Ubuntu, αλλά δεν έχει ακόμη κυκλοφορήσει κάποια επιδιόρθωση.

Πηγή: opennet.ru

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