WEBA

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

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

602 מילים30 עובדות אומתו

עורכי דין לא אוהבים הפתעות בקוד שלכם. ספריות קוד פתוח עם רישיונות כמו AGPL או GPL מחמיר נכנסות לא פעם לפרויקטים מסחריים רק כי מפתח היה צריך כלי מהיר לפענוח קובץ, בלי לחשוב על ההשלכות המשפטיות. עכשיו, GitHub הכריזה על מעבר של מנגנון תאימות הרישיונות (Open Source License Compliance) לזמינות כללית. המטרה ברורה: להוריד מכם את החרדה הזאת ישירות בתוך ה-Pull Request.

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

מחסום חדש בדרך לפרודקשן

המערכת החדשה מתבססת על תשתית כללי הענפים (branch rulesets) בארגון, ומרחיבה את מה שהיה מוכר עד כה בתור dependency review action. במקום להסתמך על בדיקה מקומית של מתכנתים או על תהליכים ידניים שנשכחים ברגעי לחץ, מנהלי המערכת יכולים להגדיר כלל מרכזי בשם Require license compliance results before merging, הפועל בצורה דומה לתנאי סריקות הקוד הקיימים במערכת. ברגע שמפתח פותח בקשת מיזוג שמוסיפה ספרייה חדשה או מעדכנת גרסה של תלות קיימת, הבדיקה האוטומטית נכנסת לפעולה ומוודאת שהרישיון תואם למדיניות הארגונית שהוגדרה מראש.

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

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

אין קיצורי דרך למפתחים ממהרים.

התנאי הכספי שאי אפשר לעקוף

הפיצ'ר נשמע שימושי, אבל שורת המחיר חותכת מיד את רוב המשתמשים. לפי הדוקומנטציה, הבדיקות זמינות אך ורק ללקוחות GitHub Enterprise Cloud, ורק עבור מאגרים שמופעל בהם הרישוי של GitHub Code Security. מפתחים בתוכניות Free או Team נשארים בחוץ, בדיוק כמו חברות שמריצות התקנות מקומיות על גבי שרתי GitHub Enterprise Server. מי שלא משלם על חבילת האבטחה הארגונית בענן, פשוט לא יראה את התפריטים הללו בממשק.

מבחינת מרכזי פיתוח בישראל, החידוש המרכזי כאן הוא התמיכה בלקוחות Data residency. ארגונים בארץ שכפופים לכללי רגולציה אירופיים או להנחיות אבטחה מחמירות ומנועים מהעברת מידע לשרתים בארצות הברית, יכולים מעכשיו להשתמש במנגנון המובנה. היכולת הזו מאפשרת להזין את נתוני הרישיונות ישירות אל תוך ה-dependency graph ואל קובצי יצוא של Software Bill of Materials (SBOM) גם בסביבות ענן מבודדות גאוגרפית. מדובר בהרחבה מהותית, אבל כזו שמגיעה עם תג מחיר ארגוני מלא.

סוכני קוד ויומני ביקורת

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

חידוש משמעותי נוסף נוגע לכלי פיתוח אוטונומיים. החברה הוסיפה ממשקי REST API ייעודיים להורדה, עדכון והחלפה של מדיניות הרישוי, לצד נקודת קצה ייעודית לבדיקת תאימות חבילות. המטרה היא לאפשר לסוכני AI לבדוק האם ספרייה מסוימת עומדת במדיניות הארגון לפני שהם ממליצים עליה או משלבים אותה בקוד. בנוסף, המערכת כוללת תפקיד מוגדר מראש בשם Enterprise Open-Source License Manager. התפקיד מיועד למנהלי קוד פתוח שמקבלים התראות במייל על בקשות חריגה ויכולים לאשר אותן ישירות מקונסולת הניהול הארגונית.

License checks automatically ensure each new or changed dependency has an acceptable license. The feature annotates the pull request with a message about each noncompliant dependencies.תיעוד GitHub Changelog

החורים שעוד נשארו פתוחים

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

לא הייתי ממהר לבטל שום מנוי קיים.

המערכת של GitHub מסתמכת על המטא-דאטה המוצהר של החבילות במאגרים ללא מנגנון אימות עצמאי מעמיק. מעבר לכך, היא אינה מספקת מענה שלם לחבילות בעלות רישוי כפול (Dual licensing), מצב שבו יוצרי החבילה מציעים בחירה בין רישיון פתוח לרישיון מסחרי, ואינה מאפשרת כרגע למפתחים להגדיר את הרישיון הנבחר ישירות בתוך ה-PR. בנוסף, חסרה יכולת ליצירה אוטומטית של קובצי ייחוס זכויות יוצרים (NOTICE או licenses.md), דרישה הכרחית לפי חלק ניכר מרישיונות הקוד הפתוח בעת הפצת תוכנה. הכלי החדש סוגר פינה חשובה בתהליך המיזוג, אבל הטיפול המלא בסיכוני צד שלישי עדיין דורש עבודה נוספת.

השוואת יכולות בין הכלי המובנה לכלים של ספקים חיצוניים
מאפייןבדיקת רישיונות מובנית ב-GitHubכלים ייעודיים (Snyk / Mend / JFrog)
חסימה מובנית ב-Pull Requestנתמך ישירות דרך Rulesetsנתמך באמצעות בדיקות CI ואינטגרציות
תמיכה ב-GitHub Enterprise Server מקומילא נתמךנתמך
דרישות רישוי ותשלוםEnterprise Cloud עם תוסף Code Securityמנוי מסחרי נפרד לכל כלי
טיפול ברישוי כפול (Dual licensing)מוגבל להצהרת החבילהזיהוי מתקדם וניתוח טקסטואלי
יצירת קובצי ייחוס זכויות (NOTICE)לא נתמךנתמך
מה לעשות עכשיואם יש לכם Enterprise Cloud ורישיון Code Security, הפעילו את הכלל החדש בענפים הרגישים, אך אל תבטלו עדיין את כלי ה-SCA שלכם.

מקורות

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

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

האם הפיצ'ר זמין בהתקנות מקומיות של GitHub Enterprise Server?

נכון לעכשיו לא. היכולת זמינה אך ורק ללקוחות ענן במסגרת GitHub Enterprise Cloud.

האם מנוי GitHub Enterprise Cloud רגיל מספיק?

לא. המאגרים הרלוונטיים חייבים לכלול גם רישיון פעיל של תוסף GitHub Code Security.

כיצד מפתח יכול לעקוף חסימה עבור חבילה חריגה?

המפתח מגיש בקשת אישור לגורם בעל התפקיד החדש Enterprise Open-Source License Manager, שבוחן ומאשר חריגות ישירות מהקונסולה.