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

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

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

איך זה עובד

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

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

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

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

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

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

שפות וסביבות פיתוח נתמכות

כברירת מחדל, 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 (יוצא משימוש ב-28 בינואר 2027)
  • ‫Gemini 3.6 Flash: ‏--model gemini-3.6-flash (הוצא משימוש, יוסר ב-19 בנובמבר 2026)
  • ‫Gemini 3.5 Flash: ‏--model gemini-3.5-flash
  • ‫Gemini 3.1 Pro Preview: --model gemini-3.1-pro-preview

מודלים שהוצאו משימוש עדיין פועלים עד לתאריך ההוצאה משימוש, וה-CLI מדפיס אזהרה כשמשתמשים בהם. אחרי שהמודל יוצא משימוש, בקשות שמשתמשות בו נכשלות. עברו ל-Gemini 3.8 Flash לפני תאריך ההוצאה משימוש.

הפקודות הבאות תומכות בדגל --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-SC. כך אתם יכולים להגדיר מתחם אבטחה היקפית מסביב למשאבים שלכם ב- Google Cloud , ולצמצם את הסיכונים לזליגת נתונים כשהנתונים המקומיים נשלחים למנוע החשיבה הרציונלית בענן.

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

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