Biến thể Spectre v2 mới khiến CPU Intel, AMD và Arm có nguy cơ rò rỉ dữ liệu
Các nhà nghiên cứu vừa công bố một biến thể mới của tấn công Spectre v2 mang tên Branch Target Reuse (BTR), nhắm vào trình biên dịch JIT trong nhân hệ điều hành, trình duyệt web và các runtime. Lỗ hổng ảnh hưởng đến CPU của cả Intel, AMD lẫn Arm, và hiện chưa có bản vá phần cứng nào xử lý triệt để.

Biến thể Spectre v2 mới khiến CPU Intel, AMD và Arm có nguy cơ rò rỉ dữ liệu
Các nhà nghiên cứu từ nhóm VUSec thuộc Đại học Vrije Universiteit Amsterdam (Hà Lan) và Scuola Superiore Sant'Anna (Ý) vừa công bố một biến thể mới của tấn công Spectre v2, ảnh hưởng đến các hệ thống dùng CPU Intel, AMD và Arm. Biến thể này được đặt tên là Branch Target Reuse (BTR), nhắm trực tiếp vào các trình biên dịch just-in-time (JIT) — thành phần cốt lõi trong nhân hệ điều hành, trình duyệt web và nhiều runtime phổ biến.
Kẻ tấn công có khả năng chạy mã trên máy mục tiêu có thể lợi dụng BTR để đánh cắp dữ liệu nhạy cảm trong bộ nhớ, chẳng hạn như hàm băm mật khẩu. Các cuộc tấn công khởi phát từ trang web độc hại cũng được đánh giá là khả thi, dù nhóm nghiên cứu chưa xây dựng được exploit trình duyệt hoàn chỉnh.
Cơ chế tấn công nằm ở dự đoán nhánh
Spectre v2 BTR khai thác cách vi xử lý xử lý đoạn mã thay đổi trong lúc chạy. Điểm mấu chốt nằm ở chỗ: dù CPU hiện đại có thể khôi phục tính nhất quán kiến trúc sau khi mã tự sửa đổi, chúng không nhất thiết vô hiệu hóa các mục dự đoán nhánh gián tiếp cũ (tức là các đích nhánh đã lỗi thời).
Minh họa tấn công khai thác lỗ hổng CPU
Trong các engine JIT, những dự đoán cũ này có thể tồn tại lâu hơn cả đoạn mã đã sinh ra chúng. Khi mã mới được ghi vào cùng vùng nhớ, các dự đoán cũ bị tái sử dụng — tạo ra thứ mà nhóm nghiên cứu gọi là speculative execute-after-free. Kẻ tấn công có thể chiếm quyền điều khiển thực thi suy đoán (speculative execution) để chuyển sang mã mới tại các offset đã lỗi thời.
Nhóm nghiên cứu đã phân tích Linux cBPF, runtime GraalVM của Oracle và SpiderMonkey — engine JavaScript kiêm WebAssembly của Firefox. Họ xây dựng thành công hai exploit end-to-end nhắm vào nhân Linux.
Exploit trên nhân Linux rò rỉ hàm băm mật khẩu root
Các exploit này lợi dụng classic BPF (cBPF). Trong khi chỉ người dùng đặc quyền mới truy cập được eBPF JIT, thì cBPF — phiên bản tiền nhiệm nhưng vẫn rất mạnh — vẫn có thể dùng bởi các chương trình không đặc quyền. Seccomp, lọc socket và lọc gói tin trong những ứng dụng như Docker và Chrome đều dựa vào cBPF.
Trên CPU Intel đời mới, exploit có thể rò rỉ bộ nhớ tùy ý và vượt qua mọi cơ chế giảm thiểu đang bật. Theo nhóm nghiên cứu, exploit vẫn trích xuất được thông tin nhạy cảm ngay cả khi hệ thống đã cập nhật đầy đủ và đang ở cấu hình bảo mật mặc định.
"Exploit của chúng tôi rò rỉ 8 byte mỗi giây. Nghe có vẻ chậm, nhưng với kỹ thuật truy vết con trỏ cẩn thận, chúng tôi chỉ cần rò rỉ một lượng nhỏ dữ liệu để tiếp cận bí mật." — nhóm nghiên cứu cho biết.
Trong bản demo, họ dùng cuộc tấn công để định vị và rò rỉ hàm băm mật khẩu root sau khi nó được nạp vào bộ nhớ.
Trình duyệt và runtime sandbox cũng bị ảnh hưởng
Với Firefox, cuộc tấn công sẽ khởi phát từ một trang web độc hại chạy mã JavaScript trong trình duyệt của nạn nhân. Do Mozilla chưa hoàn tất triển khai site isolation, nội dung từ các tab khác có thể chia sẻ không gian địa chỉ với kẻ tấn công, khiến dữ liệu đó bị lộ.
Bản proof-of-concept của nhóm nghiên cứu cho thấy các mục nhánh lỗi thời tồn tại trong SpiderMonkey trên vi xử lý Intel đủ lâu để bị tái sử dụng. Họ ước tính dữ liệu có thể rò rỉ với tốc độ vài chục byte mỗi giây, nhưng cần thêm nghiên cứu để tạo exploit trình duyệt hoàn chỉnh.
Với GraalVM, BTR có thể cho phép kẻ tấn công bỏ qua một cách suy đoán lớp che bộ nhớ vốn bảo vệ chế độ sandbox nghiêm ngặt nhất của runtime này trước Spectre. Nhóm nghiên cứu tái sử dụng được địa chỉ bộ nhớ một cách ổn định, nhưng quá trình biên dịch mã và thu gom rác của GraalVM đã xóa các mục nhánh cũ trước khi chúng bị khai thác. Dù vậy, họ nhận định hạn chế này "có vẻ không mang tính cốt lõi".
Giải pháp vá lỗi phụ thuộc vào phần mềm
Vấn đề đã được báo cáo tới các nhà sản xuất chip và nhà phát triển phần mềm liên quan, và tất cả đều xác nhận nghiên cứu. Phía các hãng chip chỉ ra rằng những cơ chế sẵn có như rào chắn dự đoán nhánh gián tiếp (IBPB) có thể giảm thiểu BTR, đồng thời khẳng định bản vá cần được triển khai ở tầng phần mềm.
Các nhà phát triển nhân Linux đã giới thiệu một bản giảm thiểu trên x86, kích hoạt IBPB trên mọi nhân CPU mỗi khi một chương trình cBPF được đặt vào vùng nhớ từng dùng bởi mã BPF đã thực thi trước đó. Oracle đã tung ra một số biện pháp giảm thiểu, còn Mozilla hiện ưu tiên hoàn tất site isolation hơn là các giải pháp dựa trên IBPB.
Nhóm nghiên cứu xác nhận hành vi gốc này trên mọi CPU họ kiểm thử, từ Intel, AMD đến Arm.
"Không có CPU hiện tại nào có cơ chế giữ hai thứ này đồng bộ, nên cho đến khi các nhà sản xuất bổ sung, CPU của bạn vẫn dễ bị tổn thương."
Các cơ chế bảo vệ luồng điều khiển ở tầng phần cứng như IBT trên x86 và BTI trên Arm khiến việc khai thác khó hơn nhưng không loại bỏ hoàn toàn mối đe dọa. CPU Intel đời cũ vẫn có thể thực thi suy đoán lệnh trước khi kiểm tra, và Lion Cove là thế hệ Intel sớm nhất mà nhóm nghiên cứu xác định đã thoát khỏi điều kiện đua (race condition) này.
Tuy nhiên, ngay cả trên CPU không có race condition, nhóm nghiên cứu vẫn vượt qua được IBT khi tính năng constant blinding bị tắt — dù họ mô tả sự kết hợp giữa IBT không race và constant blinding là một lớp phòng thủ mạnh hơn nhiều.
Chuyên gia bảo mật phân tích lỗ hổng
SecurityWeek đã liên hệ với Intel, AMD và Arm để lấy ý kiến. AMD cho biết bài báo của nhóm nghiên cứu không tiết lộ lỗ hổng mới nào trong sản phẩm của họ, và lưu ý kỹ thuật được mô tả đã được giảm thiểu bởi hướng dẫn hiện hành về các cuộc tấn công Spectre v2. Intel và Arm chưa phản hồi yêu cầu bình luận.
Ý nghĩa với người dùng và doanh nghiệp tại Việt Nam
Với người dùng cá nhân và doanh nghiệp Việt Nam đang vận hành hạ tầng trên nền tảng Intel, AMD hoặc Arm — từ máy chủ đám mây đến máy trạm và thiết bị di động — đây là lời nhắc nhở rằng lỗ hổng vi kiến trúc vẫn là mối đe dọa dai dẳng, khó xử lý triệt để bằng phần cứng.
Các khuyến nghị thiết thực bao gồm:
- Cập nhật nhân hệ điều hành và trình duyệt lên phiên bản mới nhất để nhận các bản giảm thiểu từ nhà phát triển.
- Ưu tiên các nền tảng đã triển khai site isolation đầy đủ để hạn chế rò rỉ dữ liệu giữa các tab.
- Hạn chế truy cập các trang web không rõ nguồn gốc, đặc biệt khi duyệt web bằng các trình duyệt chưa có cơ chế cô lập tiến trình hoàn chỉnh.
- Với hệ thống quan trọng, cân nhắc áp dụng các biện pháp phòng thủ nhiều lớp và theo dõi thông tin từ nhà cung cấp chip.
Câu chuyện BTR một lần nữa cho thấy cuộc chiến giữa tấn công và phòng thủ trong lĩnh vực vi kiến trúc CPU vẫn chưa có hồi kết. Khi mà các nhà sản xuất chip đẩy trách nhiệm vá lỗi về phía phần mềm, người dùng cuối cần chủ động cập nhật và nâng cao nhận thức bảo mật để giảm thiểu rủi ro.


