1 điểm bởi GN⁺ 2023-12-23 | 1 bình luận | Chia sẻ qua WhatsApp

Quá trình phát hiện

  • Nghiên cứu cách thực hiện yêu cầu HTTP thông qua tính năng xem trước liên kết trên WhatsApp.
  • Xác nhận rằng liên kết và phần xem trước được gửi riêng biệt, và đã thành công trong việc tạo ra tin nhắn có phần xem trước khác với liên kết thực tế.

Vấn đề #1 - Không khớp giữa liên kết và phần xem trước

  • Phân tích liên kết và dữ liệu xem trước có trong tin nhắn WhatsApp để tìm cách tạo ra sự không khớp.
  • Đã thành công trong việc chặn và chỉnh sửa tin nhắn để gửi đi một tin nhắn có phần xem trước khác với liên kết thực tế.

Vấn đề #2 - Ngụy trang liên kết (2K2E)

  • Thử nghiệm phương pháp thay đổi cách biểu diễn văn bản bằng ký tự Unicode.
  • Sử dụng ký tự U+202E (Right-To-Left Override) để hiển thị liên kết theo thứ tự ngược, từ đó phát triển cách làm cho URL giả trông giống như URL thật.

Kết quả cuối cùng

  • Tạo ra một URL trông như Instagram, nhưng thực chất là liên kết dẫn tới blog của kẻ tấn công.
  • Qua đó phát hiện một lỗ hổng có thể khiến người dùng nhầm tưởng đó là liên kết bình thường và bấm vào.

Kịch bản tấn công

  • Kẻ tấn công mua một tên miền giả và tạo tin nhắn sử dụng phần xem trước của tên miền hợp pháp.
  • Loại bỏ thuộc tính matchedText và sửa thuộc tính text thành ký tự U+202E cùng URL giả để thao túng tin nhắn.
  • Gửi tin nhắn đã bị chỉnh sửa này tới nạn nhân.

Phản ứng của Meta

  • Meta có hệ thống có thể điều chỉnh động logic chuẩn hóa URL vì phải hỗ trợ nhiều nền tảng và môi trường khác nhau.
  • Tuy nhiên, Meta dường như không có ý định khắc phục vấn đề bảo mật này và có vẻ chỉ phản ứng khi nó bị phát hiện là spam.

Cách giảm thiểu

  • Vì Meta không có ý định khắc phục vấn đề này, nên không thể tin cậy liên kết trên WhatsApp.
  • Trước khi bấm vào liên kết, cần sao chép nó và kiểm tra địa chỉ liên kết đã được làm sạch khỏi ký tự U+202E trong phần xem trước của clipboard.

Cập nhật

  • Ngoài WhatsApp, còn có các dịch vụ khác cũng dễ bị 2K2E do không được làm sạch đúng cách.

GN⁺ nhận định:

  • Điều quan trọng nhất trong bài viết này là lỗ hổng clickjacking được phát hiện trên WhatsApp, với cách thức tấn công được mô tả chi tiết để khiến người dùng bấm vào liên kết giả khác với liên kết thực tế.
  • Bài viết này đáng chú ý vì một lỗ hổng bảo mật bất ngờ đã được phát hiện trên một nền tảng nhắn tin vốn thường được tin cậy, qua đó nhắc nhở người dùng phải luôn cẩn trọng trước khi bấm vào liên kết.
  • Ngoài ra, phản ứng của Meta cho thấy họ không có ý định chủ động giải quyết vấn đề này, càng nhấn mạnh rằng người dùng cần tự chú ý hơn đến an toàn bảo mật của mình.

1 bình luận

 
GN⁺ 2023-12-23
Ý kiến trên Hacker News
  • Đây là một sự kết hợp khéo léo giữa việc lạm dụng tính năng, nhưng tác động bảo mật được đánh giá là thấp vì kẻ tấn công sẽ cần thêm các bước tấn công khác, trừ khi đó là cảnh sát, cơ quan tình báo hoặc tổ chức tương tự. Về mặt chính xác kỹ thuật, tôi không nghĩ gọi đây là "clickjacking" là phù hợp. Clickjacking chỉ một kỹ thuật cụ thể, trong đó một khung HTML vô hình được chồng lên nội dung khác.
  • Clickjacking là khi một phần tử khác với phần tử mà người dùng định nhấp lại bắt sự kiện nhấp chuột. Kẻ tấn công có thể phát hiện được việc người dùng đã nhấp vào đâu. Điều OP tìm ra rất hay, và thực ra là một cách thay đổi cách hiển thị liên kết trong một hệ thống khác chứ không phải clickjacking.
  • Người dùng đang gặp khó khăn trong việc nhận biết tên miền khi nhấp vào liên kết, và nhiều người không hiểu hoặc không thể phân biệt được. Dù liên kết có thể bị theo dõi và trông đáng ngờ, hầu như không ai nêu vấn đề.
  • Meta cần thừa nhận và đưa ra giải pháp cho vấn đề URL trong tin nhắn và URL trong bản xem trước có thể khác nhau. Điều này có thể nhằm mục đích mở rộng các URL rút gọn, nhưng Meta và WhatsApp đáng ra phải có thể đưa ra một giải pháp thông minh.
  • Vấn đề thực sự không phải là WhatsApp hay các ký tự đảo ngược Unicode, mà là chính URL vốn đã khó hiểu. Ngay cả một URL đơn giản như visa.securesite.com cũng đánh lừa được nhiều người. Có lẽ sẽ chưa có giải pháp tốt nào trong tương lai gần.
  • Thật thất vọng khi Meta không giải quyết vấn đề này và cũng không trả tiền thưởng lỗi cho nhà nghiên cứu.
  • Thật thú vị khi cuộc tấn công này được phân loại là "reverse engineering".
  • RTL từ lâu đã là nguyên nhân lớn gây ra các lỗ hổng bảo mật. Nên có một tùy chọn trong hệ điều hành để vô hiệu hóa RTL đối với những người không sử dụng nó, ताकि họ không bị phơi bày trước rủi ro.
  • Cuộc tấn công này rất ấn tượng, và bài viết cũng rất dễ đọc, dễ hiểu. Có một câu hỏi cơ bản là liệu tác giả đã dùng trình gỡ lỗi trên ứng dụng web của WhatsApp, áp dụng trên điện thoại, hay dùng trình giả lập.
  • Cảm ơn vì đã chia sẻ một ý tưởng và lỗ hổng thú vị. Đây là một bản tóm tắt ngắn gọn và rõ ràng.
  • Đã xác nhận rằng liên kết và bản xem trước được gửi riêng biệt. Việc giao diện người dùng buộc người dùng phải so sánh liên kết với bản xem trước để đảm bảo an toàn mới là vấn đề lớn hơn.