L'Arsenale DevSecOps: Da Zero a Eroe
Diciamolo chiaramente: eseguire trivy image non è DevSecOps. È solo generazione di rumore.
La vera ingegneria della sicurezza riguarda il rapporto segnale-rumore. Si tratta di costruire una pipeline che i tuoi sviluppatori rispettano, non una che cercano di aggirare. Questa guida fornisce le configurazioni “di livello produttivo” per 17 strumenti standard del settore per fermare le vulnerabilità senza fermare il business.
Fase 1: Pre-Commit & Locale (Shift Left o Vai a Casa)
Individuare i problemi in CI è già troppo tardi. Hai appena sprecato crediti di calcolo e il tempo di cambio di contesto di uno sviluppatore. Individua il problema sul loro laptop.
1. Gitleaks (Il Custode dei Segreti)
Non essere l’azienda che perde le chiavi AWS su GitHub.
La maggior parte delle persone esegue Gitleaks alla cieca. I professionisti usano Baselines.
--baseline-path: Il biglietto d’oro. Esegui una scansione fresca, salva l’output. Ora Gitleaks avvisa SOLO sui nuovi segreti.--redact: Maschera i segreti scoperti nei log di output (percentuale 0-100). Mai doppia perdita.--enable-rule: Concentrati su tipi specifici di segreti (ad esempio, solo chiavi AWS) tramite ID.--follow-symlinks: Non lasciare che i segreti si nascondano dietro i symlink.--ignore-gitleaks-allow: Non consentire l’uso di commenti “skip” inline. Applica le regole.--max-target-megabytes: Evita di scansionare enormi blob binari.
2. Trufflehog (Il Verificatore)
Trovare una stringa che sembra una chiave è una cosa. Verificare se funziona è un’altra.
Trufflehog si distingue per verificare le credenziali con il provider.
--no-verification: Modalità più veloce. Salta il “controllo dal vivo” se desideri solo un’analisi statica.--results: Filtra l’output perverified(il vero pericolo) ounknown.--filter-entropy: Trova stringhe ad alta entropia (probabilmente password) anche senza una corrispondenza regex. Inizia con 3.0.--detector-timeout: Limita il tempo di esecuzione per rilevatore per prevenire blocchi CI.--archive-max-depth: Non rimanere bloccato in zip-bomb annidate.
3. Opengrep (Analisi Statica Veloce)
Grep è morto. Lunga vita alla ricerca strutturale.
Motore compatibile con Semgrep per trovare bug utilizzando modelli di codice, non solo stringhe.
--baseline-commit: Cruciale. Scansiona solo il codice modificato da un commit specifico (Scansione Delta).--config: Carica regole personalizzate da limiti YAML o dal registro.--dataflow-traces: Mostra il percorso completo di come i dati si muovono dalla sorgente al sink.--exclude-minified-files: Salta.min.jse altri file densi, non leggibili dall’uomo.--strict: Fallisce la build se la configurazione è invalida o si verificano errori di livello WARN.
4. Bandit (Sicurezza Python)
Lo standard per l’analisi AST di Python.
-t/--tests: Esegui SOLO ID di test specifici (lista bianca).-s/--skips: Salta ID di test specifici (lista nera).--severity-level: Mostra solo risultati >=low,mediumohigh.--confidence-level: Filtra “congetture”—mostra solo risultati ad alta fiducia.--ignore-nosec: Vedi cosa gli sviluppatori stanno cercando di bypassare usando# nosec.”
5. Dustilock (Confusione delle Dipendenze)
Impedisci a un attaccante di iniettare un pacchetto privato dannoso.
-a: Solo audit. Verifica se sei vulnerabile al dirottamento del nome del pacchetto senza fermare la pipeline.
6. Hadolint (Intelligenza Docker)
Il tuo Dockerfile fa schifo. Hadolint sa perché.
--trusted-registry: Sicurezza della catena di approvvigionamento. Consenti solo immagini dainternal.ecr.aws.--strict-labels: Imporre standard di metadati (ad es.,maintainer,cost-center).--ignore: Silenzia le regole che non si applicano alla tua build.--error/--warning: Rimappa le severità delle regole per adattarle alla tua politica.--require-label: Imporre formati specifici di etichette (Regex).
7. TFLint (Logica Terraform)
terraform validate è un controllo sintattico. TFLint è un controllo logico.
--enable-plugin: Carica regole specifiche del provider (ad es., AWS, Azure) per verificare le specifiche API.--minimum-failure-severity: Controlla la soglia di interruzione della build (Errore, Avviso, Notifica).--call-module-type: Scansiona moduliall,local, onone.--var-file: Inietta variabili per valutare accuratamente la logica condizionale.
Fase 2: I Guardiani del CI (Fidati, ma Verifica)
Questa è la sala operativa. Analisi approfondita durante il processo di build.
8. Trivy (Il Pesante)
Il coltellino svizzero.
--ignore-unfixed: Obbligatorio. Se non c’è una patch, non interrompere la build. Monitoralo.--ignore-status: Filtra le vulnerabilità con stati specifici.--pkg-types: Concentrati su pacchettioso dipendenzelibrary.--offline-scan: Esegui in ambienti isolati dalla rete.--include-dev-deps: Non ignoraredevDependencies—possono comunque compromettere l’ambiente di build.--list-all-pkgs: Output completo. Essenziale per generare un SBOM completo.
9. Syft (Il Generatore di SBOM)
Non puoi proteggere ciò che non sai di avere.
--enrich: Aggiungi metadati online per un contesto d’uso più ricco (Golang, Java, ecc.).-s/--scope: Scansiona tutti i livelli (all-layers) o solo l’immagine finale (squashed).--select-catalogers: Target specifici gestori di pacchetti (npm, pip, apk).--platform: Target specifiche architetture (es.arm64).
10. Grype (Lo Scanner di SBOM)
Prende il testimone da Syft.
-f/--fail-on: Interrompi la build se la gravità è >=medium,high, ecc.--only-fixed: Riporta solo le vulnerabilità che sono azionabili.--by-cve: Organizza l’output per ID CVE per il tracciamento.--ignore-states: Ignora stati generici “wontfix” o “not-affected”.
11. Checkov (Governance IaC)
Previeni le configurazioni errate del cloud prima che ti costino denaro.
-s/--soft-fail: Avvisa ma non interrompere. Ideale per la “modalità osservazione.”--check/--skip-check: lista bianca o lista nera di controlli specifici (CKV_AWS_1).--skip-framework: Ignora interi framework (ad esempio, scansiona Terraform ma salta CloudFormation).--enable-secret-scan-all-files: Estendi la scansione dei segreti oltre i file di configurazione standard.--block-list-secret-scan: Escludi file specifici dallo scanner di segreti.
12. KICS (Keeping IaC Secure)
L’alternativa per una copertura ampia di IaC.
--exclude-queries: Riduci il rumore filtrando ID di query specifici.--exclude-categories: Filtra i risultati per dominio di sicurezza.--fail-on: Definisci quali livelli di gravità restituiscono un codice di uscita diverso da zero.--minimal-ui: Output CLI semplificato per log più puliti.--disable-secrets: Disattiva la scansione interna dei segreti (usa Gitleaks invece).
13. Terrascan (Policy-as-Code)
Specializzato per l’applicazione di politiche multi-cloud.
-i/--iac-type: Ottimizza specificando la piattaforma (k8s, helm, terraform).-t/--policy-type: Filtra le politiche per provider (aws, azure, gcp).--severity: Definisci la gravità minima da segnalare.--non-recursive: Scansiona solo la directory corrente.
14. OWASP Dependency-Check (Legacy & Compliance)
Il peso massimo per Java e .NET SCA.
--failOnCVSS: Interrompi la build se una qualsiasi libreria supera un punteggio CVSS (ad es., 7.0).--suppression: Utilizza un file XML per “silenziare” vulnerabilità note sicure (VEX-lite).--enableExperimental: Usa nuovi analizzatori per linguaggi meno comuni.
15. DevSkim (Igiene Poliglotta)
Controlli IDE e CI centrati sullo sviluppatore.
--rule-ids: Limita l’analisi a regole specifiche.--ignore-globs: Usa modelli glob standard per saltare file rumorosi.--skip-git-ignored-files: Sincronizza automaticamente con.gitignore.--skip-excerpts: Mantieni i report piccoli rimuovendo i campioni di codice.
Fase 3: Runtime & Artifacts (L’Ultima Linea)
Scansione dell’artefatto finale o dell’ambiente live.
16. Clamscan (Difesa Malware)
Perché a volte le persone caricano virus nel tuo bucket S3.
--exclude/--exclude-dir: Salta modelli di file/directory per risparmiare tempo.--detect-pua: Cerca “Applicazioni Potenzialmente Indesiderate” (adware, miner).--detect-structured: Scansiona per modelli di dati sensibili come Carte di Credito/SSN.--scan-pdf/--scan-html: Abilita l’ispezione approfondita per tipi di documenti.--cross-fs: Consenti la scansione su diversi filesystem (usare con cautela).
17. Nuclei (Il Coltello dell’Hacker)
Scansione templata che sembra illegale.
-t/--templates: Esegui file o directory di modelli specifici.-tags: Scansioni mirate basate sulla tecnologia (ad es.,wordpress,cve).-s/--severity: Filtra i modelli per livello di impatto.-fr/--follow-redirects: Segui i reindirizzamenti HTTP 301/302 per trovare il payload.-passive: Scansiona osservando intestazioni/risposte esistenti senza inviare nuovi “attacchi”.-etags fuzz: Escludi i modelli di fuzzing in produzione.
Sommario: La Pipeline “Perfetta”
- Locale:
pre-commitesegue Gitleaks (baseline), Trufflehog (verificato) e Hadolint. - Build: Trivy scansiona le dipendenze (
--ignore-unfixed). Syft genera SBOM. Dependency-Check per la conformità. - Test: Checkov e KICS scansionano il piano Terraform. Opengrep controlla i modelli di codice.
- Artifact: Clamscan controlla il binario finale/asset.
- Deploy: Nuclei verifica la sanità dell’endpoint attivo.
Affina i tuoi strumenti, o saranno loro ad affinare te.
Plexicus ha reso tutto più facile
Con un’unica dashboard unificata e accesso a tutte le nostre integrazioni di strumenti, ci vorranno solo pochi clic Plexicus


