Sitzungen verwalten und Berichte exportieren

CodeMender verfolgt jeden Scan-, Bestätigungs- und Behebungsversuch als zustandsbehaftete Sitzung, die von einer lokalen SQLite-Datenbank (state.db) unterstützt wird. Sie können aktive Sitzungen prüfen, angehaltene Aufgaben fortsetzen und detaillierte Berichte zu Ergebnissen exportieren.

Sitzungsverwaltung

Die CodeMender CLI verwaltet zustandsbehaftete Ausführungssitzungen lokal. So können Sie aktive Aufgaben verfolgen, unterbrochene Arbeitsabläufe 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 Schrittfehlers angehalten wird, setzen Sie sie ab der letzten Checkpoint-Phase fort:

cm session resume SESSION_ID

Aktive Sitzung abbrechen

So beenden Sie eine aktive Sitzung und stoppen die Compute-Ausführung des Backend-Agents:

cm session cancel SESSION_ID

Berichte ansehen und Patches exportieren

Mit cm report können Sie Sitzungsergebnisse, Bestätigungsstatus und Patchdetails anzeigen.

Ausgabeformate

Terminaltabelle (Standard)

Zusammengefasste Liste der Ergebnisse.

cm report

HTML-Bericht

Generieren Sie einen formatierten HTML-Bericht. Verwenden Sie --open (oder -o), um ihn automatisch in Ihrem Standardbrowser zu starten.

cm report --format html --open

Markdown

Generieren Sie einen Markdown-Bericht im GitHub-Stil.

cm report --format md

JSON

Exportieren Sie alle Details zu Sitzungsergebnissen als unformatiertes JSON.

cm report --format json

SARIF

Exportieren Sie Ergebnisse im Standard-SARIF-Format (v2.1.0) zur Einbindung in andere Sicherheitstools.

cm report --format sarif

Flags zum Filtern und Sortieren

  • Vorgeschlagene Code-Patches anzeigen (--patches): Fügen Sie dem Bericht vollständige Unified Diffs der generierten Korrekturen hinzu. bash cm report --patches
  • Nach Schweregrad filtern (--severity): Zeigen Sie Ergebnisse an, die einem bestimmten Schweregrad entsprechen (CRITICAL, HIGH, MEDIUM, LOW). bash cm report --severity HIGH
  • Nach Status filtern (--status): Zeigen Sie Ergebnisse an, die einem bestimmten Status entsprechen (OPEN, FIXED, DISMISSED, REOPENED). bash cm report --status OPEN
  • Nach Sitzung filtern (--session): Zeigen Sie Ergebnisse mit einem bestimmten Sitzungs-ID-Präfix an.
    cm report --session SESSION_ID_PREFIX
  • Agent-Artefakte anzeigen (--artifacts): Fügen Sie Pfade zu vom Agent generierten Artefakten hinzu (z. B. Logs, Exploit-Skripts). bash cm report --artifacts
  • Ergebnisse sortieren (--sort): Sortieren Sie die Ergebnisse nach severity (Standard) oder time. bash cm report --sort time
  • Nach Ergebnis-ID filtern: Übergeben Sie eine bestimmte Ergebnis-ID (oder ein Präfix) als Positionsparameter, um Details zu einem einzelnen Ergebnis anzuzeigen.
    cm report FINDING_ID_PREFIX

Status von Ergebnissen zu Sicherheitslücken

CodeMender verfolgt Ergebnisse in den folgenden Status von Sicherheitslücken:

  • OPEN
    • Bedeutung:Die Sicherheitslücke wurde bei einem Scan erkannt (oder aus einem Drittanbietertool importiert), aber noch nicht bestätigt, gepatcht oder als inaktiv markiert.
    • Umgang:Dies ist der Anfangsstatus aller neu entdeckten Sicherheitslücken. Sicherheitslücken im Status OPEN werden aktiv zur Bestätigung (cm verify) oder zum Patchen (cm fix) in die Warteschlange gestellt.
  • FIXED
    • Bedeutung:CodeMender hat einen Patch für die Sicherheitslücke generiert, das Diff auf Ihre lokale Codebasis angewendet und Bestätigungstests erfolgreich kompiliert und ausgeführt, um zu beweisen, dass der Exploit nicht mehr funktioniert.
    • Umgang:Sobald bestätigt wurde, dass ein Patch das Problem behebt, ohne die vorhandene Codelogik zu beeinträchtigen, ändert CodeMender den Status des Ergebnisses in FIXED. Dieser Status bleibt bestehen, es sei denn, bei einem zukünftigen Scan wird eine Regression erkannt.
  • DISMISSED
    • Bedeutung:Die Sicherheitslücke ist als inaktiv gekennzeichnet, entweder weil sie als falsch positiv identifiziert oder bereits behoben wurde oder weil die Zuverlässigkeit des Ergebnisses nicht ausreicht, um es als ausnutzbar zu bestätigen (einschließlich des Bedrohungsmodells Ihres Projekts, falls beim Onboarding eines angegeben wurde).
    • Umgang:Wenn Sie ein Element als DISMISSED markieren, werden zukünftige Benachrichtigungen stummgeschaltet und das Ergebnis wird aus der aktiven CLI-Ausgabe mit cm report --status OPEN ausgeschlossen. Wenn Sie cm verify für ein verworfenes Ergebnis noch einmal ausführen, werden verworfene Elemente noch einmal geprüft oder wiederhergestellt.
  • REOPENED
    • Bedeutung:Eine Sicherheitslücke, die zuvor als FIXED oder DISMISSED markiert wurde, wurde bei einem nachfolgenden Scan der Codebasis wieder erkannt.
    • Umgang:Dieser Status weist auf eine Regression hin (z. B. ein fehlerhafter Git-Merge, der den Patch rückgängig macht) oder eine fehlgeschlagene Behebungsstrategie. Das Problem wird zur sofortigen Neubewertung gekennzeichnet und Entwickler müssen den Patchprozess überprüfen.

Schweregrade von Sicherheitslücken

CodeMender kategorisiert Ergebnisse in die folgenden Schweregrade:

  • CRITICAL
    • Bedeutung:Die Sicherheitslücke stellt ein unmittelbares, schwerwiegendes Risiko für Ihre Anwendung oder die zugrunde liegende Infrastruktur dar und kann möglicherweise zu einer vollständigen Kompromittierung des Systems führen.
    • Kategorisierung als „Critical“: Sie erfüllt die Schwellenwerte für schwerwiegende Auswirkungen (z. B. Remote Code Execution oder Schreibvorgänge auf Root-Ebene), ist ohne Voraussetzungen direkt von nicht vertrauenswürdigen Grenzen aus erreichbar und wird durch eine Taint-Flow-Analyse mit hoher Zuverlässigkeit 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 zu unbefugter Systemsteuerung, Rechteausweitung oder erheblicher Datenpanne führen kann, aber bestimmte Bedingungen für die Ausführung erfordert.
    • Kategorisierung als „High“: Die Auswirkungen der Ausnutzung sind zwar hoch (z.B. beliebige Datenbanklesevorgänge oder administrative Übernahme), die Ausnutzbarkeit ist jedoch etwas eingeschränkt. Möglicherweise muss ein Angreifer eine Standardnutzerauthentifizierung durchführen, eine bestimmte Systemkonfiguration verwenden oder eine sehr präzise Abfolge von Aktionen ausführen.
  • MEDIUM
    • Bedeutung:Die Sicherheitslücke stellt ein moderates Risiko dar, bei dem in der Regel eingeschränkte Daten offengelegt werden oder es zu lokalen Störungen kommen kann, aber das Hostsystem ist nur gering gefährdet.
    • Kategorisierung als „Medium“: Die Ausnutzung ist stark durch Erreichbarkeit oder Komplexität eingeschränkt. In der Regel ist eine aktive Nutzerinteraktion (z. B. Klicken auf einen schädlichen Link), umfassende Berechtigungen oder komplexe Bedingungen erforderlich, um Schutzebenen zu umgehen, und 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 allein keine unmittelbare Bedrohung darstellt.
    • Kategorisierung als „Low“: Die Ausnutzbarkeit ist extrem gering oder die Auswirkungen sind minimal. Das Ergebnis wird von Angreifern in der Regel für die Aufklärung oder das Fingerprinting der Konfiguration verwendet und nicht für die direkte Kompromittierung. Es kann nicht verwendet werden, um beliebigen Code auszuführen oder sensible Anwendungsdaten zu exfiltrieren.

Workspace-Wartung

Führen Sie Folgendes aus, um lokale Status-Tracking-Dateien zurückzusetzen und temporäre Ausführungscaches zu bereinigen:

cm clean