2 điểm bởi GN⁺ 2024-03-08 | 1 bình luận | Chia sẻ qua WhatsApp

Liên kết bảo mật riêng tư không thể truy cập công khai, thật sự là vậy sao?

  • Các công cụ phân tích malware/URL phổ biến như urlscan.io, Hybrid Analysis và Cloudflare Radar URL Scanner lưu trữ số lượng lớn liên kết để thu thập và chia sẻ thông tin.
  • Điều chưa được biết đến rộng rãi là các dịch vụ này đang lưu cả những liên kết riêng tư và nhạy cảm bị người dùng vô tình gửi lên hoặc bị quét thành dữ liệu công khai bởi các scanner và tiện ích mở rộng được cấu hình sai.

Đó là những loại liên kết nào?

  • Các tệp được chia sẻ bằng công cụ lưu trữ đám mây (Dropbox, iCloud, Sync, Egnyte, Ionos Hidrive, AWS S3 v.v.).
  • Các công cụ NAS kết nối đám mây (Western Digital Mycloud v.v.).
  • Công cụ giao tiếp doanh nghiệp (Slido, Zoom, Onedrive, Airtable v.v.).
  • Liên kết đặt lại mật khẩu, liên kết đăng nhập OAuth, v.v.
  • Điểm chung của các dịch vụ này là cho phép truy cập bằng một liên kết riêng lẻ chứa định danh ngẫu nhiên. Đôi khi chúng còn được bảo vệ thêm bằng mật khẩu hoặc cụm mật khẩu; trong trường hợp đó, chỉ truy cập được liên kết không đồng nghĩa với việc dữ liệu bị lộ.

Ai phải chịu trách nhiệm?

  • Theo điều khoản sử dụng của Hybrid Analysis và urlscan.io, trách nhiệm đối với nội dung được gửi lên thuộc về người dùng, và không có cơ chế rà soát hay gỡ bỏ các liên kết nhạy cảm.
  • Việc triển khai điều này theo cách tự động hóa cũng có thể không hề dễ dàng.
  • Với tư cách là nhà nghiên cứu bảo mật, rất khó để xác định nguồn gốc của các liên kết này.

Chúng tôi là thợ săn mối đe dọa! Mọi liên kết đều là của chúng tôi!

  • urlscan Pro cho phép người dùng/doanh nghiệp trả phí truy cập không chỉ các bản quét Public mà cả Unlisted.
  • Unlisted không hiển thị trên trang công khai hay trong kết quả tìm kiếm, nhưng vẫn hiển thị với khách hàng của nền tảng urlscan Pro.
  • Cortex-Analyzers của TheHive sử dụng rõ ràng cấu hình public:on trong bộ phân tích urlscan.io, khiến liên kết xuất hiện dưới dạng unlisted.
  • Với người dùng urlscan Pro, dữ liệu không được công khai nhưng vẫn có thể truy cập, nên nguy cơ rò rỉ thêm nhiều thông tin nhạy cảm là có thật.

Có thể gỡ các liên kết nhạy cảm như thế nào?

  • Urlscan và Hybrid Analysis cho phép gắn cờ liên kết để yêu cầu gỡ bỏ.
  • Với Hybrid Analysis, mọi tệp được gửi lên sandbox công khai đều có thể tìm kiếm và được công khai trên toàn thế giới.

Kết luận

  • Gần như chắc chắn vấn đề này sẽ tiếp tục tồn tại. Giải pháp tốt nhất có thể là mặc định giữ các bản quét ở chế độ riêng tư, nhưng điều đó lại không phù hợp với mục tiêu chia sẻ threat intelligence và thực hành phân tích của cộng đồng bảo mật.
  • Khi sử dụng các dịch vụ này, cần chú ý đến mức độ hiển thị của bản quét.

Tuyên bố miễn trừ trách nhiệm

  • Nếu bạn chọn truy cập các liên kết/tệp này từ cơ sở dữ liệu URL, hãy cẩn thận với các tệp và liên kết độc hại thực sự.
  • Một số có thể chỉ là các nỗ lực phishing đơn giản, nhưng cũng có thể chứa malware thật.
  • Khuyến nghị sử dụng môi trường sandbox.

Liên kết hữu ích

  • SOAR spot của urlscan.io: Chatty security tools leaking private data (2022)
  • Search API Reference của urlscan.io
  • Public API của Falcon Sandbox
  • Cloudflare Radar URL Scanner

Ý kiến của GN⁺

  • Bài viết này cho thấy các công cụ bảo mật có thể vô tình làm lộ thông tin nhạy cảm như thế nào, qua đó gióng lên hồi chuông cảnh báo cho cả nhà nghiên cứu bảo mật lẫn người dùng phổ thông.
  • Những vấn đề này có thể phát sinh từ lỗi của người dùng hoặc cấu hình sai của công cụ, và điều đó đòi hỏi sự cẩn trọng cũng như trách nhiệm cao hơn trong cách cộng đồng bảo mật xử lý thông tin nhạy cảm.
  • Bài viết cũng nhấn mạnh tầm quan trọng của việc cá nhân và doanh nghiệp cần thực hiện các biện pháp để bảo vệ dữ liệu của mình.
  • Nhìn từ góc độ phê phán, các rò rỉ như vậy có thể là mối đe dọa nghiêm trọng đối với quyền riêng tư cá nhân và tính bảo mật của doanh nghiệp, đồng thời đặt ra nghi vấn về độ tin cậy của các công cụ và dịch vụ bảo mật.
  • Các dự án khác cung cấp tính năng tương tự gồm có những nền tảng phân tích malware như VirusTotal hay Any.run; khi sử dụng các dịch vụ này, cần luôn xem xét kỹ liệu dữ liệu có bị công khai hay không.

1 bình luận

 
GN⁺ 2024-03-08
Ý kiến trên Hacker News
  • Vấn đề cốt lõi là liên kết không có kiểm soát truy cập, chỉ bị mặc định xem là riêng tư vì không có chỉ mục công khai. Gần đây trên Hacker News có một câu chuyện được quan tâm về việc phát hiện AWS account ID thông qua bucket, và đồng thuận rút ra trong phần bình luận là việc dựa vào tính không công khai của mã định danh tài khoản như một phần của bảo mật là một cách tiếp cận sai lầm. Đây chỉ đơn thuần là một cách dorking khác mà thôi.

    • Tính riêng tư của liên kết: Việc giả định một liên kết là riêng tư chỉ vì nó không được lập chỉ mục công khai là có vấn đề. Dựa vào tính không công khai của AWS account ID không phải là cách tiếp cận đúng đắn về bảo mật, và đây không phải vấn đề bảo mật mới mà là một dạng dorking.
  • Nếu muốn tạo liên kết có thể chia sẻ riêng tư, bạn nên lưu thông tin bí mật trong phần hash của URL. Phần hash không được gửi trong truy vấn DNS hay HTTP request. Ví dụ, liên kết dạng links.com#<secret> sẽ không rời khỏi trình duyệt. Nên mã hóa dữ liệu trong phần hash thành chuỗi Base64 an toàn cho URL.

    • Chia sẻ liên kết an toàn: Có thể chia sẻ liên kết an toàn hơn bằng cách lưu thông tin bí mật trong phần hash của URL. Cách này an toàn hơn vì phần hash không xuất hiện trong truy vấn DNS hay HTTP request.
  • Cá nhân tôi luôn thấy nghi ngờ với những liên kết "riêng tư" có thể dùng vô hạn lần. Đó chỉ là bảo mật nhờ che giấu mà thôi. Sẽ tốt hơn nếu có tùy chọn rõ ràng như Google Docs: "bất kỳ ai có URL đều có thể truy cập". Trong hệ thống tôi từng xây dựng, chúng tôi dùng signed URL có thời hạn ngắn, và URL này không hiển thị trực tiếp cho người dùng.

    • Sự hoài nghi với liên kết riêng tư: Liên kết "riêng tư" thực chất chỉ là bảo mật nhờ che giấu, và dùng signed URL có thời hạn ngắn là cách an toàn hơn.
  • Những liên kết không nằm trong một vòng lặp chuyển hướng nhanh sẽ bị sao chép và chia sẻ. URL là công cụ phổ quát, giúp truy cập tài nguyên ở tầng giao thức. Kiểm soát truy cập với bất cứ thứ gì có vòng đời không quá ngắn nên được thực hiện bên ngoài URL. Khi chia sẻ liên kết qua kênh không phải e2ee, thực thể đầu tiên truy cập URL có thể là dịch vụ của kênh đó chứ không phải người nhận. Các công cụ quét như vậy sẽ không cải thiện UX nếu nói rõ với người dùng rằng việc quét là công khai.

    • Kiểm soát truy cập qua URL: URL được chia sẻ để tạo điều kiện truy cập tài nguyên, còn kiểm soát truy cập nên được thực hiện bằng cách khác thay vì dựa vào URL. Các công cụ như scanner nếu thông báo việc quét công khai cho người dùng thì cũng không giúp cải thiện UX, vì người dùng có thể ngần ngại dùng dịch vụ.
  • Giải pháp cho vấn đề "xác thực qua email" là dùng mã dùng một lần, để dù URL có vô tình bị chia sẻ cũng không thành vấn đề, mà không cần thêm bước tạo tài khoản và mật khẩu. Khi người dùng truy cập một liên kết "riêng tư", website sẽ gửi lại qua email một mã dùng một lần có giới hạn thời gian, và người dùng nhập mã tạm thời đó để xác nhận họ sở hữu email.

    • Xác thực email và mã dùng một lần: Để giải quyết vấn đề xác thực qua email, có thể dùng mã dùng một lần; nhờ đó việc URL bị chia sẻ nhầm cũng không gây vấn đề.
  • Trên Internet, nếu URL không có lớp bảo vệ nào ngoài một chuỗi ngẫu nhiên thì về bản chất nó không riêng tư. Chuyện này cũng giống như tìm webcam kết nối Internet vậy. Lẽ ra chúng ta đã phải biết điều này rồi. Tại sao phần "ai phải chịu trách nhiệm" lại không nhắc đến điều đó?

    • Bản chất riêng tư của URL: Nếu URL không có lớp bảo vệ nào ngoài chuỗi ngẫu nhiên thì nó không thực sự riêng tư, và đây là điều vốn đã được biết đến.
  • Hơi lạc đề một chút, nhưng có một liên kết nói rằng Cloudflare Radar khai thác dữ liệu từ 1.1.1.1. Tôi cứ nghĩ 1.1.1.1 không dùng dữ liệu người dùng cho bất kỳ mục đích nào cơ mà?

    • Cloudflare Radar và 1.1.1.1: Có ý kiến cho rằng Cloudflare Radar khai thác dữ liệu từ 1.1.1.1, điều này mâu thuẫn với ấn tượng trước đây rằng 1.1.1.1 không sử dụng dữ liệu người dùng.
  • Liên kết cuộc họp Zoom thường thêm mật khẩu dưới dạng query parameter. Liệu đây có phải là một liên kết "riêng tư và an toàn" không? Nếu không có mật khẩu thì nó có còn là liên kết "riêng tư và an toàn" không?

    • Độ an toàn của liên kết họp Zoom: Đặt câu hỏi về độ an toàn của liên kết họp Zoom khi có và khi không có mật khẩu trong liên kết.
  • Có thể giải thích trường hợp nào trong hai trường hợp sau an toàn hơn không?

    1. domain.com/login người dùng: John mật khẩu: mật khẩu ngẫu nhiên 5 ký tự
    2. domain.com/ URL ngẫu nhiên 12 ký tự Giả sử cả hai trường hợp đều có cùng mức bảo vệ về độ ngẫu nhiên/rate limit hoặc đều không có, thì vì sao trường hợp 1 lại an toàn hơn trường hợp 2?
    • So sánh độ an toàn đăng nhập: Câu hỏi so sánh độ an toàn của hai cách đăng nhập khác nhau.
  • Mọi media/ảnh được tải lên ứng dụng private trên airtable.com đều là liên kết công khai, có thể truy cập không cần xác thực nếu biết URL.

    • Liên kết công khai trên Airtable.com: Media/ảnh được tải lên Airtable.com là liên kết công khai, ai biết URL cũng có thể truy cập.