Kasper, một trình quét các vấn đề thực thi mã suy đoán trong nhân Linux, hiện đã có sẵn

Một nhóm các nhà nghiên cứu từ Đại học Tự do Amsterdam đã xuất bản bộ công cụ Kasper được thiết kế để xác định các đoạn mã trong nhân Linux có thể được sử dụng để khai thác các lỗ hổng loại Spectre do thực thi mã đầu cơ trên bộ xử lý gây ra. Mã nguồn của bộ công cụ được phân phối theo giấy phép Apache 2.0.

Chúng ta hãy nhớ lại rằng để thực hiện các cuộc tấn công như Spectre v1, có thể xác định nội dung của bộ nhớ, cần phải có sự hiện diện trong mã đặc quyền của một chuỗi lệnh (tiện ích) nhất định, dẫn đến việc thực thi các hướng dẫn mang tính suy đoán. . Vì mục đích tối ưu hóa, bộ xử lý bắt đầu thực thi các tiện ích đó ở chế độ suy đoán, sau đó xác định rằng dự đoán nhánh không hợp lý và khôi phục các hoạt động về trạng thái ban đầu, nhưng dữ liệu được xử lý trong quá trình thực thi suy đoán sẽ kết thúc trong bộ nhớ đệm và bộ đệm vi kiến ​​trúc và có sẵn để truy xuất từ ​​chúng bằng nhiều phương pháp khác nhau xác định dữ liệu còn lại thông qua các kênh của bên thứ ba.

Các công cụ có sẵn trước đây để quét các tiện ích để tìm lỗ hổng Spectre, dựa trên việc tìm kiếm các mẫu điển hình, cho thấy mức độ dương tính giả rất cao, trong khi thiếu nhiều tiện ích thực (các thử nghiệm cho thấy rằng 99% tiện ích được xác định bởi các công cụ đó không thể được sử dụng để tấn công. và 33% thiết bị đang hoạt động có thể dẫn đến một cuộc tấn công không được chú ý).

Để cải thiện chất lượng xác định các tiện ích có vấn đề, Kasper lập mô hình các lỗ hổng mà kẻ tấn công có thể khai thác ở mỗi bước thực hiện các cuộc tấn công lớp Spectre - các vấn đề cho phép kiểm soát dữ liệu được mô hình hóa (ví dụ: thay thế dữ liệu của kẻ tấn công vào các cấu trúc vi kiến ​​trúc để tác động đến việc thực thi suy đoán tiếp theo bằng cách sử dụng Tấn công lớp LVI), giành quyền truy cập vào thông tin bí mật (ví dụ: khi vượt ra ngoài ranh giới bộ đệm hoặc sử dụng bộ nhớ sau khi được giải phóng) và rò rỉ thông tin bí mật (ví dụ: bằng cách phân tích trạng thái bộ đệm của bộ xử lý hoặc sử dụng phương pháp MDS).

Kasper, một trình quét các vấn đề thực thi mã suy đoán trong nhân Linux, hiện đã có sẵn

Khi kiểm tra, kernel được liên kết với các thư viện thời gian chạy Kasper và kiểm tra việc chạy ở cấp LLVM. Quá trình kiểm tra mô phỏng việc thực thi mã suy đoán, được triển khai bằng cơ chế khôi phục điểm kiểm tra, thực thi cụ thể một nhánh mã được dự đoán không chính xác, sau đó quay trở lại trạng thái ban đầu trước khi nhánh bắt đầu. Kasper cũng cố gắng mô phỏng các lỗ hổng phần mềm và phần cứng khác nhau, phân tích tác động của các hiệu ứng kiến ​​trúc và vi kiến ​​trúc, đồng thời thực hiện kiểm tra mờ về các hành động có thể xảy ra của kẻ tấn công. Để phân tích các luồng thực thi, cổng DataFlowSanitizer cho nhân Linux được sử dụng và để kiểm tra làm mờ, phiên bản sửa đổi của gói syzkaller sẽ được sử dụng.

Kasper, một trình quét các vấn đề thực thi mã suy đoán trong nhân Linux, hiện đã có sẵn

Quá trình quét nhân Linux bằng Kasper đã xác định được 1379 tiện ích chưa được biết trước đây có khả năng dẫn đến rò rỉ dữ liệu trong quá trình thực hiện các hướng dẫn mang tính suy đoán. Cần lưu ý rằng có lẽ chỉ một số trong số chúng có thể gây ra vấn đề thực sự, nhưng để chứng minh rằng có một mối nguy hiểm thực sự chứ không chỉ là mối nguy hiểm về mặt lý thuyết, một nguyên mẫu khai thác đã được phát triển cho một trong những đoạn mã có vấn đề, dẫn đến thông tin rò rỉ từ bộ nhớ kernel.

Nguồn: opennet.ru

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