CodeMender יכול ליצור, לאמת ולהחיל באופן אוטומטי תיקונים של קוד מקור לפגיעויות מאומתות, ולבדוק אותם בסביבת ארגז החול המקומית כדי למנוע רגרסיות.
יצירת תיקונים לפגיעויות
משתמשים ב-cm fix כדי ליצור תיקון אבטחה מאומת לתוצאה מאומתת::
cm fix FINDING_ID
כשמריצים את cm fix, CodeMender מבצע את שלבי האימות הבאים:
- מייצר מועמד לתיקון באמצעות מנוע הנימוקים שמתארח בענן.
- החלת התיקון על עותק של קוד המקור בארגז החול המקומי.
- קומפילציה ובדיקה של בסיס הקוד על ידי הרצת
build.commandשהגדרתם, כדי לוודא שהפרויקט נבנה ובדיקות היחידות עוברות. - מריצים מחדש את ניצול הפרצה המאומת כדי לוודא שאי אפשר יותר לנצל את הפגיעות.
כברירת מחדל, 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
בדיקה וניהול של הבדלים מקומיים ב-VCS
CodeMender כולל פקודות VCS מובנות שעוזרות לכם לבדוק, להכין ולנהל שינויים בקוד שהתיקונים מציגים לפני שאתם מאשרים אותם:
הצגת סטטוס המאגר: בדיקה של הקבצים ש-CodeMender שינה או יצר בסביבת העבודה המקומית.
cm vcs status
בדיקת ההבדלים: בדיקה של ההבדלים המאוחדים בשורה אחר שורה בכל השינויים בקוד שהסוכן יצר ולא נשמרו.
cm vcs diff
העברת שינויים לשלב ההכנה: הוספת שינויים מאומתים בתיקון לסביבת ההכנה המקומית כדי לבדוק אותם ולשמור אותם.
cm vcs stage
ביטול השינויים בהפעלה: מחיקת כל השינויים בקובץ המקומי שנוצרו על ידי CodeMender במהלך ההפעלה הנוכחית ושחזור המאגר למצב הבסיסי שלו.
cm vcs reset