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 Patch-Kandidaten 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, wird der bestätigte Patch auf Ihren Arbeitsbereich angewendet und kann bereitgestellt werden.

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 genehmigen (-y / --yes): Genehmigen 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 in der Datei config.yaml die Einstellung confirm_writes: false festlegen.
  • 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 wurden, prüfen, bereitstellen und verwalten können, bevor Sie sie festschreiben:

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

    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 für die Festschreibung bereit sind.

    cm vcs stage

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

    cm vcs reset