LVI là một loại tấn công mới vào cơ chế thực thi suy đoán trong CPU

Được phát hành thông tin về một loại tấn công mới LVI (Tải giá trị tiêm, CVE-2020-0551) trên cơ chế thực thi suy đoán trong CPU Intel, cơ chế này có thể được sử dụng để rò rỉ khóa và dữ liệu bí mật từ các vùng Intel SGX và các quy trình khác.

Một loại tấn công mới dựa trên việc thao túng các cấu trúc vi kiến ​​trúc tương tự được sử dụng trong các cuộc tấn công MDS (Lấy mẫu dữ liệu vi kiến ​​trúc), Bóng ma và sự tan chảy. Đồng thời, các cuộc tấn công mới không bị chặn bởi các phương pháp bảo vệ hiện có chống lại Meltdown, Spectre, MDS và các cuộc tấn công tương tự khác. Bảo vệ LVI hiệu quả đòi hỏi phải thay đổi phần cứng của CPU. Khi tổ chức bảo vệ theo chương trình, bằng cách thêm lệnh LFENCE của trình biên dịch sau mỗi thao tác tải từ bộ nhớ và thay thế lệnh RET bằng POP, LFENCE và JMP, quá nhiều chi phí sẽ được ghi lại - theo các nhà nghiên cứu, việc bảo vệ phần mềm hoàn chỉnh sẽ dẫn đến giảm hiệu suất gấp 2-19 lần.

Một phần khó khăn trong việc ngăn chặn vấn đề được bù đắp bởi thực tế là cuộc tấn công hiện mang tính lý thuyết hơn là thực tế (cuộc tấn công về mặt lý thuyết có thể xảy ra, nhưng rất khó thực hiện và chỉ có thể tái tạo trong các thử nghiệm tổng hợp).
Intel chiếm đoạt vấn đề có mức độ nguy hiểm vừa phải (5.6 trên 10) và phát hành cập nhật chương trình cơ sở và SDK cho môi trường SGX, trong đó nó đã cố gắng chặn cuộc tấn công bằng một giải pháp thay thế. Các phương thức tấn công được đề xuất hiện chỉ áp dụng cho bộ xử lý Intel, nhưng không thể loại trừ khả năng điều chỉnh LVI cho các bộ xử lý khác mà các cuộc tấn công lớp Meltdown có thể áp dụng được.

Vấn đề này được nhà nghiên cứu Jo Van Bulck từ Đại học Leuven xác định vào tháng 9 năm ngoái, sau đó, với sự tham gia của XNUMX nhà nghiên cứu từ các trường đại học khác, năm phương pháp tấn công cơ bản đã được phát triển, mỗi phương pháp cho phép tồn tại các phương thức tấn công cụ thể hơn. tùy chọn. Một cách độc lập, vào tháng XNUMX năm nay, các nhà nghiên cứu từ Bitdefender cũng đã phát hiện một trong những biến thể tấn công LVI và báo cáo cho Intel. Các biến thể tấn công được phân biệt bằng cách sử dụng các cấu trúc vi kiến ​​trúc khác nhau, chẳng hạn như bộ đệm lưu trữ (SB, Bộ đệm lưu trữ), bộ đệm điền (LFB, Bộ đệm điền dòng), bộ đệm chuyển ngữ cảnh FPU và bộ đệm cấp một (L1D), được sử dụng trước đây trong các cuộc tấn công như ZombieLoad, RIDL, Fallout, LazyFP, Báo trước и Meltdown.

LVI là một loại tấn công mới vào cơ chế thực thi suy đoán trong CPU

Chính danh dự LVI chống lại các cuộc tấn công MDS là MDS thao túng việc xác định nội dung của các cấu trúc vi kiến ​​trúc còn lại trong bộ đệm sau khi xử lý ngoại lệ suy đoán (lỗi) hoặc các hoạt động tải và lưu trữ, trong khi
Các cuộc tấn công LVI cho phép dữ liệu của kẻ tấn công được chèn 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 mã của nạn nhân sau đó. Bằng cách sử dụng các thao tác này, kẻ tấn công có thể trích xuất nội dung của cấu trúc dữ liệu riêng tư trong các quy trình khác khi thực thi một số mã nhất định trên lõi CPU mục tiêu.

LVI là một loại tấn công mới vào cơ chế thực thi suy đoán trong CPU

vấn đề khai thác trong mã của tiến trình nạn nhân nên gặp các chuỗi mã đặc biệt (tiện ích) trong đó giá trị do kẻ tấn công kiểm soát được tải và việc tải giá trị này sẽ gây ra các ngoại lệ (lỗi, hủy bỏ hoặc hỗ trợ), loại bỏ kết quả và thực hiện lại lệnh. Khi một ngoại lệ được xử lý, một cửa sổ suy đoán sẽ xuất hiện trong đó dữ liệu được xử lý trong tiện ích sẽ bị rò rỉ. Cụ thể, bộ xử lý bắt đầu thực thi một đoạn mã (tiện ích) ở chế độ suy đoán, sau đó xác định rằng dự đoán đó 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 hiện suy đoán sẽ được lưu vào bộ đệm L1D và bộ đệm vi kiến ​​trúc và có sẵn để truy xuất từ ​​chúng bằng cách sử dụng các phương pháp đã biết để xác định dữ liệu còn lại thông qua các kênh của bên thứ ba.

Ngoại lệ "hỗ trợ", không giống như ngoại lệ "lỗi", được bộ xử lý xử lý nội bộ mà không cần gọi trình xử lý phần mềm. Hỗ trợ có thể xảy ra, ví dụ: khi bit A (Đã truy cập) hoặc D (Bẩn) trong bảng trang bộ nhớ cần được cập nhật. Khó khăn chính trong việc thực hiện một cuộc tấn công vào các tiến trình khác là làm thế nào để bắt đầu sự hỗ trợ bằng cách thao túng tiến trình nạn nhân. Hiện tại không có cách nào đáng tin cậy để làm điều này, nhưng có thể chúng sẽ được tìm thấy trong tương lai. Khả năng thực hiện một cuộc tấn công cho đến nay chỉ được xác nhận đối với các vùng Intel SGX, các kịch bản khác chỉ mang tính lý thuyết hoặc có thể tái tạo trong điều kiện tổng hợp (yêu cầu thêm một số tiện ích nhất định vào mã)

LVI là một loại tấn công mới vào cơ chế thực thi suy đoán trong CPU

LVI là một loại tấn công mới vào cơ chế thực thi suy đoán trong CPU

Các vectơ tấn công có thể xảy ra:

  • Rò rỉ dữ liệu từ cấu trúc hạt nhân vào quy trình cấp người dùng. Khả năng bảo vệ của nhân Linux chống lại các cuộc tấn công Spectre 1, cũng như cơ chế bảo vệ SMAP (Ngăn chặn truy cập chế độ giám sát), làm giảm đáng kể khả năng xảy ra một cuộc tấn công LVI. Việc bổ sung thêm biện pháp bảo vệ cho kernel có thể cần thiết nếu các phương thức tấn công LVI đơn giản hơn được xác định trong tương lai.
  • Rò rỉ dữ liệu giữa các quy trình khác nhau. Cuộc tấn công yêu cầu sự hiện diện của một số đoạn mã nhất định trong ứng dụng và định nghĩa về phương thức ném ngoại lệ vào quy trình đích.
  • Rò rỉ dữ liệu từ môi trường máy chủ sang hệ thống khách. Cuộc tấn công được phân loại là quá phức tạp, đòi hỏi nhiều bước khó thực hiện và dự đoán hoạt động trong hệ thống.
  • Rò rỉ dữ liệu giữa các quy trình trong các hệ thống khách khác nhau. Vectơ tấn công gần giống với việc tổ chức rò rỉ dữ liệu giữa các quy trình khác nhau, nhưng cũng đòi hỏi các thao tác phức tạp để vượt qua sự cô lập giữa các hệ thống khách.

Được công bố bởi các nhà nghiên cứu một số nguyên mẫu với việc trình diễn các nguyên tắc thực hiện một cuộc tấn công, nhưng chúng vẫn chưa phù hợp để thực hiện các cuộc tấn công thực sự. Ví dụ đầu tiên cho phép bạn chuyển hướng thực thi mã suy đoán trong quy trình nạn nhân, tương tự như lập trình hướng trả về (ROP, Lập trình hướng trả về). Trong ví dụ này, nạn nhân là một quy trình được chuẩn bị đặc biệt chứa các tiện ích cần thiết (rất khó áp dụng một cuộc tấn công vào các quy trình thực sự của bên thứ ba). Ví dụ thứ hai cho phép chúng ta tham gia vào các phép tính trong quá trình mã hóa AES bên trong vùng Intel SGX và tổ chức rò rỉ dữ liệu trong quá trình thực thi các hướng dẫn suy đoán nhằm khôi phục giá trị của khóa được sử dụng để mã hóa.


Nguồn: opennet.ru

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