Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
vor 27 TagenNoch 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.

root@kitploit:~
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

root@kitploit:~
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/python -m unittest discover -s tests -v

Ohne Installation ausführen:

root@kitploit:~
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:

root@kitploit:~
PYTHONPATH=src python3 examples/run_fixture_matrix.py

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

root@kitploit:~
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.

root@kitploit:~
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:

root@kitploit:~
cd frontend
npm run build

CLI

Sanitizer-Finding-Erfassung

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

Ausgabe:

root@kitploit:~
intake/parser-crash/finding.json
intake/parser-crash/evidence.json

SARIF-Erfassung

root@kitploit:~
protocol-remediator ingest-sarif \
  --sarif results.sarif \
  --output intake/sarif

SARIF-Export

root@kitploit:~
protocol-remediator export-sarif \
  --finding intake/parser-crash/finding.json \
  --finding intake/another/finding.json \
  --output artifacts/findings.sarif

Modellneutralen Kontext erzeugen

root@kitploit:~
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

root@kitploit:~
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:

root@kitploit:~
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:

root@kitploit:~
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.

root@kitploit:~
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:

root@kitploit:~
[agent]
mode = "hermes"
url = "http://127.0.0.1:8765"
timeout_seconds = 30

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

root@kitploit:~
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:

root@kitploit:~
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:

root@kitploit:~
[agent]
mode = "command"
command = [
  "my-patch-agent",
  "--context",
  "{context}",
  "--workspace",
  "{workspace}",
  "--output",
  "{patch_output}",
]
timeout_seconds = 900

Dann wird der folgende Befehl ausgeführt:

root@kitploit:~
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

Ein vollständiges Beispiel befindet sich in target.toml:

root@kitploit:~
[project]
name = "my-protocol"
language = "c++"
root = "."

[executor]
mode = "docker"
image = "my-frozen-toolchain@sha256:..."
timeout_seconds = 300
network = false

[reproduction]
failure_regex = "AddressSanitizer|heap-buffer-overflow"

[verification]
required_gates = [
  "build",
  "reproducer",
  "tests",
  "rescan",
  "refuzz",
  "protocol",
]

[gates]
build = [["cmake", "-S", ".", "-B", "build"], ["cmake", "--build", "build"]]
reproducer = [["./build/fuzz_target", "{reproducer}"]]
tests = [["ctest", "--test-dir", "build", "--output-on-failure"]]
rescan = [["./tools/run-sast", "--fail-on-new"]]
refuzz = [["./tools/refuzz", "--seconds", "60"]]
protocol = [["./tools/protocol-oracle"]]

Jeder Befehl ist ein Argument-Array, kein Shell-String. Unterstützte Platzhalter:

  • {workspace}: vom Executor sichtbarer temporärer Target-Pfad
  • {reproducer}: Pfad des Reproducers im temporären Target nach Prüfsummenvalidierung

build und reproducer sind immer erforderlich. Die Standardrichtlinie macht alle sechs Gates obligatorisch. Falls ein Gate aufgrund der Target-Eigenschaften nicht verfügbar ist, muss es explizit in required_gates angepasst werden; es bleibt im Bericht sichtbar.

Artefakte

Jeder Verifikationslauf erhält Folgendes:

root@kitploit:~
artifacts/run_<id>/
  candidate.patch
  context.json
  evidence.input.json
  finding.input.json
  finding.final.json
  patch-proposal.json
  patch-stats.json
  verification-report.json

verification-report.json enthält die Ausgaben der Basis- und der gepatchten Befehle. Da PoCs oder Logs Geheimnisse enthalten können, müssen separate Zugriffs- und Aufbewahrungsrichtlinien für das Artefakt-Repository gelten.

Sicherheitsgrenzen

  • Standardempfehlung: gepinntes Docker-Image mit network=false.
  • Der lokale Executor erfordert die explizite Deklaration allow_local=true und darf nicht für nicht vertrauenswürdige Targets verwendet werden.
  • Die Datenrichtlinie für ausgehende LLM-Befehle obliegt dem Betreiber; der Kern führt keine automatischen Uploads durch.
  • plausible ist der Zustand, in dem nur Build und Original-Reproducer bestanden wurden.
  • verified ist kein Beweis für Programmäquivalenz und ersetzt keine menschliche Freigabe.
  • Automatisches Mergen ist nicht implementiert.

Nächste Implementierungsprioritäten

  1. Echte ProFuzzBench/AFLNet-Target-Adapter
  2. Protokoll-Nachrichtensequenzen und State-Trace-Collector
  3. Optionaler CodeQL-Adapter und C/C++-Source/Sink-Model-Emitters
  4. ASan/UBSan/MSan- und Architektur-Matrix-Ausführung
  5. Differentielles Protokoll-Orakel basierend auf normalem Korpus
  6. AutoPatchBench-Runner und quantitativer Benchmark-Report

Forschungsergebnisse und Designentscheidungen sind in docs/research dokumentiert.

Tool herunterladen