Đánh giá lại các cuộc tấn công Spectre từ xa trên Cloudflare Workers
Cloudflare vừa công bố nghiên cứu mới về khả năng thực hiện tấn công Spectre từ xa trên nền tảng Workers, dẫn đến việc cải tiến cơ chế bảo mật DyPrIs và tích hợp V8 Sandbox để ngăn chặn rò rỉ dữ...
- Giọng nữ Bắc
Vào năm 2021, Cloudflare đã thực hiện đánh giá khả năng tấn công Spectre từ xa nhắm vào Cloudflare Workers. Kết quả của quá trình này là sự ra đời của cơ chế phòng thủ Dynamic Process Isolation (DyPrIs), giúp nhận diện các script có dấu hiệu độc hại và cô lập chúng vào các tiến trình riêng biệt. Tuy nhiên, với sự xuất hiện của các kỹ thuật ổn định tấn công Spectre mới, đội ngũ bảo mật của Cloudflare đã quyết định thực hiện một đợt đánh giá lại nội bộ để kiểm chứng rủi ro trong môi trường production.
Table Of Content
Thách thức trong môi trường thực tế
Để thực hiện thành công một cuộc tấn công side-channel trong môi trường production, kẻ tấn công phải vượt qua nhiều rào cản như sự nhiễu từ tài nguyên phần cứng chia sẻ, các ngắt (interrupts), chuyển đổi ngữ cảnh (context switches) và độ phân giải thấp của bộ đếm thời gian. Nghiên cứu mới đã chỉ ra một hạn chế trong cách triển khai DyPrIs cũ, cho phép thực hiện tấn công Spectre từ xa với tốc độ rò rỉ dữ liệu lên tới 12 bit/s và độ chính xác đạt 99%.
Ngay sau khi phát hiện, Cloudflare đã cải tiến DyPrIs, tích hợp V8 Sandbox và cơ chế cô lập trong tiến trình (in-process isolation) để giảm thiểu rủi ro rò rỉ bộ nhớ. Đáng chú ý, các lỗ hổng này đã được vá và không có dấu hiệu nào cho thấy chúng bị khai thác thực tế trong ba năm qua.
Mô hình bảo mật và cơ chế Spectre
Cloudflare Workers vận hành các đoạn mã JavaScript không tin cậy tại biên (edge). Bằng cách sử dụng V8 isolates, hàng chục nghìn tenant có thể chia sẻ cùng một tiến trình hệ điều hành mà vẫn đảm bảo mỗi Worker có heap JavaScript riêng biệt. Dù có nhiều lớp bảo mật như pipeline vá lỗi V8 tự động, Linux namespaces và seccomp filters, nhưng các lỗ hổng đọc dữ liệu tùy ý (arbitrary read) vẫn là mối đe dọa, đặc biệt là thông qua cơ chế thực thi suy đoán (speculative execution) của CPU.
Spectre lợi dụng cách CPU dự đoán nhánh (branch prediction) để thực thi các lệnh tạm thời (transient instructions). Dù kết quả sau đó bị hủy bỏ nếu dự đoán sai, các dấu vết vẫn còn lưu lại trong bộ nhớ đệm (cache). Kẻ tấn công có thể sử dụng kỹ thuật này để truy cập bộ nhớ ngoài phạm vi cho phép, mã hóa dữ liệu vào trạng thái cache và đo lường độ trễ để suy luận thông tin.
Các thành phần của cuộc tấn công
Nghiên cứu đã làm rõ các thành phần cốt lõi để thực hiện tấn công:
- Spectre Gadget: Sử dụng kỹ thuật nhầm lẫn kiểu dữ liệu (type confusion) để thực hiện đọc bộ nhớ ngoài phạm vi. Bằng cách huấn luyện sai bộ dự đoán nhánh, kẻ tấn công có thể ép CPU thực thi các lệnh truy cập vào con trỏ 64-bit do kẻ tấn công kiểm soát.
- Khuếch đại tín hiệu (Signal amplification): Tận dụng chính sách thay thế cache PLRU (Pseudo Least Recently Used) để khuếch đại sự khác biệt giữa cache hit và cache miss, giúp phân biệt dữ liệu ngay cả khi bộ đếm thời gian từ xa có độ nhiễu cao.
- Bộ đếm thời gian từ xa: Dù Cloudflare hạn chế các bộ đếm thời gian có độ phân giải cao, kẻ tấn công có thể sử dụng các kết nối WebSocket hoặc máy chủ bên ngoài để đo lường độ trễ và thu thập dữ liệu rò rỉ.
Cloudflare nhấn mạnh rằng việc nghiên cứu các kỹ thuật này là cần thiết để duy trì tính an toàn cho nền tảng. Các biện pháp đối phó hiện tại đã được triển khai đầy đủ trong hệ thống runtime của Cloudflare Workers.
Nguồn tham khảo: Cloudflare Blog



No Comment! Be the first one.