Nguy hiểm: Tấn công Cache Deception Gây Rò Rỉ Dữ Liệu

Một kỹ thuật mới được ghi nhận là **Tấn công Cache Deception** đã được phát hiện. Kỹ thuật này khai thác sự không khớp trong quá trình chuẩn hóa đường dẫn và xử lý ký tự phân tách giữa các lớp cache và máy chủ gốc.
Mục tiêu của cuộc tấn công là phơi bày các điểm cuối nhạy cảm và đánh cắp mã thông báo xác thực. Các nhà nghiên cứu đã trình bày chi tiết cách thức các khác biệt tinh vi trong xử lý URL có thể lừa mạng phân phối nội dung (CDN) lưu trữ các tài nguyên được bảo vệ.
Điều này cho phép kẻ tấn công truy xuất dữ liệu sau đó, bỏ qua các cơ chế xác thực. Trọng tâm của kỹ thuật **Tấn công Cache Deception** là sự không đồng bộ giữa cache và máy chủ gốc.
Các lớp cache thường xác định tài sản tĩnh dựa trên phần mở rộng tệp hoặc tiền tố thư mục. Trong khi đó, máy chủ gốc thực thi định tuyến và kiểm soát truy cập dựa trên các đường dẫn đã được chuẩn hóa.
Khi hai hệ thống này không thống nhất về cách diễn giải một URL, các trang nhạy cảm đáng lẽ không được lưu vào bộ nhớ đệm lại có thể bị lưu trữ trong các cache chia sẻ. Kẻ tấn công sau đó có thể truy xuất dữ liệu riêng tư.
Dữ liệu này bao gồm cookie phiên hoặc API token mà không cần xác thực. Ví dụ điển hình là trường hợp với chat.openai[.]com.
Khi yêu cầu chat.openai[.]com/api/auth/session.css, hệ thống trả về lỗi 400 và không được lưu vào cache. Ngược lại, yêu cầu chat.openai[.]com/api/auth/session/test.css lại thành công và được lưu vào cache vì nó xuất hiện dưới một thư mục “share”.
Kẻ tấn công có thể tạo ra một đường dẫn như sau:
chat.openai[.]com/share/test.css/../api/auth/session/test.css
CDN sẽ xem đây là “share/…/api/auth/session” và tiến hành lưu vào cache. Tuy nhiên, máy chủ gốc lại chuẩn hóa đường dẫn thành “api/auth/session” và trả về mã thông báo phiên. Đây là một **lỗ hổng bảo mật** nghiêm trọng.
Phương pháp **Tấn công Cache Deception** và Biện pháp Giảm thiểu
Phương pháp Tấn công
Để thực hiện **Tấn công Cache Deception**, kẻ tấn công phải xác định một thư mục hoặc phần mở rộng mà cache coi là tĩnh. Sau đó, họ tạo các URL sử dụng các ký tự phân tách (delimiter) hoặc chuỗi duyệt đường dẫn (traversal sequences).
Những chuỗi này đi qua cache mà không bị thay đổi nhưng được máy chủ gốc chuẩn hóa. Các kỹ thuật phổ biến thường được sử dụng bao gồm:
/.(dấu chấm)/*(ký tự đại diện);(dấu chấm phẩy)#(dấu thăng)%2e(dấu chấm được mã hóa)%2f(dấu gạch chéo được mã hóa)
Một cuộc khai thác thành công trong **Tấn công Cache Deception** thường liên quan đến ba bước:
- Xác định một tài nguyên hoặc đường dẫn tĩnh được cache (ví dụ: các tệp có phần mở rộng
.css,.js). - Khám phá một điểm cuối nhạy cảm được bảo vệ bởi xác thực (ví dụ:
/api/auth/session). - Chế tạo URL để cache trả về nội dung của điểm cuối nhạy cảm đó.
Biện pháp Giảm thiểu Tấn công Cache Deception
Để ngăn chặn các hình thức **Tấn công Cache Deception**, các tổ chức cần thực thi chuẩn hóa URL nhất quán trên tất cả các lớp hệ thống. Điều này đảm bảo rằng không có sự hiểu lầm giữa cache và máy chủ gốc.
Cần đảm bảo rằng các điểm cuối nhạy cảm không bao giờ mang các tiêu đề (headers) có thể cache được. Việc cấu hình chính xác các chỉ thị Cache-Control là vô cùng quan trọng.
Các nhà phát triển nên thường xuyên kiểm tra các quy tắc của CDN để từ chối các yêu cầu chứa các ký tự phân tách hoặc chuỗi duyệt đường dẫn được mã hóa không mong muốn. Điều này giúp tăng cường **an ninh mạng** cho hệ thống.
Ngoài ra, máy chủ gốc phải áp dụng các quy tắc định tuyến nghiêm ngặt, bỏ qua các hậu tố tùy ý. Đồng thời, cần trả về các tiêu đề Cache-Control thích hợp, ví dụ như no-store, trên tất cả các điểm cuối được xác thực.
Kiểm tra hành vi cache định kỳ bằng các công cụ chuyên dụng như PortSwigger Burp Suite có thể giúp xác định các cấu hình sai trước khi chúng bị khai thác trong thực tế. Tham khảo thêm về cơ chế của cuộc tấn công tại Web Cache Deception – Abuse the confusion between CF cache server and Web server.
Bằng cách đồng bộ hóa cách diễn giải URL giữa cache và máy chủ gốc, cùng với việc gắn thẻ nghiêm ngặt nội dung riêng tư là không thể cache, các tổ chức có thể đóng lại vector mới này dẫn đến **rò rỉ dữ liệu** trái phép.









