סקירה כללית של CodeMender

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

‫CodeMender הוא סוכן AI לאבטחת קוד שיכול למצוא, לאמת ולתקן נקודות חולשה עמוקות בבסיס קוד. ‫CodeMender עוטף מודל LLM ב-harness שעבר כוונון עדין, ומשתמש בהנחיות, במיומנויות ובלוגיקת תזמור שפותחו על ידי Google DeepMind כדי להפוך את המודל למערכת AI אקטיבי שמתמחה באבטחת קוד.

איך זה עובד

‫CodeMender מטפל בהיקף ובמגוון של סביבות ארגוניות מודרניות, שבהן הקוד משתרע על שפות וסוגי מערכות רבים:

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

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

ארכיטקטורת המערכת

מנקודת המבט של המשתמש, מערכת CodeMender מורכבת משני רכיבים:

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

שפות ו-frameworks נתמכים

כברירת מחדל, CodeMender תומך בשפות הבאות: C/C++‎, ‏ C#‎ / .NET,‏ Go, ‏ Java, ‏ JavaScript ו-TypeScript, ‏ Kotlin, ‏ Python, ‏ Ruby, ‏ Rust ו-PHP. בנוסף, הוא מספק תמיכה רחבה בספריות סטנדרטיות בשפות האלה, וגם במסגרות נפוצות לארגונים (כמו HTML/CSS,‏ Django,‏ Flask,‏ React,‏ Spring Boot,‏ ASP.NET ו-Express).

שפות התכנות שרשומות כאן הן לא מגבלה נוקשה. ‫CodeMender הוא סוכן אבטחה מבוסס-AI, ולכן הוא יכול לנתח ולתקן קוד בכל שפה שהמודל הבסיסי מבין. בדרך כלל יש תמיכה בכל שפה שהיא לא קניינית.

סריקת שפות תכנות נוספות

אתם יכולים להגדיר ל-CodeMender לסרוק שפות תכנות שלא נמצאות בקבוצת ברירת המחדל שלו באחת מהדרכים הבאות:

  • הגדרה גלובלית: מוסיפים את סיומת הקובץ של שפת התכנות לקטע scan.extensions.include בקובץ ההגדרה הגלובלי של CodeMender ~/.codemender/config.yaml.
  • הגדרה לכל מאגר: מוסיפים את סיומת הקובץ של שפת התכנות לקטע scan.extensions.include בקובץ התצורה config.yaml של CodeMender במאגר.

לדוגמה, כדי לסרוק שפות נוספות או פורמטים של סקריפטים:

scan:
  extensions:
    include:
      # Default languages
      - .py
      - .java
      - .go
      - .js
      - .jsx
      - .mjs
      - .cjs
      - .ts
      - .tsx
      - .c
      - .cc
      - .cpp
      - .cxx
      - .h
      - .hpp
      - .cs
      - .rs
      - .kt
      - .kts
      - .rb
      - .php
      # Additional / custom languages
      - .swift
      - .scala
      - .sh

  # Exclude build, dependency, cache, and artifact directories
  exclude_dirs:
    - node_modules
    - vendor
    - dist
    - bin
    - target
    - obj
    - build
    - .gradle

מידע נוסף על הגדרת אפשרויות הסריקה זמין במאמר פרמטרים של הגדרות אישיות (config.yaml).

הערה לגבי האיכות

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

מודלים נתמכים

‫CodeMender תומך במודלים הבאים:

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

‫CodeMender תומך גם ב-Gemini 3.8 Flash Cyber וב-Gemini 4 Argon Cyber Permissive ללקוחות שיש להם גישה דרך תוכנית Fairwind.

‫Gemini 4 Argon (gemini-4-argon) כולל יכולות מובנות של בטיחות בסייבר, שיכולות לחסום בקשות שכוללות יצירת ניצול לרעה או אימות של נקודות חולשה. כל חסימת בטיחות ב-gemini-4-argon מפעילה באופן אוטומטי ניסיון חוזר מול Gemini 3.8 Flash Cyber‏ (gemini-3.8-flash-cyber), ואז חוזרת ל-Gemini 3.8 Flash‏ (gemini-3.8-flash) אם לפרויקט אין גישה ל-Gemini 3.8 Flash Cyber.

כדי לציין מודל כשמריצים פקודות של CodeMender CLI, קראו את המאמר ציון המודל.

אזורים נתמכים

‫CodeMender זמין בכל העולם.

מעקב אחרי השימוש בטוקנים

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

שורת הסטטוס בזמן אמת

בזמן שהפקודות cm find,‏ cm fix,‏ cm verify או cm session resume פועלות, מעבירים את הדגל --compact כדי להציג שורת סטטוס שמתעדכנת בזמן שהסוכן פועל:

cm find ./src/auth/ --compact

שורת הסטטוס מדווחת על סך כל הסשנים המצטברים:

Tokens: 40k in / 12k out / 60k total

סשנים שהופעלו מחדש ממשיכים לספור מהמקום שבו ההפעלה הקודמת הופסקה. הספירה של total עשויה לכלול את טוקני החשיבה הפנימיים של המודל, ולכן היא יכולה לחרוג מ-in + out.

יציאה מהסיכום

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

✅ Completed 14 tool steps in 3m 42s | Tokens: 40k in / 12k out / 60k total

שימוש בטוקנים שחויב

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

תחילת העבודה עם ה-CLI

כדי להתחיל בסריקה, צריך להגדיר את כלי ה-CLI ולאתחל את סביבת העבודה.

דרישות מוקדמות

לפני שמפעילים את CodeMender CLI, צריך לוודא שהסביבה מוכנה כמו שצריך:

  • הגדרת פרויקט ב- Google Cloud : הגדרת פרויקט ב- Google Cloud עם ממשקי ה-API ותפקידי ה-IAM הנדרשים.
  • מורידים את ה-CLI של CodeMender: מורידים ומתקינים את הקובץ הבינארי של ה-CLI של CodeMender למערכת ההפעלה שלכם.
  • הגדרת Google Cloud פרטי הכניסה והפרויקט: מגדירים Google Cloud את פרטי הכניסה ב-Application Default Credentials ‏ (ADC) ומגדירים את פרויקט היעד לאימות ה-CLI.
  • הקצאת קוד המקור: משכפלים או מעתיקים את קוד המקור של הפרויקט שרוצים לסרוק אל סביבת העבודה.
  • הגדרת ארגז החול: מגדירים את נקודות הגישה לספריות, את פרופילי הגישה לרשת ואת חריגי האבטחה לסביבת ארגז החול.

ציון המודל

כברירת מחדל, CodeMender משתמש ב-Gemini 3.8 Flash. כדי לשנות את מודל ברירת המחדל, מעבירים את הדגל --model עם מזהה המודל המתאים:

  • ‫Gemini 3.8 Flash (ברירת המחדל): --model gemini-3.8-flash
  • ‫Gemini 3.8 Flash Cyber: --model gemini-3.8-flash-cyber
  • ‫Gemini 4 Argon: --model gemini-4-argon
  • ‫Gemini 4 Argon Cyber Permissive: --model gemini-4-argon-cyber-permissive
  • ‫Gemini 3.7 Flash: --model gemini-3.7-flash
  • ‫Gemini 3.6 Flash: --model gemini-3.6-flash
  • ‫Gemini 3.5 Flash: --model gemini-3.5-flash
  • ‫Gemini 3.1 Pro Preview: ‏--model gemini-3.1-pro-preview

הפקודות הבאות תומכות בדגל --model:

  • cm find
  • cm verify
  • cm fix

כדי לציין מודל כשמריצים את אחת מהפקודות האלה, משתמשים בתחביר הבא:

cm COMMAND TARGET --model MODEL_NAME

אבטחה ופרטיות נתונים

בקטעים הבאים מפורטים מודל האבטחה, מדיניות שמירת הנתונים ואמצעי בקרת הגישה של CodeMender:

אילו נתונים CodeMender שולח לענן?

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

במקום זאת, ה-CLI ממקם את הנתונים שהוא שולח לסוכן שמתארח ב-Google באופן מקומי בלבד. הנתונים כוללים:

  • תוכן קבצים או קטעי קוד ממוקדים, מידע על פגיעויות, תיקונים מוצעים ותוצאות של הרצת פקודות.
  • מטא-נתונים, אבחון, שגיאות ונתוני טלמטריה של שימוש (כמו אסימונים שנצרכו ומשך הפקודה).

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

מהי מדיניות שמירת הנתונים?

ל-CodeMender יש מדיניות קפדנית לשמירת נתונים לטווח קצר:

  • שמירת נתונים למשך 7 ימים לכל היותר: אנחנו שומרים את נתוני הסשן, כולל קטעי קוד ומצבי מעקב, למשך עד 7 ימים באחסון של Gemini Enterprise Agent Platform כדי לאפשר למשתמשים להמשיך בצורה חלקה סריקות שהופסקו. אחרי 7 ימים, המערכת מוחקת אותו באופן אוטומטי (ראו אפס שמירת נתונים).
  • מחיקה מפורשת: הלקוחות לא צריכים לחכות 7 ימים, הם יכולים להפעיל ניקוי מיידי של כל נתוני הסשן על ידי קריאה ל-DeleteInteraction.
  • ממצאים זמניים: אנחנו לא שומרים ממצאים ותיקונים של נקודות חולשה במסדי נתונים לטווח ארוך. הם מצטברים בזיכרון במהלך הצינור.

למי יש גישה לנתונים?

‫CodeMender פועל לפי גישת "אפס גישה לנתונים" בכל מה שקשור לגישה של בני אדם:

  • אין גישה אנושית: לקבוצות של אנשים או למהנדסי Google אין גישה לקריאת נתוני לקוחות בסביבת הייצור.
  • למפעילים אין הרשאות גישה: גם לצורך ניפוי באגים בסביבת הייצור ומעקב אחרי שגיאות, למפעילי Google יש הרשאות מוגבלות ואין להם גישה להקשר של קוד המקור של הלקוח או למצבי סשן זמניים.
  • בידוד קפדני: אנחנו מבודדים באופן לוגי את כל הנתונים לפי ארגון ולפי פרויקט לחיוב של הלקוח, ומפעילים בקרת גישה על הנתונים האלה, כדי להגן על פרטיות הדיירים בתשתית המשותפת שלנו.
  • ‫VPC Service Controls‏ (VPC-SC): כדי להגן על הסביבה שלכם, הארכיטקטורה של CodeMender תומכת באופן מלא ב-VPC Service Controls‏ (VPC-SC). ככה אתם יכולים להגדיר מתחם אבטחה היקפית מסביב למשאבים שלכם ב- Google Cloud , וכך לצמצם את הסיכונים לזליגת נתונים כשהנתונים מחנויות מקומיות נשלחים למנוע החשיבה הרציונלית בענן.

המאמרים הבאים

הוראות מפורטות זמינות במדריכים הבאים: