Đã khắc phục: Một cuộc tấn công thực thi đầu cơ mới tấn công Intel và AMD

Tin tức gần đây đã phá vỡ điều đóe một nhóm các nhà nghiên cứu từ ETH Zurich đã xác định được một cuộc tấn công mới đến cơ chế thực thi suy đoán của các bước nhảy gián tiếp trong CPU, cho phép trích xuất thông tin từ bộ nhớ nhân hoặc tổ chức một cuộc tấn công vào hệ thống chủ từ các máy ảo.

Các lỗ hổng được đặt tên mã là Đã sửa lại (đã được phân loại theo CVE-2022-29900, CVE-2022-29901) và có bản chất tương tự như các cuộc tấn công Spectre-v2.

Sự khác biệt bắt nguồn từ việc tổ chức thực thi mã tùy ý bằng cách xử lý lệnh "ret" (return), lệnh này truy xuất địa chỉ để nhảy từ ngăn xếp, thay vì nhảy gián tiếp bằng lệnh "jmp", tải địa chỉ từ bộ nhớ hoặc một thanh ghi CPU.

Về cuộc tấn công mới, nó được đề cập rằng kẻ tấn công có thể tạo điều kiện cho một dự đoán rẽ nhánh không chính xác và tổ chức một bước nhảy suy đoán có chủ đích đến một khối mã không được dự kiến ​​bởi logic thực thi của chương trình.

Phương sách cuối cùng, bộ xử lý sẽ xác định rằng dự đoán nhánh là không hợp lý và sẽ khôi phục hoạt động về trạng thái ban đầu, nhưng dữ liệu đã xử lý Trong quá trình thực hiện đầu cơ họ sẽ ngồi trong bộ nhớ cache và bộ đệm vi kiến ​​trúc. Nếu một khối được thực thi sai thực hiện truy cập bộ nhớ, thì việc thực thi suy đoán của nó sẽ dẫn đến việc cài đặt trong bộ đệm chung và đọc dữ liệu từ bộ nhớ.

Để xác định dữ liệu còn lại trong bộ nhớ cache sau khi thực hiện các thao tác suy đoán, kẻ tấn công có thể sử dụng các phương pháp xác định dữ liệu còn lại thông qua các kênh của bên thứ ba, ví dụ: phân tích các thay đổi về thời gian truy cập dữ liệu được lưu trong bộ nhớ cache và không được lưu trong bộ nhớ cache.

Để trích xuất có chủ đích thông tin từ các khu vực ở mức đặc quyền khác (ví dụ: từ bộ nhớ nhân), "thiết bị" được sử dụng: các tập lệnh có trong nhân, thích hợp để đọc suy đoán dữ liệu từ bộ nhớ, tùy thuộc vào điều kiện bên ngoài mà nó có thể bị ảnh hưởng bởi kẻ tấn công.

Để bảo vệ khỏi các cuộc tấn công lớp Spectre cổ điển, sử dụng lệnh rẽ nhánh gián tiếp và có điều kiện, hầu hết các hệ điều hành sử dụng kỹ thuật "retpoline", dựa trên việc thay thế các hoạt động nhánh gián tiếp bằng lệnh "ret", trong đó yêu cầu dự đoán trạng thái ngăn xếp riêng biệt đơn vị được sử dụng trong bộ xử lý, không sử dụng khối dự đoán nhánh.

Vào thời điểm giới thiệu retpoline vào năm 2018, thao tác địa chỉ giống như Spectre được cho là không thực tế đối với việc phân nhánh đầu cơ với lệnh "ret".

Các nhà nghiên cứu đã phát triển phương pháp tấn công Đã thử lại cho thấy khả năng tạo điều kiện vi kiến ​​trúc để bắt đầu quá trình chuyển đổi suy đoán bằng cách sử dụng lệnh "ret" và phát hành một bộ công cụ làm sẵn để xác định các chuỗi lệnh (tiện ích) phù hợp nhằm khai thác lỗ hổng trong nhân Linux khi các điều kiện đó xuất hiện.

Trong quá trình nghiên cứu, một khai thác làm việc đã được chuẩn bị cho phép, trên các hệ thống có CPU Intel, từ một quy trình không đặc quyền trong không gian người dùng trích xuất dữ liệu tùy ý từ bộ nhớ nhân với tốc độ 219 byte mỗi giây và với độ chính xác 98%.

En bộ xử lý AMD, hiệu quả khai thác cao hơn nhiều, vì tốc độ rò rỉ là 3,9 KB mỗi giây. Như một ví dụ thực tế, nó được chỉ ra cách sử dụng khai thác được đề xuất để xác định nội dung của tệp / etc / shadow. Trên các hệ thống có CPU Intel, một cuộc tấn công để xác định băm mật khẩu gốc được thực hiện trong 28 phút và trên các hệ thống có CPU AMD, trong 6 phút.

Cuộc tấn công đã được xác nhận đối với 6-8 thế hệ bộ vi xử lý Intel được phát hành trước quý 2019 năm 1 (bao gồm cả Skylake) và bộ xử lý AMD dựa trên vi kiến ​​trúc Zen 1, Zen 2+ và Zen 2021 được phát hành trước quý XNUMX năm XNUMX. Trên các mẫu bộ xử lý mới hơn, chẳng hạn như AMD Zen3 và Intel Alder Lake, cũng như bộ xử lý ARM, vấn đề bị chặn bởi các cơ chế bảo vệ hiện có. Ví dụ, việc sử dụng các hướng dẫn IBRS (Đầu cơ Hạn chế Chi nhánh Gián tiếp) giúp bảo vệ khỏi một cuộc tấn công.

Đã chuẩn bị một tập hợp các thay đổi cho nhân Linux và trình siêu giám sát Xen, ngăn chặn sự cố theo chương trình trên các CPU cũ hơn. Bản vá lỗi nhân Linux được đề xuất thay đổi 68 tệp, thêm 1783 dòng và xóa 387 dòng.

Thật không may, việc bảo vệ phát sinh chi phí đáng kể: trong các văn bản được thực hiện trên bộ xử lý AMD và Intel, sự suy giảm hiệu suất được ước tính là từ 14% đến 39%. Tốt hơn là sử dụng bảo vệ dựa trên hướng dẫn IBRS, có sẵn trong các thế hệ CPU Intel mới hơn và được hỗ trợ kể từ nhân Linux 4.19.

Cuối cùng, nếu bạn muốn biết thêm về nó, bạn có thể tham khảo chi tiết trong liên kết sau.


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