
Statisches Analyse-CLI, das KI-generierten Code auf Schwachstellen wie SQL-Injection, unsichere Reflexion und hartcodierte Secrets scannt, mit SARIF-Export und CI/CD-Gating.
Ein schnelles, eigenständiges Tool zur statischen Analyse, mit dem sich Sicherheitsrisiken in KI-generiertem Code aufspüren lassen. CanoP läuft lokal und liefert umsetzbare Befunde mit Hinweisen zur Behebung.
fixes.json-Prompts für LLM-gestützte Behebung.pip install canop
Unter macOS und Linux verwende pipx, falls eine globale pip-Installation eingeschränkt ist:
pipx install canop
Überprüfe die Installation:
canop --version
Initialisiere .canop.yml und .canopignore:
canop init
Scanne das aktuelle Verzeichnis oder nur die in Git geänderten Dateien:
canop scan .
canop scan . --changed
Die Anzahl der Befunde ist standardmäßig auf 50 begrenzt. Verwende --all für keine Begrenzung oder --limit N für eine eigene Obergrenze:
canop scan . --all
canop scan . --limit 10
Diese Optionen liefern einen Exit-Code ungleich null zurück, wenn der Schwellenwert nicht erreicht wird:
canop scan . --fail-on HIGH
canop scan . --min-score 85
canop scan . --json-out results.json
canop scan . --sarif results.sarif
canop scan . --prescriptions fixes.json
Die SARIF-Ausgabe kann zu GitHub hochgeladen werden, um Befunde inline anzuzeigen. fixes.json enthält Prompts für die LLM-gestützte Behebung.
Füge .canop.yml im Projektstamm hinzu, um Richtlinien-Schwellenwerte und ignorierte Pfade festzulegen:
min_grade: B
fail_on:
- CRITICAL
- HIGH
ignore:
- "tests/**"
- "docs/**"
max_findings: 0
.canopignore verwendet Muster im Stil von .gitignore, um Dateien und Verzeichnisse auszuschließen.
CanoP lädt Regeln aus canop/rules/*.yml und scannt lokal mit seiner integrierten Pattern-Engine. Secret-Regeln prüfen Kommentare, um Zugangsdaten aufzuspüren, die von KI-Coding-Agenten versehentlich im Frontend-Quellcode hinterlassen wurden; andere Regeln ignorieren reine Kommentarzeilen, um Rauschen zu reduzieren. Falls installiert, ergänzt Semgrep eine AST-basierte Analyse. Es ist optional und wird nicht mit CanoP installiert.
git clone https://github.com/openbreach/CanoP.git canop
cd canop
pip install -e .
python -m unittest discover -s tests -v
Erstelle Distributionsartefakte mit:
pip install -r requirements-dev.txt
python -m build
Regeln verwenden das Semgrep-YAML-Format und liegen in canop/rules/*.yml. Richtlinien findest du in CONTRIBUTING.md.
Für Fehler und Funktionswünsche öffne ein GitHub-Issue oder schreibe eine E-Mail an [email protected].
Dieses Projekt ist unter der MIT-Lizenz lizenziert.