לתת לפייפליין שלכם להריץ תגית כמו v4 זה כמו להשאיר מפתח מתחת לשטיח ולקוות שהפורץ לא מכיר את השיטה. השבוע, ב-14 באוקטובר 2026, השיקה GitHub מענה לתופעה: נעילת תלויות באמצעות קובץ lockfile בתהליכי עבודה. המנגנון מאפשר להשאיר שמות תגיות קריאים ונוחים בתוך קובץ ה-YAML, אבל בפועל להריץ אך ורק קומיט SHA ספציפי שננעל מראש ונשמר בקובץ ייעודי בנתיב actions.lock. זה חוסם מתקפות שרשרת אספקה שבהן תוקף משתלט על מאגר חיצוני ומזיז את התגית לגרסה זדונית.
זה שינוי מתבקש.
סוף למלכודת התגיות הזזות
הדילמה סביב אבטחת GitHub Actions תסכלה צוותי פיתוח במשך שנים. מהנדסי אבטחה דרשו להצמיד כל פעולה למזהה קומיט מלא של 40 תווים כדי למנוע שינויים מאחורי הגב. מפתחים, לעומת זאת, סירבו להפוך את קובצי הפייפליין לבלתי קריאים ולרדוף ידנית אחרי עדכוני אבטחה של ספריות צד שלישי. המצב הזה יצר פער בין הרצון לכתוב תהליכים נקיים לבין הצורך בהגנה אמיתית על סביבת הריצה.
אם פעולה נפרצת, תגית או ענף שהוזזו יכולים להחדיר קוד זדוני לתהליך העבודה שלכם בלי שבוצע שום שינוי במאגר שלכם.הדוקומנטציה של GitHub
מנגנון הנעילה החדש מקפיא את מזהה הקומיט המדויק מאחורי הקלעים, כך שגם אם תגית ב-Git תידרס על ידי גורם עוין, מנוע הריצה יסרב להריץ את השינוי. הקובץ actions.lock מייצר תמונת מצב של כל התלויות, כולל תלויות מעבר ופעולות שמופעלות מתוך תהליכי עבודה לשימוש חוזר. על הפתרון עבדו ב-GitHub בשנה האחרונה בצמוד עם מפתחים בקהילה כמו Andrew Nesbitt ו-William Woodruff, כדי לוודא שהכלי אכן עונה על צרכים אמיתיים בשטח.
רק למנויי Enterprise Cloud
הבשורות הטובות נעצרות ברגע שמגיעים למודל הרישוי. התכונה זמינה כעת בתצוגה מקדימה ציבורית אך ורק ללקוחות GitHub Enterprise Cloud, כולל מסלולים עם תושבות מידע ייעודית. אם הארגון שלכם מנוי למסלול Team או מריץ פרויקטים במסלול החינמי, נשארתם בחוץ. אותו הדבר נכון גם לגבי מי שמתחזק שרת פנימי מסוג GitHub Enterprise Server, שאינו מקבל תמיכה כרגע.
לא הייתי ממהר לשדרג מנוי רק בגלל ההכרזה הזו. מחקרים של חברות סייבר כמו Wiz הראו שוב ושוב עד כמה סביבות CI/CD פגיעות להשתלטות על תלויות חיצוניות. תושבות מידע אולי מספקת מענה לחברות ישראליות תחת רגולציה מחמירה, אבל חסימת חשבונות רגילים משאירה את רוב המפתחים חשופים לאותו וקטור תקיפה מוכר. המחיר של חשבון ארגוני כזה נשאר גבוה מאוד, וההחלטה לנעול תכונת אבטחה בסיסית מאחורי חומת תשלום כבדה צורמת במיוחד.
אימוץ הדרגתי ועדכונים אוטומטיים
העבודה השוטפת עם המנגנון אינה דורשת שינוי מיידי של כלל המאגרים בארגון. יצירת הקובץ actions.lock ותחזוקתו מתבצעות דרך תוסף רשמי ל-GitHub CLI בשם gh actions-lock. הכלי מאפשר לצרף כל קובץ תהליך עבודה באופן הדרגתי, ובודק אם קובץ הנעילה אינו מעודכן מבלי לבצע שינויים בקוד, בדיקה שמתאימה להרצה ישירה כחלק מבדיקות ה-CI עצמן.
כדי למנוע תקיעות של גרסאות ישנות, המערכת משתלבת ישירות עם Dependabot. כאשר הכלי מזהה גרסה חדשה ופותח בקשת מיזוג לעדכון הפעולה, הוא מעדכן במקביל ובאותו שינוי גם את הרשומה התואמת בקובץ הנעילה. מנהלי מערכת שרוצים לכפות יישור קו גורף יכולים להפעיל את המדיניות Require lockfile ברמת הארגון, המאגר או התאגיד, ולחסום הרצה של תהליכים שלא עברו צירוף מסודר.
קובץ נעילה אינו תעודת הכשר
בדוקומנטציה של GitHub מבהירים היטב את גבולות הגזרה: המנגנון אינו בודק האם הקוד המקורי בטוח לשימוש. נעילה של קומיט פשוט מקפיאה מצב קיים ומונעת ממנו להשתנות בעתיד ללא אישור מפורש מצדכם. אם נעלתם תגית שכבר הכילה סוס טרויאני או חולשת אבטחה ידועה, המערכת תמשיך להריץ אותו בעקביות מוחלטת בכל דחיפת קוד.
ההגנה דורשת בדיקה מוקדמת.
לא ידוע מתי תיפתח תמיכה בשרתי GHES מקומיים, או כיצד יטופלו קונפליקטים מורכבים במיזוג קובץ הנעילה בסביבות מרובות מפתחים. כלי ניהול תלויות חיצוניים כמו Renovate כבר הוסיפו תמיכה ייעודית בהפקת actions.lock באמצעות תוסף ה-CLI הרשמי. אם אתם לא מחזיקים בחשבון Enterprise Cloud, מומלץ להמשיך להשתמש בנעילת קומיט SHA ידנית ישירות ב-YAML. בינתיים, רוב המפתחים ימשיכו לנעול את הדלת עם חוט תיל.
| שיטה | קריאות בקובץ YAML | הגנה מהזזת תגיות | תמיכה בחשבונות חינם | עדכון אוטומטי |
|---|---|---|---|---|
| שימוש בתגית גרסה (v4) | גבוהה | אין | נתמך | קליטת עדכונים של התגית בלבד |
| הצמדת commit SHA ידנית | נמוכה | מלאה | נתמך | דורש כלים חיצוניים |
| קובץ נעילה (actions.lock) | גבוהה | מלאה | לא נתמך | נתמך דרך Dependabot |
מקורות
- GitHub Actions workflow lockfiles in public previewhttps://github.blog/changelog/2026-10-14-github-actions-workflow-lockfiles-in-public-preview
- Changes to query results in the GitHub Actions API and UI - GitHub Changeloghttps://github.blog/changelog/2026-09-25-changes-to-query-results-in-the-github-actions-api-and-ui
- Expired GitHub Actions artifacts no longer shown in UI and API - GitHub Changeloghttps://github.blog/changelog/2026-09-24-expired-github-actions-artifacts-no-longer-shown-in-ui-and-api
- GitHub CLI extension for workflow lockfileshttps://github.com/github/gh-actions-lock
- GitHub Actions Security Guidehttps://www.wiz.io/blog/github-actions-security-guide
- Dependabothttps://weba.co.il/tools/dependabot/
- GitHubhttps://weba.co.il/tools/github/
- GitHub Actionshttps://weba.co.il/tools/github-actions/
הידיעה נכתבה מהמקורות שלמעלה בתאריך הפרסום, וכל טענה בה נבדקה מולם. מצאתם טעות? כתבו.