Lỗ hổng trong eBPF cho phép bỏ qua bảo vệ chống lại các cuộc tấn công Spectre

Hôm qua chúng tôi đã xuất bản ở đây trên blog tin tức về Aya, một thư viện để tạo trình điều khiển eBPF trong Rust và mục đích của việc này là tạo ra các trình điều khiển an toàn hơn hoặc Dự án Prossimo để đảm bảo bộ nhớ Nhân Linux với Rust (hai dự án tuyệt vời sẽ có nhiều điều để nói trong những tháng tiếp theo).

Và đó là trong một thời gian ngắn, nhiều lỗ hổng bảo mật khác nhau đã được báo cáo trong đó tận dụng các lỗi trong eBPF và đó là một vấn đề mà các nhà phát triển hạt nhân vẫn chưa ngừng hoạt động và có lẽ Rust là giải pháp.

Lý do để chạm vào chủ đề này là gần đây tin tức đã được phát hành mà họ đã xác định Lỗ hổng "khác" trong nhân Linux (CVE-2021-33624) cho bỏ qua bảo vệ chống lại các lỗ hổng cấp Spectre, vì điều này cho phép sử dụng hệ thống con eBPF để có thể xác định nội dung của bộ nhớ là kết quả của việc tạo ra các điều kiện để suy đoán thực hiện các hoạt động nhất định.

Nó được đề cập rằng lỗ hổng nó là do lỗi trong trình xác minh, được sử dụng để phát hiện lỗi và hoạt động không hợp lệ trong các chương trình BPF. Trình xác minh liệt kê các đường dẫn thực thi mã có thể có, nhưng bỏ qua bất kỳ tùy chọn phân nhánh nào không hợp lệ theo quan điểm của ngữ nghĩa kiến ​​trúc tập lệnh.

Khi chạy chương trình BPF, các tùy chọn phân nhánh không được người xác minh tính đến có thể được bộ xử lý dự đoán không chính xác và được thực thi ở chế độ suy đoán.

Trên các hệ thống bị ảnh hưởng, một chương trình BPF không có đặc quyền có thể khai thác lỗ hổng này để lọc nội dung của bộ nhớ nhân tùy ý (và do đó là tất cả bộ nhớ vật lý) thông qua một kênh phụ.

Ví dụ: khi phân tích hoạt động "tải", trình xác minh giả định rằng lệnh sử dụng một thanh ghi với một địa chỉ có giá trị luôn nằm trong các giới hạn đã chỉ định, nhưng kẻ tấn công có thể tạo điều kiện dưới đó bộ xử lý sẽ cố gắng thực hiện một giao dịch với địa chỉ không đáp ứng các điều kiện xác minh.

Cuộc tấn công Spectre yêu cầu sự hiện diện của một tập lệnh cụ thể trong mã đặc quyền, dẫn đến suy đoán thực hiện các hướng dẫn. Bằng cách thao tác các chương trình BPF được truyền để thực thi, có thể tạo ra các lệnh như vậy trong eBPF và lọc nội dung của bộ nhớ nhân và các vùng tùy ý của bộ nhớ vật lý thông qua các kênh bên.

Bên cạnh đó, bạn có thể đánh dấu một ghi chú về tác động của hiệu suất tài sản để bảo vệ khỏi lớp lỗ hổng Spectre.

Ghi chú này tóm tắt kết quả Tối ưu hóa trình gỡ lỗi rr (Record and Replay), từng được Mozilla tạo ra để gỡ lỗi các lỗi khó lặp lại trong Firefox. Việc lưu vào bộ đệm các lệnh gọi hệ thống được sử dụng để xác minh sự tồn tại của các thư mục đã giảm hoạt động "nguồn rr" cho dự án thử nghiệm từ 3 phút 19 giây xuống 36 giây.

Tác giả tối ưu hóa đã quyết định kiểm tra bao nhiêu sẽ thay đổi hiệu suất sau khi tắt bảo vệ Spectre. Sau khi khởi động hệ thống với tham số "mitigations = off", thời gian thực hiện của "rr sources" không tối ưu hóa là 2 phút 5 giây (nhanh hơn 1.6 lần) và khi tối ưu hóa là 33 giây (nhanh hơn 9%).

Thật kỳ lạ, vô hiệu hóa bảo vệ Spectre không chỉ giảm thời gian chạy của mã cấp hạt nhân trong 1.4 lần (từ 2 phút 9 giây đến 1 phút 32 giây), nó cũng giảm một nửa thời gian thực thi trong không gian người dùng (từ 1 phút 9 giây đến 33 giây), có lẽ do bộ nhớ đệm CPU giảm hiệu quả và TLB được đặt lại khi bật tính năng bảo vệ Spectre.

Sự cố đã xuất hiện kể từ khi phát hành hạt nhân 4.15 và đã được sửa chữa dưới dạng các bản vá lỗi, hiện tại vẫn chưa đạt được tất cả các bản phân phối, do đó, người dùng khuyến cáo rằng những ngày này họ nên thực hiện các bản cập nhật có liên quan ngay khi nhận được thông báo.

Si bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.


Để 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.