- Xin chào, tôi là Daniel. Tôi là học sinh lớp 12, 15 tuổi. Trong thời gian rảnh, tôi hack các tập đoàn lớn và tạo ra những thứ thú vị. Ba tháng trước, tôi đã phát hiện một cuộc tấn công giải ẩn danh 0-click có thể cho phép kẻ tấn công theo dõi vị trí của mục tiêu trong bán kính 250 dặm thông qua các thiết bị đã cài đặt một số ứng dụng nhất định. Tôi muốn dùng nghiên cứu này để cảnh báo các nhà báo, nhà hoạt động và hacker.
Cloudflare
- Cloudflare là một trong những CDN phổ biến nhất trên thị trường, vượt qua Sucuri, Amazon CloudFront, Akamai, Fastly và các dịch vụ khác.
- Một trong những tính năng chính của Cloudflare là caching, giúp lưu trữ nội dung được truy cập thường xuyên để giảm tải cho máy chủ và cải thiện hiệu năng website.
- Cloudflare có các trung tâm dữ liệu tại 330 thành phố trên toàn thế giới, nhiều hơn Google 273%.
- Vì dữ liệu cache của Cloudflare được lưu ở vị trí gần người dùng, tôi nảy ra ý tưởng liệu điều này có thể bị lạm dụng cho một cuộc tấn công giải ẩn danh hay không.
Cloudflare Teleport
- Dù không thể gửi trực tiếp các yêu cầu HTTP tới trung tâm dữ liệu của Cloudflare, tôi đã phát hiện ra cách dùng Cloudflare Workers để gửi yêu cầu tới một trung tâm dữ liệu cụ thể.
- Cloudflare Teleport là một công cụ proxy chuyển hướng các yêu cầu HTTP tới một trung tâm dữ liệu cụ thể thông qua Cloudflare Workers.
- Công cụ này sau đó đã bị Cloudflare vá, nhưng đã được dùng trong giai đoạn thử nghiệm ban đầu.
Cuộc tấn công giải ẩn danh đầu tiên
- Tôi đã dùng công cụ Cloudflare Teleport để kiểm chứng giả thuyết, đồng thời sử dụng một chương trình CLI đơn giản để gửi các yêu cầu HTTP GET tới một URL cụ thể và liệt kê cache của tài nguyên cùng tuổi của nó.
- Tôi đã thử nghiệm bằng favicon của Namecheap và xác nhận giả thuyết.
Ứng dụng thực tế: Signal
- Signal là một dịch vụ nhắn tin mã hóa mã nguồn mở được các nhà báo và nhà hoạt động sử dụng nhiều.
- URL tệp đính kèm của Signal có bật Cloudflare caching, nên có thể dùng phương pháp định vị địa lý cache để theo dõi vị trí của người nhận.
- Có thể thực hiện tấn công 0-click thông qua thông báo đẩy, và tệp đính kèm sẽ tự động được tải xuống ngay cả khi người dùng không mở cuộc trò chuyện.
Ứng dụng thực tế: Discord
- Discord là ứng dụng miễn phí nhắm tới game thủ, và gần đây được chú ý liên quan đến các vụ rò rỉ của chính phủ và tội phạm mạng.
- URL avatar người dùng của Discord có bật Cloudflare caching, nên có thể thực hiện tấn công 0-click thông qua thông báo đẩy.
- Có thể dùng bot Discord tên là GeoGuesser để thực hiện tấn công tự động và xem kết quả trực tiếp trên Discord.
Báo cáo bug bounty
- Tôi đã báo cáo kết quả nghiên cứu cho Signal và Discord, nhưng phần lớn chỉ nhận được phản hồi đáng thất vọng.
- Cloudflare đã vá lỗi cho phép di chuyển giữa các trung tâm dữ liệu, nhưng vấn đề gốc rễ vẫn chưa được giải quyết.
Cách tự bảo vệ
- Cuộc tấn công này có thể là rủi ro đặc biệt lớn đối với các nhà báo, nhà hoạt động và những cá nhân coi trọng quyền riêng tư.
- Mọi ứng dụng sử dụng CDN vẫn có thể dễ bị tấn công nếu không áp dụng các biện pháp phòng ngừa phù hợp.
Suy nghĩ cuối cùng
- CDN giúp cải thiện hiệu năng và khả năng mở rộng, nhưng cũng đồng thời mang đến nguy cơ bị lạm dụng theo những cách mới.
- Những người giữ vai trò nhạy cảm hoặc coi trọng quyền riêng tư cần luôn cập nhật thông tin và cảnh giác.
1 bình luận
Ý kiến trên Hacker News
Khi người dùng Signal gửi ảnh, ảnh sẽ được lưu vào bộ nhớ đệm tại các trung tâm dữ liệu thông qua Cloudflare. Nói rằng có thể theo dõi vị trí người dùng là cách diễn đạt hơi cường điệu; trừ khi người dùng ở một nơi hẻo lánh, điều này không thực sự làm mất tính ẩn danh. Tuy vậy, đây vẫn là một phân tích thú vị
Signal hay Discord không cung cấp tính ẩn danh. Họ nói rằng họ không thể đọc được tin nhắn, nhưng điều đó không hoàn hảo
Một số người dùng cho rằng kỹ thuật này làm tổn hại đến tính ẩn danh. Với các cuộc tấn công lặp đi lặp lại, có thể theo dõi lộ trình di chuyển của người dùng
Việc xác định vị trí trong phạm vi 250 dặm không đồng nghĩa với phá vỡ tính ẩn danh. Cần thêm OSINT
Cuộc tấn công này có thể được cơ quan thực thi pháp luật hoặc các tác nhân xấu sử dụng để xác định vị trí người dùng
Có ý kiến đặt câu hỏi vì sao Signal lại bật tính năng lưu đệm URL. Có lẽ tắt lưu đệm sẽ giải quyết được vấn đề
Đây là cách Internet vận hành ở mức cơ bản, và cũng là lý do cần có proxy ẩn danh. Với đa số người dùng, đây không phải mối đe dọa lớn
Đây là một kiểu tấn công phi truyền thống không cần thực thi mã. Nó có thể xác định vị trí tương đối của người dùng thông qua các trung tâm dữ liệu của Cloudflare