זיהוי פגיעות הוא החלק הקל. תפקיד האבטחה הוא לאחד ולפרוס את התיקון, ולכן עבור תלויות פגיעות Coroid פותח את השדרוג pull request בעצמו, והצוות שלכם בוחן ומאחד אותו.
כאשר Coroid פותח אחד כזה
עם תיקון תלויות פגיעות פועל, ממצא תלות ברמת חומרה גבוהה או יותר פותח משימה לתיקון בפרויקט הרלוונטי:
- משימה אחת ו־pull request לכל חבילה, המכסה כל התראה המשפיעה עליה.
- ממצאים קריטיים קודם, ואחריהם ברמה גבוהה.
- לכל היותר 5 בקשות משיכה לתיקון פתוחות לכל פרויקט כברירת מחדל (עד 50). התיקון הבא ממתין למקום פנוי.
בעלי זכויות ומנהלי מערכת יכולים גם לבחור תיקון על כל ממצא תלות פתוח שבו ההתראה ציבורית. כאשר גרסה מתוקנת עדיין לא שוחררה, תיקון מציע משימה להקלה: להסיר או להחליף את החבילה, לקבע גרסה מתוקנת, או להגן על הקריאה הפגיעה.
שדרוגים אוטומטיים פועלים כיום עבור פרויקטי npm. עבור מערכות אקולוגיות אחרות, הממצא מציין "אין תיקון אוטומטי עבור מערכת אקולוגית זו עדיין", ותיקון מציע משימה להקלה.
מה העלות של זה?
משימות תיקון משתמשות במודל AI, ולכן הן צורכות שעות סוכן כמו כל עבודה אחרת. הן פועלות תחת ההוראה המובנית של תיקוני אבטחה שקיימת בכל ארגון:
- היקף: שדרוגי תלויות וצעדי הקלה באבטחה, שום דבר אחר.
- תקציב: רק שעות סוכן; כברירת מחדל רבע משעות הסוכן של התוכנית שלכם בחודש. בעלי זכויות משנים את מספר השעות ואת תדירות הספירה – שבועית או חודשית – תחת אבטחה → הגדרות → תיקון תלויות פגיעות.
- אין תוקף תפוגה לסקירה. זו ברירת מחדל קבועה, שאינה דורשת חידוש.
- עדיפות: תיקוני אבטחה נקלטים לפני עבודה עצמאית אחרת.
כיבוי תיקון תלויות פגיעות בהגדרות ברירת המחדל של הארגון משהה את ההוראה. ההוראה מופיעה עם האחרות ב בקרת איכות → הוראות.
כאשר ארגון עם מאגרי קוד מחוברים כבר מקבל את Security, בעלי הזכויות שלו מקבלים התראה בפעמון: "תיקוני אבטחה יתחילו בעוד שבעה ימים". עבודת התיקון מתחילה שבעה ימים לאחר משלוח ההתראה, כך שבעל זכויות יכול לכבות אותה לפני ה־pull request הראשון. ארגונים חדשים מתחילים מיד.
מדוע תיקון עלול להתעכב
בקטע התיקון של הממצא מצוין מה גורם לעיכוב. הסיבות הנפוצות הן:
- הגבלת ה־pull request הפתוחה לפרויקט נגמרה;
- תקציב ההוראה או שעות הסוכן של התוכנית אזלו (הזיהוי נמשך);
- עבודת הסוכן מושהית ב־Mission Control, או שאין מקום פנוי לסוכן;
- תקופת ההתראה של שבעה ימים עדיין לא הסתיימה;
- לא שוחרר תיקון תואם, או שאין תיקון אוטומטי למערכת האקולוגית;
- תיקון תלויות פגיעות כובה.
כיצד נבחר השדרוג
עבור כל מקום שבו מותקנת חבילה פגיעה, Coroid בוחר את הגרסה הקטנה ביותר מעל הגרסה המותקנת שתתקן את כל ההתראות המשפיעות עליה, תוך שמירה על הטווח המוגדר ועל גרסת המייג'ור האפשרית. הוא לעולם לא מבצע הורדה בגרסה. סביבת עבודה הדורשת גרסת מייג'ור אחת וסביבת עבודה הדורשת גרסה אחרת מקבלות כל אחת את הגרסה המתוקנת שלהן באותו pull request. חבילה טרנזיטיבית עוברת דרך שדרוג ההורה או דרך ההגדרה של מנהל החבילות. כל שינוי מייג'ור או איחוד לגרסה אחת מלווה בנימוק בה־pull request. כאשר שדרוג בודד אינו יכול לתקן הכל, בקשת המשיכה מתקנת מה שאפשר ומציינת את השאר כלא מתוקנים.
מה pull request כולל
- ההתראות שהוא מתקן, עם רמת החומרה שלהן.
- רשימת החבילות לפני ואחרי השינוי, כשהגרסה הפגיעה נעלמת.
- בדיקות הפרויקט שלכם: כאשר בגרף האספקה של הפרויקט יש בדיקות שניתן להפעיל, הן חייבות להגיע למצב GO AHEAD על השינוי שנדחף לפני ש־Coroid פותח את ה־pull request; אחרת המשימה מסתיימת עם הנימוק שלה. כאשר אין בדיקות מוגדרות בפרויקט, ה־pull request עדיין נפתח ומציין ש־Coroid לא הפעיל בדיקות פרויקט, ש־CI של המאגר שלכם פועל על ה־pull request, ואיפה להגדיר בדיקות בבקרת איכות.
- הנימוקים לכל שינוי מייג'ור או בטווח.
- כל התראה שהוא לא הצליח לתקן, המנויה כלא מתוקנת.
הדבר מסתיים במילים: "אנשים בודקים ומאחדים את הקוד. מצב הפריסה נקבע רק על ידי סריקה של הגרסה שפורסמה." הממצא הופך לקבוע בקוד החל מהרישום המלא הבא, ונקבע עבור כל סביבה על ידי סריקה של הגרסה שרצה באותה סביבה. ראו ממצאים ומחזור חייהם.
ממצאי קוד
בנוגע לממצא קוד, תיקון מגיש משימה לתיקון במסגרת הפרויקט שלו. בעלי זכויות ומנהלי מערכת יכולים להשתמש בה עבור כל ממצא קוד פתוח. המשימה דורשת מהמפתח לתאר את התיקון, ולא את הפגיעה, בהודעות ההתחייבות וב־pull request, ולהוסיף בדיקת רגרסיה. היא פועלת תחת אותן כללים כמו משימות אחרות וצורכת שעות סוכני.
במאגר ציבורי, או במאגר שהנראות שלו אינה מאושרת על ידי Coroid, תיקון לממצא שעדיין אינו ציבורי לא יתבצע שם. Coroid שומר את השינוי המוכן באופן פרטי כדי שבעל זכויות או מנהל מערכת יפרסמו אותו. ראו חשיפה.
פרטי אישור דליפתיים
תיקון של פרטי אישור דליפתיים נעשה על ידי החלפתם, דבר ש־Coroid אינו יכול לבצע עבורך. תיקון בממצא של פרטי אישור יוצר משימה מסוג רשימה לבדיקה. ראו פרטי אישור דליפתיים.