ניהול סשנים וייצוא דוחות

‫CodeMender עוקב אחרי כל סריקה, אימות וניסיון תיקון כסשן עם שמירת מצב, שמגובה במסד נתונים מקומי של SQLite‏ (state.db). אתם יכולים לבדוק סשנים פעילים, להמשיך משימות שהושהו ולייצא דוחות מפורטים של הממצאים.

ניהול הפעלות

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

הצגת סשנים פעילים וסשנים קודמים

מריצים את הפקודה הבאה כדי להציג רשימה של כל הסשנים, הסטטוסים שלהם (RUNNING,‏ WAITING_FOR_TOOL,‏ COMPLETED,‏ FAILED,‏ CANCELLED) ונתיבי היעד:

cm session list

המשך של סשן שהופסק

אם ההפעלה מושהית בגלל הפרעה ברשת או כשל בשלב, אפשר להמשיך אותה מהשלב האחרון של נקודת הבדיקה:

cm session resume SESSION_ID

ביטול סשן פעיל

כדי לסיים סשן פעיל ולהפסיק את ההפעלה של הסוכן בעורף:

cm session cancel SESSION_ID

צפייה בדוחות וייצוא של תיקונים

אפשר להציג את הממצאים של הסשן, את סטטוסי האימות ואת פרטי התיקון באמצעות cm report.

פורמטים של פלט

טבלת מסוף (ברירת מחדל)

רשימה מסוכמת של הממצאים.

cm report

דוח HTML

יצירת דוח HTML מעוצב. משתמשים ב---open (או ב--o) כדי להפעיל אותו אוטומטית בדפדפן ברירת המחדל.

cm report --format html --open

Markdown

יצירת דוח בפורמט Markdown של GitHub.

cm report --format md

JSON

ייצוא כל פרטי הממצאים של הסשן כ-JSON גולמי.

cm report --format json

SARIF

ייצוא הממצאים בפורמט SARIF רגיל (גרסה 2.1.0) לשילוב עם כלי אבטחה אחרים.

cm report --format sarif

סינון ומיון של דגלים

  • הצגת תיקוני קוד מוצעים (--patches): הכללת תיקוני קוד שנוצרו בדוח, עם הבדלים מאוחדים מלאים. bash cm report --patches
  • סינון לפי חומרה (--severity): הצגת ממצאים שתואמים לרמה מסוימת (CRITICAL, ‏ HIGH, ‏ MEDIUM, ‏ LOW). bash cm report --severity HIGH
  • סינון לפי סטטוס (--status): הצגת ממצאים שתואמים למצב מסוים (OPEN, ‏ FIXED, ‏ DISMISSED, ‏ REOPENED). bash cm report --status OPEN
  • סינון לפי סשן (--session): הצגת ממצאים מקידומת ספציפית של מזהה סשן.
    cm report --session SESSION_ID_PREFIX
  • הצגת ארטיפקטים של הסוכן (--artifacts): כולל נתיבים לארטיפקטים של הפעלה שנוצרו על ידי הסוכן (כמו יומנים, סקריפטים של ניצול לרעה). bash cm report --artifacts
  • מיון הממצאים (--sort): מיון התוצאות לפי severity (ברירת מחדל) או time. bash cm report --sort time
  • סינון לפי מזהה ממצא: מעבירים מזהה ממצא ספציפי (או קידומת) כארגומנט מיקום כדי להציג פרטים של ממצא יחיד.
    cm report FINDING_ID_PREFIX

מצבים של ממצאי נקודות חולשה

‫CodeMender עוקב אחרי הממצאים במצבי הפגיעות הבאים:

  • OPEN
    • מה זה אומר: נקודת החולשה זוהתה בהצלחה במהלך סריקה (או יובאה מכלי של צד שלישי), אבל עדיין לא אומתה, תוקנה או סומנה כלא פעילה.
    • איך מטפלים בבעיה: זהו המצב ההתחלתי של כל פגם אבטחה חדש שמתגלה. פגיעויות בסטטוס OPEN נמצאות באופן פעיל בתור לאימות (cm verify) או לתיקון (cm fix).
  • FIXED
    • מה זה אומר: CodeMender יצר תיקון לנקודת החולשה, החיל את ההשוואה בבסיס הקוד המקומי, והצליח לקמפל ולהריץ בדיקות אימות כדי להוכיח שהניצול כבר לא מצליח.
    • איך המערכת מטפלת בבעיה: אחרי שמאשרים שהתיקון פותר את הבעיה בלי לשבש את הלוגיקה הקיימת של הקוד, CodeMender מעביר את הממצא למצב FIXED. הוא יישאר במצב הזה אלא אם סריקה עתידית תזהה רגרסיה.
  • DISMISSED
    • מה זה אומר: נקודת החולשה מסומנת כלא פעילה, כי היא זוהתה כחיובי כוזב או שכבר תוקנה, או כי רמת הסמך בממצא לא מספיקה כדי לאשר שאפשר לנצל אותה (כולל בהשוואה למודל האיומים של הפרויקט, אם סופק במהלך ההצטרפות).
    • איך זה קורה: כשמסמנים פריט כDISMISSED, ההתראות העתידיות מושתקות והממצא לא נכלל בפלט הפעיל של ה-CLI עם cm report --status OPEN. הרצה מחדש של cm verify על ממצא שנסגר בודקת מחדש או משחזרת פריטים שנסגרו.
  • REOPENED
    • המשמעות: נקודת חולשה שסומנה בעבר כFIXED או כDISMISSED זוהתה מחדש בסריקה הבאה של בסיס הקוד.
    • איך המצב הזה מטופל: המצב הזה מציין רגרסיה (למשל מיזוג git לא תקין שביטל את התיקון) או אסטרטגיית צמצום סיכונים שנכשלה. הכלי מסמן את הבעיה לצורך הערכה מחדש מיידית, ומחייב את המפתחים לבדוק את תהליך התיקון.

רמות החומרה של נקודות חולשה

הכלי CodeMender מסווג את הממצאים לרמות החומרה הבאות:

  • CRITICAL
    • מה זה אומר: הפגיעות יוצרת סיכון חמור ומיידי לאפליקציה או לתשתית הבסיסית, ועלולה להוביל לפריצה מלאה למערכת.
    • למה היא מסווגת כקריטית: היא עומדת בסף של השפעה עם השלכות חמורות (כמו הפעלת קוד מרחוק או כתיבה ברמת הבסיס), אפשר להגיע אליה ישירות מגבולות לא מהימנים ללא תנאים מוקדמים, והיא מגובה בניתוח של זרימת נתונים עם רמת מהימנות גבוהה או בהוכחת קונספט (PoC) מאומתת שהופעלה בארגז החול של CodeMender.
  • HIGH
    • מה זה אומר: נקודת החולשה מייצגת פגם חמור באבטחה שעלול להוביל לשליטה לא מורשית במערכת, להסלמת הרשאות (privilege escalation) או לחשיפה משמעותית של נתונים, אבל נדרשים תנאים ספציפיים כדי להפעיל אותה.
    • למה הסיווג הוא גבוה: למרות שההשפעה של הניצול גבוהה (לדוגמה, קריאות שרירותיות של מסד נתונים או חטיפה אדמיניסטרטיבית), יכולת הניצול מוגבלת מעט. יכול להיות שהתוקף יצטרך לעבור אימות משתמש רגיל, שהמתקפה תהיה תלויה בהגדרה ספציפית של המערכת או שתדרוש רצף מדויק מאוד של פעולות.
  • MEDIUM
    • מה זה אומר: הפגיעות מייצגת סיכון בינוני, בדרך כלל חושפת נתונים מוגבלים או מאפשרת שיבושים מקומיים, אבל היא לא מסכנת את המערכת המארחת.
    • למה הסיווג הוא בינוני: הניצול מוגבל מאוד בגלל הנגישות או המורכבות. בדרך כלל נדרשת אינטראקציה פעילה של המשתמש (כמו לחיצה על קישור זדוני), הרשאות עמוקות או תנאים מורכבים כדי לעקוף את שכבות ההגנה, והאזור שמושפע בסופו של דבר מוגבל.
  • LOW
    • מה זה אומר: הממצא מייצג סיכון אבטחה קל או היעדר כללי של היגיינת הגנה לעומק, שלא מהווה איום מיידי כשלעצמו.
    • למה היא מסווגת כנמוכה: קשה מאוד לנצל אותה או שההשפעה שלה מינימלית. התגלית הזו משמשת בדרך כלל תוקפים לסיור או לזיהוי טביעת אצבע של ההגדרה, ולא לפריצה ישירה. אי אפשר להשתמש בה כדי להריץ קוד שרירותי או כדי לחלץ נתוני אפליקציה רגישים.

תחזוקה של Workspace

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

cm clean