Nhân Linux 5.4 đã nhận được các bản vá để hạn chế quyền truy cập root vào phần bên trong kernel

Linus Torvalds Đã được chấp nhận trong bản phát hành sắp tới của nhân Linux 5.4 là một tập hợp các bản vá "lockdown", đề xuất David Howells (Mũ Đỏ) và Matthew Garrett (Matthew Garrett, hoạt động tại Google) để hạn chế quyền truy cập của người dùng root vào kernel. Chức năng liên quan đến khóa được bao gồm trong mô-đun LSM được tải tùy chọn (Mô-đun bảo mật Linux), đặt một rào cản giữa UID 0 và kernel, hạn chế một số chức năng cấp thấp nhất định.

Nếu kẻ tấn công thực thi mã bằng quyền root, hắn có thể thực thi mã của mình ở cấp kernel, ví dụ: bằng cách thay thế kernel bằng kexec hoặc bộ nhớ đọc/ghi thông qua /dev/kmem. Hậu quả rõ ràng nhất của hoạt động đó có thể là đường vòng Khởi động an toàn UEFI hoặc truy xuất dữ liệu nhạy cảm được lưu trữ ở cấp kernel.

Ban đầu, các chức năng hạn chế root được phát triển trong bối cảnh tăng cường bảo vệ khởi động đã được xác minh và các bản phân phối đã sử dụng các bản vá của bên thứ ba để chặn việc vượt qua UEFI Secure Boot trong một thời gian khá dài. Đồng thời, những hạn chế đó không được đưa vào thành phần chính của kernel do bất đồng trong quá trình thực hiện và lo ngại về sự gián đoạn đối với các hệ thống hiện có. Mô-đun “khóa máy” hấp thụ các bản vá đã được sử dụng trong các bản phân phối, được thiết kế lại dưới dạng một hệ thống con riêng biệt không gắn với UEFI Secure Boot.

Chế độ khóa hạn chế 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 ACPI và CPU Các thanh ghi MSR, lệnh gọi 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,
Không được phép thao tác với các cổng I/O, bao gồm thay đổi số ngắt và cổng I/O cho cổng nối tiếp.

Theo mặc định, mô-đun khóa không hoạt động, nó được xây dựng khi tùy chọn SECURITY_LOCKDOWN_LSM được chỉ định trong kconfig và được kích hoạt thông qua tham số kernel “lockdown=”, tệp điều khiển “/sys/kernel/security/lockdown” hoặc các tùy chọn lắp ráp LOCK_DOWN_KERNEL_FORCE_*, có thể lấy các giá trị "toàn vẹn" và "bảo mật". Trong trường hợp đầu tiên, các tính năng cho phép thực hiện các thay đổi đối với kernel đang chạy từ không gian người dùng sẽ bị chặn và trong trường hợp thứ hai, chức năng có thể được sử dụng để trích xuất thông tin nhạy cảm từ kernel cũng bị tắt.

Điều quan trọng cần lưu ý là việc khóa chỉ giới hạn quyền truy cập tiêu chuẩn vào kernel chứ không bảo vệ khỏi các sửa đổi do khai thác lỗ hổng. Để chặn các thay đổi đối với kernel đang chạy khi dự án Openwall sử dụng các lỗ hổng khai thác đang phát triển mô-đun riêng biệt LKRG (Bảo vệ thời gian chạy hạt nhân Linux).

Nguồn: opennet.ru

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