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 zur Erstellung von Exploits erhalten, stehen Sicherheitsteams unter enormem Zeitdruck, um Sicherheitslücken proaktiv zu finden und zu beheben, bevor Angreifer sie ausnutzen können.

CodeMender ist ein KI-Codesicherheits-Agent, der schwerwiegende Sicherheitslücken in Ihrer Codebasis finden, überprüfen und beheben kann. CodeMender verwendet ein genau abgestimmtes Framework für ein LLM und nutzt von Google DeepMind entwickelte Prompts, Fähigkeiten und Orchestrierungslogik, um das Modell in ein Agentensystem zu verwandeln, das auf Codesicherheit spezialisiert ist.

Funktionsweise

CodeMender bewältigt die Größe und Vielfalt moderner Unternehmensumgebungen, in denen Code in zahlreichen Sprachen und Systemtypen vorkommt:

  • 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 konzentrieren. Alternativ können Sie eine Liste von Sicherheitslücken aus externen Sicherheitsscanning-Tools 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 Sie bestätigte Sicherheitslücken priorisieren und die Rate falsch positiver Ergebnisse reduzieren.
  • Sicherheitslücken beheben : Generieren und testen Sie einen Patch, der mit der Sprache Ihrer Codebasis kompatibel ist.

In allen drei Phasen können Sie CodeMender Kontext bereitstellen, damit die Besonderheiten Ihrer Anwendung und Ihres Bedrohungsmodells berücksichtigt werden. Diese Kombination aus einem LLM und dem genau abgestimmten Framework von CodeMender liefert Ergebnisse in höherer Qualität als die Verwendung eines LLM allein zum Finden und Beheben von Sicherheitslücken.

Systemarchitektur

Aus Nutzersicht besteht das CodeMender-System aus zwei Komponenten:

  • Agent: Ein gehostetes Multi-Agenten-System, das die Kern-Geschäftslogik und das logische Schlussfolgern ausführt.
  • Client: Ein Client, der auf Ihrem Computer ausgeführt wird und sowohl als CLI (zum Ausführen 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 überprü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 Unternehmensframeworks (z. B. HTML/CSS, Django, Flask, React, Spring Boot, ASP.NET und Express).

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

Zusätzliche Programmiersprachen scannen

Sie können CodeMender so konfigurieren, dass er nach Programmiersprachen sucht, die nicht im Standardsatz enthalten sind. Dazu haben Sie zwei Möglichkeiten:

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

Beispiel: So scannen Sie zusätzliche Sprachen oder Skriptformate:

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 Konfigurations parameter (config.yaml).

Hinweis zur Qualität

CodeMender veröffentlicht keine formalen sprachspezifischen Bewertungen. Die Standardsprachen spiegeln wider, wo wir die größte Benchmark-Abdeckung haben. Die Ergebnisse für andere Sprachen variieren. Wenn Ihre Organisation eine bestimmte Sprache für eine detailliertere Bewertung oder Standardeinbeziehung priorisieren muss, wenden Sie sich an Ihr Google-Kontoteam.

Unterstützte Modelle

CodeMender unterstützt die folgenden Modelle:

Unterstützte Modelle maximieren

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 zur Exploit-Generierung oder zur Überprüfung von Sicherheitslücken blockieren können. Jede Sicherheitsblockierung für gemini-4-argon löst automatisch einen Wiederholungsversuch für Gemini 3.8 Flash Cyber (gemini-3.8-flash-cyber) aus und greift dann auf Gemini 3.8 Flash (gemini-3.8-flash) zurück, wenn Ihr Projekt keinen Zugriff auf Gemini 3.8 Flash Cyber hat.

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

Die Tokennutzung wird in CodeMender an zwei Stellen angezeigt: in einer Live-Statuszeile während der Ausführung eines Befehls 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

Während cm find, cm fix, cm verify oder cm session resume ausgeführt wird, übergeben Sie das Flag --compact, um eine fortlaufende Statuszeile anzuzeigen, die aktualisiert wird, während der Agent arbeitet:

cm find ./src/auth/ --compact

In der Statuszeile werden die kumulativen Sitzungssummen angezeigt:

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

Bei fortgesetzten Sitzungen wird ab dem Punkt weitergezählt, an dem die vorherige Ausführung beendet wurde. Die Anzahl total kann die internen Tokens für logisches Schlussfolgern des Modells enthalten, sodass sie in + out übersteigen kann.

Zusammenfassung nach Beendigung

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

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

Abgerechnete Tokennutzung

Informationen zur kumulativen abgerechneten Tokennutzung und zu Kostentrends für Ihr Google Cloud Projekt finden Sie unter Abrechnungsberichte und Kostentrends ansehen in Cloud Billing.

Erste Schritte mit der CLI

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

Vorbereitung

Bevor Sie die CodeMender-CLI initialisieren, prüfen Sie, ob Ihre Umgebung korrekt vorbereitet ist:

  • Projekt einrichten Google Cloud : Richten Sie Ihr Google Cloud Projekt mit den erforderlichen APIs und IAM-Rollen ein.
  • **CodeMender-CLI herunterladen**: Laden Sie die CodeMender-CLI-Binärdatei für Ihr Betriebssystem herunter und installieren Sie sie.
  • Anmeldedaten und Projekt konfigurieren Google Cloud : Konfigurieren Sie Google Cloud Standardanmeldedaten für Anwendungen und legen Sie Ihr Zielprojekt fest, um die CLI zu authentifizieren.
  • Quellcode bereitstellen:Klonen oder kopieren Sie den Quellcode des Projekts, das Sie scannen möchten, in Ihren Arbeitsbereich.
  • Sandbox konfigurieren: Definieren Sie Verzeichnisbereitstellungen, 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 Zugriffssteuerung 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 niemals auf die Server von Google hochladen und der gehostete Agent sie nicht unabhängig klont.

Stattdessen lokalisiert die CLI die Daten, die sie an den von Google gehosteten Agenten sendet, streng. Diese Daten bestehen aus:

  • Zielgerichteten Dateiinhalten oder Code-Snippets, Informationen zu Sicherheitslücken, vorgeschlagenen Patches und Ergebnissen der Befehlsausführung.
  • Metadaten, Diagnosen, Fehlern und Telemetriedaten zur Nutzung (z. B. verbrauchte Tokens und Befehlsdauer).

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

Wie lautet die Richtlinie zur Datenaufbewahrung?

CodeMender verwendet eine strenge, kurzfristige Richtlinie zur Datenaufbewahrung:

  • Maximale Aufbewahrungsdauer von 7 Tagen:Wir bewahren Sitzungsdaten, einschließlich Code-Snippets und Tracking-Status, bis zu 7 Tage im Speicher der Gemini Enterprise Agent Platform auf, damit Nutzer unterbrochene Scans nahtlos fortsetzen können. Nach 7 Tagen werden sie automatisch vom System gelöscht (siehe Keine Datenaufbewahrung).
  • Explizites Löschen:Kunden müssen nicht 7 Tage warten, sondern können mit dem Aufruf 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 gesammelt.

Wer kann auf die Daten zugreifen?

CodeMender verwendet einen Ansatz ohne Datenzugriff 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:Auch für die Fehlerbehebung und das Tracking von Fehlern in der Produktion sind Google-Operatoren eingeschränkt und haben keine Sichtbarkeit für den Quellcodekontext des Kunden oder für vorübergehende Sitzungsstatus.
  • Strenge Isolation:Wir isolieren alle Daten logisch und steuern den Zugriff darauf nach Organisation und Kundenabrechnungsprojekt, um die Privatsphäre von Mandanten in unserer gemeinsam genutzten Infrastruktur zu schützen.
  • VPC Service Controls (VPC-SC) : Um Ihre Umgebung weiter zu schützen, unterstützt die Architektur von CodeMender vollständig VPC Service Controls (VPC-SC). So können Sie einen sicheren Sicherheitsperimeter für Ihre Google Cloud Ressourcen definieren, um das Risiko einer Daten-Exfiltration zu minimieren, wenn Ihre lokalisierten Daten an die Cloud-Engine für logisches Schlussfolgern gesendet werden.

Nächste Schritte

Eine detaillierte Anleitung finden Sie in den folgenden Leitfäden: