QuynhNhu
Senior Member
AMD Zenbleed Vulnerability Fix Tested: Some Apps Drop 15%, Gaming Unaffected
Gần đây một nhà nghiên cứu bảo mật của Google đã công bố lỗ hổng Zenbleed, lỗ hổng này làm lộ các thông tin nhạy cảm như khóa mã hóa và thông tin đăng nhập của người dùng khi chạy qua bộ xử lý AMD Zen 2, từ đó cho phép kẻ tấn công đánh cắp dữ liệu và xâm nhập hoàn toàn hệ thống.
Chúng tôi(Tom's Hardware) đã chạy bản vá, sau đó tiến hành các thử nghiệm để xác định tác động đến hiệu suất của việc kích hoạt bản vá mà AMD sẽ phát hành trong tương thời gian tới.
Thử nghiệm của chúng tôi cho thấy ở một số khối lượng công việc như bộ mã hóa và trình kết xuất, hiệu suất có thể sụt giảm tới 15%, trong khi các ứng dụng khác không bị ảnh hưởng hoặc thậm chí có thể tăng nhẹ sau khi chạy bản vá lỗi. Tuy nhiên, các thử nghiệm của chúng tôi không cho thấy bất kỳ sự sụt giảm hiệu suất đáng kể nào trong một số tựa game.
Lỗ hổng Zenbleed (CVE-2023-20593) ảnh hưởng đến toàn bộ sản phẩm Zen 2, kể cả các bộ xử lý EPYC, CPU Ryzen 3000/4000/5000 cũng bị vạ lây, nhưng AMD chỉ mới phát hành các bản vá firmware chính thức cho các CPU Server, các CPU Ryzen trên PC bị ảnh hưởng sẽ nhận được các bản vá firmware vào tháng 11-12 2023, khiến người dùng có khả năng bị tấn công trong thời gian chờ đợi.(Xem lịch trình phát hành bản vá tại đây)
Cũng như các lỗ hổng nguy hiểm khác, Zenbleed là một lỗ hổng nằm trong kiến trúc chip, vì vậy trừ khi cuộc tấn công được thông qua malware đã biết, một cuộc tấn công trực tiếp sẽ không thể phát hiện được đối với trình quét malware hoặc các phương pháp quét virus truyền thống khác.
Tại thời điểm công bố lỗ hổng, AMD nói họ chả biết tý gì về lỗ hổng Zenbleed đang bị lợi dụng ngoài kia, điều này cũng dễ hiểu, bản chất của lỗ hổng có nghĩa là một cuộc tấn công sẽ không thể phát hiện được.
Tavis Ormandy, người đã phát hiện ra lỗi đã phát hành mã POC (Proof Of Concept code that demonstrates an exploit) cho phép chúng ta hình dung ra cách hoạt động của các cuộc tấn công bằng cách sử dụng phương pháp này. AMD cho biết vấn đề có thể khắc phục được, nhưng các bản vá firmware sẽ dẫn đến việc giảm hiệu suất chưa được xác định, hiệu suất thay đổi tùy theo khối lượng công việc.
Một khi cuộc tấn công Zenbleed diễn ra, kẻ tấn công có thể trích xuất dữ liệu với tốc độ 30Kbps trên mỗi core, từ đó đánh cắp dữ liệu đi qua các thanh ghi bên trong CPU(càng nhiều core, lấy dữ liệu càng lẹ). Cuộc tấn công hoạt động trên tất cả các phần mềm chạy trong hệ thống, bao gồm các máy ảo, sandbox, container, và các process, gây ra mối đe dọa đáng kể cho các nhà cung cấp dịch vụ đám mây và khách hàng của họ. Điều này giải thích tại sao AMD ưu tiên các bản vá microcode cho các bộ xử lý EPYC, còn người dùng PC Ryzen phải đợi đến cuối năm nay.
Chúng tôi(Tom's Hardware) đã chạy bản vá, sau đó tiến hành các thử nghiệm để xác định tác động đến hiệu suất của việc kích hoạt bản vá mà AMD sẽ phát hành trong tương thời gian tới.
Thử nghiệm của chúng tôi cho thấy ở một số khối lượng công việc như bộ mã hóa và trình kết xuất, hiệu suất có thể sụt giảm tới 15%, trong khi các ứng dụng khác không bị ảnh hưởng hoặc thậm chí có thể tăng nhẹ sau khi chạy bản vá lỗi. Tuy nhiên, các thử nghiệm của chúng tôi không cho thấy bất kỳ sự sụt giảm hiệu suất đáng kể nào trong một số tựa game.
Lỗ hổng Zenbleed (CVE-2023-20593) ảnh hưởng đến toàn bộ sản phẩm Zen 2, kể cả các bộ xử lý EPYC, CPU Ryzen 3000/4000/5000 cũng bị vạ lây, nhưng AMD chỉ mới phát hành các bản vá firmware chính thức cho các CPU Server, các CPU Ryzen trên PC bị ảnh hưởng sẽ nhận được các bản vá firmware vào tháng 11-12 2023, khiến người dùng có khả năng bị tấn công trong thời gian chờ đợi.(Xem lịch trình phát hành bản vá tại đây)
Cũng như các lỗ hổng nguy hiểm khác, Zenbleed là một lỗ hổng nằm trong kiến trúc chip, vì vậy trừ khi cuộc tấn công được thông qua malware đã biết, một cuộc tấn công trực tiếp sẽ không thể phát hiện được đối với trình quét malware hoặc các phương pháp quét virus truyền thống khác.
Tại thời điểm công bố lỗ hổng, AMD nói họ chả biết tý gì về lỗ hổng Zenbleed đang bị lợi dụng ngoài kia, điều này cũng dễ hiểu, bản chất của lỗ hổng có nghĩa là một cuộc tấn công sẽ không thể phát hiện được.
Tavis Ormandy, người đã phát hiện ra lỗi đã phát hành mã POC (Proof Of Concept code that demonstrates an exploit) cho phép chúng ta hình dung ra cách hoạt động của các cuộc tấn công bằng cách sử dụng phương pháp này. AMD cho biết vấn đề có thể khắc phục được, nhưng các bản vá firmware sẽ dẫn đến việc giảm hiệu suất chưa được xác định, hiệu suất thay đổi tùy theo khối lượng công việc.
Một khi cuộc tấn công Zenbleed diễn ra, kẻ tấn công có thể trích xuất dữ liệu với tốc độ 30Kbps trên mỗi core, từ đó đánh cắp dữ liệu đi qua các thanh ghi bên trong CPU(càng nhiều core, lấy dữ liệu càng lẹ). Cuộc tấn công hoạt động trên tất cả các phần mềm chạy trong hệ thống, bao gồm các máy ảo, sandbox, container, và các process, gây ra mối đe dọa đáng kể cho các nhà cung cấp dịch vụ đám mây và khách hàng của họ. Điều này giải thích tại sao AMD ưu tiên các bản vá microcode cho các bộ xử lý EPYC, còn người dùng PC Ryzen phải đợi đến cuối năm nay.
Nếu bạn xem tweet trên, bạn có thể thấy lổ hổng Zenbleed đang hoạt động. Zenbleed lợi dụng công cụ thực thi suy đoán của CPU để đánh cắp dữ liệu, nhưng nó không trực tiếp tấn công vào engine như ở các lỗ hổng Meltdown và Spectre. Thay vào đó, lổ hổng Zenbleed use-after-free lợi dụng hành vi khôi phục không chính xác của AMD sau khi thanh ghi được giải phóng do định hướng sai nhánh cho lệnh vectơ (vzeroupper), từ đó cho phép lấy được dữ liệu (giải thích kỹ hơn ở đây ).
AMD nói về lỗ hổng này 1 cách ngắn gọn: Trong các trường hợp vi kiến trúc cụ thể, một thanh ghi trong CPU Zen 2 có thể không được ghi chính xác về 0. Điều này có thể khiến dữ liệu từ một quy trình và(hoặc) một luồng khác được lưu trữ trong thanh ghi YMM, điều này có thể cho phép kẻ tấn công truy cập vào thông tin nhạy cảm.
Lỗ hổng Zenbleed nằm trong một danh sách dài các lỗi chip đã được phát hiện trong vài năm qua - bao gồm các lỗ hổng bổ sung gần đây, như lỗ hổng AMD Inception hoạt động trên kiến trúc Zen 3 và 4 và có thể sụt giảm hiệu suất đáng kể ở một số khối lượng công việc tại DataCenter. Cũng như các lỗ hổng GDS/Downfall của Intel, ảnh hưởng đến các chip từ thế hệ Skylake đến Rocket Lake, có thể dẫn đến giảm hiệu suất tới 39% trong một số khối lượng công việc.(chúng tôi đang chờ các bản vá trên PC kiểm tra)
Cách kích hoạt bản vá Zenbleed bằng phần mềm:
AMD nói về lỗ hổng này 1 cách ngắn gọn: Trong các trường hợp vi kiến trúc cụ thể, một thanh ghi trong CPU Zen 2 có thể không được ghi chính xác về 0. Điều này có thể khiến dữ liệu từ một quy trình và(hoặc) một luồng khác được lưu trữ trong thanh ghi YMM, điều này có thể cho phép kẻ tấn công truy cập vào thông tin nhạy cảm.
Lỗ hổng Zenbleed nằm trong một danh sách dài các lỗi chip đã được phát hiện trong vài năm qua - bao gồm các lỗ hổng bổ sung gần đây, như lỗ hổng AMD Inception hoạt động trên kiến trúc Zen 3 và 4 và có thể sụt giảm hiệu suất đáng kể ở một số khối lượng công việc tại DataCenter. Cũng như các lỗ hổng GDS/Downfall của Intel, ảnh hưởng đến các chip từ thế hệ Skylake đến Rocket Lake, có thể dẫn đến giảm hiệu suất tới 39% trong một số khối lượng công việc.(chúng tôi đang chờ các bản vá trên PC kiểm tra)
Cách kích hoạt bản vá Zenbleed bằng phần mềm:
Chúng tôi đã kích hoạt bản vá Zenbleed bằng cách sử dụng phương pháp phần mềm — không phải phương pháp dựa trên phần cứng sẽ được sử dụng trong các bản vá firmware sắp tới của AMD. Do đó, có thể phương pháp vá lỗi này sẽ không hiệu quả bằng phương pháp cập nhật microcode, và cũng không đảm bảo rằng sự sụt giảm về hiệu suất sẽ thấp hơn so với các bản vá bằng microcode.
AMD cũng đã xác nhận rằng đây là một phương pháp khả thi để vá hệ thống, nhưng đây chỉ là một bản vá tạm thời, bản vá này sẽ không tồn tại sau khi khởi động lại, nghĩa là hệ thống của bạn sẽ trở về trạng thái không được bảo vệ sau khi hệ thống khởi động lại.
Rõ ràng, điều đó không thể áp dụng được đối với người dùng bình thường nhưng nó cho phép chúng tôi tiến hành thử nghiệm để đánh giá tác động của bản vá. Đương nhiên, bản sửa lỗi firmware vẫn sẽ hoạt động sau khi khởi động lại.
Chúng tôi vá lỗi này bằng cách đặt tham số MSR với RWEverything, một công cụ miễn phí thường được các kỹ sư thuộc nhiều chuyên ngành sử dụng để điều khiển hệ thống ở các cấp thấp nhất. Không may là bạn phải tắt Tính toàn vẹn bộ nhớ HVCI và Microsoft Vulnerable Driver Blocklist để sử dụng bản vá này. Điều đó có nghĩa là mặc dù giải pháp này khắc phục được một lỗ hổng nhưng nó cũng mở ra cơ hội cho các cuộc tấn công tiềm ẩn khác, vì vậy hãy cẩn thận khi sử dụng giải pháp này.
AMD cũng đã xác nhận rằng đây là một phương pháp khả thi để vá hệ thống, nhưng đây chỉ là một bản vá tạm thời, bản vá này sẽ không tồn tại sau khi khởi động lại, nghĩa là hệ thống của bạn sẽ trở về trạng thái không được bảo vệ sau khi hệ thống khởi động lại.
Rõ ràng, điều đó không thể áp dụng được đối với người dùng bình thường nhưng nó cho phép chúng tôi tiến hành thử nghiệm để đánh giá tác động của bản vá. Đương nhiên, bản sửa lỗi firmware vẫn sẽ hoạt động sau khi khởi động lại.
Chúng tôi vá lỗi này bằng cách đặt tham số MSR với RWEverything, một công cụ miễn phí thường được các kỹ sư thuộc nhiều chuyên ngành sử dụng để điều khiển hệ thống ở các cấp thấp nhất. Không may là bạn phải tắt Tính toàn vẹn bộ nhớ HVCI và Microsoft Vulnerable Driver Blocklist để sử dụng bản vá này. Điều đó có nghĩa là mặc dù giải pháp này khắc phục được một lỗ hổng nhưng nó cũng mở ra cơ hội cho các cuộc tấn công tiềm ẩn khác, vì vậy hãy cẩn thận khi sử dụng giải pháp này.
Tính toàn vẹn bộ nhớ HVCI: một tính năng bảo mật gây tranh cãi có thể dẫn đến mất hiệu suất.
Tiếp theo là chọn biểu tượng MSR trong chương trình, rồi chọn User List để tạo đăng ký với name=0xC0011029. Bạn có thể đặt tên bất kỳ, ở đây chúng tôi đặt tên là Zen 2. Sau đó, bạn thay đổi bit 9 thành "1" và bấm vào Done, hệ thống sẽ được bảo vệ khỏi kẻ tấn công đang cố gắng khai thác lỗ hổng Zenbleed.
Cuộc tấn công Zenbleed đánh cắp dữ liệu ở tốc độ 30Kb/giây trên mỗi core, vì thế nó càng chạy nhanh hơn trên các chip có số lượng core lớn hơn. Do đó, chúng tôi đã thử nghiệm hai bộ xử lý chạy Zen 2 với số lượng lõi khác nhau:
Ryzen 9 3950X 16 nhân 32 luồng
Ryzen 5 3600 6 nhân 12 luồng.
Main MSI MEG X570 Godlike
DDR4 3200 32GB
tản nhiệt Corsair H150i
Windows 11 được cập nhật đầy đủ
Ảnh hưởng của bản vá Zenbleed đến hiệu suất chơi game:Cuộc tấn công Zenbleed đánh cắp dữ liệu ở tốc độ 30Kb/giây trên mỗi core, vì thế nó càng chạy nhanh hơn trên các chip có số lượng core lớn hơn. Do đó, chúng tôi đã thử nghiệm hai bộ xử lý chạy Zen 2 với số lượng lõi khác nhau:
Ryzen 9 3950X 16 nhân 32 luồng
Ryzen 5 3600 6 nhân 12 luồng.
Main MSI MEG X570 Godlike
DDR4 3200 32GB
tản nhiệt Corsair H150i
Windows 11 được cập nhật đầy đủ
Tin tốt cho các game thủ, bản vá Zenbleed có rất ít hoặc không có sự sụt giảm đáng kể nào với FPS trung bình và 99%min ở 1080p. Chúng tôi đo được mức chênh lệch nhỏ hơn 1% trong 2 phép đo trên,
Chúng tôi đã thử nghiệm năm tựa game để tìm kiếm bất kỳ sự khác biệt có ý nghĩa nào, nhưng nhìn chung, cấu hình được vá và chưa được vá gần như giống hệt nhau khi chơi game ở res 1080p, với Watch Dogs Legion, Cyberpunk 2077, Far Cry 6, Hitman 3 và Warhammer 3 đều mang lại hiệu suất tương đương trong các thử nghiệm của chúng tôi . Đương nhiên, một số trò chơi có thể bị ảnh hưởng theo nhiều cách khác nhau, nhưng kết quả thử nghiệm của chúng tôi cho thấy mọi tác động đều có thể không đáng chú ý.
Chúng tôi đã thử nghiệm năm tựa game để tìm kiếm bất kỳ sự khác biệt có ý nghĩa nào, nhưng nhìn chung, cấu hình được vá và chưa được vá gần như giống hệt nhau khi chơi game ở res 1080p, với Watch Dogs Legion, Cyberpunk 2077, Far Cry 6, Hitman 3 và Warhammer 3 đều mang lại hiệu suất tương đương trong các thử nghiệm của chúng tôi . Đương nhiên, một số trò chơi có thể bị ảnh hưởng theo nhiều cách khác nhau, nhưng kết quả thử nghiệm của chúng tôi cho thấy mọi tác động đều có thể không đáng chú ý.