Giới thiệu một kỹ thuật mới để nhận dạng hệ thống ẩn và trình duyệt

Một nhóm các nhà nghiên cứu đến từ Đại học Kỹ thuật Graz (Áo), trước đây nổi tiếng với việc phát triển các phương pháp tấn công MDS, NetSpectre и Búa ném, không che đậy Thông tin về kỹ thuật phân tích kênh mới của bên thứ ba cho phép bạn xác định chính xác phiên bản trình duyệt, hệ điều hành được sử dụng, kiến ​​trúc CPU và việc sử dụng các tiện ích bổ sung để chống nhận dạng ẩn.

Để xác định các tham số này, việc chạy mã JavaScript do các nhà nghiên cứu chuẩn bị trên trình duyệt là đủ. Trong thực tế, phương pháp này không chỉ có thể được sử dụng như một nguồn bổ sung để nhận dạng gián tiếp người dùng mà còn để xác định các tham số của môi trường hệ thống cho mục đích khai thác có mục tiêu, có tính đến hệ điều hành, kiến ​​trúc và trình duyệt. Phương pháp này cũng hiệu quả khi sử dụng các trình duyệt triển khai cơ chế chặn nhận dạng ẩn, chẳng hạn như Tor Browser. Nguyên mẫu mã nguồn với cách triển khai phương thức được phát hành theo giấy phép MIT.

Việc xác định được thực hiện trên cơ sở xác định các mẫu trạng thái thuộc tính trong JavaScript đặc trưng của các trình duyệt khác nhau và đặc điểm về thời gian thực hiện các hoạt động, tùy thuộc vào đặc điểm của cơ chế phân bổ JIT, CPU và bộ nhớ. Việc xác định các thuộc tính được thực hiện bằng cách tạo danh sách tất cả các đối tượng có thể truy cập được từ JavaScript. Hóa ra, số lượng đối tượng tương quan trực tiếp với công cụ trình duyệt và phiên bản của nó.

hàm getProperties(o) {
kết quả var = [];
trong khi (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
trả về kết quả;
}

Ví dụ: đối với Firefox, trạng thái tài liệu hỗ trợ cho 2247 thuộc tính, trong khi số lượng thuộc tính được xác định thực tế, bao gồm cả các thuộc tính không có giấy tờ, là 15709 (trong Tor Browser - 15639), đối với thuộc tính Chrome 2698 được khai báo, nhưng trên thực tế, 13570 được cung cấp (trong Chrome dành cho Android - 13119) . Số lượng và giá trị của các thuộc tính khác nhau tùy theo phiên bản trình duyệt và trên các hệ điều hành khác nhau.

Các giá trị và sự hiện diện của một số thuộc tính nhất định có thể được sử dụng để xác định loại hệ điều hành. Ví dụ: trong Kubuntu, thuộc tính window.innerWidth được đặt thành 1000 và trong Windows 10 nó được đặt thành 1001. Thuộc tính window.navigator.activeVRDisplays có sẵn trên Windows nhưng không có sẵn trên Linux. Đối với Android, nhiều lệnh gọi cụ thể được cung cấp nhưng window.SharedWorker thì không. Để xác định hệ điều hành, người ta cũng đề xuất sử dụng phân tích các tham số WebGL, trạng thái của nó phụ thuộc vào trình điều khiển. Ngoài ra, việc gọi WEBGL_debug_renderer_infoextension cho phép bạn lấy thông tin về công cụ kết xuất OpenGL, công cụ này khác nhau đối với mỗi hệ điều hành.

Để xác định CPU, việc đánh giá sự khác biệt về thời gian thực thi của các khối mã điển hình khác nhau được sử dụng, việc xử lý khối mã này phụ thuộc vào kiến ​​trúc của tập lệnh, có tính đến hành vi JIT (xác định số lượng thanh ghi CPU sẽ được sử dụng và trong trường hợp nào JIT sẽ tạo mã hiệu quả với sự tối ưu hóa và sử dụng các hướng dẫn mở rộng, còn khi nào thì không ). Để xác định loại hệ thống cấp phát bộ nhớ và hệ điều hành, sự khác biệt về thời gian cấp phát bộ nhớ cho các cấu trúc khác nhau cũng được đo lường, điều này có thể được sử dụng để đánh giá kích thước của các khối bộ nhớ.

Các tham số được xác định trong quá trình thực thi tập lệnh được so sánh với các giá trị tham chiếu điển hình cho các môi trường đã thử nghiệm trước đó. Trong quá trình thử nghiệm, kỹ thuật được phát triển có thể xác định chính xác 40 môi trường thử nghiệm khác nhau, xác định phiên bản trình duyệt được sử dụng, nhà sản xuất CPU, hệ điều hành được sử dụng và thực tế là nó đang chạy trên phần cứng thực hoặc trong máy ảo.

Riêng biệt, cần lưu ý rằng có thể xác định các tiện ích bổ sung của trình duyệt và thậm chí cả cài đặt tiện ích bổ sung riêng lẻ, bao gồm các tiện ích bổ sung được thiết kế để chặn các phương pháp nhận dạng ẩn hoặc hoạt động ở chế độ duyệt web riêng tư. Trong bối cảnh của phương pháp được đề xuất, những bổ sung như vậy trở thành một nguồn dữ liệu khác để nhận dạng. Sự bổ sung được xác định bằng cách đánh giá sự biến dạng của các tham số của môi trường ban đầu được đưa vào bởi các chất bổ sung.

Các phương pháp nhận dạng khác bao gồm tính đến các dữ liệu gián tiếp như độ phân giải màn hình, danh sách các loại MIME được hỗ trợ, các tham số cụ thể trong tiêu đề (HTTP / 2 и HTTPS), phân tích cài đặt plugin và phông chữ, tính khả dụng của một số API Web nhất định, dành riêng cho thẻ video tính năng kết xuất bằng WebGL và Canvas, Thao tác với CSS, phân tích các tính năng làm việc với chuột и bàn phím.

Nguồn: opennet.ru

Thêm một lời nhận xét