Mètodes per desactivar la seguretat de bloqueig a Ubuntu per evitar l'arrencada segura UEFI de forma remota

Andrey Konovalov de Google publicat manera de desactivar la protecció de forma remota Bloqueigs'ofereix al paquet del nucli de Linux enviat amb Ubuntu (tècniques suggerides teòricament tenir funcionen amb el nucli de Fedora i altres distribucions, però no estan provats).

El bloqueig restringeix l'accés de l'usuari root al nucli i bloqueja els camins de bypass d'arrencada segura UEFI. Per exemple, en mode de bloqueig, accés a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), alguns les interfícies estan limitades Els registres ACPI i MSR de la CPU, les trucades a kexec_file i kexec_load estan bloquejades, el mode de repòs està prohibit, l'ús de DMA per a dispositius PCI està limitat, la importació de codi ACPI de variables EFI està prohibida, les manipulacions amb ports d'E/S no estan limitades. permès, inclòs canviar el número d'interrupció i el port d'E/S per al port sèrie.

El mecanisme de bloqueig s'ha afegit recentment al nucli principal de Linux 5.4, però als nuclis subministrats a les distribucions encara s'implementa en forma de pedaços o es complementa amb pedaços. Una de les diferències entre els complements proporcionats als kits de distribució i la implementació integrada al nucli és la possibilitat de desactivar el bloqueig proporcionat si teniu accés físic al sistema.

A Ubuntu i Fedora, es proporciona la combinació de tecles Alt+SysRq+X per desactivar el bloqueig. S'entén que la combinació Alt+SysRq+X només es pot utilitzar amb accés físic al dispositiu i, en cas de pirateig remot i obtenir accés root, l'atacant no podrà desactivar el bloqueig i, per exemple, carregar un mòdul amb un rootkit que no està registrat digitalment al nucli.

Andrey Konovalov va demostrar que els mètodes basats en teclat per confirmar la presència física de l'usuari són ineficaços. La manera més senzilla de desactivar el bloqueig seria mitjançant la programació simulació prement Alt+SysRq+X mitjançant /dev/uinput, però aquesta opció està bloquejada inicialment. Al mateix temps, va ser possible identificar almenys dos mètodes més de substitució Alt+SysRq+X.

El primer mètode consisteix a utilitzar la interfície "sysrq-trigger": per simular-la, només cal que habiliteu aquesta interfície escrivint "1" a /proc/sys/kernel/sysrq i, a continuació, escriviu "x" a /proc/sysrq-trigger. Va dir l'escletxa eliminat a l'actualització del nucli d'Ubuntu de desembre i a Fedora 31. Cal destacar que els desenvolupadors, com en el cas de /dev/uinput, inicialment va intentar bloqueja aquest mètode, però el bloqueig no va funcionar a causa de errors en codi.

El segon mètode implica l'emulació del teclat via USB/IP i després enviant la seqüència Alt+SysRq+X des del teclat virtual. El nucli USB/IP enviat amb Ubuntu està habilitat per defecte (CONFIG_USBIP_VHCI_HCD=m i CONFIG_USBIP_CORE=m) i proporciona els mòduls usbip_core i vhci_hcd signats digitalment necessaris per al funcionament. L'atacant pot создать dispositiu USB virtual, corrent controlador de xarxa a la interfície de loopback i connectar-lo com a dispositiu USB remot mitjançant USB/IP. Sobre el mètode especificat reportat als desenvolupadors d'Ubuntu, però encara no s'ha publicat cap solució.

Font: opennet.ru

Afegeix comentari