2 điểm bởi GN⁺ 2025-01-29 | 1 bình luận | Chia sẻ qua WhatsApp

SLAP: Tấn công suy đoán dữ liệu (data Speculation attacks via Load Address Prediction)

  • Tấn công SLAP là một cuộc tấn công thực thi suy đoán mới xuất hiện trên CPU Apple Silicon M2/A15.
  • Thông qua bộ dự đoán địa chỉ tải (LAP), CPU dự đoán địa chỉ bộ nhớ tiếp theo dựa trên mẫu truy cập bộ nhớ để cải thiện hiệu năng.
  • Khi dự đoán sai, CPU có thể xử lý bằng thực thi suy đoán những dữ liệu mà lẽ ra không được phép truy cập, từ đó gây ra rủi ro bảo mật.
  • Trong ví dụ thực tế, nhóm nghiên cứu đã trình diễn một cuộc tấn công cho phép kẻ tấn công từ xa khôi phục nội dung email và hành vi duyệt web trong trình duyệt Safari.

FLOP: Dự đoán đầu ra tải sai (False Load Output Predictions)

  • Tấn công FLOP là một cuộc tấn công thực thi suy đoán khác, xảy ra do dự đoán phụ thuộc dữ liệu trên CPU Apple M3/A17.
  • Thông qua bộ dự đoán giá trị tải (LVP), CPU dự đoán giá trị dữ liệu mà hệ con bộ nhớ sẽ trả về để cải thiện hiệu năng.
  • Khi dự đoán sai, nó có thể bỏ qua các bước kiểm tra quan trọng trong logic chương trình dùng để đảm bảo an toàn bộ nhớ, từ đó mở ra bề mặt tấn công có thể làm lộ các bí mật được lưu trong bộ nhớ.
  • Nhóm nghiên cứu đã trình diễn các cuộc tấn công khôi phục lịch sử vị trí, sự kiện lịch và thông tin thẻ tín dụng trên trình duyệt Safari và Chrome.

Demo

  • Rò rỉ dữ liệu hộp thư đến Proton Mail: huấn luyện LVP của CPU M3 bằng mã JavaScript trong WebKit để đưa nội dung hộp thư đến vào không gian địa chỉ.
  • Đọc The Great Gatsby: trình diễn proof-of-concept khôi phục chuỗi bí mật bằng cách sử dụng LAP trên CPU Apple M2.
  • Đọc Harry Potter: trình diễn proof-of-concept trên CPU Apple M3 dùng LVP để dự đoán sai chỉ mục mảng và tham chiếu các ký tự trong chuỗi.

Nhóm nghiên cứu

  • Jason Kim, Jalen Chuang, Daniel Genkin (Georgia Institute of Technology)
  • Yuval Yarom (Ruhr University Bochum)

FAQ về SLAP và FLOP

Is my Apple device affected?

  • Mac notebook: mọi mẫu ra mắt từ năm 2022 trở đi (MacBook Air, MacBook Pro)
  • Mac desktop: mọi mẫu ra mắt từ năm 2023 trở đi (Mac Mini, iMac, Mac Studio, Mac Pro)
  • iPad: mọi mẫu iPad Pro, Air, Mini ra mắt từ sau tháng 9/2021
    • Pro thế hệ 6 và 7, Air thế hệ 6, Mini thế hệ 6
  • iPhone: mọi mẫu ra mắt từ sau tháng 9/2021
    • Toàn bộ dòng iPhone 13, 14, 15, 16 và iPhone SE thế hệ 3

Why are the SLAP and FLOP attacks significant?

  • Cơ chế bảo vệ: thông thường, trình duyệt web cô lập hai trang web đang mở để một trang không thể đọc nội dung của trang kia
  • Lỗ hổng: SLAP và FLOP vô hiệu hóa lớp bảo vệ này, cho phép trang của kẻ tấn công đọc dữ liệu nhạy cảm từ trang mục tiêu
    • Dữ liệu có thể bị lộ: lịch sử vị trí, thông tin thẻ tín dụng, v.v.

How can I defend against SLAP and FLOP?

  • FLOP có biện pháp giảm thiểu, nhưng cần bản vá từ nhà cung cấp phần mềm và người dùng không thể tự xử lý trực tiếp
  • Apple cho biết sẽ khắc phục vấn đề này trong các bản cập nhật bảo mật sắp tới; việc bật cập nhật tự động và luôn dùng OS cùng ứng dụng mới nhất là rất quan trọng

What about other processor vendors?

  • Trên các sản phẩm của Intel, AMD, Qualcomm, Ampere, hiện vẫn chưa phát hiện dấu hiệu của SLAP hoặc FLOP

What about other web browsers?

  • Các trình duyệt khác như Firefox chưa được thử nghiệm

Can I detect if someone is using SLAP or FLOP on my device?

  • SLAP và FLOP là các cuộc tấn công dựa trên vi kiến trúc, nên không để lại dấu vết trong log hệ thống

Are any malicious actors abusing SLAP or FLOP in the wild?

  • Tính đến hiện tại, chưa có bằng chứng cho thấy SLAP hoặc FLOP đã bị khai thác ngoài thực tế

When did you notify Apple?

  • SLAP: báo cáo cho Apple vào ngày 24/5/2024
  • FLOP: báo cáo cho Apple vào ngày 3/9/2024

Câu hỏi kỹ thuật

Side Channel là gì?

  • Một kiểu tấn công khai thác điểm yếu trong cách phần cứng máy tính được triển khai
    • Tận dụng rò rỉ thông tin phát sinh từ hành vi phần cứng thay vì lỗi phần mềm
  • Con đường rò rỉ dữ liệu
    • Các hiện tượng vật lý như âm thanh, sóng điện từ, tỏa nhiệt
    • Sự tranh chấp (contention) trên các tài nguyên dùng chung của CPU như core, cache, bộ đệm nội bộ
  • Rò rỉ thông tin do tranh chấp CPU
    • Suy ra mẫu hành vi của mục tiêu thông qua các biến gián tiếp như đo thời gian, mức tiêu thụ điện năng

Tấn công thực thi suy đoán (Speculative Execution) là gì?

  • Thực thi suy đoán: kỹ thuật tối ưu hóa trong đó CPU dự đoán luồng điều khiển để thực thi lệnh trước
    • Nếu dự đoán sai thì trạng thái sẽ được hoàn tác, nhưng vẫn để lại các dấu vết tinh vi như trong cache
  • Tấn công Spectre
    • Dẫn CPU đến việc thực thi dự đoán theo một luồng sai
    • Nếu trong quá trình đó các lệnh dùng dữ liệu nhạy cảm được thực thi, giá trị dữ liệu có thể bị lộ gián tiếp
  • Mở rộng trong SLAP và FLOP
    • CPU của Apple không chỉ dự đoán luồng điều khiển mà còn dự đoán cả luồng dữ liệu
    • FLOP kích hoạt việc thực thi lệnh dựa trên các giá trị dữ liệu sai

Cách SLAP hoạt động

  1. Phân tích Load Address Prediction (LAP)
    • Khi được huấn luyện với các mẫu địa chỉ bộ nhớ nhất định, LAP sẽ dự đoán địa chỉ tiếp theo và thực thi các thao tác dữ liệu
    • Khác với prefetching của phần cứng, nó thực thi lệnh bằng dữ liệu đã được dự đoán
  2. Khai thác lỗ hổng Safari
    • Dựa trên vấn đề cô lập trong Safari do iLeakage phát hiện, buộc các trang web khác nhau được xử lý trong cùng một tiến trình
    • Trang web của kẻ tấn công có thể truy cập dữ liệu chuỗi của trang web mục tiêu

Cách FLOP hoạt động

  1. Phân tích Load Value Prediction (LVP)
    • Khi cùng một giá trị dữ liệu được trả về lặp đi lặp lại, LVP sẽ dự đoán kết quả
    • Sau đó thực thi lệnh bằng một giá trị bộ nhớ sai
  2. Tấn công Safari và Chrome
    • Safari: dự đoán thông tin kiểu của cấu trúc dữ liệu JavaScript để thực thi lệnh với cấu trúc dữ liệu sai
    • Chrome: khi gọi hàm WebAssembly, đối số sai gây ra lỗi đọc bộ nhớ

Khác biệt giữa SLAP và FLOP

  • SLAP: dùng Load Address Predictor (LAP) để khai thác tính gần nhau trong việc cấp phát chuỗi
  • FLOP: dùng Load Value Predictor (LVP) để vượt qua các kiểm tra toàn vẹn dữ liệu
  • LAP vs LVP
    • LAP: dự đoán địa chỉ bộ nhớ tiếp theo
    • LVP: dự đoán giá trị bộ nhớ tiếp theo được trả về
    • LAP cần một quá trình huấn luyện dài hơn, nhưng có thể dự đoán mẫu

JavaScript và WebAssembly là gì?

  • JavaScript: ngôn ngữ dùng để cập nhật nội dung web một cách động
  • WebAssembly: ngôn ngữ dành cho ứng dụng web hiệu năng cao, hoạt động cùng JavaScript
  • Tác động của cuộc tấn công
    • Cả hai ngôn ngữ đều tự động chạy trong trình duyệt, nên cuộc tấn công có thể xảy ra ngay cả khi không tải về mã độc

Vì sao chọn Safari và Chrome làm mục tiêu tấn công

  • Safari:
    • Không có site isolation, nên các trang web từ những domain khác nhau có thể chạy trong cùng một tiến trình
    • Làm mở rộng bề mặt tấn công dựa trên LAP và LVP
  • Chrome:
    • Dù đã áp dụng site isolation, trong một số trường hợp các subdomain của cùng một site vẫn được xử lý trong một tiến trình
    • Vì vậy các cuộc tấn công LAP và LVP vẫn khả thi

Hỗ trợ nghiên cứu

  • Nghiên cứu này nhận được hỗ trợ từ AFOSR, Alfred P Sloan Research Fellowship, ARC Discovery Project, DARPA, DFG, Qualcomm, Cisco, Zama.

1 bình luận

 
GN⁺ 2025-01-29
Ý kiến trên Hacker News
  • Bản demo SLAP cho thấy rất rõ việc phòng thủ theo chiều sâu có thể quyết định tính khả thi của việc khai thác lỗ hổng như thế nào. Lỗ hổng trên Safari xảy ra vì window.open không thể cô lập cửa sổ mới thành một tiến trình riêng

  • Phần đảo ngược để xác định sự tồn tại của LVP trên M3 khá thú vị. Với tải 8 byte, LVP chỉ được kích hoạt khi giá trị tải là 0. Đây có thể là một biện pháp đối phó nhằm đảm bảo an toàn bộ nhớ

  • Các cuộc tấn công Spectre và Meltdown cùng các bài báo liên quan rất đáng đọc đối với những ai lần đầu tìm hiểu

  • Trên Safari, họ sử dụng nguyên lý khuếch đại cache dựa trên cổng NOT để phân biệt cache hit và miss. Ngay cả trong môi trường web cũng có thể phân biệt cache hit và miss

  • Điều này cho thấy cơ chế cô lập site của Chrome không phải là biện pháp giảm thiểu hoàn hảo. Có những trường hợp góc cạnh mà hai subdomain của cùng một site có thể bị gộp vào một tiến trình

  • Văn hóa marketing cho việc công bố lỗ hổng phần cứng tạo cảm giác khá kỳ lạ. Tại sao không đơn giản là báo cáo lỗ hổng và công bố bài báo, mà lại làm thêm domain tùy chỉnh, logo, FAQ, v.v.?

  • Năm ngoái tôi đã gặp giáo sư Daniel Genkin trong lớp Intro to Cyber Security. Ông nói rằng mình đang nghiên cứu các cuộc tấn công suy đoán nhằm vào CPU Apple. Điều đó khiến tôi hiểu rằng bảo mật gần như không bao giờ được đảm bảo hoàn toàn

  • Tôi có xu hướng mặc định vô hiệu hóa js trên các trang không đáng tin cậy. Xét cho cùng, đó là chương trình của người khác đang chạy trên máy của chúng ta

  • Apple gần đây đã phát hành các bản cập nhật minor cho macOS và iOS, trong đó có các bản sửa lỗi bảo mật. Tôi tự hỏi có ai đã kiểm tra xem những bản cập nhật đó có khắc phục lỗ hổng này hay chưa

  • Có vẻ RUB đã trở thành trung tâm toàn cầu cho các nghiên cứu tấn công bảo mật cao cấp. Tôi tự hỏi liệu 10 năm trước tôi đã không để ý, hay đây là một hiện tượng mới