Spook.js, một kỹ thuật mới để khai thác lỗ hổng Spectre trong Chrome

Một nhóm các nhà nghiên cứu từ các trường đại học Mỹ, Úc và Israel đã báo cáo rằng đã mô tả một kỹ thuật tấn công mới cho phép khai thác các lỗ hổng Lớp Spectre trên các trình duyệt hỗ trợ Chromium.

Cuộc tấn công, có tên mã Spook.js, cho phép khi thực thi mã JavaScript bỏ qua cơ chế cách ly trang web và đọc nội dung của toàn bộ không gian địa chỉ của quy trình hiện tại, nghĩa là, truy cập dữ liệu của các trang được thực thi trong các tab khác, nhưng được xử lý trong cùng một quy trình.

Vì Chrome khởi chạy các trang web khác nhau trong các quy trình khác nhau nên các cuộc tấn công thực tế chỉ giới hạn ở các dịch vụ cho phép những người dùng khác nhau lưu trữ các trang của họ. Phương pháp tấn công Spook.js có thể thực hiện từ một trang mà kẻ tấn công có thể nhúng mã JavaScript của mình, xác định sự hiện diện của các trang khác được mở bởi người dùng của cùng một trang web và trích xuất thông tin bí mật trong số đó, ví dụ: bằng chứng xác thực hoặc chi tiết ngân hàng được thay thế bằng hệ thống tự động hoàn thành trong biểu mẫu web.

Một ứng dụng khác của phương pháp này là một cuộc tấn công vào các plugin của trình duyệt, cho phép, khi một trình cắm do kẻ tấn công kiểm soát được cài đặt, trích xuất dữ liệu từ các trình cắm khác.

Spook.js có thể áp dụng cho bất kỳ trình duyệt nào dựa trên công cụ Chromium, bao gồm Google Chrome, Microsoft Edge và Brave. Các nhà nghiên cứu cũng tin rằng phương pháp này có thể được điều chỉnh để hoạt động với Firefox, nhưng vì công cụ Firefox rất khác với Chrome nên công việc tạo ra một cách khai thác như vậy sẽ được giao cho tương lai.

Để bảo vệ chống lại các cuộc tấn công liên quan đến việc thực hiện đầu cơ các lệnh thông qua trình duyệt, phân đoạn không gian địa chỉ được triển khai trong Chrome: cách ly hộp cát cho phép JavaScript chỉ hoạt động với con trỏ 32 bit và chia sẻ bộ nhớ của bộ điều khiển trong ngăn xếp 4GB không chồng chéo.

Để tổ chức quyền truy cập vào toàn bộ không gian địa chỉ của quy trình và tránh giới hạn 32 bit, các nhà nghiên cứu đã sử dụng kỹ thuật nhầm lẫn kiểu, cho phép công cụ JavaScript xử lý một đối tượng không đúng kiểu, khiến nó có thể tạo thành 64-bit mã dựa trên sự kết hợp của hai giá trị 32 bit.

Bản chất của cuộc tấn công là bằng cách xử lý một đối tượng độc hại được chế tạo đặc biệt trong công cụ JavaScript, các điều kiện được tạo ra để dẫn đến việc thực thi suy đoán các lệnh truy cập vào mảng. Đối tượng được chọn theo cách mà các trường do những kẻ tấn công kiểm soát được đặt trong vùng mà con trỏ 64-bit được sử dụng.

Vì loại đối tượng độc hại không tương ứng với loại mảng đang được xử lý, trong điều kiện bình thường, các hành động đó sẽ bị chặn trong Chrome bởi cơ chế hủy mã hóa của mã được sử dụng để truy cập vào các mảng. Để giải quyết vấn đề này, mã tấn công Type Confusion được đặt trong một khối có điều kiện "nếu", khối này không kích hoạt trong điều kiện bình thường, nhưng chạy ở chế độ suy đoán, nếu bộ xử lý dự đoán sai sẽ có nhiều nhánh hơn.

Do đó, bộ xử lý truy cập một cách suy đoán vào con trỏ 64 bit được tạo và hoàn nguyên trạng thái sau khi xác định dự đoán không thành công, nhưng dấu vết thực thi được đặt trong bộ đệm được chia sẻ và có thể được khôi phục bằng các phương pháp xác định nội dung của bộ đệm thông qua thứ ba- các kênh của bên, phân tích sự thay đổi về thời gian truy cập vào dữ liệu được lưu trong bộ nhớ cache và không được lưu trong bộ nhớ cache.

Để phân tích nội dung của bộ nhớ đệm trong điều kiện không đủ độ chính xác của bộ đếm thời gian có sẵn trong JavaScript, một phương pháp do Google đề xuất được sử dụng để đá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ể chênh lệch thời gian về sự hiện diện và vắng mặt của một giá trị trong bộ nhớ cache.

Các nhà nghiên cứu đã phát hành một bản khai thác mẫu hoạt động trong Chrome 89 en hệ thống với Intel i7-6700K và i7-7600U. Việc khai thác được tạo ra bằng cách sử dụng các nguyên mẫu của mã JavaScript do Google xuất bản trước đó để thực hiện các cuộc tấn công Spectre.

Cuối cùng, các nhà nghiên cứu đề cập rằng quản lý để chuẩn bị khai thác hoạt động cho các hệ thống dựa trên bộ xử lý Intel và Apple M1, được tạo cơ hội để tổ chức việc đọc bộ nhớ với tốc độ 500 byte / giây và độ chính xác là 96%. Phương pháp này được cho là có thể áp dụng cho bộ xử lý AMD, nhưng không thể chuẩn bị khai thác đầy đủ chức năng.

Fuente: https://www.spookjs.com


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.

Hãy là người đầu tiên nhận xét

Để 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.