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:
- Generiert einen Patch-Kandidaten mithilfe der in der Cloud gehosteten Reasoning Engine.
- Wendet den Patch auf eine Kopie des Quellcodes in Ihrer lokalen Sandbox an.
- Kompiliert und testet die Codebasis, indem die konfigurierte
build.commandausgeführt wird, um sicherzustellen, dass das Projekt erstellt wird und die Unittests erfolgreich sind. - 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: Hinweis: Sie können interaktive Bestätigungsaufforderungen auch in Ihrercm fix FINDING_ID -y
config.yamldeaktivieren, indem Sietools.confirm_writes: falseundtools.confirm_commands: falsefestlegen. - Sandboxing steuern (
--sandbox): Aktivieren oder deaktivieren Sie die Sandbox auf Betriebssystemebene explizit für diese Ausführung (z. B.--sandbox=falsezum 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 konfiguriertenproject_pathszugreifen 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 dercommand_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