Kiểu tấn công trình duyệt mới cho phép theo dõi người dùng trực tuyến cả khi JavaScript bị vô hiệu hóa
Các nhà nghiên cứu cho biết, đây là một cuộc tấn công kênh kề không yêu cầu chạy JavaScript và trình chặn tập lệnh không thể ngăn chặn nó. Các cuộc tấn công hoạt động ngay cả khi người dùng loại bỏ tất cả các phần thú vị của trải nghiệm duyệt web. Điều này khiến người dùng rất khó ngăn chặn nếu không sửa đổi các phần sâu của hệ điều hành.
Trong khi tránh JavaScript, các cuộc tấn công kênh kề cũng không phụ thuộc vào kiến trúc, khiến các cuộc tấn công lấy dấu vân tay trang web vi kiến trúc có thể hoạt động trên nhiều nền tảng phần cứng, bao gồm CPU Intel Core, AMD Ryzen, Samsung Exynos 2100 và Apple M1. Điều này đã khiến nó trở thành kênh kề đầu tiên được biết đến tấn công vào chipset dựa trên ARM mới của nhà sản xuất iPhone.
Các phát hiện này là của một nhóm các học giả đến từ Đại học Ben-Gurion, Đại học Michigan và Đại học Adelaide sẽ được trình bày tại Hội nghị chuyên đề về bảo mật USENIX vào tháng 8/2021.
Các cuộc tấn công kênh kề thường dựa vào dữ liệu gián tiếp như thời gian, âm thanh, tiêu thụ điện năng, phát xạ điện từ, rung động và hành vi bộ nhớ cache nhằm cố gắng suy ra dữ liệu bí mật trên hệ thống. Cụ thể, các kênh kề vi kiến trúc khai thác việc sử dụng chung các thành phần của bộ xử lý trên các mã thực thi trong các miền bảo vệ khác nhau để làm rò rỉ thông tin bí mật như khóa mật mã.
Ngoài ra, các nghiên cứu trước đây cũng đã chứng minh các cuộc tấn công hoàn toàn tự động như Rowhammer.js không dựa vào gì ngoài một trang web có JavaScript độc hại để kích hoạt lỗi trên phần cứng từ xa, do đó có được quyền truy cập không hạn chế vào hệ thống của khách truy cập trang web.
Mặc dù các kênh phụ kề này có thể được ngăn chặn hiệu quả bằng các kỹ thuật cách ly miền, nhưng các nhà cung cấp trình duyệt đã kết hợp các biện pháp bảo vệ để bảo vệ chống lại các cuộc tấn công định thời (timing attack – kiểu tấn công kênh kề trong đó kẻ tấn công cố gắng phân tích thời gian thực hiện các thuật toán mật mã) và lấy dấu vân tay bằng cách giảm độ chính xác của các chức năng đo thời gian, ngoài việc vô hiệu hóa hoàn toàn JavaScript bằng tiện ích bổ sung như NoScript.
Tuy nhiên, nghiên cứu mới nhất được công bố tìm cách qua mặt các biện pháp giảm rủi ro dựa trên trình duyệt đó bằng cách thực hiện một cuộc tấn công kênh phụ có tên "CSS Prime + Probe" được xây dựng chỉ dựa vào HTML và CSS, cho phép cuộc tấn công hoạt động ngay cả trong các trình duyệt được cứng hóa như Tor, Chrome Zero và DeterFox đã tắt hoàn toàn JavaScript hoặc giới hạn độ phân giải của API tính giờ.
Các nhà nghiên cứu chỉ ra, xu hướng phổ biến trong các cách tiếp cận để giảm rủi ro của trình duyệt này là chúng chỉ nhắm tới triệu chứng và không giải quyết được nguyên nhân gốc rễ của sự rò rỉ, cụ thể là việc chia sẻ tài nguyên vi kiến trúc. Thay vào đó, hầu hết các phương pháp đều cố gắng ngăn chặn sự rò rỉ bằng cách sửa đổi hành vi của trình duyệt, tạo ra sự cân bằng khác nhau giữa bảo mật và khả năng sử dụng.
Đầu tiên, hãy nói qua về các kênh kề dựa trên bộ nhớ cache: Không giống như các cuộc tấn công Flush + Reload, trong đó gián điệp có thể sử dụng lệnh xóa bộ nhớ cache (ví dụ: clflush trong x86) để xóa các dòng bộ nhớ cache cụ thể và xác định xem nạn nhân có truy cập vào dữ liệu này hay không bằng cách truy cập lại vào cùng một dòng bộ nhớ và định thời gian truy cập cho một lần truy cập (dữ liệu trở lại trong bộ nhớ cache) hoặc bỏ lỡ (nạn nhân không truy cập), Prime + Probe yêu cầu kẻ tấn công lấy toàn bộ bộ nhớ cache được chia sẻ để xóa dữ liệu của nạn nhân từ bộ nhớ cache. Sau đó định thời gian truy cập của chính nó sau khi nó lấp đầy bộ nhớ cache. Sự hiện diện của lượt bỏ lỡ (miss) bộ nhớ cache cho thấy rằng nạn nhân đã truy cập vào dòng bộ nhớ cache tương ứng khiến dữ liệu của gián điệp bị xóa.
Mặc dù các phương pháp này khai thác một kênh định thời bí mật trong bộ nhớ cache của CPU, nhưng cuộc tấn công mới do các nhà nghiên cứu của Ben-Gurion nghĩ ra nhắm vào một kênh kề dựa trên bộ nhớ cache trong các trình duyệt web hiện đại.
Cụ thể, kỹ thuật CSS Prime + Probe xoay quanh việc hiển thị một trang web bao gồm một biến chuỗi HTML dài bao phủ toàn bộ bộ nhớ cache (ví dụ: phần tử <div> có tên lớp chứa hai triệu ký tự), sau đó thực hiện tìm kiếm một chuỗi ngắn không tồn tại trong văn bản, việc này buộc tìm kiếm phải quét toàn bộ chuỗi. Trong bước cuối cùng, thời gian để thực hiện hoạt động thăm dò này được gửi đến một máy chủ do kẻ tấn công kiểm soát.
"Đầu tiên kẻ tấn công đưa vào CSS một phần tử từ miền do kẻ tấn công kiểm soát, buộc phân giải DNS", các nhà nghiên cứu giải thích. "Máy chủ DNS độc hại ghi lại thời gian của yêu cầu DNS đến. Sau đó, kẻ tấn công thiết kế một trang HTML tạo ra thao tác tìm kiếm chuỗi từ CSS, việc này sẽ kiểm tra hiệu quả bộ nhớ cache. Sau việc tìm kiếm chuỗi này là một yêu cầu cho một phần tử CSS đòi hỏi phân giải DNS từ máy chủ độc hại. Cuối cùng, chênh lệch thời gian giữa các yêu cầu DNS liên tiếp tương ứng với thời gian cần thiết để thực hiện tìm kiếm chuỗi, [...] sẽ đại diện cho tranh chấp bộ nhớ cache “.
Để đánh giá hiệu quả của các phương pháp trong các cuộc tấn công định dấu vân tay trang web, các nhà nghiên cứu đã sử dụng kênh kề nói trên để thu thập dấu vết của việc sử dụng bộ nhớ cache khi tải các trang web khác nhau, bao gồm cả 100 trang web hàng đầu theo Alexa, bằng cách sử dụng "memorygram" để đào tạo mô hình mạng nơron sâu xác định một tập hợp cụ thể các trang web được đối tượng cần theo dõi truy cập.
Mặc dù các cuộc tấn công chiếm dụng bộ nhớ đệm dựa trên JavaScript cung cấp độ chính xác cao hơn 90% trên tất cả các nền tảng khi so sánh với CSS Prime + Probe, nghiên cứu lưu ý rằng độ chính xác đạt được bởi kiểu tấn công mới đủ cao để làm rò rỉ dữ liệu có thể cho phép các bên độc hại xác định và theo dõi người dùng.
Các nhà nghiên cứu kết luận: "Vậy làm thế nào những người dùng có ý thức bảo mật có thể truy cập web?" "Một yếu tố làm điều này phức tạp hơn là việc trình duyệt web sử dụng các tài nguyên được chia sẻ bổ sung ngoài bộ nhớ cache, chẳng hạn như trình phân giải DNS của hệ điều hành, GPU và giao diện mạng. Phân vùng bộ nhớ cache có vẻ là một cách tiếp cận khả thi hoặc sử dụng không gian cô lập dựa trên tô màu bộ nhớ cache hoặc cô lập tạm thời dựa trên hệ điều hành”.
Anh Tuấn
(theo The Hacker News)