Hai cuộc tấn công vào cơ chế dự đoán kênh bộ đệm trong bộ xử lý AMD

Một nhóm các nhà nghiên cứu đến từ Đại học Kỹ thuật Graz (Áo), trước đây nổi tiếng với việc phát triển các phương pháp tấn công MDS, NetSpectre, Búa ném и ZombieLoad, đã tiến hành nghiên cứu về tối ưu hóa phần cứng dành riêng cho bộ xử lý AMD và đã phát triển hai phương thức tấn công kênh bên mới nhằm thao túng rò rỉ dữ liệu trong quá trình vận hành cơ chế dự đoán kênh bộ đệm LXNUMX của bộ xử lý AMD. Các kỹ thuật này có thể được sử dụng để làm giảm hiệu quả của việc bảo vệ ASLR, khôi phục các khóa trong quá trình triển khai AES dễ bị tấn công và tăng hiệu quả của cuộc tấn công Spectre.

Các vấn đề đã được xác định khi triển khai cơ chế dự đoán kênh (bộ dự đoán đường đi) trong bộ đệm dữ liệu cấp đầu tiên của CPU (L1D), được sử dụng để dự đoán kênh bộ đệm nào chứa một địa chỉ bộ nhớ nhất định. Việc tối ưu hóa được sử dụng trong bộ xử lý AMD dựa trên việc kiểm tra thẻ μ (μTag). μTag được tính bằng cách áp dụng hàm băm cụ thể cho địa chỉ ảo. Trong quá trình hoạt động, công cụ dự đoán kênh sử dụng μTag để xác định kênh bộ đệm từ bảng. Do đó, μTag cho phép bộ xử lý tự giới hạn chỉ truy cập vào một kênh cụ thể mà không cần tìm kiếm qua tất cả các tùy chọn, điều này giúp giảm đáng kể mức tiêu thụ năng lượng của CPU.

Hai cuộc tấn công vào cơ chế dự đoán kênh bộ đệm trong bộ xử lý AMD

Trong quá trình thiết kế ngược quá trình triển khai hệ thống dự đoán kênh trong các thế hệ bộ xử lý AMD khác nhau được phát hành từ năm 2011 đến 2019, hai kỹ thuật tấn công kênh bên mới đã được xác định:

  • Collide+Probe - cho phép kẻ tấn công theo dõi quyền truy cập bộ nhớ của các tiến trình chạy trên cùng một lõi CPU logic. Bản chất của phương pháp là sử dụng các địa chỉ ảo gây ra xung đột trong hàm băm dùng để tính μTag nhằm theo dõi việc truy cập bộ nhớ. Không giống như các cuộc tấn công Flush+Reload và Prime+Probe được sử dụng trên bộ xử lý Intel, Collide+Probe không sử dụng bộ nhớ dùng chung và hoạt động mà không cần biết về địa chỉ vật lý.
  • Tải+Tải lại - cho phép bạn xác định rất chính xác dấu vết truy cập bộ nhớ trên cùng một lõi CPU vật lý. Phương pháp này dựa trên thực tế là một ô nhớ vật lý chỉ có thể nằm trong bộ đệm L1D một lần. Những thứ kia. việc truy cập vào cùng một ô nhớ ở một địa chỉ ảo khác sẽ khiến ô đó bị loại khỏi bộ đệm L1D, cho phép theo dõi quyền truy cập bộ nhớ. Mặc dù cuộc tấn công dựa vào bộ nhớ dùng chung nhưng nó không xóa các dòng bộ đệm, cho phép thực hiện các cuộc tấn công lén lút mà không loại bỏ dữ liệu khỏi bộ đệm cấp cuối cùng.

Dựa trên các kỹ thuật Collide+Probe và Load+Reload, các nhà nghiên cứu đã chứng minh một số kịch bản tấn công kênh bên:

  • Khả năng sử dụng các phương pháp tổ chức kênh liên lạc gián tiếp ẩn giữa hai quy trình, cho phép truyền dữ liệu ở tốc độ lên tới 588 kB mỗi giây, được hiển thị.
  • Bằng cách sử dụng xung đột trong μTag, có thể giảm entropy cho các biến thể khác nhau của ASLR (Ngẫu nhiên hóa bố cục không gian địa chỉ) và bỏ qua tính năng bảo vệ ASLR trong nhân trên hệ thống Linux được cập nhật hoàn toàn. Khả năng thực hiện một cuộc tấn công nhằm giảm entropy ASLR cả từ ứng dụng người dùng và sử dụng mã JavaScript được thực thi trong môi trường hộp cát cũng như mã chạy trong môi trường khách khác đã được hiển thị.

    Hai cuộc tấn công vào cơ chế dự đoán kênh bộ đệm trong bộ xử lý AMD

  • Dựa trên phương pháp Collide+Probe, một cuộc tấn công đã được triển khai để khôi phục khóa mã hóa từ quá trình triển khai dễ bị tấn công (dựa trên bàn chữ T) Mã hóa AES.
  • Bằng cách sử dụng phương pháp Collide+Probe làm kênh thu thập dữ liệu, cuộc tấn công Spectre có thể trích xuất dữ liệu riêng tư từ kernel mà không cần sử dụng bộ nhớ dùng chung.

Lỗ hổng xảy ra trên bộ xử lý AMD dựa trên vi kiến ​​trúc
Máy ủi, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ và Zen2.
AMD đã được thông báo về vấn đề này vào ngày 23 tháng 2019 năm XNUMX, nhưng cho đến nay đã không công bố báo cáo với thông tin về việc chặn lỗ hổng. Theo các nhà nghiên cứu, vấn đề có thể bị chặn ở cấp độ cập nhật vi mã bằng cách cung cấp các bit MSR để vô hiệu hóa có chọn lọc hệ thống dự đoán kênh, tương tự như những gì Intel đã làm để kiểm soát việc vô hiệu hóa các cơ chế dự đoán nhánh.

Hai cuộc tấn công vào cơ chế dự đoán kênh bộ đệm trong bộ xử lý AMD

Nguồn: opennet.ru

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