CodeMender verfolgt jeden Scan, jede Überprüfung und jeden Behebungsversuch als zustandsbehaftete Sitzung, die von einer lokalen SQLite-Datenbank (state.db) unterstützt wird. Sie können aktive Sitzungen prüfen, pausierte Aufgaben fortsetzen und detaillierte Berichte zu Ergebnissen exportieren.
Sitzungsverwaltung
Die CodeMender CLI verwaltet statusbehaftete Ausführungssitzungen lokal. So können Sie aktive Aufgaben verfolgen, unterbrochene Workflows fortsetzen und Sicherheitsberichte exportieren.
Aktive und vergangene Sitzungen auflisten
Führen Sie den folgenden Befehl aus, um alle Sitzungen, ihre Status (RUNNING, WAITING_FOR_TOOL, COMPLETED, FAILED, CANCELLED) und Zielpfade aufzulisten:
cm session list
Unterbrochene Sitzung fortsetzen
Wenn eine Sitzung aufgrund einer Netzwerkunterbrechung oder eines fehlgeschlagenen Schritts pausiert wird, können Sie sie ab der letzten Prüfpunktphase fortsetzen:
cm session resume SESSION_ID
Laufsitzung abbrechen
So beenden Sie eine aktive Sitzung und stoppen die Ausführung des Backend-Agent:
cm session cancel SESSION_ID
Berichte ansehen und Patches exportieren
Mit cm report können Sie Sitzungsergebnisse, Bestätigungsstatus und Patchdetails anzeigen.
Ausgabeformate
Klemmentabelle (Standard)
Zusammengefasste Liste der Ergebnisse.
cm reportHTML-Bericht
Einen formatierten HTML-Bericht erstellen Verwenden Sie --open (oder -o), um sie automatisch in Ihrem Standardbrowser zu starten.
cm report --format html --open
Markdown
Einen Bericht im GitHub-kompatiblen Markdown-Format erstellen
cm report --format md
JSON
Alle Details zu den Sitzungsergebnissen als JSON-Rohdaten exportieren.
cm report --format json
SARIF
Ergebnisse im Standard-SARIF-Format (Version 2.1.0) exportieren, um sie in andere Sicherheitstools einzubinden.
cm report --format sarif
Flags filtern und sortieren
- Vorgeschlagene Code-Patches anzeigen (
--patches): Vollständige Unified Diffs der generierten Korrekturen in den Bericht aufnehmen.bash cm report --patches - Nach Schweregrad filtern (
--severity): Sie können sich Ergebnisse ansehen, die einem bestimmten Schweregrad entsprechen (CRITICAL,HIGH,MEDIUM,LOW).bash cm report --severity HIGH - Nach Status filtern (
--status): Sie können sich Ergebnisse ansehen, die einem bestimmten Status entsprechen (OPEN,FIXED,DISMISSED,REOPENED).bash cm report --status OPEN - Nach Sitzung filtern (
--session): Hier können Sie Ergebnisse für ein bestimmtes Sitzungs-ID-Präfix aufrufen.cm report --session SESSION_ID_PREFIX
- Agent-Artefakte anzeigen (
--artifacts): Pfade zu von Agenten generierten Laufzeitartefakten (z. B. Protokolle, Exploit-Scripts) einfügen.bash cm report --artifacts - Ergebnisse sortieren (
--sort): Sortieren Sie die Ergebnisse nachseverity(Standard) odertime.bash cm report --sort time - Nach Ergebnis-ID filtern: Übergeben Sie eine bestimmte Ergebnis-ID (oder ein bestimmtes Präfix) als Positionsargument, um Details zu einem einzelnen Ergebnis aufzurufen.
cm report FINDING_ID_PREFIX
Status von Ergebnissen zu Sicherheitslücken
CodeMender verfolgt Ergebnisse in den folgenden Sicherheitslückenstatus:
OPEN- Bedeutung:Die Sicherheitslücke wurde bei einem Scan erfolgreich erkannt (oder aus einem Drittanbietertool importiert), aber noch nicht überprüft, gepatcht oder als inaktiv markiert.
- Bearbeitungsstatus:Dies ist der ursprüngliche Status jedes neu entdeckten Sicherheitsrisikos. Sicherheitslücken im Status
OPENwerden aktiv zur Überprüfung (cm verify) oder zum Patchen (cm fix) in die Warteschlange gestellt.
FIXED- Was das bedeutet:CodeMender hat einen Patch für die Sicherheitslücke generiert, den Diff auf Ihre lokale Codebasis angewendet und die Überprüfungstests erfolgreich kompiliert und ausgeführt, um zu beweisen, dass der Exploit nicht mehr funktioniert.
- So wird das Problem behandelt:Sobald bestätigt wurde, dass ein Patch das Problem behebt, ohne die vorhandene Codelogik zu beeinträchtigen, ändert CodeMender den Status des Problems zu
FIXED. Der Status bleibt so, bis bei einem zukünftigen Scan eine Regression erkannt wird.
DISMISSED- Bedeutung:Die Sicherheitslücke wird als inaktiv eingestuft, entweder weil sie als falsch positiv identifiziert oder bereits behoben wurde oder weil die Wahrscheinlichkeit, dass sie ausgenutzt werden kann, nicht hoch genug ist (auch im Hinblick auf das Bedrohungsmodell Ihres Projekts, falls es beim Onboarding angegeben wurde).
- So wird das Problem behandelt:Wenn Sie ein Element als
DISMISSEDmarkieren, werden zukünftige Benachrichtigungen stummgeschaltet und das Ergebnis wird mitcm report --status OPENaus Ihrer aktiven CLI-Ausgabe ausgeschlossen. Wenn Siecm verifyfür ein abgelehntes Ergebnis noch einmal ausführen, werden abgelehnte Elemente noch einmal untersucht oder wiederhergestellt.
REOPENED- Bedeutung:Eine Sicherheitslücke, die zuvor als
FIXEDoderDISMISSEDgekennzeichnet war, wurde bei einem nachfolgenden Code-Scan wieder erkannt. - Bearbeitung:Dieser Status weist auf eine Regression hin, z. B. einen fehlerhaften Git-Merge, durch den der Patch zurückgesetzt wurde, oder eine fehlgeschlagene Problembehebung. Das Problem wird zur sofortigen Neubewertung gekennzeichnet und Entwickler müssen den Patching-Prozess überprüfen.
- Bedeutung:Eine Sicherheitslücke, die zuvor als
Schweregrade von Sicherheitslücken
CodeMender kategorisiert Ergebnisse in die folgenden Schweregrade:
CRITICAL- Bedeutung:Die Sicherheitslücke birgt ein unmittelbares, schwerwiegendes Risiko für Ihre Anwendung oder die zugrunde liegende Infrastruktur und kann möglicherweise zu einer vollständigen Kompromittierung des Systems führen.
- Warum wird sie als „Kritisch“ eingestuft?:Sie erfüllt die Schwellenwerte für Auswirkungen mit hoher Konsequenz (z. B. Remote Code Execution oder Schreibvorgänge auf Root-Ebene), ist ohne Voraussetzungen direkt über nicht vertrauenswürdige Grenzen erreichbar und wird durch eine Taint-Flow-Analyse mit hoher Konfidenz oder einen validierten Proof of Concept (PoC) unterstützt, der in der Sandbox von CodeMender ausgeführt wird.
HIGH- Bedeutung:Die Sicherheitslücke stellt einen schwerwiegenden Sicherheitsfehler dar, der unter bestimmten Bedingungen zu einer unbefugten Systemsteuerung, einer Rechteausweitung oder einer erheblichen Datenpanne führen kann.
- Warum wird sie als „Hoch“ eingestuft? Obwohl die Auswirkungen der Ausnutzung hoch sind (z. B. willkürliches Lesen von Datenbanken oder administrative Übernahme), ist die Ausnutzbarkeit etwas eingeschränkt. Dazu ist möglicherweise eine Standardnutzerauthentifizierung erforderlich, es hängt von einer bestimmten Systemkonfiguration ab oder es ist eine sehr präzise Abfolge von Aktionen erforderlich.
MEDIUM- Bedeutung:Die Sicherheitslücke birgt ein moderates Risiko. In der Regel werden eingeschränkte Daten offengelegt oder es kommt zu lokalen Störungen. Das Risiko für das Hostsystem ist jedoch gering.
- Warum die Schwachstelle als „Mittel“ eingestuft wird:Der Exploit ist stark durch Erreichbarkeit oder Komplexität eingeschränkt. Im Allgemeinen sind aktive Nutzerinteraktionen (z. B. das Klicken auf einen schädlichen Link), umfassende Berechtigungen oder komplexe Bedingungen erforderlich, um Schutzebenen zu umgehen. Der letztendlich betroffene Bereich ist eingeschränkt.
LOW- Bedeutung:Das Ergebnis stellt ein geringes Sicherheitsrisiko oder einen allgemeinen Mangel an Defense-in-Depth-Hygiene dar, der an sich keine unmittelbare Bedrohung darstellt.
- Warum wird sie als „Niedrig“ eingestuft? Sie weist eine extrem geringe Ausnutzbarkeit oder minimale Auswirkungen auf. Die Sicherheitslücke wird in der Regel von Angreifern für die Aufklärung oder das Fingerprinting der Konfiguration und nicht für die direkte Kompromittierung verwendet. Sie kann nicht zum Ausführen von beliebigem Code oder zum Exfiltrieren sensibler Anwendungsdaten genutzt werden.
Wartung von Arbeitsbereichen
Führen Sie Folgendes aus, um Dateien zum Nachverfolgen des lokalen Status zurückzusetzen und temporäre Ausführungscaches zu bereinigen:
cm clean