Sitzungen verwalten und Berichte exportieren

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 report

HTML-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 nach severity (Standard) oder time. 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 OPEN werden 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 DISMISSED markieren, werden zukünftige Benachrichtigungen stummgeschaltet und das Ergebnis wird mit cm report --status OPEN aus Ihrer aktiven CLI-Ausgabe ausgeschlossen. Wenn Sie cm verify für ein abgelehntes Ergebnis noch einmal ausführen, werden abgelehnte Elemente noch einmal untersucht oder wiederhergestellt.
  • REOPENED
    • Bedeutung:Eine Sicherheitslücke, die zuvor als FIXED oder DISMISSED gekennzeichnet 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.

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