Cách khắc phục khi bị lộ khóa máy chủ Giải pháp gửi thông báo qua đám mây của Firebase (FCM)

Thông tin này dành cho nhà phát triển có ứng dụng bị lộ khóa máy chủ Giải pháp gửi thông báo qua đám mây của Firebase (FCM).

Hiện trạng

Ít nhất một ứng dụng của bạn bị lộ khoá máy chủ FCM. Ứng dụng của bạn đang dễ bị tấn công. Kẻ tấn công độc hại có thể dùng khóa bị lộ để gửi thông báo đẩy cho tất cả người dùng của ứng dụng của bạn. Kẻ tấn công có thể sẽ kiểm soát nội dung của những thông báo đó, từ việc dùng các thông điệp xúc phạm cho đến các hình ảnh phản cảm/làm phiền. Vui lòng xem các bước chi tiết dưới đây để khắc phục vấn đề này trong ứng dụng.  Bạn có thể xem danh sách những vị trí bị lộ khoá máy chủ FCM trong phần thông báo của Play Console cho ứng dụng của bạn.

Việc cần làm

  1. Làm theo các bước dưới đây để cập nhật ứng dụng và khóa FCM bị lộ.

    1. Nếu bạn đã bật API FCM cũ cho ứng dụng và không dùng API này để gửi thông báo đẩy, hãy tắt API FCM cũ,
    2. Nếu đã bật API FCM cũ và đang dùng API này để gửi thông báo đẩy, thì bạn có thể làm theo bước bất kỳ trong hai bước sau đây:
      1. (Đề xuất) Chuyển sang sử dụng API FCM v1 và tắt API FCM cũ.
      2. Bảo mật quá trình sử dụng API FCM cũ bằng cách:
        1. Nếu bạn chỉ dùng khóa bị lộ cho API FCM: 
          1. Tạo một khóa mới trong Bảng điều khiển của Firebase > Cài đặt dự án > Gửi thông báo qua đám mây bằng cách nhấp vào “Thêm khóa máy chủ”.  Hãy dùng khóa máy chủ mới này để gửi thông báo FCM từ môi trường máy chủ bảo mật của bạn. Hãy đảm bảo rằng bạn chỉ dùng khóa này từ môi trường máy chủ bảo mật và đừng đưa khóa này vào mã của ứng dụng (ứng dụng, tệp nhị phân). 
          2. Sau khi bạn đã chuyển sang gửi thông báo FCM bằng khóa máy chủ mới tạo, hãy xóa khóa máy chủ bị lộ khỏi bảng điều khiển GCP. Trong email thông báo của Google Play, bạn có thể xem được vị trí nào trong ứng dụng để lộ khóa máy chủ FCM. Bước c. mô tả cách bạn có thể xác định được khóa bị lộ từ những vị trí này. 
        2. Nếu bạn đang dùng khóa bị lộ cho những API khác, bao gồm cả FCM, hãy:
          1. Chuyển sang sử dụng API FCM v1 và tắt API FCM cũ.
          2. Nhằm đảm bảo hoạt động sử dụng API về sau, bạn đừng dùng khóa bị lộ cho những API khác. Cuối cùng, hãy xóa khóa bị lộ khỏi Bảng điều khiển GCP.
    3. Sau khi bạn thực hiện một trong những bước trên, hãy xóa khóa máy chủ FCM bị lộ khỏi mã ứng dụng. Trong email thông báo của Google Play, bạn có thể xem được vị trí nào trong ứng dụng để lộ khóa máy chủ FCM. Để xác định được khóa bị lộ, hãy kiểm tra mã của ứng dụng tại vị trí dễ bị tấn công. Có thể khóa sẽ được nhúng ở vị trí đó dưới dạng chuỗi hoặc được tải ở vị trí đó từ tài nguyên XML của ứng dụng; đối với trường hợp thứ hai, hãy kiểm tra tệp res/values/strings.xml của ứng dụng để xác định khóa bị lộ. Xin lưu ý những vấn đề sau:
      • Nếu làm theo những bước trên nhưng không xóa khóa bị lộ khỏi ứng dụng, thì bạn sẽ tiếp tục nhận được thông báo liên quan đến lỗ hổng qua email/Google Play Console của mình. 
      • Nếu xóa khóa bị lộ khỏi ứng dụng nhưng không làm theo những bước nêu trên, thì bạn chưa thực sự khắc phục được vấn đề vì có thể kẻ tấn công chỉ cần tìm khóa bị lộ trong một phiên bản trước đây của ứng dụng rồi dùng khóa đó để tấn công ứng dụng.

2. Gửi tệp APK đã cập nhật

Cách gửi gói ứng dụng hoặc tệp APK đã cập nhật:

  1. Chuyển đến Play Console.
  2. Chọn ứng dụng.
  3. Chuyển đến Trình khám phá gói ứng dụng.
  4. Chọn phiên bản ứng dụng của tệp APK/gói ứng dụng không tuân thủ trong trình đơn thả xuống ở trên cùng bên phải rồi ghi lại bản phát hành của phiên bản đó.
  5. Chuyển đến kênh có vấn đề về chính sách. Kênh đó sẽ là một trong 4 trang sau: Thử nghiệm Công khai/Khép kín/Nội bộ hoặc Chính thức.
  6. Ở gần phía trên cùng bên phải của trang, hãy nhấp vào Tạo bản phát hành mới. (Có thể bạn sẽ phải nhấp vào phần Quản lý kênh trước)
    • Nếu bản phát hành có tệp APK vi phạm đang ở trạng thái bản nháp, hãy hủy bản phát hành đó.
  7. Thêm phiên bản tuân thủ chính sách của gói ứng dụng hoặc tệp APK.
    • Đảm bảo rằng phiên bản gói ứng dụng hoặc tệp APK không tuân thủ phải thuộc phần Không được đưa vào của bản phát hành này. Để được hướng dẫn thêm, vui lòng xem phần "Không được đưa vào (gói ứng dụng và tệp APK)" trong bài viết này trên Trung tâm trợ giúp của Play Console.
  8. Chọn Lưu để lưu những thay đổi mà bạn thực hiện đối với bản phát hành.
  9. Sau khi chuẩn bị xong bản phát hành, hãy chọn Xem lại bản phát hành.

Nếu bạn phát hành tệp APK không tuân thủ trên nhiều kênh, hãy lặp lại các bước 5-9 trên mỗi kênh.

Sau khi bạn gửi lại, chúng tôi sẽ xem xét lại ứng dụng của bạn. Quá trình này có thể mất vài giờ. Nếu ứng dụng vượt qua quy trình xem xét và được xuất bản thành công thì bạn không cần thực hiện thêm hành động nào. Nếu ứng dụng không vượt qua được quy trình xem xét thì phiên bản ứng dụng mới sẽ không được phát hành và bạn sẽ nhận được thông báo qua email.

Chúng tôi sẵn sàng trợ giúp

Nếu có câu hỏi kỹ thuật liên quan đến lỗ hổng này thì bạn có thể đăng lên Stack Overflow và gắn thẻ "android-security". Để hiểu rõ hơn về những bước cần thực hiện nhằm giải quyết vấn đề này, bạn có thể liên hệ với nhóm hỗ trợ nhà phát triển của chúng tôi.

Trình đơn chính
16861112285785620979
true
Tìm kiếm trong Trung tâm trợ giúp
true
true
true
true
true
5016068
false