Lỗ Hổng Microcode AMD: Nguyên Nhân, Khai Thác và Giảm Thiểu

Tổng Quan Về Lỗ Hổng

  • Miêu Tả Về Lỗ Hổng: Lỗ hổng xuất phát từ việc AMD sử dụng AES-CMAC như một hàm băm trong quy trình xác minh bản vá microcode. Quyết định thiết kế này cho phép các cuộc tấn công va chạm và tạo khóa RSA giả, cho phép kẻ tấn công vượt qua xác thực chữ ký microcode.
  • Tác Động: Lỗ hổng này làm giảm khả năng bảo mật dựa trên phần cứng, có thể dẫn đến việc thực thi các bản vá microcode độc hại. Điều này có thể làm tổn hại đến tính toàn vẹn của việc thực thi lệnh x86, bảo mật và tính toàn vẹn của dữ liệu trong ngữ cảnh đặc quyền CPU x86, cũng như môi trường thực thi SMM.

Nguyên Nhân Gốc

  • Thực Thi Mã Hóa Sai: Quy trình cập nhật microcode của AMD dựa vào chữ ký RSASSA-PKCS1-v1_5, được xác minh bằng AES-CMAC thay vì các hàm băm tiêu chuẩn như SHA-256. Điều này cho phép kẻ tấn công với kiến thức về khóa AES tạo ra các va chạm bằng cách tiêm các khối bù.
  • Khóa AES-CMAC Cứng: Khóa được sử dụng (2b7e151628aed2a6abf7158809cf4f3c) khớp với các vector thử nghiệm của NIST và vẫn nhất quán qua các thế hệ Zen, khiến nó dễ bị tấn công.

Khai Thác

  • Tạo Khóa Công Khai RSA Giả: Các nhà nghiên cứu đã chứng minh khả năng tạo ra các giá trị modulus hợp lệ băm thành đầu ra CMAC mong đợi của AMD, vượt qua các kiểm tra Montgomery.
  • Thao Tác Microcode Thông Qua Công Cụ Zentool: Nhóm đã phát hành *zentool*, một công cụ mã nguồn mở cho phép các bản vá microcode tùy chỉnh. Một bằng chứng khái niệm đã sửa đổi lệnh `RDRAND` để luôn trả về `4`, chứng minh khả năng thực thi mã tùy ý ở cấp vi kiến trúc.

Yêu Cầu Để Khai Thác

  • Quyền Truy Cập Ring 0: Quyền truy cập kernel cần thiết để ghi vào MSR 0xc0010020.
  • Thực Thi Liên Tục: Cuộc tấn công không bền vững qua các lần khởi động lại.
  • Nhắm Đến CPU: Cần thực hiện vá theo từng lõi thông qua taskset/isolcpus.

Giảm Thiểu

  • Cập Nhật Microcode: AMD đã phát hành các bản cập nhật microcode thay thế AES-CMAC bằng một hàm băm an toàn, phối hợp với firmware của Bộ xử lý Bảo mật để xác thực các bản vá trước khi khởi động.
  • Cập Nhật Firmware Bộ Xử Lý Bảo Mật: Các bản cập nhật này đảm bảo rằng các bản vá được xác thực trước khi tải, giảm thiểu các rủi ro ngay lập tức của lỗ hổng.

Tác Động Đối Với Ngành Công Nghiệp

  • Điện Toán Bảo Mật: Lỗ hổng này gây ra vấn đề cho sự xác thực SEV-SNP, được sử dụng trong điện toán đám mây để tăng cường cách ly và bảo mật của các máy khách ảo.
  • Bảo Mật Chuỗi Cung Ứng: Các OEM độc hại có thể tải trái phép các bản cập nhật bị thay đổi, làm tổn hại đến an ninh của toàn bộ chuỗi cung ứng.
  • Giới Hạn Nghiên Cứu: Phát hiện này làm ảnh hưởng đến các giả định trước đây về niềm tin dựa trên phần cứng, yêu cầu đánh giá lại các nguyên tắc bảo mật.

Kết Luận

Lỗ hổng microcode của AMD nhấn mạnh nhu cầu thiết yếu về các hàm băm mã hóa an toàn trong quy trình xác minh microcode. Nó nhấn mạnh tầm quan trọng của việc xác minh mở các nguyên tắc bảo mật phần cứng và nhấn mạnh sự cần thiết của việc thường xuyên cập nhật và thực hành firmware an toàn để duy trì các cơ chế bảo mật dựa trên phần cứng.