การแก้ไขสำหรับคีย์เซิร์ฟเวอร์ Firebase Cloud Messaging (FCM) ที่เปิดเผย

ข้อมูลนี้มีไว้สำหรับนักพัฒนาแอปซึ่งมีคีย์เซิร์ฟเวอร์ Firebase Cloud Messaging (FCM) ที่เปิดเผย

สิ่งที่จะเกิดขึ้น

แอปของคุณอย่างน้อย 1 แอปมีคีย์เซิร์ฟเวอร์ FCM ที่เปิดเผย ผู้โจมตีที่เป็นอันตรายอาจใช้คีย์ที่เปิดเผยเพื่อส่งข้อความ Push ถึงผู้ใช้ทุกคนในแอปที่มีช่องโหว่ของคุณ โดยผู้โจมตีจะควบคุมเนื้อหาของการแจ้งเตือนดังกล่าว และเนื้อหาเหล่านี้อาจเป็นได้ทั้งข้อความที่ไม่เหมาะสมไปจนถึงรูปภาพที่โจ่งแจ้งหรือรบกวนใจ โปรดอ่านขั้นตอนโดยละเอียดด้านล่างเพื่อแก้ปัญหาที่เกิดขึ้นในแอป  ดูตําแหน่งในแอปที่มีการเปิดเผยคีย์เซิร์ฟเวอร์ FCM ได้ในการแจ้งเตือนของ Play Console สําหรับแอป

ต้องดำเนินการ

  1. อัปเดตแอปและคีย์ FCM ที่เปิดเผยโดยใช้ขั้นตอนที่ไฮไลต์ไว้ด้านล่างนี้

    1. หากคุณเปิดใช้ FCM API เดิมไว้สำหรับแอป และไม่ได้ใช้เพื่อส่งข้อความ Push ให้ปิดใช้ FCM API เดิม
    2. หากคุณเปิดใช้ FCM API เดิมไว้และใช้เพื่อส่งข้อความ Push ให้เลือกทำขั้นตอนใดขั้นตอนหนึ่งจาก 2 ขั้นตอนต่อไปนี้
      1. (แนะนำ) ย้ายข้อมูลไปใช้ FCM v1 API และปิดใช้ FCM API เดิม
      2. ดูแลรักษาความปลอดภัยในการใช้ FCM API เดิมโดยทำดังนี้
        1. ในกรณีที่คุณใช้คีย์ที่เปิดเผยสำหรับ FCM API เท่านั้น 
          1. สร้างคีย์ใหม่จากคอนโซล Firebase > การตั้งค่าโปรเจ็กต์ > Cloud Messaging โดยคลิก "เพิ่มคีย์เซิร์ฟเวอร์" ใช้คีย์เซิร์ฟเวอร์ใหม่นี้เพื่อส่งข้อความ FCM จากสภาพแวดล้อมของเซิร์ฟเวอร์ที่ปลอดภัย ตรวจดูว่าคุณใช้คีย์นี้จากสภาพแวดล้อมของเซิร์ฟเวอร์ที่ปลอดภัยเท่านั้นและไม่ได้รวมคีย์ไว้ในโค้ดของไคลเอ็นต์ (แอป ไบนารี) 
          2. เมื่อคุณย้ายข้อมูลไปส่งข้อความ FCM โดยใช้คีย์เซิร์ฟเวอร์ที่สร้างขึ้นใหม่แล้ว ให้ลบคีย์เซิร์ฟเวอร์ที่เปิดเผยออกจากคอนโซล GCP ดูตำแหน่งในแอปที่มีการเปิดเผยคีย์เซิร์ฟเวอร์ FCM ได้ในอีเมลการแจ้งเตือนของ Google Play ขั้นตอน ค. อธิบายว่าคุณจะหาคีย์ที่เปิดเผยจากตำแหน่งเหล่านี้ได้อย่างไร 
        2. หากคุณกำลังใช้คีย์ที่เปิดเผยสำหรับ API อื่นๆ ซึ่งรวมถึง FCM ให้ทำดังนี้
          1. ย้ายข้อมูลไปใช้ FCM v1 API และปิดใช้ FCM API เดิม
          2. เพื่อปกป้องการใช้งาน API อื่นๆ ในอนาคต ให้พิจารณาย้ายข้อมูลจากการใช้คีย์ที่เปิดเผยสำหรับ API อื่นๆ และลบคีย์ที่เปิดเผยออกจากคอนโซล GCP ในที่สุด
    3. เมื่อทำตามขั้นตอนใดขั้นตอนหนึ่งข้างต้นแล้ว ให้ลบคีย์เซิร์ฟเวอร์ FCM ที่เปิดเผยออกจากโค้ดของแอป ดูตำแหน่งในแอปที่มีการเปิดเผยคีย์เซิร์ฟเวอร์ FCM ได้ในอีเมลการแจ้งเตือนของ Google Play หากต้องการหาคีย์ที่เปิดเผย ให้ตรวจสอบโค้ดของแอปในตำแหน่งที่มีช่องโหว่ คีย์อาจฝังเป็นสตริงอยู่ในตำแหน่งดังกล่าวหรือโหลดอยู่ในตำแหน่งนั้นจากทรัพยากร XML ของแอป หากเป็นกรณีหลัง ให้ตรวจสอบไฟล์ res/values/strings.xml ของแอปเพื่อหาคีย์ที่เปิดเผย โปรดทราบว่า
      • หากคุณทำตามขั้นตอนข้างต้นแต่ไม่ได้ลบคีย์ที่เปิดเผยออกจากแอป ก็จะยังได้รับการแจ้งเตือนเกี่ยวกับช่องโหว่ทางอีเมล/Google Play Console 
      • หากลบคีย์ที่เปิดเผยออกจากแอปแต่ไม่ได้ทำตามขั้นตอนข้างต้น ก็ถือว่าคุณไม่ได้แก้ปัญหาจริงๆ เนื่องจากผู้โจมตีสามารถค้นหาคีย์จากแอปเวอร์ชันเก่าแล้วนำมาใช้โจมตีแอปของคุณได้

2. ส่ง APK ที่อัปเดตแล้ว

วิธีส่ง App Bundle หรือ APK ที่อัปเดตแล้ว

  1. ไปที่ Play Console
  2. เลือกแอป
  3. ไปที่ App Bundle Explorer
  4. เลือกเวอร์ชันแอปของ APK/App Bundle ที่ไม่เป็นไปตามนโยบายจากเมนูแบบเลื่อนลงที่ด้านขวาบน แล้วจดบันทึกไว้ว่ารายการดังกล่าวอยู่ในรุ่นใด
  5. ไปยังแทร็กที่มีปัญหาด้านนโยบาย ซึ่งจะเป็นหนึ่งใน 4 หน้าต่อไปนี้ ได้แก่ การทดสอบภายใน การทดสอบแบบปิด การทดสอบแบบเปิด หรือเวอร์ชันที่ใช้งานจริง
  6. ที่บริเวณด้านขวาบนของหน้า ให้คลิกสร้างรุ่นใหม่ (คุณอาจต้องคลิก "จัดการแทร็ก" ก่อน)
    • หากรุ่นที่มี APK ที่ละเมิดนโยบายอยู่ในสถานะฉบับร่าง ให้ทิ้งรุ่นดังกล่าว
  7. เพิ่ม App Bundle หรือ APK เวอร์ชันที่เป็นไปตามนโยบาย
    • ตรวจสอบว่า App Bundle หรือ APK เวอร์ชันที่ไม่เป็นไปตามนโยบายอยู่ในส่วนไม่รวมอยู่ด้วยของรุ่นนี้ ดูคำแนะนำเพิ่มเติมได้ที่ส่วน "ไม่รวมอยู่ด้วย (App Bundle และ APK)" ในบทความช่วยเหลือนี้ของ Play Console
  8. หากต้องการบันทึกการเปลี่ยนแปลงรุ่น ให้เลือกบันทึก
  9. เมื่อเตรียมรุ่นเรียบร้อยแล้ว ให้เลือกตรวจสอบรุ่น

หากมีการเผยแพร่ APK ที่ไม่เป็นไปตามนโยบายในหลายๆ แทร็ก ให้ทำตามขั้นตอนที่ 5-9 อีกครั้งในแต่ละแทร็ก

แอปของคุณจะได้รับการตรวจสอบอีกครั้งเมื่อมีการส่งใหม่ ขั้นตอนนี้อาจใช้เวลาหลายชั่วโมง หากแอปผ่านการตรวจสอบและเผยแพร่เรียบร้อยแล้ว คุณก็ไม่ต้องดำเนินการใดๆ เพิ่มเติม หากแอปไม่ผ่านการตรวจสอบ จะไม่มีการเผยแพร่แอปเวอร์ชันใหม่และคุณจะได้รับการแจ้งเตือนทางอีเมล

เราพร้อมช่วยเหลือคุณ

หากมีคำถามทางเทคนิคเกี่ยวกับช่องโหว่ คุณโพสต์ถามได้ที่ Stack Overflow โดยใช้แท็ก "android-security" หากต้องการคำชี้แจงเกี่ยวกับขั้นตอนที่ต้องดำเนินการเพื่อแก้ไขปัญหานี้ โปรดติดต่อทีมสนับสนุนนักพัฒนาแอป

เมนูหลัก
6020557629943458145
true
ค้นหาศูนย์ช่วยเหลือ
true
true
true
true
true
5016068
false