
CLI di analisi statica che scansiona il codice generato dall'IA alla ricerca di vulnerabilità come SQL injection, reflection non sicura e segreti hardcoded, con esportazione SARIF e gating CI/CD.
Un tool di analisi statica veloce e autonomo per individuare rischi di sicurezza nel codice generato dall'IA. CanoP viene eseguito localmente e produce risultati concreti con indicazioni per la correzione.
fixes.json per la correzione assistita da LLM.pip install canop
Su macOS e Linux, usa pipx se l'installazione globale tramite pip è limitata:
pipx install canop
Verifica l'installazione:
canop --version
Inizializza .canop.yml e .canopignore:
canop init
Analizza la directory corrente, o solo i file modificati in Git:
canop scan .
canop scan . --changed
Per impostazione predefinita i risultati sono limitati a 50. Usa --all per nessun limite o --limit N per un limite personalizzato:
canop scan . --all
canop scan . --limit 10
Queste opzioni restituiscono un codice di uscita diverso da zero quando la soglia non viene raggiunta:
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
L'output SARIF può essere caricato su GitHub per ottenere i risultati inline. fixes.json contiene i prompt per la correzione assistita da LLM.
Aggiungi .canop.yml alla radice del progetto per definire le soglie della policy e i percorsi ignorati:
min_grade: B
fail_on:
- CRITICAL
- HIGH
ignore:
- "tests/**"
- "docs/**"
max_findings: 0
.canopignore utilizza pattern in stile .gitignore per escludere file e directory.
CanoP carica le regole da canop/rules/*.yml ed esegue l'analisi localmente con il suo motore di pattern integrato. Le regole sui segreti ispezionano i commenti per individuare credenziali lasciate accidentalmente nel codice frontend dagli agenti di coding IA; le altre regole ignorano le righe composte solo da commenti per ridurre il rumore. Se installato, Semgrep aggiunge l'analisi basata su AST. È opzionale e non viene installato con CanoP.
git clone https://github.com/openbreach/CanoP.git canop
cd canop
pip install -e .
python -m unittest discover -s tests -v
Crea gli artefatti di distribuzione con:
pip install -r requirements-dev.txt
python -m build
Le regole utilizzano il formato YAML di Semgrep e si trovano in canop/rules/*.yml. Consulta CONTRIBUTING.md per le linee guida.
Per bug e richieste di funzionalità, apri una issue su GitHub o invia un'email a [email protected].
Questo progetto è distribuito con la Licenza MIT.