Google đang lên kế hoạch bổ sung thêm một tính năng bảo mật mới tương đối hữu hiệu (về mặt lý thuyết) vào trình duyệt web Chrome. Tính năng này gọi là Cache Partitioning (tạm dịch: Phân vùng bộ đệm), được thiết kế để ngăn chặn sớm những hành vi tấn công độc hại tiềm năng như việc khởi chạy các cuộc tấn công kênh bên (side-channel attack), cũng như bí mật theo dõi hoạt động của người dùng bằng cách lạm dụng bộ đệm HTTP của trình duyệt.
Về cơ bản, tính năng mới này sẽ có nhiệm vụ phân vùng bộ nhớ cache HTTP của Chrome "bằng cách sử dụng các nguồn của top-frame (top-frame origin) (và cũng có thể là subframe origin) nhằm ngăn việc các tài liệu từ một nguồn cụ thể có thể tiết lộ thông tin về việc liệu tài nguyên đa nguồn (cross-origin) có được lưu trữ trong bộ nhớ cache hay không".
Cách tiếp cận như vậy sẽ có thể hạn chế tương đối hữu hiệu việc những kẻ tấn công ẩn danh khởi chạy các cuộc tấn công kênh bên, trong đó sử dụng những trang web độc hại mà chúng kiểm soát để phát hiện xem liệu một trang web khác mà mục tiêu của chúng đã truy cập có trong bộ nhớ cache của trình duyệt web hay không.
Trong thông báo giới thiệu tính năng “Partition the HTTP Cache”, các chuyên gia Google cho biết những cuộc tấn công bộ đệm có thể kích hoạt một số loại hình rò rỉ thông tin sau đây:
- Phát hiện và thu thập thông tin về việc người dùng đã truy cập trang web cụ thể nào: Nếu tài nguyên được lưu trong bộ nhớ cache dành riêng cho một trang web cụ thể hoặc một nhóm các trang web cụ thể, kẻ tấn công hoàn toàn có thể truy cập thông tin lịch sử duyệt web của người dùng bằng cách kiểm tra xem bộ đệm có chứa tài nguyên đó hay không.
- Tấn công chéo giữa nhiều trang web khác nhau: Có một sự tồn tại của nhiều loại hình tấn công proof of concepts đa trang web, trong đó tin tặc sẽ tận dụng một đặc điểm thường thấy trên các trang web (gmail, tìm kiếm google...), đó là tự động tải một hình ảnh cụ thể khi kết quả tìm kiếm trả về là giá trị trống. Bằng cách mở một tab, thực hiện tìm kiếm và sau đó kiểm tra hình ảnh đó trong bộ đệm, kẻ gian hoàn toàn có thể phát hiện xem liệu có sự tồn tại của một chuỗi tùy ý (arbitrary string) trong kết quả tìm kiếm của bạn hay không.
Bộ nhớ cache của trình duyệt cũng có thể được sử dụng như một phương pháp “lấy dấu vân tay” của người dùng bằng cách lưu trữ các siêu cookie đa trang web, yêu cầu người dùng phải xóa hoàn toàn bộ đệm của trình duyệt nếu muốn loại bỏ chúng.
Tấn công lạm dụng bộ đệm HTTP của Chrome
Ví dụ về cuộc tấn công dựa trên bộ đệm HTTP được đăng tải trên Github cho thấy cách thức một tác nhân độc hại có thể dễ dàng thu thập thông tin nhạy cảm của người dùng Chrome bằng cách lạm dụng các điểm cuối dễ bị tổn thương của Google.
Cache Partitioning (tạm dịch: Phân vùng bộ đệm), được thiết kế để ngăn chặn sớm những hành vi tấn công độc hại tiềm năng
Các trang web dễ bị tổn thương có thể được sử dụng trong những cuộc tấn công dạng này bao gồm các công cụ quan trọng của Google như Mail, Search, Books và cả YouTube. Người dùng sẽ bị chuyển hướng truy cập đến các trang web độc hại, được thiết kế để lừa nạn nhân tiết lộ tin nhạy cảm, cũng như thu thập thông tin đó và gửi về máy chủ của kẻ tấn công.
Những loại dữ liệu có thể rơi vào tay kẻ tấn công sau khi một cuộc tấn công kênh bên nhắm vào bộ đệm trình duyệt Chrome được thực hiện thành công bao gồm:
- Lịch sử tìm kiếm
- Video đã xem
- Các URL chính xác được truy cập
- Khung thời gian của các hoạt động
- Kho sách riêng
- Sách đã đọc, mua, đánh dấu, thêm vào mục yêu thích...
- Email riêng tư
- Mã thông báo, số thẻ tín dụng, số điện thoại...
- Tần suất gửi email
- Thông tin về người nhận email
- Danh bạ (bao gồm địa chỉ email, tên, số điện thoại)
- Ghi chú riêng
- Trang web đã được đánh dấu (bookmark)
- Và nhiều dữ liệu liên quan khác
Những thay đổi cần thiết nhằm ngăn ngừa và hạn chế các cuộc tấn công bộ đệm
Theo mô tả của Google về tính năng phân vùng cache HTTP, giải pháp cốt lõi ở đây là “phân vùng bộ đệm đĩa (disk cache) nguồn top-frame của trang (ví dụ: những thông tin hiển thị trong thanh địa chỉ) hoặc bằng cách kết hợp các nguồn của top-frame và sub-frame. Bằng cách này, tài nguyên được tải cho một nguồn có thể được đọc bởi một nguồn khác và cả 2 vấn đề sẽ đều được giải quyết".
Phân vùng cache HTTP có thể hạn chế đáng kể các cuộc tấn công bộ đệm
Tùy chọn hiện tại được sử dụng để cách ly bộ đệm và giảm thiểu các cuộc tấn công bộ đệm là:
- (Nguồn của top-frame, URL yêu cầu) làm key kép
- (Nguồn của frame, URL yêu cầu) làm key kép
- (Nguồn của top-frame + nguồn của frame, URL yêu cầu) làm key ba thành phần
"Đội ngũ Chrome đã chần chừ, không giải quyết vấn đề này sớm trong quá khứ do lo ngại rằng tốc độ truy cập bộ nhớ cache sẽ bị sụt giảm đáng kể, gây ra những áp lực lớn trong việc sử dụng băng thông mạng và khiến thời gian tải trang lâu hơn. Những thử nghiệm gần đây trong các kênh canary và dev cho thấy kết quả trái ngược hoàn toàn với suy nghĩ lâu nay của chúng tôi. Sẽ có một số mất mát nhỏ về mặt hiệu suất, nhưng rất đáng để đánh đổi”, kỹ sư phần mềm Google, phụ trách nhóm phát triển Chrome, Shivani Sharma, cho biết.
Trong số tất cả các trình duyệt được sử dụng phổ biến hiện nay, Safari chính là nền tảng duy nhất đã triển khai phiên bản tương tự của tính năng năng phân vùng cache HTTP nêu trên trong một thời gian dài (hơn 6 năm trước). Bên cạnh đó, Mozilla thời gian gần đây cũng đã cho triển khai thêm nhiều tính năng tăng cường bảo mật mới. Trong khi đó, Microsoft chưa đưa ra bất kỳ tín hiệu công khai nào về kế hoạch triển khai phân vùng bộ đệm trong trình duyệt Edge của họ.