Vài tuần trước chúng tôi đã chia sẻ ở đây trên blog tin tức về Lỗ hổng EntrySign cho phép tránh cơ chế xác minh chữ ký số trong quá trình cập nhật vi mã trong bộ xử lý AMD.
Cái gì Ban đầu có vẻ như lỗi này chỉ giới hạn ở thế hệ Zen 1 đến Zen 4, Hiện nay, nó được mở rộng sang các chip mới nhất như Ryzen 9000, EPYC 9005, Ryzen AI 300 và Ryzen 9000HX. Lỗ hổng này cho phép, trong một số điều kiện nhất định, vi mã CPU có thể bị sửa đổi bằng cách bỏ qua cơ chế xác minh chữ ký số, gây ảnh hưởng nghiêm trọng đến tính bảo mật của các hệ thống ảo hóa.
Gốc rễ của vấn đề nằm trong sử dụng thuật toán CMAC không phù hợp trong quá trình xác thực vi mã. Bộ xử lý AMD theo truyền thống sử dụng khóa RSA riêng tư để ký số vào nội dung của các bản cập nhật nàyvà một khóa công khai được bao gồm trong bản vá để xác minh tính xác thực của vi mã tại thời điểm tải. Tuy nhiên, hàm băm khóa công khai đảm bảo tính toàn vẹn này được tạo ra bằng AES-CMAC, một MAC mật mã không giống như hàm băm mạnh mẽ, không cung cấp bất kỳ đảm bảo nào chống lại va chạm.
Thiết kế này, thêm vào thực tế là AMD đã sử dụng một khóa mã hóa chung cho tất cả CPU của bạn kể từ Zen 1, đã cho phép các nhà nghiên cứu trích xuất khóa từ bất kỳ bộ xử lý bị ảnh hưởng nào và tái sử dụng nó để thao tác các bản vá vi mã trên các máy tính khác. Điều đáng ngạc nhiên là khóa này trùng khớp với một ví dụ công khai về phương pháp mã hóa NIST SP 800-38B, cho thấy việc sử dụng bừa bãi các phương pháp mã hóa tốt.
Mã vi mô giả, chữ ký hợp lệ
Từ điểm yếu này, Các nhà nghiên cứu đã tạo ra được khóa công khai có giá trị băm giống như khóa gốc của AMD., mà họ cho phép xây dựng các bản vá giả có khả năng bỏ qua các biện pháp kiểm soát tính toàn vẹn. Những va chạm này đạt được bằng cách chèn thêm các khối vào cuối vi mã, có vẻ ngẫu nhiên nhưng được tính toán cẩn thận, cho phép chữ ký số vẫn còn nguyên vẹn. Theo cách này, hành vi bên trong của bộ xử lý có thể được thay đổi mà không kích hoạt cơ chế cảnh báo.
Quá trình này đã được tạo điều kiện thuận lợi bởi các công cụ phân tích chẳng hạn như Zentool, một bộ tiện ích nguồn mở cho phép bạn nghiên cứu vi mã của AMD và chuẩn bị các bản vá đã sửa đổi. Để loại tấn công này có thể thực hiện được, kẻ tấn công phải có quyền Ring 0, tức là quyền truy cập vào cấp cao nhất của hệ điều hành, điều này khả thi trong môi trường ảo hóa nếu trình quản lý ảo bị xâm phạm hoặc thông qua cấu hình không an toàn của các công nghệ như VT-x hoặc AMD-V.
Tác động đến AMD SEV và Secure Virtualization
Ngoài việc thao túng vi mã, EntrySign còn gây ra mối đe dọa trực tiếp đến AMD SEV (Ảo hóa được mã hóa an toàn) và phần mở rộng SEV-SNP (Phân trang lồng nhau an toàn), các công nghệ được thiết kế để đảm bảo tính toàn vẹn và bảo mật của máy ảo ngay cả khi bị tấn công từ trình quản lý ảo hoặc hệ thống máy chủ. Lỗ hổng này có thể can thiệp vào các thanh ghi bộ xử lý được bảo vệ, sửa đổi các bảng trang lồng nhau và thay đổi hành vi của các hệ thống khách, gây nguy hiểm nghiêm trọng đến tính bảo mật của chúng.
Các biện pháp ứng phó và giảm thiểu AMD
Đối mặt với tình huống này, AMD đã bắt đầu phân phối các bản cập nhật vi mã để khắc phục lỗi.hoặc, mặc dù trên các hệ thống sử dụng SEV-SNP cũng cần phải cập nhật chương trình cơ sở của mô-đun SEV, yêu cầu phải cập nhật BIOS. Công ty đã gửi một gói hàng mới cho các nhà sản xuất được gọi là ComboAM5PI 1.2.0.3c AGESA, nhưng ước tính bản vá cuối cùng có thể mất vài tuần hoặc thậm chí vài tháng mới có thể cung cấp cho người dùng cuối.
Ngoài ra, Các kỹ sư của AMD đã đề xuất một bản vá cho hạt nhân Linux để chặn việc tải vi mã. không chính thức. Biện pháp này nhằm ngăn chặn sự lây lan của các bản vá lỗi do bên thứ ba sửa đổi, chẳng hạn như các bản vá do những người đam mê tạo ra từ các đoạn BIOS đã trích xuất. Trong thời gian chờ đợi, chúng tôi khuyến cáo bạn nên đợi bản cập nhật BIOS chính thức và không cài đặt các phiên bản chưa được xác minh.
Cuối cùng, nếu 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 theo dõi.