תיקון נקודות חולשה בקוד וניהול של הבדלים

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

יצירת תיקונים לנקודות חולשה

כדי ליצור תיקון אבטחה מאומת לתוצאה מאומתת, משתמשים ב-cm fix:

cm fix FINDING_ID

כשמריצים את cm fix, CodeMender מבצע את שלבי האימות הבאים:

  1. יוצר מועמד לתיקון באמצעות מנוע הנימוקים שמתארח בענן.
  2. החלת התיקון על עותק של קוד המקור בארגז החול המקומי.
  3. קומפילציה ובדיקה של בסיס הקוד על ידי הרצת build.command שהגדרתם, כדי לוודא שהפרויקט נבנה ובדיקות היחידות עוברות.
  4. מריץ מחדש את ה-PoC המאומת של ניצול לרעה כדי לוודא שאי אפשר יותר לנצל את נקודת החולשה.

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

תיקון סימונים

  • לספק הקשר לתיקון (-c / --context): לספק אילוצים ארכיטקטוניים או הנחיות קידוד:
    cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
  • אישור אוטומטי של פעולות כתיבה (-y / --yes): אישור אוטומטי של כל פעולות הכתיבה וההנחיות במהלך תהליך התיקון:
    ‫
    cm fix FINDING_ID -y
    הערה: אפשר גם להשבית את ההנחיות האינטראקטיביות לכתיבה באופן גלובלי על ידי הגדרת confirm_writes: false ב-config.yaml.
  • שליטה בארגז החול (--sandbox): הפעלה או השבתה מפורשות של ארגז החול להרצה הזו (לדוגמה, --sandbox=false כדי להשבית):
    cm fix FINDING_ID --sandbox=false
  • עקיפת ארגז החול (--unrestricted): עקיפה זמנית של כל אמצעי ההגנה של ארגז החול להרצה הזו, השבתה של גבולות מערכת הקבצים ובידוד של קונטיינרים ברמת מערכת ההפעלה:
    cm fix FINDING_ID --unrestricted
  • דילוג על מטמון (--no-cache): כדי לאלץ את CodeMender ליצור תיקון חדש:
    cm fix FINDING_ID --no-cache

בדיקה וניהול של השוואות בין גרסאות במערכת מקומית לניהול גרסאות

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

  • הצגת סטטוס המאגר: בדיקה אילו קבצים CodeMender שינה או יצר בסביבת העבודה המקומית.

    cm vcs status

  • בדיקת שינויים: בדיקה של שינויים מאוחדים בשורה אחר שורה של כל שינויי הקוד שלא נשמרו שנוצרו על ידי הסוכן.

    cm vcs diff

  • העברת שינויים לשלב ההכנה: מוסיפים שינויים מאומתים בתיקון לסביבת ההכנה המקומית כדי לבדוק אותם ולשמור אותם.

    cm vcs stage

  • ביטול השינויים בסשן: כל השינויים בקובץ המקומי שנוצרו על ידי CodeMender במהלך הסשן הנוכחי יבוטלו, והמאגר יחזור למצב הבסיסי שלו.

    cm vcs reset