WEBA

GitHub תחסום קומיטים מזויפים אבל רק למי שמשלם על אנטרפרייז

שדות המחבר בגיט היו מאז ומתמיד מחרוזת פתוחה שכל אחד יכול לזייף, ועכשיו גיטהאב מצמידה זהות מאומתת לכל דחיפה כדי לסגור את הפרצה.

539 מילים16 עובדות אומתו

כל מפתח מתחיל יודע שפקודת git config מאפשרת להגדיר כל שם וכתובת אימייל שרוצים, בלי שום מנגנון בדיקה מקומי. המבנה המקורי של Git תוכנן כמערכת מבוזרת מבוססת אמון, שבה שדות המחבר והמבצע הם מחרוזות טקסט חופשיות לחלוטין. הבעיה מתחילה כשהאמון הזה פוגש מאגר קוד ארגוני. אתמול, 12 באוקטובר 2026, פרסמה החברה עדכון שמנסה לשים סוף להרגל הישן הזה. אבטחה בסיסית, באיחור של עשור וחצי.

מחרוזת טקסט פשוטה מדי

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

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

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

זה השאיר פתח פתוח למדי.

מי שדוחף הוא שקובע

העדכון הנוכחי פועל בשני מישורים נפרדים. ראשית, המערכת מצמידה כעת תיעוד קבוע ומאומת של המשתמש שביצע את הדחיפה (pusher identity) לכל commit, הן בממשק המשתמש והן ב-API, ללא תלות במה שכתוב במטא-דאטה המקורי של Git. הזהות הזו גלויה כעת בכל מקום שבו מוצגים קומיטים, ומאפשרת בדיקות מדגמיות מהירות לאיתור פעילות חשודה בלי להסתמך על מטא-דאטה לא מאומת.

שנית, נוסף תנאי חדש למנגנון הכללים של המאגרים בשם Committer must match pusher, אשר חוסם דחיפות שבהן כתובת המייל של ה-committer אינה תואמת לאף כתובת מייל מאומתת של המשתמש המחובר. לפי דוקומנטציית configuring push rulesets, כללי דחיפה נאכפים על המאגר כולו כדי למנוע מעבר של קומיטים שלא עומדים בתנאי.

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

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

מכשול הבוטים והרישוי היקר

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

מעבר לתג המחיר, הפעלת הכלל מעלה שאלות מעשיות על תהליכי עבודה קיימים. כלי אוטומציה של CI/CD, פעולות cherry-pick, שילוב קומיטים מצדדים שלישיים או בוטים שדוחפים שינויים בשם מפתחים אחרים עלולים להיחסם מיד אם כתובת המייל של הבוט אינה תואמת למשתמש שמבצע את הפעולה. נכון לעכשיו, החברה לא פירטה מנגנון החרגות או מעקפים ייעודי עבור שירותים אוטומטיים כאלה במסגרת הכלל החדש.

לבקש גישה או לחכות

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

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

בינתיים, הכפתור עדיין אפור.

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

מקורות

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

מה שואלים על זה

האם הכלל החדש מחליף חתימה קריפטוגרפית על קומיטים באמצעות GPG או SSH?

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

מה קורה לקומיטים שנוצרים ונשלחים דרך כלי אוטומציה ובוטים של CI/CD?

הם עלולים להיחסם. אם הכלל מופעל במאגר ומשתמש השירות או הבוט דוחף קומיט שכתובת המייל שלו בשדה ה-committer אינה תואמת לאף כתובת מייל מאומתת של החשבון שמבצע את הדחיפה, הפעולה תיכשל.

מי יכול להפעיל את הכלל החדש במאגרים שלו כבר היום?

התכונה פתוחה בתצוגה מקדימה מוגבלת ללקוחות GitHub Enterprise בלבד. ארגונים המעוניינים לבדוק אותה נדרשים לפנות יזמית לצוות החשבון שלהם כדי לבקש גישה.