543 אלף מפתחות וסיסמאות שדלפו ל-GitHub עדיין עובדים, חלקם כבר 16 שנה
מחקר של Truffle Security שפורסם ב-29 בספטמבר סרק 224 מיליון מאגרי קוד ציבוריים ומצא יותר מחצי מיליון מפתחות גישה פעילים. הבעיה המרכזית: מוחקים את הסוד מהקוד, אבל לא מבטלים אותו.
TL;DR בקצרה
- Truffle Security מצאה 543,699 מפתחות וסיסמאות פעילים במאגרים ציבוריים, עם חציון חשיפה של 784 ימים.
- הקטגוריות הגדולות: חשבונות שירות של Google Cloud, מחרוזות חיבור ל-MongoDB ו-31,374 מפתחות Gemini פעילים.
- 51.8% מהמפתחות הפעילים הם בפורמטים שמנגנון Push Protection של GitHub לא חוסם כברירת מחדל.
- ההישרדות תלויה בספק: 88% מסיסמאות Postgres עדיין עובדות, לעומת טוקן npm אחד מתוך 101,886.
מפתח שדלף לקוד ציבורי ממשיך לעבוד, עד שמישהו מבטל אותו. בדרך כלל אף אחד לא מבטל. זו המסקנה של מחקר שפרסמה חברת האבטחה Truffle Security ב-29 בספטמבר. 543,699 מפתחות גישה, סיסמאות ומחרוזות חיבור שנחשפו במאגרים ציבוריים ב-GitHub עדיין עבדו כשהחוקרים בדקו אותם.
חציון החשיפה עמד על 784 ימים. הוותיק ביותר, סיסמה למסד נתונים מיוני 2009, עדיין עבד 16 שנה אחרי שנחשף.
224 מיליון מאגרי GitHub, ובדיקה מול השירות עצמו
החוקרים לא הסתפקו בחיפוש טקסט שנראה כמו מפתח. הם סרקו את The Stack v3, אוסף ציבורי של 224.5 מיליון מאגרי GitHub. באוסף יש גם מעל 58 מיליארד קבצים. את האוסף אספו לאימון מודלי AI, והאיסוף שלו הסתיים באוגוסט 2025.
החוקרים בדקו כל מפתח חשוד ב-27 וב-28 ביולי 2026 מול השירות שהנפיק אותו. הם רצו לוודא שהוא באמת פותח דלת. כך הגיעו ל-543,699 סודות ייחודיים פעילים, שהופיעו ביותר ממיליון מקומות.
הקטגוריה הגדולה ביותר היא חשבונות שירות של Google Cloud, עם 69,041 מפתחות פעילים. אחריה מחרוזות חיבור ל-MongoDB (51,067) ומפתחות API של Google (33,343). החוקרים מצאו גם 31,374 מפתחות Gemini פעילים, שרובם נחשפו סביב פברואר 2025. מפתח Gemini פעיל הוא בפועל גישה בתשלום. מי שמוצא אותו יכול להריץ שאילתות על חשבונו של בעל המפתח.
למה ההגנה של GitHub לא סוגרת את הבעיה
GitHub הפכה בפברואר 2023 את התראות סריקת הסודות לחינמיות במאגרים ציבוריים. בפברואר 2024 היא הפעילה כברירת מחדל את Push Protection. זה מנגנון שחוסם דחיפת קוד שמכיל מפתח בפורמט מוכר.
לפי המחקר, ההגנה עובדת במה שהיא מכסה. קצב הדליפה של סוגי מפתחות שהיא חוסמת ירד בכ-53% בשנה שאחרי ההפעלה. לעומת זאת, בסוגים שהיא לא מכסה הירידה הייתה כ-7%.
אבל 51.8% מהמפתחות הפעילים שייכים בדיוק לסוגים הלא מכוסים. אלה מחרוזות חיבור למסדי נתונים, מפתחות פרטיים ומפתחות API של Google.
מפתחות Google חולקים קידומת אחת בין Maps, Firebase ו-Gemini. לכן אי אפשר להבחין לפי הפורמט בין מפתח ציבורי למפות לבין מפתח שמחויב בכסף. 199,843 מהמפתחות הפעילים נחשפו אחרי שההגנה כבר פעלה.
הנתון המעניין ביותר הוא הפער בין ספקים. מתוך 101,886 טוקנים של npm שנחשפו, רק אחד עדיין עובד. שיעור ההישרדות של טוקנים של GitHub הוא 0.36%.
לעומת זאת, 88% מסיסמאות Postgres ו-75% מסיסמאות MySQL עדיין פעילים. כך גם 54% ממפתחות חשבונות השירות של Google Cloud.
ההסבר של החוקרים פשוט. ספקים כמו npm ו-GitHub מבטלים אוטומטית מפתח שדלף. את הסיסמה של מסד הנתונים שלכם אף אחד לא יבטל בשבילכם. בלשונם, ״זיהוי בלי ביטול משאיר את המפתח עובד״.
יש כאן גם עניין מבני. מחיקת הסוד מהגרסה האחרונה של הקוד לא מבטלת אותו. הוא נשאר בהיסטוריית הקומיטים, בהעתקים של המאגר ובמטמונים. הוא נשאר גם באוספי נתונים כמו זה שעליו נעשה המחקר. כל מי שהוריד אותם מחזיק עותק.
מה זה אומר עבורכם
- מפתח שנחשף הוא מפתח שנפרץ. אם סוד הגיע אי פעם למאגר ציבורי, בטלו אותו והנפיקו חדש. רק אחר כך נקו את ההיסטוריה.
- סרקו את כל ההיסטוריה, לא רק את הקוד הנוכחי. כל מה שנכנס לפני פברואר 2024 לא עבר דרך Push Protection. כלי סריקה כמו TruffleHog או Gitleaks יודעים לעבור על קומיטים ישנים.
- תנו עדיפות למסדי נתונים. סיסמאות Postgres ו-MySQL ומחרוזות חיבור ל-MongoDB הן הסודות ששורדים הכי הרבה זמן. החליפו אותן, והגבילו את הגישה למסד לכתובות IP מוכרות.
- הגבילו מפתחות Google. הגדירו לכל מפתח API הגבלה לשירות מסוים ולאתר או לאפליקציה מסוימים. הפרידו בין מפתח ציבורי למפות לבין מפתח Gemini שעולה כסף.
- עברו למפתחות קצרי חיים. טוקנים שפגים מעצמם מצמצמים את הנזק של כל דליפה. בדקו גם אם הספקים שאתם עובדים איתם משתתפים בתוכנית ביטול אוטומטי של מפתחות שדלפו.
מה הלאה
לפי המחקר, צפיפות הדליפות רק עולה: מ-3.72 סודות למיליון קבצים ב-2014 ל-11.62 ב-2025. החוקרים לא פרסמו את שמות המאגרים, כי המפתחות שבהם עדיין עובדים. השאלה המרכזית היא אם ספקים נוספים יאמצו ביטול אוטומטי כמו npm ו-GitHub. הכוונה בעיקר לספקי מסדי נתונים וענן. עד שזה יקרה, האחריות לבטל נשארת אצל מי שהמפתח שלו.
מקורות והרחבה
- GitHub repos exposed 543,699 credentials. Nobody revoked them.Truffle Security
- Researchers Find 543,699 Active Credentials Leaked in Public GitHub ReposGBHackers
הכתבה נכתבה במקור בעברית על ידי מערכת GEEKLIK, על בסיס המקורות שלמעלה ובדיקת העובדות מולם.
מצאתם טעות? דווחו לנו