תיקון למפתחות חשופים של שרת העברת הודעות בענן ב-Firebase ‏(FCM)

המידע הזה מיועד למפתחים בעלי אפליקציה אחת או יותר הכוללת מפתחות חשופים של שרת העברת הודעות בענן ב-Firebase ‏(FCM).

מה הלאה?

אחת מהאפליקציות שלכם או יותר כוללת מפתחות חשופים של שרת FCM. תוקף זדוני יכול להשתמש במפתחות החשופים כדי לשלוח התראות לכל משתמשי האפליקציה הפגיעה. התוקף יכול לשלוט בתוכן ההתראות האלה, מהודעות פוגעניות ועד לתמונות גרפיות/מטרידות. יש לעיין בשלבים המפורטים שבהמשך כדי לפתור את הבעיה באפליקציות שלכם.  תוכלו למצוא את המיקומים באפליקציה שחושפים מפתחות של שרת FCM  בהודעת ההתראה מ-Play Console לאפליקציה.

נדרשת פעולה

  1. מעדכנים את האפליקציה ואת מפתחות ה-FCM החשופים לפי השלבים המודגשים שבהמשך.

    1. אם הפעלתם את ה-FCM API הקודם באפליקציה, ואינכם משתמשים בו לשליחת התראות, כדאי לכבות את ה-FCM API הקודם,
    2. אם הפעלתם את ה-FCM API הקודם, ואתם משתמשים בו כדי לשלוח התראות, אפשר לבצע אחד משני הצעדים הבאים:
      1. (מומלץ) עוברים להשתמש ב-FCM v1 API ומשביתים את ה-FCM API הקודם.
      2. מאבטחים את השימוש ב-FCM API הקודם:
        1. אם אתם משתמשים במפתח החשוף רק עבור FCM API: 
          1. יוצרים מפתח חדש במסוף Firebase > הגדרות הפרויקט > העברת הודעות בענן באמצעות לחיצה על 'הוספת מפתח שרת'.  משתמשים במפתח השרת החדש לשליחת הודעות FCM מסביבת השרת המאובטח. מקפידים להשתמש במפתח הזה רק מסביבת השרת המאובטח, ומוודאים שהוא לא נכלל בקוד הלקוח שלכם (אפליקציות, קבצים בינאריים). 
          2. לאחר המעבר לשליחת הודעות FCM באמצעות מפתח השרת החדש שנוצר, מוחקים את מפתחות השרת החשופים מה-GCP Console. תוכלו למצוא את המיקומים באפליקציה שחושפים מפתחות של שרת FCM בהודעת ההתראה מ-Google Play. שלב ג' מתאר איך משיגים את המפתחות החשופים מהמיקומים האלה. 
        2. אם אתם משתמשים במפתח החשוף ב-API אחרים, כולל FCM:
          1. עוברים להשתמש ב-FCM v1 API ומשביתים את ה-FCM API הקודם.
          2. כדי להגן בעתיד על שימושים אחרים ב-API, כדאי להפסיק להשתמש במפתח החשוף ב-API אחרים, ולבסוף למחוק את המפתח החשוף מה-GCP Console.
    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.
  4. בתפריט הנפתח שבפינה השמאלית העליונה, בוחרים את ה-APK או את גרסת האפליקציה של App Bundle שלא עומדים בדרישות, ורושמים את מספרי הגרסאות שלהם.
  5. עוברים אל המסלול עם הבעיה במדיניות. המסלול עשוי להיות אחד מארבעת הדפים הבאים: בדיקות פנימיות / בדיקות סגורות / בדיקות של הקהל הרחב או סביבת ייצור.
  6. ליד הפינה השמאלית העליונה של הדף, לוחצים על יצירת גרסה חדשה. (יכול להיות שצריך ללחוץ קודם על 'ניהול מסלולים')
    • אם הגרסה עם ה-APK שיוצר הפרה נמצאת בשלב הטיוטה, מוחקים את הגרסה.
  7. מוסיפים את הגרסה של ה-App Bundle או של ה-APK שעומדת בדרישות המדיניות.
    • מוודאים שהגרסה של ה-App Bundle או של ה-APK שלא עומדת בדרישות נמצאת בקטע לא נכלל של הגרסה הזו. לקבלת סיוע נוסף, אפשר להיעזר בקטע 'לא נכלל (App Bundle ו-APK)' במאמר העזרה הזה של Play Console.
  8. כדי לשמור את השינויים שביצעתם בגרסה, בוחרים בשמירה.
  9. בסיום הכנת הגרסה, בוחרים בבדיקת הגרסה.

אם גרסת ה-APK שלא עומדת בדרישות משוחררת למספר מסלולים, יש לחזור על השלבים 5-9 בכל מסלול.

לאחר השליחה החוזרת, האפליקציה שלכם תיבדק שוב. תהליך זה עשוי להימשך כמה שעות. אם האפליקציה תעבור את הבדיקה ותתפרסם בהצלחה, לא יהיה צורך בפעולה נוספת. אם האפליקציה תיכשל בבדיקה, גרסת האפליקציה החדשה לא תתפרסם ותקבלו התראה באימייל.

אנחנו פה לשירותכם

אם יש לכם שאלות טכניות לגבי פרצת האבטחה, אפשר לפרסם אותן בדף Stack Overflow ולהשתמש בתג 'android-security'. להבהרות לגבי השלבים שיש לבצע כדי לפתור את הבעיה, תוכלו לפנות לצוות התמיכה למפתחים.

התפריט הראשי
16824580155688178774
true
חיפוש במרכז העזרה
true
true
true
true
true
5016068
false