Codesicherheitslücken beheben und Unterschiede verwalten

CodeMender kann automatisch Quellcode-Patches für verifizierte Sicherheitslücken erstellen, validieren und anwenden und sie in Ihrer lokalen Sandbox testen, um Regressionen zu vermeiden.

Korrekturen für Sicherheitslücken generieren

Verwenden Sie cm fix, um einen validierten Sicherheitspatch für ein verifiziertes Ergebnis zu generieren:

cm fix FINDING_ID

Wenn Sie cm fix ausführen, führt CodeMender die folgenden Validierungsschritte aus:

  1. Generiert einen Patch-Kandidaten mithilfe der in der Cloud gehosteten Reasoning Engine.
  2. Wendet den Patch auf eine Kopie des Quellcodes in Ihrer lokalen Sandbox an.
  3. Kompiliert und testet die Codebasis, indem die konfigurierte build.command ausgeführt wird, um sicherzustellen, dass das Projekt erstellt wird und die Unittests erfolgreich sind.
  4. Führt den verifizierten PoC-Exploit noch einmal aus, um zu bestätigen, dass die Sicherheitslücke nicht mehr ausgenutzt werden kann.

Standardmäßig werden Sie von CodeMender aufgefordert, jede Dateiänderung zu bestätigen, bevor sie in Ihrem Arbeitsbereich auf das Laufwerk geschrieben wird. Sobald alle Prüfungen erfolgreich abgeschlossen sind, wendet CodeMender den verifizierten Patch auf Ihren Arbeitsbereich an. Anschließend können Sie die Änderungen bereitstellen.

Flags korrigieren

  • Kontext für die Korrektur angeben (-c / --context): Geben Sie architektonische Einschränkungen oder Programmierrichtlinien an:
    cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
  • Aufforderungen automatisch genehmigen (-y / --yes): Alle Schreibvorgänge in Dateien und Bestätigungsaufforderungen für Befehle während des Reparaturvorgangs automatisch genehmigen:
    cm fix FINDING_ID -y
    Hinweis: Sie können interaktive Bestätigungsaufforderungen auch in Ihrer config.yaml deaktivieren, indem Sie tools.confirm_writes: false und tools.confirm_commands: false festlegen.
  • Sandboxing steuern (--sandbox): Aktivieren oder deaktivieren Sie die Sandbox auf Betriebssystemebene explizit für diese Ausführung (z. B. --sandbox=false zum Deaktivieren):
    cm fix FINDING_ID --sandbox=false
  • Pfadgrenzen umgehen (--allow-all-paths): Deaktivieren Sie die Prüfung der Pfadgrenzen des Arbeitsbereichs für diesen Durchlauf, damit Agent-Tools auf Pfade außerhalb des Projektstammverzeichnisses und des konfigurierten project_paths zugreifen können (kombinieren Sie dies mit --sandbox=false, um auf Hostpfade zuzugreifen, die nicht in der Sandbox bereitgestellt sind):
    cm fix FINDING_ID --allow-all-paths
  • Befehlsrichtlinie umgehen (--allow-all-commands): Deaktivieren Sie die Erzwingung der command_policy.yaml-Sperrliste für diese Ausführung:
    cm fix FINDING_ID --allow-all-commands
  • Cache umgehen (--no-cache): CodeMender wird gezwungen, einen neuen Patch zu generieren:
    cm fix FINDING_ID --no-cache

Lokale VCS-Diffs prüfen und verwalten

CodeMender enthält integrierte VCS-Befehle, mit denen Sie Codeänderungen, die durch Patches eingeführt werden, prüfen, bereitstellen und verwalten können, bevor Sie sie übernehmen:

  • Repository-Status ansehen: Prüfen Sie, welche Dateien CodeMender in Ihrem lokalen Arbeitsbereich geändert oder erstellt hat.

    cm vcs status

  • Unterschiede prüfen: Sehen Sie sich die zeilenweisen Unterschiede aller nicht übernommenen Codeänderungen an, die der Agent generiert hat.

    cm vcs diff

  • Änderungen bereitstellen: Fügen Sie Ihrer lokalen Staging-Umgebung verifizierte Patchänderungen hinzu, damit Sie sie testen und committen können.

    cm vcs stage

  • Sitzungsänderungen rückgängig machen: Alle lokalen Dateiänderungen, die CodeMender während der aktuellen Sitzung generiert hat, werden verworfen und das Repository wird auf den ursprünglichen Zustand zurückgesetzt.

    cm vcs reset