inventory_routes.py | Elenca route e metodi (Next.js, Express, Flask, FastAPI, Django, Laravel, Spring, ASP.NET, Rails, Go) e segnala quelle senza auth evidente | Euristico: non prova che un controllo sia corretto o assente |
dynamic_authz_check.py | Prova gli accessi per identità | Solo localhost o host autorizzato; solo letture di default; nessun corpo salvato |
prepass.py | Tutti gli strumenti in ordine fisso e checklist di 14 aree pre-compilata | Stesso risultato tra due giri; i candidati sono ipotesi |
merge_audits.py | Unisce più giri sullo stesso repo e misura quanto concordano | Una causa vista da un solo giro non è meno vera |
run_scanners.py | Dipendenze sul solo lockfile e segreti nella storia Git, classificati senza riportarne il valore | Euristico; se uno scanner non parte lo dichiara |
import_openapi.py | Importa OpenAPI/Swagger e lo confronta con le route nel codice | La specifica dichiara l'intento, non prova la protezione |
iac_check.py | 14 regole su Docker, compose, Kubernetes, Terraform, GitHub Actions | Indizi a pattern, non sostituisce trivy/checkov |
import_scanner.py | Importa npm audit, SARIF, gitleaks, osv, semgrep, trivy, ZAP | Sempre ipotesi, severità mai oltre «media», segreti mai riportati |
verify_findings.py | Revisore: riferimenti inesistenti, severità senza prova, duplicati; brief di smentita per i finding alti | Meccanico: domande e smentita restano a chi legge |
coverage_carry.py | Audit ripetuti: riporta la copertura con contenuto invariato, segna le voci cambiate e i file mai coperti | L'impronta prova che il contenuto non è cambiato, non che l'esame fosse giusto |
redact_check.py | Cerca segreti e dati personali in file e PDF | Non stampa mai il valore; esito pulito non è garanzia |
cookie_scan.py | Cookie, storage e terze parti prima del consenso, browser pulito | URL locali o con conferma del titolare |
draft_ropa.py | Bozza del registro art. 30 e dei fornitori dal codice | Tutto «ipotesi»: ruoli e basi giuridiche le conferma il titolare |
draft_dpia.py | Bozza di scheda DPIA (art. 35) dalla mappa dei trattamenti, con indicatori di necessità | Non è una DPIA e non decide se serve: lo stabilisce il titolare con il DPO |
retention_check.py | Evidenze di cancellazione e confronto con i tempi dichiarati | L'assenza di evidenza non è una violazione |
check_delivery.py | Un solo controllo prima della consegna: schema, smentite dei finding alti, matrice GDPR, redazione (anche i valori dei segreti dell'app), parole vietate, copertura | Meccanico: un esito pulito non prova che l'audit sia corretto; non vede i messaggi di chat |
canonicalize.py | Riporta ai valori canonici italiani stati e severità scritti in inglese | Tocca solo valori enumerati, mai il testo libero |
compare_audits.py, export_findings.py | Retest tra due audit; CSV, SARIF, Markdown | «Risolto» significa assente, non verificato |
build_report_pdf.py | Report PDF: completo, --sintetico, --lang en, --previous, --nis2 | La mappatura NIS2 è indicativa, non una valutazione di conformità |