Lỗ hổng CVE nghiêm trọng trong lưu chat WhatsApp

Lỗ hổng CVE nghiêm trọng trong lưu chat WhatsApp

Tin tức bảo mật về WhatsApp gần đây cho thấy lịch sử trò chuyện có thể được lưu trữ không mã hóa trên cả macOSiOS, làm dấy lên lo ngại về bảo vệ dữ liệu cục bộ và khả năng truy cập chéo giữa các ứng dụng trong hệ sinh thái Apple.

Điểm đáng chú ý của vấn đề này là WhatsApp vẫn dùng mã hóa đầu cuối (E2EE) để bảo vệ tin nhắn trong quá trình truyền tải, nhưng cơ chế đó không áp dụng cho dữ liệu sau khi đã được giải mã và lưu trên thiết bị.

Thông tin kỹ thuật này được ghi nhận từ các nhà nghiên cứu bảo mật iOS, trong đó cơ chế lưu trữ cục bộ của WhatsApp là trọng tâm của phân tích. Nếu cần đối chiếu thêm về mô hình lưu trữ và bảo vệ dữ liệu trên nền tảng Apple, có thể xem tài liệu liên quan tại NVD.

Lưu trữ dữ liệu chat của WhatsApp trên iOS Và macOS

Theo mô tả kỹ thuật, WhatsApp lưu cơ sở dữ liệu tin nhắn cục bộ dưới dạng tệp SQLite, thường có tên Axolotl.sqlite. Đây là tệp chứa lịch sử chat sau khi nội dung đã được giải mã trên thiết bị.

Vấn đề không nằm ở kênh truyền tải mà ở trạng thái lưu trữ. Khi dữ liệu đã ở trên máy, nếu không được mã hóa at rest, nội dung có thể bị đọc bởi các thành phần có quyền truy cập hợp lệ vào cùng vùng lưu trữ.

Trên iOSmacOS, WhatsApp được cho là lưu database chat trong một app group container. Cơ chế này cho phép các ứng dụng cùng nhóm nhà phát triển chia sẻ dữ liệu với nhau.

Ý nghĩa của shared app group container

Shared container không phải là hành vi vi phạm sandboxing của Apple. Về mặt thiết kế, đây là vùng lưu trữ dùng chung để trao đổi dữ liệu giữa các app cùng nhà phát triển.

Tuy nhiên, nếu tệp cơ sở dữ liệu được lưu dưới dạng plaintext, rủi ro sẽ xuất hiện ở lớp bảo vệ dữ liệu cục bộ. Trong bối cảnh này, dữ liệu không được bảo vệ tốt ở trạng thái lưu trữ, dù kênh truyền vẫn an toàn nhờ E2EE.

Điều này tạo ra khác biệt rõ ràng giữa bảo mật trong quá trình truyềnbảo mật khi lưu trữ. Một tin nhắn có thể an toàn trên đường truyền nhưng vẫn bị lộ khi đã nằm trên thiết bị.

Rủi ro bảo mật từ dữ liệu chat không mã hóa

Từ góc độ rủi ro bảo mật, việc cơ sở dữ liệu chat không được mã hóa at rest có thể dẫn tới nhiều hệ quả nếu thiết bị hoặc vùng lưu trữ bị truy cập trái phép.

  • Rò rỉ dữ liệu nhạy cảm nếu thiết bị bị xâm nhập hoặc bị truy cập bởi thành phần có quyền trong cùng container.
  • Đọc nội dung chat dạng plaintext mà không cần vượt qua lớp mã hóa truyền tải.
  • Gia tăng nguy cơ bảo mật trong môi trường có nhiều ứng dụng cùng chia sẻ quyền truy cập dữ liệu.
  • Rủi ro an toàn thông tin cao hơn trên macOS nếu kiểm soát bảo vệ đầu cuối yếu.

Trong phân tích này, không có dấu hiệu cho thấy dữ liệu bị khai thác công khai ở quy mô lớn. Tuy vậy, kiến trúc lưu trữ hiện tại vẫn đặt ra câu hỏi về mức độ cô lập dữ liệu giữa các ứng dụng cùng nhóm quyền.

Với macOS, rủi ro có thể rõ hơn do hệ thống tệp linh hoạt hơn và mức độ phụ thuộc vào cấu hình bảo vệ đầu cuối. Nếu endpoint security không đủ mạnh, tệp chat có thể trở thành mục tiêu của phát hiện tấn công hoặc thu thập dữ liệu trái phép.

Bảo vệ dữ liệu cục bộ và giới hạn của Apple Data Protection

Apple có Data Protection framework để mã hóa tệp dựa trên trạng thái thiết bị, ví dụ khi thiết bị đang khóa. Đây là lớp bảo vệ quan trọng cho an toàn dữ liệu trên thiết bị cá nhân.

Tuy nhiên, cơ chế này không đồng nghĩa với việc mọi cơ sở dữ liệu ứng dụng luôn được mã hóa theo cách ngăn chặn các ứng dụng hợp lệ khác truy cập. Nếu dữ liệu được đặt trong shared container và không mã hóa riêng ở cấp ứng dụng, nội dung vẫn có thể bị đọc trong phạm vi quyền cho phép.

Đây là điểm cốt lõi của lỗ hổng lưu trữ cục bộ: không phải là thất bại của E2EE, mà là khoảng trống giữa lớp truyền tải và lớp lưu trữ trên thiết bị.

Ảnh hưởng hệ thống và bề mặt tấn công

Ảnh hưởng chính của vấn đề này nằm ở hệ thống bị xâm nhập hoặc thiết bị bị truy cập bởi các ứng dụng có cùng quyền chia sẻ container. Khi đó, lịch sử chat có thể bị đọc mà không cần cảnh báo rõ ràng cho người dùng.

Trên thiết bị iPhone, nếu một ứng dụng khác trong cùng nhóm nhà phát triển có thể truy cập vùng chứa dùng chung, dữ liệu WhatsApp có thể bị lộ ở dạng văn bản thuần. Trên macOS, nguy cơ có thể lớn hơn nếu hệ thống thiếu kiểm soát truy cập tệp chặt chẽ.

Về mặt kỹ thuật, đây không phải zero-day vulnerability được mô tả theo CVE công khai trong nội dung gốc, nhưng là một vấn đề thiết kế liên quan đến cách lưu trữ dữ liệu chat. Do đó, đây là một cảnh báo CVE theo nghĩa thực tiễn về mô hình rủi ro, dù không có mã CVE được nêu ra.

Điều cần lưu ý về quyền truy cập dữ liệu

Vì container chia sẻ được thiết kế cho các ứng dụng cùng developer group, vấn đề không nằm ở việc sandbox bị phá vỡ. Điểm cần quan tâm là dữ liệu trong database không được mã hóa riêng, nên mức độ cô lập dữ liệu bị suy giảm.

Trong bối cảnh bảo mật thông tin, điều này làm tăng nhu cầu kiểm tra lại cách các ứng dụng xử lý dữ liệu sau khi giải mã trên endpoint, thay vì chỉ tập trung vào bảo vệ đường truyền.

Khuyến nghị kỹ thuật cho người dùng và quản trị viên

Người dùng và tổ chức quan tâm đến an toàn thông tin có thể áp dụng một số biện pháp giảm thiểu ở mức vận hành và endpoint:

  • Giới hạn cài đặt các ứng dụng không cần thiết trong cùng nhóm quyền nếu chính sách thiết bị cho phép.
  • Áp dụng kiểm soát endpoint security mạnh hơn trên macOS để giảm nguy cơ đọc trái phép file cục bộ.
  • Ưu tiên mã hóa toàn bộ thiết bị và cấu hình bảo vệ màn hình khóa phù hợp.
  • Giám sát quyền truy cập file và container dùng chung trên thiết bị quản trị.
  • Rà soát chính sách bảo mật dữ liệu cục bộ với các ứng dụng nhạy cảm.

Về phía ứng dụng, yêu cầu quan trọng là cần xem xét thêm cơ chế mã hóa at rest ở cấp cơ sở dữ liệu hoặc lớp ứng dụng, thay vì chỉ dựa vào bảo vệ của hệ điều hành. Đây là hướng giảm thiểu phù hợp với các dịch vụ nhắn tin ưu tiên riêng tư.

Điểm khác biệt giữa E2EE Và lưu trữ cục bộ

Mã hóa đầu cuối (E2EE) bảo vệ tin nhắn khi đi qua mạng. Khi nội dung đã được giải mã trên thiết bị, cơ chế này không còn kiểm soát trạng thái lưu trữ cục bộ.

Ngược lại, mã hóa khi lưu trữ giúp giảm rủi ro nếu database bị truy cập bởi tiến trình hợp lệ khác, người dùng cục bộ, hoặc thành phần khai thác từ một thiết bị đã bị xâm nhập.

Chính vì vậy, một hệ thống nhắn tin an toàn cần đồng thời đáp ứng cả hai lớp: bảo mật trong truyền tảibảo mật ở trạng thái lưu trữ.

Trong trường hợp này, nội dung chat có thể không bị can thiệp trên đường truyền, nhưng vẫn có nguy cơ dữ liệu bị lộ ở endpoint nếu tệp SQLite như Axolotl.sqlite không được bảo vệ đầy đủ.

Đó là lý do vì sao lỗ hổng CVE theo nghĩa rộng trong mô hình bảo mật endpoint thường không chỉ xoay quanh giao thức mạng, mà còn liên quan trực tiếp đến cách ứng dụng quản lý dữ liệu sau khi giải mã trên thiết bị.