Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
code-shield — Evidenzgesteuerte C/C++-Schwachstellenbehebungspipeline + http-parser Fallstudie (CVE-2024-22019-class). Python-Kern, React 19-Konsole, 17-Test-Verifikationssuite. | Kitploit
Tools/GitHubGitHub/kos2001/code-shield
DefensivwerkzeugeStatische AnalyseSchwachstellenanalyseCode-AnalyseFuzzingBinäranalyse
GitHubkos2001/code-shield

code-shield

Evidenzgesteuerte C/C++-Schwachstellenbehebungspipeline + http-parser Fallstudie (CVE-2024-22019-class). Python-Kern, React 19-Konsole, 17-Test-Verifikationssuite.

Repository anzeigen
12vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

protocol-remediator

MVP, das Schwachstellen-Findings in C/C++-Protokoll-/Plattform-Code in reproduzierbare Beweise normalisiert und Kandidaten-Patches in isolierten Kopien validiert. code-shield war ein Arbeitstitel, bei dem ein Namenskonfliktrisiko festgestellt wurde, daher werden für öffentliche Pakete und CLI neutrale interne Namen verwendet.

Der Schwerpunkt der aktuellen Implementierung liegt nicht auf dem Patch-Erzeugungsmodell, sondern auf der folgenden Verifikations-Rückkopplungsschleife.

Sanitizer oder SARIF
  -> Finding + EvidenceBundle
  -> Quellkontext
  -> manueller/externer Agenten-Patch
  -> Original reproduzieren
  -> Build
  -> gepatchter Reproducer
  -> Tests
  -> statischer Rescan
  -> begrenztes Refuzz
  -> Protokoll-Orakel
  -> verifizierter Report

Implementierte Funktionen

  • Versionierte JSON-Modelle für Finding, EvidenceBundle, PatchProposal, VerificationReport
  • Zustandsübergänge: detected → reproducible → contextualized → proposed → plausible → verified
  • Sammlung von AddressSanitizer-, MemorySanitizer- und UndefinedBehaviorSanitizer-Berichten
  • Sammlung von SARIF-2.1-Findings
  • Export normierter Findings als SARIF 2.1
  • Erstellung auditierbarer JSON-Kontexte um Quellcode-Positionen
  • TOML-basierte Target-/Build-/Gate-Konfiguration
  • Docker-Ausführer mit Network-Off, Capability-Drop und Ressourcenlimits
  • Lokaler Ausführer mit explizitem Opt-in
  • Reproduktion von Findings in einer Kopie des Original-Targets, dann Patch-Validierung in einer separaten Kopie
  • Prüfsummen für Patch und Reproducer, Pfad-Ausbruch, Symlink, Datei- und Zeilenbeschränkungen
  • Ablehnung von Patches in geschützten Pfaden wie Test-/Fuzz-Harness/Reproducer
  • Adapter für externe Patch-Agent-Befehle
  • Exit-Code, stdout/stderr, Zeit und Gate-Ergebnisse für jeden Befehl bleiben erhalten

Voraussetzungen

  • Python 3.11 oder höher
  • Git für Patch-Validierung
  • Docker für standardmäßige isolierte Ausführung
  • Clang für die Beispielausführung

Es gibt keine Python-Laufzeitabhängigkeiten.

Installation und Tests

python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/python -m unittest discover -s tests -v

Ohne Installation ausführen:

PYTHONPATH=src python3 -m protocol_remediator --help
PYTHONPATH=src python3 -m unittest discover -s tests -v

Das dynamische End-to-End-Suite ist die C/C++-Fixture-Matrix in examples. Es reproduziert tatsächlich CWE-121, CWE-190, CWE-416, CWE-787, CWE-476 mit Clang ASan/UBSan und führt dann alle sechs Gates für Patches aus, die die jeweiligen Invarianten wiederherstellen. Eingaben und Validierungsumfang pro Fixture sind in examples/README.md dokumentiert.

Um nur die reale Matrix ohne Unit-Test-Framework auszuführen:

PYTHONPATH=src python3 examples/run_fixture_matrix.py

Um mehr automatisch generierte C/C++-Varianten zu erstellen und auszuführen:

PYTHONPATH=src python3 examples/run_generated_corpus.py --count 50

Dieser Runner verwendet kein unittest, sondern übergibt jedes generierte Projekt an dieselbe VerificationPipeline. Die Ergebniszusammenfassung landet standardmäßig in artifacts/generated-corpus-summary.json.

Frontend-Konsole

Ein Vite + React + TypeScript-Frontend, das den aktuellen Implementierungsstatus als betriebsfähiges Dashboard anzeigt, befindet sich in frontend. Diese Konsole fasst die Fixture-Matrix, den generierten Corpus, die Hermes-API-Server-Verbindung, die Verifikations-Gates und die Evidence-Safety-Invarianten auf einem Bildschirm zusammen.

cd frontend
npm install
npm run dev

Der Standard-Entwicklungsserver läuft unter http://127.0.0.1:5173. Der Production-Build wird wie folgt erstellt:

cd frontend
npm run build

CLI

Sanitizer-Finding-Erfassung

protocol-remediator ingest-sanitizer \
  --log asan.log \
  --reproducer crash.input \
  --target-name parser \
  --revision 0123456789abcdef \
  --variant asan-x86_64 \
  --output intake/parser-crash

Ausgabe:

intake/parser-crash/finding.json
intake/parser-crash/evidence.json

SARIF-Erfassung

protocol-remediator ingest-sarif \
  --sarif results.sarif \
  --output intake/sarif

SARIF-Export

protocol-remediator export-sarif \
  --finding intake/parser-crash/finding.json \
  --finding intake/another/finding.json \
  --output artifacts/findings.sarif

Modellneutralen Kontext erzeugen

protocol-remediator context \
  --finding intake/parser-crash/finding.json \
  --evidence intake/parser-crash/evidence.json \
  --target-root /path/to/target \
  --output intake/parser-crash/context.json

Vorhandenen Patch validieren

protocol-remediator verify \
  --config /path/to/target/target.toml \
  --finding intake/parser-crash/finding.json \
  --evidence intake/parser-crash/evidence.json \
  --patch candidate.patch \
  --artifacts artifacts

Exit-Code: 0 bei erfolgreicher Verifikation, 1 bei fehlgeschlagener Verifikation, 2 bei Konfigurations- oder Eingabefehlern.

Hermes-Agent-API-Server

Wird der Hermes-API-Server gestartet, kann remediate Patches über eine HTTP-API anstelle eines lokalen Befehls anfordern. Der Standard-Endpoint ist POST /v1/patches, der Finding/Evidence/Context und ein Target-Workspace-Archiv entgegennimmt und einen Unified Diff zurückgibt.

Beispiel-Serverstart:

PYTHONPATH=src python3 -m protocol_remediator.hermes_server \
  --host 127.0.0.1 \
  --port 8765

Nach der Installation kann auch das Console-Script verwendet werden:

hermes-agent-server --host 127.0.0.1 --port 8765

Um einen operativen Backend-Befehl anzuhängen, wird --backend-command pro Argument wiederholt. Die Platzhalter {context}, {workspace} und {patch_output} werden unterstützt.

hermes-agent-server \
  --backend-command my-patch-agent \
  --backend-command --context \
  --backend-command {context} \
  --backend-command --workspace \
  --backend-command {workspace} \
  --backend-command --output \
  --backend-command {patch_output}

In target.toml wird der Hermes-Modus wie folgt angegeben:

[agent]
mode = "hermes"
url = "http://127.0.0.1:8765"
timeout_seconds = 30

Anschließend wird der vorhandene remediate-Befehl wie gewohnt verwendet:

protocol-remediator remediate \
  --config examples/length-prefixed-parser/target.hermes.toml \
  --finding artifacts/hermes-cli-input/finding.json \
  --evidence artifacts/hermes-cli-input/evidence.json \
  --artifacts artifacts/hermes-cli

Für eine End-to-End-Überprüfung während der Entwicklung wird der folgende Runner verwendet, der einen temporären Hermes-Server startet, Patches über den API-Client empfängt und die gesamte Verifikations-Rückkopplungsschleife durchläuft:

PYTHONPATH=src python3 examples/run_hermes_demo.py

Externen Command-Agenten erstellen und validieren

Ohne Hermes kann ein lokaler Befehl direkt aufgerufen werden, indem der Agent-Befehl als String-Array in target.toml angegeben wird:

[agent]
mode = "command"
command = [
  "my-patch-agent",
  "--context",
  "{context}",
  "--workspace",
  "{workspace}",
  "--output",
  "{patch_output}",
]
timeout_seconds = 900

Dann wird der folgende Befehl ausgeführt:

protocol-remediator remediate \
  --config /path/to/target/target.toml \
  --finding intake/parser-crash/finding.json \
  --evidence intake/parser-crash/evidence.json \
  --artifacts artifacts

Der Kern ruft keine bestimmte LLM-API direkt auf. Der Vertrag ist, dass der Hermes-Backend oder der externe Befehl den Kontext liest und einen Unified Diff erzeugt. Die Agentenarbeit wird in einer temporären Kopie des Original-Targets ausgeführt.

Target-Konfiguration

Tool herunterladen