במדריך הזה מוסבר איך לשפר את מצב האבטחה על ידי הפעלת התכונה "סריקת נקודות חולשה" ב-Secure Source Manager.
בדיקת נקודות חולשה מזהה באופן אוטומטי נקודות חולשה ידועות ביחסי התלות של קוד המקור, וסורקת כל commit חדש לבקשת משיכה. נקודות החולשה מוצגות גם בתצוגות של בקשות משיכה וגם בכרטיסייה Security ברמת המאגר.
הפעלת בדיקת נקודות חולשה
מוודאים שהתפקידים וההגדרות הבאים מופעלים במאגר.
התפקידים הנדרשים
כדי לקבל את ההרשאה שדרושה להפעלת סריקת נקודות חולשה, בקשו מהאדמין להקצות לכם את התפקיד אדמין של מאגר Secure Source Manager (roles/securesourcemanager.repoAdmin) ב-IAM במאגר Secure Source Manager.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה securesourcemanager.repositories.update, שנדרשת כדי להפעיל סריקת נקודות חולשה.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.
במאמרים בקרת גישה באמצעות IAM ומתן גישה למשתמשים במכונה מוסבר איך נותנים תפקידים ב-Secure Source Manager.
עדכון הגדרות המאגר
אתם יכולים להפעיל סריקת נקודות חולשה במאגרים שלכם דרך הממשק של Secure Source Manager:
- עוברים למאגר שבו רוצים להפעיל את בדיקת נקודות החולשה.
- לוחצים על סמל ההגדרות.
- מאתרים את המתג בדיקת נקודות חולשה.
- לוחצים על המתג כדי להעביר אותו למצב מופעל.
- לוחצים על הכפתור עדכון ההגדרות.
עבודה עם בדיקת נקודות חולשה
אחרי שמפעילים את בדיקת נקודות החולשה, הסריקות הבאות מתבצעות באופן אוטומטי:
- סריקות מתוזמנות: ה-commit הראשי של כל הענפים, פעם ביום.
- סריקות של בקשות משיכה:
- ה-commit הראשי של בקשות משיכה חדשות, בזמן יצירת בקשת המשיכה.
- העברת פקודות commit חדשות לבקשות משיכה, בזמן ההעברה.
המערכת מזהה רק נקודות חולשה שנובעות מיחסי תלות בקוד שלכם. סריקות לאיתור נקודות חולשה מזהות נקודות חולשה שרשומות במסדי נתונים ציבוריים, כולל, בין היתר, מסד הנתונים הלאומי של נקודות חולשה ומסד הנתונים של GitHub Advisory. הפרצות שזוהו כוללות קישור חיצוני לנתונים של מסד הנתונים הציבורי לגבי הפרצה, ואם הוא זמין, גם את מזהה ה-CVE.
כרטיסיית האבטחה
אחרי שמפעילים את בדיקת נקודות החולשה, הכרטיסייה Security מופיעה בסרגל הניווט של המאגר. אפשר להשתמש בה כדי לחפש נקודות חולשה שנסרקו, עד לתקופת שמירה של 3 שנים.
הכרטיסייה "אבטחה" כוללת תוצאות של סריקות מתוזמנות ושל סריקות של בקשות משיכה.
כברירת מחדל, המסנן Found In בכרטיסייה Security מוגדר לענף האחרון שבו עיינתם (או לענף ברירת המחדל של המאגר). כדי לראות נקודות חולשה אחרות, משנים או מנקים את המסנן Found In.
בכרטיסייה אבטחה מוצגים הנתונים הבאים לגבי כל נקודת חולשה:
- Severity: חומרת האבטחה של נקודת החולשה, לפי הדירוג של מקור מסד הנתונים הציבורי של נקודות החולשה.
- ID: מזהה ה-CVE הציבורי, אם הוא זמין, או מזהה אחר כמו מזהה ה-GHSA. בנוסף, אם יש קישור חיצוני לרשומה של נקודת החולשה במסד הנתונים הציבורי, הוא יופיע.
- Found In: ה-SHA של ה-commit ב-Git שנסרק, וגם רשימה של כל ההסתעפויות ב-Git, התגים ב-Git או בקשות המשיכה (pull request) שבהן זה ה-commit האחרון.
- קובץ: קובץ המקור של המאגר שכלל את התלות הפגיעה, ואם זמין, מספר השורה.
- Package: שם החבילה התלויה והגרסה שלה שמכילה את נקודת החולשה. אם ידועה גרסה של החבילה שמתקנת את נקודת החולשה, היא גם מופיעה ברשימה.
- תיאור: תיאור של נקודת החולשה, אם הוא זמין.
- זוהתה: תאריך הסריקה שבה זוהתה נקודת החולשה.
המסננים הבאים זמינים בכרטיסייה אבטחה:
- Severity: הצגת נקודות חולשה רק ברמת החומרה שצוינה (
CRITICAL,HIGH,MEDIUMאוLOW). - Found In: הצגת נקודות חולשה שזוהו רק ב-SHA של ה-commit, התג או ההסתעפות של Git שצוינו.
- קובץ: הצגת נקודות חולשה שזוהו רק בנתיב המקור שצוין. אפשר להזין מחרוזות משנה. לדוגמה, אפשר להשתמש ב-
project/כדי לסנן לפי יחסי תלות פגיעים בספרייהproject/. - Vulnerability: חיפוש נקודת חולשה לפי הנתונים הציבוריים שלה, כמו המזהה, התיאור או שם החבילה שהושפעה. אפשר להזין מחרוזות משנה.
- Date From ו-To: הצגת נקודות חולשה שזוהו אחרי או לפני התאריכים שצוינו, בהתאמה. פורמט:
YYYY-MM-DD.
בקשות משיכה (pull requests)
בסיום הסריקה של בקשת המשיכה, נקודות החולשה שזוהו מוצגות בכרטיסייה Conversation של בקשת המשיכה. הסריקות בודקות את כל הקבצים במאגר. יכול להיות שיופיעו נקודות חולשה מקבצים שלא שונו בבקשת ה-pull.
בבקשות משיכה מוצגת תצוגה מקוצרת של נקודות החולשה העיקריות שזוהו. כדי לראות את הרשימה המלאה ואת פרטי נקודות החולשה של בקשת ה-Pull, לוחצים על הקישור Full Results כדי להציג אותם בכרטיסייה Security של המאגר.
נקודות חולשה לא חוסמות מיזוג של בקשות משיכה.
סוגי קבצים נתמכים
קבצי חבילות בשפות הבאות ייסרקו כדי לאתר נקודות חולשה ביחסי תלות:
| נתמך | |
|---|---|
| המשך | |
| Java | |
| JavaScript | |
| Node.js | |
| PHP | |
| Python | |
| Ruby | |
| Rust | |
| TypeScript | |
| .NET |