Các phương pháp vô hiệu hóa bảo mật khóa trong Ubuntu để vượt qua khởi động an toàn UEFI từ xa

Andrey Konovalov từ Google công bố cách để vô hiệu hóa bảo vệ từ xa Lockdownđược cung cấp trong gói nhân Linux đi kèm với Ubuntu (các kỹ thuật được đề xuất về mặt lý thuyết 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.

Cơ chế Lockdown gần đây đã được thêm vào nhân Linux chính 5.4, 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.

Trong Ubuntu và Fedora, tổ hợp phím Alt+SysRq+X được cung cấp để tắt Khóa. Điều này được hiểu rằng sự kết hợp Alt+SysRq+X chỉ có thể được sử dụng với quyền truy cập vật lý vào thiết bị và trong trường hợp hack từ xa và giành được quyền truy cập root, kẻ tấn công sẽ không thể vô hiệu hóa Lockdown và, chẳng hạn như tải một mô-đun có rootkit không được đăng nhập kỹ thuật số vào kernel.

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 mô phỏng 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 loại bỏ trong bản cập nhật kernel Ubuntu tháng 31 và trong Fedora XNUMX. Điều đáng chú ý là các nhà phát triển, như trường hợp của /dev/uinput, ban đầu đã cố gắng để chặn phương pháp này, nhưng việc chặn không hoạt động do Lỗi trong mã.

Phương pháp thứ hai liên quan đến việc mô phỏng bàn phím thông qua USB/IP rồi gửi chuỗi Alt+SysRq+X từ bàn phím ảo. Hạt nhân USB/IP đi kèm với Ubuntu được bật theo mặc định (CONFIG_USBIP_VHCI_HCD=m và CONFIG_USBIP_CORE=m) và cung cấp các mô-đun usbip_core và vhci_hcd được ký điện tử cần thiết để hoạt động. Kẻ tấn công có thể để tạo thiết bị USB ảo, đang chạy 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 đã báo cáo cho các nhà phát triển Ubuntu, nhưng bản sửa lỗi vẫn chưa được phát hành.

Nguồn: opennet.ru

Thêm một lời nhận xét