הבנת תוצאות CodeQL
ביחידות קודמות, יצרת מסד נתונים וסרקת את הקובץ שחולץ מהקוד שלך. כעת באפשרותך להציג את התוצאות ולקבוע אם קיימות פגיעויות אבטחה לטפל אותן.
הצג תוצאות של סריקת קוד מניתוח CodeQL
תוצאות שאילתה מפורשות מוצגות באופן אוטומטי בקוד המקור בהרחבת CodeQL עבור Visual Studio Code. תוצאות פלט ש- CodeQL CLI יוצר יכולות להיות בתבניות רבות לשימוש עם כלים שונים.
באפשרותך לשלוט באופן שבו תוצאות ניתוח מוצגות בקוד מקור על-ידי שינוי משפט select של שאילתה. באפשרותך להפוך את התוצאות לברורות וקלות להבנה של משתמשים אחרים בעת פיתוח השאילתה. בעת כתיבת שאילתות משלך במסוף השאילתות או בהרחבת CodeQL עבור Visual Studio Code, אין אילוצים לגבי מה שניתן לבחור.
אם ברצונך להשתמש בשאילתה כדי ליצור התראות בסריקת קוד GitHub או ליצור תוצאות ניתוח חוקיות באמצעות ה- CLI של CodeQL, עליך ליצור את תוצאות דוח משפט select בתבנית הנדרשת.
פעל לפי התראות של סריקת קוד
באפשרותך להגדיר סריקת קוד כדי לבדוק את הקוד במאגר. באפשרותך להשתמש בניתוח CodeQL המוגדר כברירת מחדל, בניתוח שאינו של Microsoft או בסוגים אחרים של ניתוח. ההתראות המתבצעות מוצגות זו לצד זו במאגר.
ניתוח CodeQL המוגדר כברירת מחדל של GitHub עשוי לכלול מאפיינים נוספים עבור התראות מאשר תוצאות מכלים שאינם של Microsoft או מתוך שאילתות מותאמות אישית. בזרימת עבודה המהווה ברירת מחדל, סריקת קוד מנתחת את הקוד שלך מעת לעת בענף ברירת המחדל ובבקשות משיכה.
כל התראה כוללת את המידע הבא:
- הבעיה בקוד וב שם הכלי שזיהה אותו.
- שורת הקוד שהפעילה את ההתראה.
- מאפייני ההתראה, כגון החומרה.
- חומרת האבטחה.
- הנקודה שבה הוצגה הבעיה.
- אופי הבעיה.
המידע כולל גם כיצד לפתור את הבעיה כאשר ניתוח CodeQL מזהה התראה. בנוסף, סריקת קוד באמצעות CodeQL יכולה לזהות בעיות בזרימת נתונים בקוד שלך.
התראות זרימת נתונים
ניתוח זרימת נתונים מאתר בעיות אבטחה פוטנציאליות בקוד, כולל:
- שימוש בנתונים באופן שחשף את האבטחה לסכנה.
- מעביר ארגומנטים מסוכנים לפונקציות.
- דליפת מידע רגיש.
GitHub מראה לך כיצד נתונים עוברים דרך הקוד כאשר סריקת קוד מדווחת על התראות זרימת נתונים. באפשרותך להשתמש בהתראות זרימת נתונים אלה כדי לזהות את אזורי הקוד שלך שדולפים מידע רגיש. ידע זה יכול לעזור לך לזהות את נקודת הכניסה לתקיפות של משתמשים זדוניים.
רמות חומרה
כל תוצאות סריקת קוד עם חומרת נתונים Error לגרום לכשל בבדיקת כברירת מחדל. רמות החומרה של ההתראה הן Error, Warningו- Note. באפשרותך לציין את רמת החומרה שבה בקשות משיכה שמפעילות התראות של סריקת קוד אמורות להיכשל.
רמות חומרה של אבטחה
שאילתות אבטחה לסריקת קוד יוצרות רמות חומרה של אבטחה עבור התראות. רמות חומרת האבטחה הן Critical, High, Mediumו- Low. GitHub משתמש נתונים נפוצים של מערכת ניקוד הפגיעות (CVSS) כדי לחשב את חומרת האבטחה של התראה.
כל התוצאות של סריקת קוד עם חומרת אבטחה של Critical או High לגרום לכשל בבדיקת כברירת מחדל. באפשרותך לציין איזו רמת חומרה של אבטחה תגרום לכשל בבדיקת תוצאות של סריקת קוד.
סגירת התראה לסריקת קוד
יש לך שתי דרכים לסגור התראה:
- פתור את הבעיה בקוד.
- ביטול או מחיקה של ההתראה.
ביטול התראה לסריקת קוד
ביטול התראה הוא דרך לסגירת התראה שאינך סבור שיש לתקן. לדוגמה, באפשרותך לבטל התראה עבור שגיאה בקוד המשמש לבדיקה בלבד. באפשרותך גם לבטל התראה אם המאמץ הנדרש לתיקון השגיאה גדול מהיתרונות הפוטנציאליים של שיפור הקוד.
באפשרותך לבטל התראות מסריקת קוד בביאורים בקוד או מרשימת הסיכום בכרטיסיה אבטחה שלך. כדי להתעלם מהתראה מהרשימה, בחר את תפריט התעלם התראה, בחר סיבה לביטול ולאחר מכן בחר את לחצן הפסק התראה.
בעת ביטול התראה:
- ההתראה תדחה בכל הענפים.
- ההתראה מוסרת ממספר ההתראות הנוכחיות עבור הפרוייקט שלך.
- ההתראה מועברת לרשימה סגורה בסיכום ההתראות. תוכל לפתוח אותו מחדש מכאן, במידת הצורך.
- הסיבה לכך שסגור את ההתראה מוקלטת.
- בפעם הבאה שבה סריקת קוד תפעל, אותו קוד לא ייצור התראה.
מחיקת התראה לסריקת קוד
באפשרותך למחוק התראה אם יש לך הרשאות מנהל מערכת עבור המאגר. מחיקת התראות שימושית כאשר:
- אתה מגדיר כלי לסריקת קוד, אך מאוחר יותר מחליט להסיר אותו.
- קבעת את התצורה של ניתוח CodeQL עם ערכה גדולה יותר של שאילתות מכפי שברצונך להמשיך להשתמש.
- הסרת שאילתות מסוימות מכלי.
- ברצונך לנקות את התוצאות של סריקת הקוד.
באפשרותך למחוק התראות מרשימת הסיכום בכרטיסיה אבטחה.
בעת מחיקת התראה:
- ההתראה נמחקת בכל הענפים.
- ההתראה מוסרת ממספר ההתראות הנוכחיות עבור הפרוייקט שלך.
- ההתראה אינה מתווספת לרשימה סגורה בסיכום ההתראות.
- ההתראה מופיעה שוב בתוצאות הניתוח, אם הקוד שיצר את ההתראה נשאר ללא שינוי, ואותה כלי לסריקת קוד מופעל שוב ללא שינויי תצורה.