OpenBSD đã áp dụng các thay đổi để bảo vệ bộ nhớ tiến trình hơn nữa

Theo de Raadt đã thêm một loạt bản vá vào cơ sở mã OpenBSD để bảo vệ hơn nữa bộ nhớ xử lý trong không gian người dùng. Các nhà phát triển được cung cấp một lệnh gọi hệ thống mới và chức năng thư viện liên quan cùng tên, có thể thay đổi, cho phép bạn sửa các quyền truy cập khi phản ánh vào bộ nhớ (ánh xạ bộ nhớ). Sau khi cam kết, các quyền được đặt cho một vùng bộ nhớ, chẳng hạn như cấm ghi và thực thi, sau đó không thể thay đổi được thông qua các lệnh gọi tiếp theo tới các hàm mmap(), mprotect() và munmap(), điều này sẽ tạo ra lỗi EPERM khi thử thay đổi.

Để kiểm soát khả năng thay đổi quyền của bộ nhớ phản ánh cho các tệp đối tượng, một phần BSS có thể thay đổi mới (.openbsd.mutable, Biểu tượng bắt đầu khối có thể thay đổi) đã được đề xuất và các cờ mới PF_MUTABLE và UVM_ET_IMMUTABLE đã được thêm vào. Đã thêm hỗ trợ cho trình liên kết để xác định các phần "openbsd.mutable" và đặt chúng vào một khu vực riêng biệt trong BSS, được căn chỉnh theo ranh giới trang bộ nhớ. Bằng cách gọi hàm có thể thay đổi, có thể đánh dấu tất cả các khu vực được phản chiếu là không thể thay đổi, ngoại trừ các phần được đánh dấu là "openbsd.mutable". Tính năng mới sẽ được triển khai cho người dùng trong bản phát hành OpenBSD 7.3.

Nguồn: opennet.ru

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