Kasper, một trình quét thiết bị để tìm mã suy đoán trong nhân Linux

Một nhóm các nhà nghiên cứu từ Đại học Tự do Amsterdam đã tiết lộ thông qua một bài đăng trên blog, một công cụ có tên là "casper" cái gì làm nổi bật nó là đượ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 lớp Spectre gây ra bởi việc thực thi mã đầu cơ của bộ xử lý.

Đối với những người không biết về kiểu tấn công này, họ nên biết rằng lỗ hổng lớp như Spectre v1 cho phép xác định nội dung của bộ nhớ, một tập lệnh (tiện ích) nhất định được yêu cầu trong mã đặc quyền, dẫn đến việc thực thi các chỉ dẫn có tính chất suy đoán.

Để tối ưu hóa, bộ xử lý bắt đầu chạy các thiết bị như vậy ở chế độ suy đoánhoặc, sau đó xác định rằng dự đoán nhánh chưa được xác minh và đưa các hoạt động trở lại trạng thái ban đầu, nhưng dữ liệu được xử lý trong quá trình thực thi suy đoán nằm trong bộ đệm ẩn và bộ đệm vi kiến ​​trúc và có sẵn để trích xuất bằng cách sử dụng các phương pháp xác định dữ liệu dư khác nhau thông qua thứ ba- các kênh bên.

Công cụ Quét Tiện ích dựa trên các mẫu có sẵn trước đây đối với lỗ hổng Spectre cho thấy tỷ lệ dương tính giả rất cao, trong khi nhiều thiết bị thực đã bị mất (thí nghiệm cho thấy rằng 99% thiết bị được phát hiện bởi những công cụ đó không thể được sử dụng cho các cuộc tấn công và 33% trong số những thiết bị đang hoạt động không phải là thiết bị được quan sát có khả năng dẫn đến một cuộc tấn công).

Giới thiệu Kasper, một trình quét thiết bị thực thi tạm thời (hoặc suy đoán). Nó sử dụng các chính sách phân tích tham nhũng để lập mô hình kẻ tấn công có khả năng khai thác các lỗ hổng phần mềm / phần cứng tùy ý theo một đường dẫn nhất thời. 

Về Casper

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

Lập mô hình kẻ tấn công có khả năng kiểm soát dữ liệu (ví dụ: thông qua massage bộ nhớ hoặc tiêm giá trị LVI), truy cập bí mật (ví dụ: thông qua truy cập ngoài giới hạn hoặc sử dụng sau khi rảnh rỗi) và làm rò rỉ những bí mật này (ví dụ: thông qua bộ nhớ cache, MDS- dựa trên hoặc các kênh bí mật dựa trên tranh chấp cảng). 

Khi thực hiện kiểm tra, thư viện thời gian chạy danh bạ hạt nhân bởi Kasper và xác minh rằng chúng hoạt động ở cấp LLVM. Trong quá trình xác minh, việc thực thi mã đầu cơ được mô phỏng bởi cơ chế khôi phục điểm kiểm tra, cơ chế này thực hiện cụ thể một nhánh mã được dự đoán không chính xác, sau đó nó trở lại trạng thái ban đầu trước khi bắt đầu phân nhánh.

Kasper cũng cố gắng mô hình hóa các lỗ hổng phần mềm và phần cứng khác nhau, phân tích ảnh hưởng của các hiệu ứng kiến ​​trúc và vi kiến ​​trúc và thực hiện các bài kiểm tra xác thực về các hành động có thể có 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à cho các bài kiểm tra fuzzing, một phiên bản sửa đổi của gói syzkaller.

Kết quả là Kasper đã phát hiện ra 1.379 thiết bị chưa từng được biết đến trước đó trong nhân Linux đã được cứng hóa. Chúng tôi đã xác nhận phát hiện của mình bằng cách chứng minh khai thác bằng chứng khái niệm đầu cuối cho một trong những thiết bị được tìm thấy.

Trong khi quét hạt nhân Linux bằng Kasper, 1379 thiết bị không xác định trước đó đã được xác định, điều này có thể dẫn đến rò rỉ dữ liệu trong quá trình thực thi các lệnh suy đoán.

Cần lưu ý rằng có lẽ chỉ một số trong số chúng có thể đưa ra các vấn đề thực sự, nhưng để cho thấy rằng có một mối nguy hiểm thực sự, và không chỉ là lý thuyết, một nguyên mẫu khai thác đang hoạt động đã được phát triển cho một trong những đoạn mã có vấn đề, dẫn đến rò rỉ thông tin bộ nhớ nhân.

Cuối cùng nếu bạn muốn biết thêm về nó về Kasper, bạn nên biết rằng mã nguồn Nó được phân phối theo giấy phép Apache 2.0.

Fuente: https://www.vusec.net


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.