CodeMender kann automatisch Quellcodepatches für bestätigte Sicherheitslücken erstellen, validieren und anwenden und sie in Ihrer lokalen Sandbox testen, um Regressionen zu verhindern.
Sicherheitslückenbehebungen generieren
So generieren Sie mit cm fix einen validierten Sicherheitspatch für ein bestätigtes Ergebnis:
cm fix FINDING_ID
Wenn Sie cm fix ausführen, führt CodeMender die folgenden Validierungsschritte aus:
- Generiert einen Patch-Kandidaten mit der cloudbasierten Reasoning Engine.
- Wendet den Patch auf eine Kopie des Quellcodes in Ihrer lokalen Sandbox an.
- Kompiliert und testet die Codebasis, indem die konfigurierten
build.commandausgeführt werden, um sicherzustellen, dass das Projekt erstellt wird und die Unittests bestanden werden. - 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 die Festplatte in Ihrem Arbeitsbereich geschrieben wird. Wenn alle Prüfungen bestanden sind, wendet CodeMender den bestätigten 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"
- Schreibvorgänge automatisch genehmigen (
-y/--yes): Alle Dateischreibvorgänge und Aufforderungen während des Korrekturvorgangs automatisch genehmigen: Hinweis:Sie können interaktive Schreib-Prompts auch global deaktivieren, indem Siecm fix FINDING_ID -y
confirm_writes: falsein Ihrerconfig.yamlfestlegen. - Sandbox-Steuerung (
--sandbox): Aktivieren oder deaktivieren Sie die Sandbox für diesen Lauf explizit (z. B.--sandbox=falsezum Deaktivieren):cm fix FINDING_ID --sandbox=false
- Sandbox-Technologie umgehen (
--unrestricted): Umgeht vorübergehend alle Sandbox-Schutzmaßnahmen für diesen Lauf und deaktiviert Dateisystemgrenzen und die Containerisolierung auf Betriebssystemebene:cm fix FINDING_ID --unrestricted
- Cache umgehen (
--no-cache): CodeMender zwingen, einen neuen Patch zu generieren: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 committen:
Repository-Status ansehen: Hier sehen Sie, welche Dateien CodeMender in Ihrem lokalen Arbeitsbereich geändert oder erstellt hat.
cm vcs status
Untersuchen Sie die Unterschiede: Sehen Sie sich zeilenweise einheitliche Unterschiede aller nicht übertragenen Codeänderungen an, die der Agent generiert hat.
cm vcs diff
Änderungen bereitstellen: Fügen Sie Ihrer lokalen Staging-Umgebung bestätigte 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 von CodeMender während der aktuellen Sitzung generiert wurden, werden verworfen und Ihr Repository wird in den Ausgangszustand zurückversetzt.
cm vcs reset