Một kỹ thuật khai thác lỗ hổng trong hệ thống con tty của nhân Linux đã được tiết lộ

Các nhà nghiên cứu từ nhóm Google Project Zero đã công bố phương pháp khai thác lỗ hổng (CVE-2020-29661) trong quá trình triển khai trình xử lý TIOCSPGRP ioctl từ hệ thống con tty của nhân Linux, đồng thời cũng kiểm tra chi tiết các cơ chế bảo vệ có thể chặn lỗ hổng đó. những điểm yếu.

Lỗi gây ra sự cố này đã được sửa trong nhân Linux vào ngày 3 tháng 5.9.13 năm ngoái. Sự cố xuất hiện trong các hạt nhân cho đến phiên bản 2020, nhưng hầu hết các bản phân phối đã khắc phục sự cố trong các bản cập nhật cho các gói hạt nhân được cung cấp năm ngoái (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Một lỗ hổng tương tự (CVE-29660-XNUMX) đã được tìm thấy đồng thời trong quá trình triển khai lệnh gọi ioctl TIOCGSID, nhưng nó cũng đã được sửa ở mọi nơi.

Sự cố xảy ra do lỗi khi cài đặt khóa, dẫn đến tình trạng chạy đua trong mã driver/tty/tty_jobctrl.c, được sử dụng để tạo điều kiện use-after-free bị khai thác từ không gian người dùng thông qua thao tác ioct gọi TIOCSPGRP. Một cách khai thác đang hoạt động đã được chứng minh là có khả năng leo thang đặc quyền trên Debian 10 với kernel 4.19.0-13-amd64.

Đồng thời, bài báo được xuất bản không tập trung quá nhiều vào kỹ thuật tạo ra một khai thác đang hoạt động mà tập trung vào những công cụ tồn tại trong kernel để bảo vệ khỏi những lỗ hổng như vậy. Kết luận này không mấy dễ chịu; các phương pháp như phân đoạn bộ nhớ trong heap và kiểm soát quyền truy cập bộ nhớ sau khi nó được giải phóng không được sử dụng trong thực tế vì chúng dẫn đến giảm hiệu suất và bảo vệ dựa trên CFI (Control Flow Integrity). chặn các hoạt động khai thác ở giai đoạn sau của cuộc tấn công, cần được cải thiện.

Khi xem xét điều gì sẽ tạo ra sự khác biệt về lâu dài, một điều nổi bật là việc sử dụng máy phân tích tĩnh tiên tiến hoặc sử dụng các ngôn ngữ an toàn cho bộ nhớ như phương ngữ Rust và C với các chú thích phong phú (chẳng hạn như Đã kiểm tra C) để kiểm tra trạng thái trong giai đoạn xây dựng, khóa, đối tượng và con trỏ. Các phương pháp bảo vệ cũng bao gồm kích hoạt chế độ Panic_on_oops, chuyển cấu trúc hạt nhân sang chế độ chỉ đọc và hạn chế quyền truy cập vào các cuộc gọi hệ thống bằng các cơ chế như seccomp.

Nguồn: opennet.ru

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