Andrey Konovalov từ Google cách để vô hiệu hóa bảo vệ từ xa , предлагаемой в пакете с ядром Linux, поставляемом в Ubuntu (теоретически предложенные методы hoạt động với kernel của Fedora và các bản phân phối khác, nhưng chúng không được thử nghiệm).
Khóa máy hạn chế quyền truy cập của người dùng root vào kernel và chặn các đường dẫn bỏ qua UEFI Secure Boot. Ví dụ: ở chế độ khóa, quyền truy cập vào /dev/mem, /dev/kem, /dev/port, /proc/kcore, debugfs, chế độ gỡ lỗi kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Cấu trúc thông tin thẻ), một số giao diện bị giới hạn Các thanh ghi ACPI và MSR của CPU, các cuộc gọi đến kexec_file và kexec_load bị chặn, chế độ ngủ bị cấm, việc sử dụng DMA cho các thiết bị PCI bị hạn chế, việc nhập mã ACPI từ các biến EFI bị cấm, các thao tác với cổng I/O bị cấm được phép, bao gồm cả việc thay đổi số ngắt và cổng I/O cho cổng nối tiếp.
Механизм Lockdown недавно был добавлен в основной состав ядра Linux , nhưng trong các nhân được cung cấp trong các bản phân phối, nó vẫn được triển khai dưới dạng các bản vá hoặc bổ sung các bản vá. Một trong những khác biệt giữa các tiện ích bổ sung được cung cấp trong bộ công cụ phân phối và cách triển khai được tích hợp trong kernel là khả năng vô hiệu hóa khóa được cung cấp nếu bạn có quyền truy cập vật lý vào hệ thống.
В Ubuntu и Fedora для отключения Lockdown предусмотрена комбинация клавиш Alt+SysRq+X. Подразумевается, что комбинацию Alt+SysRq+X можно использовать только при физическом доступе к устройству, а в случае удалённого взлома и получения root-доступа атакующий не сможет отключить Lockdown и, например, загрузить в ядро незаверенный цифровой подписью модуль с rootkit-ом.
Andrey Konovalov đã chỉ ra rằng các phương pháp dựa trên bàn phím để xác nhận sự hiện diện vật lý của người dùng là không hiệu quả. Cách đơn giản nhất để vô hiệu hóa Lockdown là lập trình nhấn Alt+SysRq+X qua /dev/uinput, nhưng tùy chọn này ban đầu bị chặn. Đồng thời, có thể xác định được ít nhất hai phương pháp thay thế Alt+SysRq+X nữa.
Phương pháp đầu tiên liên quan đến việc sử dụng giao diện “sysrq-trigger” - để mô phỏng nó, chỉ cần kích hoạt giao diện này bằng cách viết “1” vào /proc/sys/kernel/sysrq, sau đó viết “x” vào /proc/sysrq-trigger. Lỗ hổng nói в декабрьском обновлении ядра Ubuntu и в Fedora 31. Примечательно, что разработчики, как в случае с /dev/uinput, изначально chặn phương pháp này, nhưng việc chặn không hoạt động do trong mã.
Phương pháp thứ hai liên quan đến việc mô phỏng bàn phím thông qua и последующей отправкой последовательности Alt+SysRq+X с виртуальной клавиатуры. В поставляемом в Ubuntu ядре USB/IP по умолчанию включён (CONFIG_USBIP_VHCI_HCD=m и CONFIG_USBIP_CORE=m) и предоставлены необходимые для работы заверенные цифровой подписью модули usbip_core и vhci_hcd. Атакующий может thiết bị USB ảo, trình xử lý mạng trên giao diện loopback và kết nối nó dưới dạng thiết bị USB từ xa bằng USB/IP. Về phương pháp được chỉ định nhà phát triển Ubuntu, но исправление пока не выпущено.
Nguồn: opennet.ru
