Google chứng minh việc khai thác lỗ hổng Spectre bằng JavaScript trong trình duyệt

Google ra mắt vài ngày trước các nguyên mẫu khai thác khác nhau chứng minh khả năng khai thác các lỗ hổng của lớp Spectre khi thực thi mã JavaScript trong trình duyệt, mà không cần thông qua các phương pháp bảo mật đã thêm ở trên.

Khai thác có thể được sử dụng để truy cập bộ nhớ của một quá trình đang xử lý nội dung web trong tab hiện tại. Để kiểm tra hoạt động của việc khai thác, trang web cho trang bị rò rỉ đã được khởi chạy và mã mô tả logic của hoạt động được đăng trên GitHub.

Nguyên mẫu được đề xuất được thiết kế để tấn công hệ thống với Bộ xử lý Intel Core i7-6500U trong môi trường Linux và Chrome 88, mặc dù điều này không loại trừ rằng các thay đổi có thể được thực hiện để sử dụng khai thác trong các môi trường khác.

Phương thức hoạt động không dành riêng cho bộ xử lý Intel: sau khi điều chỉnh thích hợp, Việc khai thác đã được xác nhận là hoạt động trên các hệ thống có CPU của bên thứ ba, bao gồm cả Apple M1 dựa trên kiến ​​trúc ARM. Sau những chỉnh sửa nhỏ, việc khai thác cũng hoạt động trên các hệ điều hành khác và các trình duyệt khác dựa trên công cụ Chromium.

Trong môi trường dựa trên bộ xử lý Chrome 88 và Intel Skylake tiêu chuẩn, chúng tôi đã bị rò rỉ dữ liệu từ quy trình chịu trách nhiệm hiển thị nội dung web trong tab Chrome hiện tại (quy trình hiển thị) với tốc độ 1 kilobyte mỗi giây. Ngoài ra, các nguyên mẫu thay thế đã được phát triển, ví dụ, một khai thác cho phép, với chi phí giảm độ ổn định, tăng tốc độ rò rỉ lên 8kB / giây khi sử dụng bộ đếm thời gian performance .now () với độ chính xác 5 micro giây (0.005 mili giây ). Một biến thể cũng đã được chuẩn bị hoạt động với độ chính xác của bộ đếm thời gian là một phần nghìn giây, có thể được sử dụng để tổ chức truy cập vào bộ nhớ của một quy trình khác với tốc độ khoảng 60 byte mỗi giây.

Mã demo đã xuất bản bao gồm ba phần:

  • Phần đầu tiên hiệu chỉnh bộ đếm thời gian để ước tính thời gian chạy trong số các hoạt động cần thiết để truy xuất dữ liệu còn trong bộ nhớ đệm của bộ xử lý do kết quả của việc thực thi đầu cơ các lệnh CPU.
  • Phần thứ hai Xác định bố cục bộ nhớ được sử dụng khi cấp phát mảng JavaScript.
  • Phần thứ ba trực tiếp khai thác lỗ hổng Spectre để xác định nội dung bộ nhớ của quy trình hiện tại là kết quả của việc tạo ra các điều kiện để thực hiện suy đoán các hoạt động nhất định, kết quả của quá trình này bị bộ xử lý loại bỏ sau khi xác định dự báo không thành công, nhưng các dấu vết thực thi được giải quyết trong bộ nhớ đệm được chia sẻ và có thể được khôi phục bằng cách sử dụng các phương pháp để Xác định nội dung của bộ đệm bằng cách sử dụng các kênh của bên thứ ba phân tích sự thay đổi về thời gian truy cập vào dữ liệu được lưu trong bộ đệm và không được lưu trong bộ đệm.

Kỹ thuật khai thác được đề xuất loại bỏ các bộ hẹn giờ có độ chính xác cao có sẵn thông qua API performance.now () và không hỗ trợ kiểu SharedArrayBuffer, cho phép bạn tạo mảng trong bộ nhớ dùng chung.

Việc khai thác bao gồm thiết bị Spectre, gây ra việc thực thi mã đầu cơ được kiểm soát và một bộ phân tích rò rỉ kênh bên, xác định dữ liệu nào đã được lưu vào bộ nhớ cache trong quá trình thực thi suy đoán.

Tiện ích được triển khai bằng cách sử dụng một mảng JavaScript, trong đó một nỗ lực được thực hiện để truy cập một khu vực bên ngoài giới hạn bộ đệm, điều này ảnh hưởng đến trạng thái của khối dự đoán nhánh do sự hiện diện của kiểm tra kích thước bộ đệm được thêm bởi trình biên dịch (bộ xử lý thực hiện một cách suy đoán trước một truy cập, nhưng hoàn nguyên trạng thái sau khi kiểm tra).

Để phân tích nội dung bộ nhớ đệm trong điều kiện không đủ độ chính xác của bộ đếm thời gian, một phương pháp đã được đề xuất để đánh lừa chiến lược loại bỏ dữ liệu bộ nhớ cache Tree-PLRU được sử dụng trong bộ xử lý và cho phép, bằng cách tăng số chu kỳ, tăng đáng kể thời gian chênh lệch khi giá trị được trả về từ bộ nhớ cache và trong trường hợp không có giá trị trong bộ nhớ cache.

Google đã xuất bản một nguyên mẫu khai thác để cho thấy tính khả thi của các cuộc tấn công sử dụng lỗ hổng lớp Spectre và khuyến khích các nhà phát triển web sử dụng các kỹ thuật giảm thiểu rủi ro của các cuộc tấn công như vậy.

Đồng thời, Google tin rằng nếu không có một bản sửa đổi đáng kể đối với nguyên mẫu được đề xuất, thì không thể tạo ra các khai thác toàn cầu không chỉ sẵn sàng để trình diễn mà còn để sử dụng rộng rãi.

Fuente: https://security.googleblog.com


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.