CodeMender – Übersicht

Die Einführung fortschrittlicher KI-Modelle hat zu weit verbreiteten Bedenken hinsichtlich Sicherheitslücken im Code geführt. Da Angreifer Zugriff auf neue Funktionen zum Generieren von Exploits erhalten, stehen Sicherheitsteams unter enormem Zeitdruck, Sicherheitslücken proaktiv zu finden und zu beheben, bevor Angreifer sie ausnutzen.

CodeMender ist ein KI-Codesicherheits-Agent, der tiefgreifende Sicherheitslücken in Ihrer Codebasis finden, überprüfen und beheben kann. CodeMender umschließt ein LLM mit einer fein abgestimmten Umgebung und verwendet von Google DeepMind entwickelte Prompts, Skills und Orchestrierungslogik, um das Modell in ein auf Codesicherheit spezialisiertes agentisches System zu verwandeln.

Funktionsweise

CodeMender ist für die Größe und Vielfalt moderner Unternehmensumgebungen ausgelegt, in denen Code in zahlreichen Sprachen und Systemtypen vorliegt:

  • Sicherheitslücken finden: Scannen Sie Ihre Codebasis mit einem LLM, das vom Agenten gesteuert wird. Dabei werden spezielle Tools und Prompt Engineering verwendet, um das Modell auf Sicherheitslücken zu fokussieren. Alternativ können Sie eine Liste von Sicherheitslücken aus externen Sicherheitsscans importieren.
  • Sicherheitslücken überprüfen: Erstellen Sie den Code und versuchen Sie, gefundene Sicherheitslücken auszunutzen, um zu prüfen, ob sie ausnutzbar sind. So können bestätigte Sicherheitslücken priorisiert und die Rate falsch positiver Ergebnisse reduziert werden.
  • Sicherheitslücken beheben, indem Sie einen Patch generieren und testen, der mit der Sprache Ihrer Codebasis kompatibel ist.

In allen drei Phasen können Sie CodeMender Kontext zur Verfügung stellen, damit die Nuancen Ihrer Anwendung und Ihres Bedrohungsmodells berücksichtigt werden. Diese Kombination aus einem LLM und der fein abgestimmten Umgebung von CodeMender liefert bessere Ergebnisse als die Verwendung eines LLM allein, um Sicherheitslücken zu finden und zu beheben.

Systemarchitektur

Aus Nutzersicht besteht das CodeMender-System aus zwei Komponenten:

  • Agent: Ein gehostetes Multi-Agenten-System, das die Kern-Geschäftslogik und das Reasoning ausführt.
  • Client: Ein Client, der auf Ihrem Computer ausgeführt wird und sowohl als CLI (zum Ausgeben von Befehlen und Anzeigen von Ausgaben) als auch als Daemon (zum Ausführen von Befehlen im Namen des Agenten, mit optionaler Isolation in einer lokalen Sandbox auf Prozessebene, um Code sicher zu kompilieren, Tests auszuführen und Sicherheitslücken zu prüfen) fungiert.

Unterstützte Sprachen und Frameworks

CodeMender unterstützt standardmäßig die folgenden Sprachen: C/C++, C# / .NET, Go, Java, JavaScript und TypeScript, Kotlin, Python, Ruby, Rust und PHP. Außerdem bietet es umfassende Unterstützung für Standardbibliotheken in diesen Sprachen sowie für gängige Unternehmens-Frameworks (wie HTML/CSS, Django, Flask, React, Spring Boot, ASP.NET und Express).

Die aufgeführten Programmiersprachen sind keine feste Beschränkung. Da CodeMender ein KI-Codesicherheits-Agent ist, kann er Code in jeder Sprache analysieren und korrigieren, die vom zugrunde liegenden Modell verstanden wird. Support ist im Allgemeinen für alle nicht proprietären Sprachen verfügbar.

Zusätzliche Programmiersprachen scannen

Sie können CodeMender so konfigurieren, dass nach Programmiersprachen gesucht wird, die nicht im Standardsatz enthalten sind. Dazu haben Sie folgende Möglichkeiten:

  • Globale Konfiguration: Fügen Sie die Dateiendung der Programmiersprache dem Abschnitt scan.extensions.include der globalen CodeMender-Konfigurationsdatei ~/.codemender/config.yaml hinzu.
  • Repository-spezifische Konfiguration: Fügen Sie die Dateiendung der Programmiersprache dem Abschnitt scan.extensions.include der CodeMender-Konfigurationsdatei config.yaml im Repository hinzu.

Beispiel: Zusätzliche Sprachen oder Skriptformate scannen:

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

Weitere Informationen zum Konfigurieren von Scanoptionen finden Sie unter Konfigurationsparameter (config.yaml).

Hinweis zur Qualität

CodeMender veröffentlicht keine formellen Bewertungen pro Sprache. Die Standardsprachen spiegeln die Sprachen wider, für die wir die meisten Benchmarks haben. Die Ergebnisse für andere Sprachen können variieren. Wenn Ihre Organisation eine bestimmte Sprache für eine genauere Bewertung oder standardmäßige Einbeziehung priorisieren muss, wenden Sie sich an Ihr Google-Account-Management-Team.

Unterstützte Modelle

CodeMender unterstützt die folgenden Modelle:

Klicken, um unterstützte Modelle einzublenden

CodeMender unterstützt auch Gemini 3.8 Flash Cyber und Gemini 4 Argon Cyber Permissive für Kunden mit Zugriff über das Fairwind-Programm.

Gemini 4 Argon (gemini-4-argon) enthält integrierte Cybersicherheitsfunktionen, die Anfragen blockieren können, die die Generierung von Exploits oder die Überprüfung von Sicherheitslücken beinhalten. Jede Sicherheitsblockierung bei gemini-4-argon löst automatisch einen Wiederholungsversuch mit Gemini 3.8 Flash Cyber (gemini-3.8-flash-cyber) aus. Wenn Ihr Projekt keinen Zugriff auf Gemini 3.8 Flash Cyber hat, wird auf Gemini 3.8 Flash (gemini-3.8-flash) zurückgegriffen.

Informationen zum Angeben eines Modells beim Ausführen von CodeMender-CLI-Befehlen finden Sie unter Modell angeben.

Unterstützte Regionen

CodeMender ist weltweit verfügbar.

Tokennutzung verfolgen

CodeMender zeigt den Tokenverbrauch an zwei Stellen an: in einer Live-Statuszeile, während ein Befehl ausgeführt wird, und in einer einzeiligen Zusammenfassung, wenn ein Befehl erfolgreich abgeschlossen wurde. Die Anzahl umfasst Eingabe-, Ausgabe- und Gesamttokens für die aktuelle Sitzung.

Live-Statuszeile

Übergeben Sie während der Ausführung von cm find, cm fix, cm verify oder cm session resume das Flag --compact, um eine rollierende Statuszeile anzuzeigen, die während der Ausführung des Agents aktualisiert wird:

cm find ./src/auth/ --compact

In der Statuszeile werden die kumulierten Sitzungssummen angezeigt:

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

Fortgesetzte Sitzungen werden ab dem Punkt gezählt, an dem die vorherige Ausführung beendet wurde. Die Anzahl der total kann die internen Reasoning-Tokens des Modells enthalten und daher in + out überschreiten.

Zusammenfassung schließen

Wenn ein Befehl erfolgreich abgeschlossen wurde und mindestens ein Toolschritt ausgeführt wurde, gibt CodeMender eine einzeilige Zusammenfassung mit der verstrichenen Zeit und der Gesamtzahl der Tokens aus:

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

Abgerechnete Tokennutzung

Informationen zum Aufrufen der kumulierten abgerechneten Tokennutzung und der Kostentrends für Ihr Google Cloud -Projekt finden Sie unter Abrechnungsberichte und Kostentrends ansehen in Cloud Billing.

Erste Schritte mit der Befehlszeile

Richten Sie das CLI-Tool ein und initialisieren Sie Ihren Arbeitsbereich, um mit dem Scannen zu beginnen.

Vorbereitung

Bevor Sie die CodeMender-Befehlszeile initialisieren, müssen Sie Ihre Umgebung richtig vorbereiten:

  • Google Cloud -Projekt einrichten: Richten Sie Ihr Google Cloud -Projekt mit den erforderlichen APIs und IAM-Rollen ein.
  • CodeMender-Befehlszeile herunterladen: Laden Sie die Binärdatei der CodeMender-Befehlszeile für Ihr Betriebssystem herunter und installieren Sie sie.
  • Google Cloud -Anmeldedaten und -Projekt konfigurieren: Konfigurieren Sie die Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) von Google Cloud und legen Sie Ihr Zielprojekt fest, um die Befehlszeile zu authentifizieren.
  • Quellcode bereitstellen: Klonen oder kopieren Sie den Quellcode des Projekts, das Sie scannen möchten, in Ihren Arbeitsbereich.
  • Sandbox konfigurieren: Definieren Sie Verzeichnis-Mounts, Netzwerkzugriffsprofile und Sicherheitsausnahmen für die Sandbox-Umgebung.

Modell angeben

Standardmäßig verwendet CodeMender Gemini 3.8 Flash. Wenn Sie das Standardmodell überschreiben möchten, übergeben Sie das Flag --model mit der entsprechenden Modell-ID:

  • Gemini 3.8 Flash (Standard): --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 (Vorabversion): --model gemini-3.1-pro-preview

Die folgenden Befehle unterstützen das Flag --model:

  • cm find
  • cm verify
  • cm fix

Verwenden Sie die folgende Syntax, um ein Modell anzugeben, wenn Sie einen dieser Befehle ausführen:

cm COMMAND TARGET --model MODEL_NAME

Sicherheit und Datenschutz

In den folgenden Abschnitten werden das Sicherheitsmodell, die Richtlinien zur Datenaufbewahrung und die Zugriffssteuerungen von CodeMender beschrieben:

Welche Daten sendet CodeMender an die Cloud?

Wenn Sie CodeMender verwenden, vermittelt das lokale CLI-Tool den Zugriff auf Ihren Code. So wird sichergestellt, dass Sie Ihre vollständigen Quellcode-Repositories nie auf die Google-Server hochladen und der gehostete Agent sie nicht unabhängig klont.

Stattdessen lokalisiert die Befehlszeile die Daten, die an den von Google gehosteten Agent gesendet werden, strikt. Diese Daten umfassen:

  • Zielgerichtete Dateiinhalte oder Code-Snippets, Informationen zu Sicherheitslücken, vorgeschlagene Patches und Ergebnisse der Befehlsausführung.
  • Metadaten, Diagnosedaten, Fehler und Nutzungstelemetrie (z. B. verbrauchte Tokens und Befehlsdauer).

Wir verwenden Ihren Quellcode niemals, um die zugrunde liegenden Modellgewichtungen zu trainieren.

Wie lautet die Aufbewahrungsrichtlinie?

CodeMender verwendet eine strenge Richtlinie zur kurzfristigen Datenaufbewahrung:

  • Maximale Aufbewahrungsdauer von 7 Tagen: Wir bewahren Sitzungsdaten, einschließlich Code-Snippets und Tracking-Status, bis zu 7 Tage lang im Speicher der Gemini Enterprise Agent Platform auf, damit Nutzer unterbrochene Scans nahtlos fortsetzen können. Nach 7 Tagen wird sie automatisch vom System gelöscht (siehe Keine Datenaufbewahrung).
  • Explizites Löschen: Kunden müssen nicht 7 Tage warten, sondern können durch Aufrufen von DeleteInteraction sofort alle Sitzungsdaten löschen.
  • Kurzlebige Ergebnisse: Wir speichern Ergebnisse zu Sicherheitslücken und Patches nicht in langlebigen Datenbanken. Sie werden während der Pipeline im Arbeitsspeicher akkumuliert.

Wer kann auf die Daten zugreifen?

CodeMender verwendet einen „Zero-Data-Access“-Ansatz in Bezug auf die Sichtbarkeit für Menschen:

  • Kein menschlicher Zugriff: Keine menschlichen Gruppen oder Google-Entwickler haben Zugriff auf Kundendaten in der Produktionsumgebung.
  • Keine Sichtbarkeit für Operatoren: Selbst für das Debugging und die Fehlerverfolgung in der Produktion sind Google-Operatoren eingeschränkt und haben keinen Einblick in den Quellcodekontext des Kunden oder in temporäre Sitzungsstatus.
  • Strikte Isolation: Wir isolieren alle Daten logisch und steuern den Zugriff nach Organisation und Abrechnungsprojekt des Kunden, um die Privatsphäre der Mandanten innerhalb unserer gemeinsam genutzten Infrastruktur zu schützen.
  • VPC Service Controls (VPC-SC): Zum weiteren Schutz Ihrer Umgebung unterstützt die Architektur von CodeMender VPC Service Controls (VPC-SC) vollständig. So können Sie einen sicheren Sicherheitsbereich um Ihre Google Cloud -Ressourcen definieren und das Risiko der Daten-Exfiltration minimieren, wenn Ihre lokalisierten Daten an die Cloud Reasoning Engine gesendet werden.

Nächste Schritte

Eine ausführliche Anleitung finden Sie in den folgenden Leitfäden: