1 điểm bởi GN⁺ 2025-05-14 | 1 bình luận | Chia sẻ qua WhatsApp
  • Một lỗ hổng bảo mật mới trên CPU Intel có tên Branch Privilege Injection đã được phát hiện do race condition trong bộ dự đoán nhánh
  • Cuộc tấn công này trở nên khả thi do cập nhật bất đồng bộ và sự đồng bộ không đầy đủ giữa các miền bảo mật
  • Các biện pháp giảm thiểu phần cứng hiện có như eIBRSIBPB bị vô hiệu hóa trong race condition
  • Intel giảm thiểu lỗ hổng này bằng cập nhật microcode, nhưng có ảnh hưởng đến hiệu năng
  • Lỗ hổng ảnh hưởng đến mọi CPU Intel từ thế hệ 9 trở đi và xảy ra bất kể hệ điều hành

Tổng quan về tấn công Branch Privilege Injection

  • Branch Privilege Injection là một lỗ hổng bảo mật khôi phục lại kiểu tấn công chèn đích nhánh thuộc họ Spectre-BTI theo một cách mới
  • Trong 6 năm qua, các cơ chế phòng vệ Spectre ở cấp phần cứng trên CPU Intel đã phát huy hiệu quả, nhưng nghiên cứu lần này chứng minh rằng chúng có thể bị vượt qua do race condition
  • Bộ dự đoán nhánh hoạt động bất đồng bộ với luồng lệnh, nên trong một số tình huống có thể xuất hiện các bản cập nhật bị trễ từ vài chục đến vài trăm chu kỳ, khoảng 10~100 chu kỳ
  • Khi quá trình cập nhật của bộ dự đoán nhánh đang diễn ra mà có chuyển đổi đặc quyền (ví dụ: user-kernel, guest-hypervisor) hoặc IBPB được thực thi, bản cập nhật đó có thể bị gán nhầm sang chế độ đặc quyền mới
  • Hiện tượng này được gọi là Branch Predictor Race Condition, và do đó có thể dẫn đến rò rỉ thông tin bộ nhớ nhạy cảm

Trình diễn tấn công và mức độ ảnh hưởng

  • Bằng phương pháp tấn công này, tốc độ rò rỉ bộ nhớ tùy ý trên Ubuntu 24.04 (đã áp dụng bản vá mới nhất và các cơ chế giảm thiểu mặc định) đạt 5.6KiB/s
  • Có video trình diễn tấn công thành công trên CPU Intel Raptor Lake (thế hệ 13)

Các biện pháp giảm thiểu bị ảnh hưởng

  • eIBRS: cơ chế bảo mật được đưa vào các CPU Intel từ thế hệ 9 (Coffee Lake Refresh), tách biệt dự đoán nhánh gián tiếp theo từng miền bảo mật.
  • IBPB: do eIBRS chỉ ngăn các cuộc tấn công giữa các miền bảo mật phần cứng, IBPB có chức năng vô hiệu hóa toàn bộ dự đoán nhánh gián tiếp để bảo vệ thêm cho các ranh giới bảo mật như máy ảo không đáng tin cậy
  • Cả hai đều là các biện pháp giảm thiểu được khuyến nghị làm mặc định bảo mật trong những môi trường được chỉ định

Phân tích chi tiết Branch Predictor Race Condition

  • Khi xuất hiện race condition trong bộ dự đoán nhánh, các bảo đảm bảo mật của eIBRS và IBPB bị vô hiệu hóa
  • Khi chuyển đổi đặc quyền xảy ra trong lúc thực thi lệnh, bản cập nhật dự đoán nhánh đang diễn ra có thể bị quy sai sang miền bảo mật mới
  • Ngay cả khi thực hiện IBPB, bản cập nhật dự đoán đang dang dở cũng không bị flush mà vẫn còn lại trong bộ dự đoán, gây ra vấn đề bảo mật

Biện pháp giảm thiểu đối với Branch Predictor Race Condition

  • Intel đã phát triển cập nhật microcode cho các bộ xử lý bị ảnh hưởng, và đã xác nhận thực nghiệm việc chặn tấn công trên Alder Lake
  • Khi áp dụng biện pháp giảm thiểu này, Alder Lake bị suy giảm hiệu năng tối đa 2.7%
  • Các chiến lược giảm thiểu thay thế bằng phần mềm cũng cho thấy overhead hiệu năng từ 1.6% (Coffee Lake Refresh) đến 8.3% (Rocket Lake)
  • Thông tin chi tiết hơn được cung cấp trong bài báo nghiên cứu

Tài liệu bổ sung

  • Bài báo nghiên cứu cốt lõi về Branch Privilege Injection dự kiến sẽ được trình bày tại USENIX Security 2025
  • Sẽ có thêm một bài trình bày tập trung vào phát hiện lỗ hổng và exploit tại Black Hat USA 2025
  • Mã nguồn cho tấn công và thí nghiệm được công bố trên github

FAQ

1. Máy tính của tôi có bị ảnh hưởng không?

  • Mọi bộ xử lý Intel từ thế hệ 9 (Coffee Lake Refresh) trở đi đều bị ảnh hưởng bởi Branch Privilege Injection
  • Hiện tượng IBPB bị vô hiệu hóa cũng đã được xác nhận trên các sản phẩm từ thế hệ 7 (Kaby Lake)

2. CPU không phải Intel có bị ảnh hưởng không?

  • Theo kết quả phân tích, vấn đề này không được phát hiện trên các hệ thống AMD và ARM

3. Chỉ Linux bị ảnh hưởng thôi sao?

  • PoC được viết cho Linux, nhưng vấn đề gốc nằm ở phần cứng
  • Mọi hệ điều hành chạy trên phần cứng bị ảnh hưởng đều dễ bị tấn công

4. Biện pháp ứng phó là gì?

  • Khuyến nghị cài đặt các bản cập nhật mới nhất cho hệ điều hành và BIOS

1 bình luận

 
GN⁺ 2025-05-14
Ý kiến trên Hacker News
  • Trong bài viết do Harvard đăng, có một phép ví von hóm hỉnh rằng thật không may cho John, các nhánh đã ký kèo với quỷ Satan và cơ học lượng tử để yểm bùa tai hại lên các thế hệ bộ xử lý tương lai, và thứ ma thuật đó được lưu danh dưới những cái tên như “rò rỉ điện áp do scaling” hay “nhiệt lãng phí gia tăng”

  • Cảm nhận rằng bài của James Mickens lúc nào cũng thú vị, kèm theo việc nhắc lại câu đùa rằng Mossad phụ trách bảo mật nhưng chẳng bận tâm mấy thứ như HTTPS; nếu họ cần dữ liệu thì sẽ cho drone tráo điện thoại của bạn bằng một bản nhái uranium, rồi cuối cùng mua đồ đạc của bạn ở đợt thanh lý di vật để tự xem ảnh trực tiếp

  • Ý kiến cho rằng đoạn nhắc đến vô số ma trận đem lại đôi chút hy vọng, và kể rằng em trai của John đã tìm ra cách dạy những ma trận đó nói chuyện như con người

  • Chia sẻ liên kết tới blog của nhóm nghiên cứu và bài báo

  • Để lại phản hồi rằng đã đổi liên kết bên trên từ thông cáo báo chí của trường đại học sang bài blog của nhóm nghiên cứu

  • Về tác động của lỗ hổng mới, nhà nghiên cứu giải thích rằng có thể lặp đi lặp lại việc đọc toàn bộ nội dung bộ nhớ CPU, với tốc độ thậm chí đạt 5.000 byte mỗi giây, nên nếu tấn công thành công thì mọi thông tin trong CPU đều có thể bị rò rỉ

  • Bày tỏ mong muốn đổi URL của tiêu đề sang liên kết blog

  • Tóm tắt cách bộ dự đoán nhánh hoạt động

    • Việc cập nhật trạng thái của bộ dự đoán có thể diễn ra sau khi lệnh nhánh kết thúc
    • Trong pipeline, commit kết quả và commit dự đoán là hai việc khác nhau
    • Lệnh chuyển đổi đặc quyền cũng tiếp tục chạy trong pipeline mà không đợi trạng thái dự đoán, nên nếu mức đặc quyền không nhất quán thì có thể phát sinh vấn đề
    • Điểm khó là trong pipeline có thể không tồn tại một “mức đặc quyền hiện tại” duy nhất
  • Mừng vì biết giáo sư Kaveh Razavi từng dạy môn bảo mật phần cứng ở trường của mình, và khóa học đó thực sự rất tuyệt

  • Nói rằng vài năm trước đã thử tìm khóa học đó cùng một bài giảng khác về malware nhưng hầu như không có thông tin công khai, và hỏi liệu có bản ghi hình hoặc ghi chú chính thức nào được đăng online hay không

  • Hỏi có ai biết mối liên hệ giữa cuộc tấn công Training Solo và lỗ hổng lần này không

  • Thắc mắc vì phần giải thích về bản vá microcode cho chipset chỉ nhắc đến Windows, và hỏi người dùng Linux thì sao

  • Giải thích rằng kernel Linux cũng đã hỗ trợ nạp microcode từ lâu, nhưng Intel phải phát hành các tệp microcode thì từng bản phân phối mới có thể cập nhật được, và nó cần được đưa vào gói cập nhật hệ thống

  • Giải thích rằng Intel công khai các bản cập nhật microcode cho Linux trên GitHub, nên từng bản phân phối sẽ tự động lấy từ đó để phát hành; còn lỗ hổng này đã thật sự được vá hay chưa thì người viết không phải chuyên gia nên không rõ

  • Chia sẻ liên kết tới khuyến cáo bảo mật chính thức của Intel

  • Có ý kiến hỏi liệu CPU AMD cũng có lỗ hổng tương tự hay không, đồng thời chỉ ra rằng các cơ chế kỹ thuật như dự đoán nhánh là căn nguyên của lỗ hổng bảo mật CPU, và thắc mắc AMD đã né được kiểu lỗ hổng này như thế nào

  • Theo phần tóm tắt trong blog của nhóm nghiên cứu, lỗ hổng Branch Privilege Injection lần này không ảnh hưởng đến các hệ thống AMD và ARM

  • Ý chính là AMD không hoàn toàn tránh được kiểu vấn đề này; giống như Spectre và Meltdown, mỗi lỗ hổng có phạm vi khác nhau, trường hợp này chỉ giới hạn ở Intel nhưng AMD trước đây cũng từng phơi nhiễm với các lỗ hổng cùng họ như Spectre

  • Một giải thích khá kỹ nhấn mạnh rằng thực thi suy đoán theo spec bản thân nó không phải là lỗ hổng mà là cơ chế thiết yếu trong CPU hiện đại; vấn đề là độ phức tạp nội bộ khiến lỗi rất khó bị phát hiện, nên AMD và ARM cũng có thể tồn tại bug tương tự; và cách khắc phục triệt để đòi hỏi phải thừa nhận thực tế rằng không thể cô lập mã hoàn toàn trên các hệ thống hiện đại, điều này có thể gây chí mạng với mô hình kinh doanh của một số tập đoàn lớn

  • Về biện pháp đối phó cho lỗ hổng này, có ý kiến cho rằng chỉ cần lưu snapshot của mức đặc quyền tại thời điểm cập nhật dự đoán nhánh và truyền kèm giá trị đó thì có lẽ sẽ giải quyết được, tương tự những vấn đề hay gặp trong phần mềm

  • Có người hóm hỉnh nói rằng giá như bộ dự đoán nhánh của CPU có thể kiểm tra trực tiếp ranh giới bộ đệm và thông tin đặc quyền của mã thì việc phòng ngừa đã dễ hơn nhiều, nhưng để làm vậy lại cần bổ sung thông tin quan trọng vào pointer

  • Có ý kiến cho rằng cần hiểu rõ hơn phạm vi của vấn đề, vì các cuộc tấn công khai thác lỗ hổng qua thực thi suy đoán thực tế đòi hỏi khâu chuẩn bị cực lớn và không có nhiều ý nghĩa nếu không có quyền thực thi mã trực tiếp; không thể dùng mã JS tùy ý trong trình duyệt để rò rỉ thông tin tùy ý, và bản thân người viết đã tắt toàn bộ biện pháp giảm thiểu để lấy hiệu năng

  • Đề xuất kiến trúc CHERI

  • Chỉ ra rằng thay đổi riêng cấu trúc pointer là chưa đủ, và nhắc đến cơ chế phân đoạn x86 đời cũ (80286), nơi phần cứng thực sự gắn thông tin ranh giới địa chỉ vào từng lần truy cập bộ nhớ; nhưng các hệ thống như vậy cuối cùng vẫn có cùng giới hạn vì phần mềm vẫn phải xử lý chính xác thông tin ranh giới

  • Hỏi liệu tính đến thời điểm hiện tại, mọi hệ điều hành lớn đã có bản vá tương ứng cho lỗ hổng này hay microcode liên quan hay chưa

  • Trả lời là có, ngày công bố thông tin là hôm nay (13 tháng 5)