Codesicherheitslücken beheben und Unterschiede verwalten

CodeMender kann automatisch Quellcode-Patches für bestätigte Sicherheitslücken erstellen, validieren und anwenden. Dabei werden sie in Ihrer lokalen Sandbox getestet, um Regressionen zu verhindern.

Sicherheitslücken beheben

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

cm fix FINDING_ID

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

  1. Generiert einen Patchkandidaten mit der in der Cloud gehosteten Reasoning Engine.
  2. Wendet den Patch an auf eine Kopie des Quellcodes in Ihrer lokalen Sandbox.
  3. Kompiliert und testet die Codebasis, indem der konfigurierte build.command ausgeführt wird, um sicherzustellen, dass das Projekt erstellt wird und die Unittests bestanden werden.
  4. Führt den bestätigten 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 Dateimodifikation zu bestätigen, bevor sie auf dem Laufwerk in Ihrem Arbeitsbereich gespeichert wird. Wenn alle Prüfungen bestanden wurden, wendet CodeMender den bestätigten Patch auf Ihren Arbeitsbereich an. Anschließend können Sie die Änderungen bereitstellen.

Flags für die Fehlerbehebung

  • Kontext für die Fehlerbehebung 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"
  • Schreibvorgänge automatisch bestätigen (-y / --yes): Bestätigen Sie alle Dateischreibvorgänge und Eingabeaufforderungen während des Fehlerbehebungsprozesses automatisch:
    cm fix FINDING_ID -y
    Hinweis:Sie können interaktive Eingabeaufforderungen für Schreibvorgänge auch global deaktivieren, indem Sie confirm_writes: false in Ihrer config.yaml festlegen.
  • Sandbox steuern (--sandbox): Aktivieren oder deaktivieren Sie die Sandbox explizit für diese Ausführung (z. B. --sandbox=false zum Deaktivieren):
    cm fix FINDING_ID --sandbox=false
  • Sandbox umgehen (--unrestricted): Umgehen Sie vorübergehend alle Sandbox-Schutzmaßnahmen für diese Ausführung und deaktivieren Sie die Dateisystemgrenzen und die Containerisolierung auf Betriebssystemebene:
    cm fix FINDING_ID --unrestricted
  • Cache umgehen (--no-cache): Erzwingen Sie, dass CodeMender einen neuen Patch generiert:
    cm fix FINDING_ID --no-cache

Lokale VCS-Unterschiede 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 festschreiben:

  • 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 zeilenweise einheitliche Unterschiede aller nicht festgeschriebenen Codeänderungen an, die vom Agent generiert wurden.

    cm vcs diff

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

    cm vcs stage

  • Änderungen der Sitzung rückgängig machen: Verwerfen Sie alle lokalen Dateimodifikationen, die CodeMender während der aktuellen Sitzung generiert hat, und stellen Sie den Ausgangszustand Ihres Repositorys wieder her.

    cm vcs reset