Comandi Snyk
Comandi CLI di Snyk completi e flussi di lavoro per la scansione della sicurezza tra codice open source, codice sorgente, container e infrastrutture as code.
Installazione
npm (Node.js)
# Installa globalmente
npm install -g snyk
# Installa nel progetto
npm install --save-dev snyk
# Verifica l'installazione
snyk --version
macOS (Homebrew)
# Installa via Homebrew
brew install snyk
# Aggiorna Snyk
brew upgrade snyk
# Verifica l'installazione
snyk --version
Windows (Scoop)
# Installa via Scoop
scoop install snyk
# Verifica l'installazione
snyk --version
Binario Standalone
# Scarica il CLI standalone (Linux/macOS)
curl https://static.snyk.io/cli/latest/snyk-linux -o snyk
chmod +x ./snyk
./snyk --version
# O per macOS
curl https://static.snyk.io/cli/latest/snyk-macos -o snyk
chmod +x ./snyk
Autenticazione
Autenticazione tramite Browser
# Apri il browser per l'autenticazione
snyk auth
# Default: apre il browser e crea il token di autenticazione
snyk auth --token <token>
Metodi di Token API
# Autenticati con token esplicito
snyk auth --token <your-api-token>
# Imposta il token tramite variabile d'ambiente
export SNYK_TOKEN=<your-api-token>
snyk test
# Verifica l'autenticazione corrente
snyk config get api
# Imposta l'organizzazione
snyk config set org=<org-id>
Disconnessione
# Cancella le credenziali memorizzate
snyk logout
# Cancella tutta l'autenticazione
rm ~/.snyk
Scansione Open Source (SCA)
Test di Base
# Scansiona il progetto corrente per vulnerabilità
snyk test
# Scansiona con output minimalista
snyk test --quiet
# Scansiona e mostra informazioni dettagliate
snyk test --verbose
# Scansiona un file specifico
snyk test --file=package.json
# Scansiona con tutti i livelli di vulnerabilità
snyk test --severity-threshold=low
Filtro per Gravità
# Mostra solo vulnerabilità critiche
snyk test --severity-threshold=critical
# Mostra critiche e alte
snyk test --severity-threshold=high
# Mostra critiche, alte e medie
snyk test --severity-threshold=medium
# Mostra tutte (critica, alta, media, bassa)
snyk test --severity-threshold=low
Supporto Linguaggi Multipli
# Scansiona progetti npm/Node.js
snyk test
# Scansiona progetti Python
snyk test --file=requirements.txt
# Scansiona Java (Maven)
snyk test --file=pom.xml
# Scansiona Java (Gradle)
snyk test --file=build.gradle
# Scansiona .NET (NuGet)
snyk test --file=packages.config
# Scansiona Ruby
snyk test --file=Gemfile.lock
# Scansiona PHP/Composer
snyk test --file=composer.lock
# Scansiona Go
snyk test --file=go.mod
Monitoraggio Progetti
# Crea uno snapshot delle vulnerabilità per il monitoraggio
snyk monitor
# Monitora con nome personalizzato
snyk monitor --project-name=my-app
# Monitora organizzazione specifica
snyk monitor --org=<org-id>
# Monitora con tag
snyk monitor --tags=production,critical
Scansione del Codice (SAST)
Scansione di Base del Codice
# Scansiona il codice per vulnerabilità (problemi di sicurezza)
snyk code test
# Scansiona con output minimalista
snyk code test --quiet
# Scansiona con output verboso
snyk code test --verbose
# Scansiona directory specifica
snyk code test --scan-unmanaged
Filtro per Gravità del Codice
# Solo problemi critici
snyk code test --severity-threshold=critical
# Critici e alti
snyk code test --severity-threshold=high
# Tutte le gravità
snyk code test --severity-threshold=low
Scansione Container
Test Immagini
# Scansiona immagine Docker per vulnerabilità
snyk container test <image-name>
# Test con tag
snyk container test myapp:latest
# Test dal registro
snyk container test docker.io/node:16
# Test immagine locale per ID
snyk container test --image=<image-id>
Monitoraggio Container
# Crea uno snapshot delle vulnerabilità del container
snyk container monitor <image-name>
# Monitora con organizzazione
snyk container monitor <image-name> --org=<org-id>
# Monitora immagini multiple
snyk container monitor myapp:v1.0
snyk container monitor myapp:v1.1
Opzioni Avanzate Container
# Mostra tutte le vulnerabilità (incluse non corrette)
snyk container test <image> --show-vulnerable-paths
# Include le vulnerabilità dell'immagine di base
snyk container test <image> --detect-scan-errors
# Test senza caricare su Snyk
snyk container test <image> --skip-unresolved
Scansione Infrastructure as Code (IaC)
Scansione Terraform
# Scansiona file Terraform
snyk iac test
# Scansiona file specifico
snyk iac test main.tf
# Scansiona con filtro di gravità
snyk iac test --severity-threshold=high
# Test con framework
snyk iac test --framework=terraform
# Genera report leggibile per l'uomo
snyk iac test --report
Altri Formati IaC
# Scansiona CloudFormation
snyk iac test --framework=cloudformation template.yaml
# Scansiona manifest Kubernetes
snyk iac test --framework=k8s deployment.yaml
# Scansiona template ARM
snyk iac test --framework=arm
# Scansiona Dockerfile
snyk iac test Dockerfile
# Scansiona Helm chart
snyk iac test --framework=helm chart/
Monitoraggio IaC
# Monitora configurazione IaC
snyk iac describe
# Ottieni informazioni sulla conformità
snyk iac describe --framework=terraform
# Mostra configurazione dettagliata
snyk iac describe --nested
Correzione e Bonifica
Auto-Correggi Vulnerabilità
# Auto-correggi le vulnerabilità
snyk fix
# Dry-run per visualizzare i cambiamenti
snyk fix --dry-run
# Correggi per gravità specifica
snyk fix --severity-threshold=high
# Forza la sovrascrittura delle modifiche esistenti
snyk fix --force
Protezione Dipendenze
# Applica Snyk protect (aggiunge patch di sicurezza alle dipendenze)
snyk protect
# Verifica che la protezione sia applicata
snyk protect --verbose
# Rimuovi protezione
snyk protect --uninstall
Ignorare Vulnerabilità
Ignora Vulnerabilità Specifiche
# Ignora una vulnerabilità in modo interattivo
snyk ignore
# Ignora con motivo e scadenza specifici
snyk ignore --id=<vuln-id> --reason=<reason> --expiry=<date>
# Esempio: ignora per 30 giorni
snyk ignore --id=SNYK-JS-123456 --expiry=2026-04-30
# Imposta ignoramento permanente
snyk ignore --id=SNYK-JS-123456 --permanent
File Politiche
# Crea file politica .snyk
snyk policy --create
# Test con politica
snyk test --policy-path=.snyk
# Visualizza politica
cat .snyk
# Aggiorna politica
snyk ignore --id=SNYK-JS-123456 --reason="False positive"
Generazione SBOM
Software Bill of Materials
# Genera SBOM in formato JSON
snyk sbom
# Genera SBOM per immagine Docker
snyk sbom --format=json <image-name>
# Salva su file
snyk sbom > sbom.json
# Genera formato SPDX
snyk sbom --format=spdx
# Mostra in formato tabella
snyk sbom --format=table
Formati Output
Output JSON
# Test e output come JSON
snyk test --json > results.json
# Pretty-print JSON
snyk test --json-file-output=results.json
# Test del codice come JSON
snyk code test --json
Output SARIF
# Genera formato SARIF (per GitHub Code Scanning)
snyk test --sarif > results.sarif
# SARIF per scansione del codice
snyk code test --sarif > code-results.sarif
# Container SARIF
snyk container test <image> --sarif > container.sarif
Report HTML
# Genera report HTML
snyk test --html > report.html
# Apri nel browser
snyk test --html > report.html && open report.html
Configurazione e Impostazioni
Comandi Config
# Mostra configurazione corrente
snyk config show
# Imposta endpoint API
snyk config set api=https://api.snyk.io
# Imposta organizzazione
snyk config set org=<org-id>
# Ottieni impostazione specifica
snyk config get api
# Annulla la configurazione
snyk config unset org
Variabili d’Ambiente
# Imposta token tramite variabile d'ambiente
export SNYK_TOKEN=<your-token>
# Imposta organizzazione
export SNYK_ORG=<org-id>
# Imposta endpoint API
export SNYK_API=https://api.snyk.io
# Imposta certificato CA personalizzato
export NODE_EXTRA_CA_CERTS=/path/to/ca.crt
# Disabilita verifica SSL (usa con cautela)
export NODE_TLS_REJECT_UNAUTHORIZED=0
File Politica .snyk
# File .snyk per ignorare vulnerabilità
version: v1.25.0
ignore:
SNYK-JS-123456:
- '*':
reason: False positive
expires: 2026-04-30
SNYK-PY-789012:
- '*':
reason: Not applicable to our use case
expires: 2026-06-30
patch:
SNYK-JS-111111:
- '*':
patched: '2024-03-15'
Filtro e Organizzazione
Filtra Vulnerabilità
# Include vulnerabilità non corrette
snyk test --show-vulnerable-paths
# Mostra solo quelle correggibili
snyk test --show-vulnerable-paths=false
# Filtra per progetto
snyk test --project-name=<name>
# Filtra per tag
snyk monitor --tags=team:backend,env:prod
Contesto Organizzazione
# Test all'interno di un'organizzazione specifica
snyk test --org=<org-id>
# Imposta organizzazione predefinita
snyk config set org=<org-id>
# Mostra ID organizzazione
snyk org
# Elenca organizzazioni
snyk org list
Integrazione CI/CD
GitHub Actions
# .github/workflows/snyk.yml
name: Snyk Security Scan
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
snyk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: snyk/actions/setup@master
- env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
run: snyk test --severity-threshold=high
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
GitLab CI
# .gitlab-ci.yml
snyk_scan:
image: snyk/snyk:latest
script:
- snyk auth --token $SNYK_TOKEN
- snyk test --severity-threshold=high --json > results.json
artifacts:
reports:
sast: results.json
Jenkins Pipeline
pipeline {
agent any
environment {
SNYK_TOKEN = credentials('snyk-token')
}
stages {
stage('Snyk Test') {
steps {
sh 'npm install -g snyk'
sh 'snyk auth $SNYK_TOKEN'
sh 'snyk test --severity-threshold=high --json > results.json'
}
}
}
post {
always {
publishHTML target: [
reportDir: '.',
reportFiles: 'results.json',
reportName: 'Snyk Report'
]
}
}
}
Combinazioni di Comandi Utili
Flusso di Lavoro Scansione Completa
# 1. Autenticati
snyk auth
# 2. Test dipendenze open source
snyk test --severity-threshold=high
# 3. Scansiona codice per problemi di sicurezza
snyk code test --severity-threshold=high
# 4. Scansiona container
snyk container test myapp:latest
# 5. Scansiona Infrastructure as Code
snyk iac test terraform/
# 6. Genera SBOM
snyk sbom > sbom.json
# 7. Crea snapshot di monitoraggio
snyk monitor --org=<org-id>
Flusso di Lavoro CI/CD
# Installa dipendenze
npm install
# Autenticati
snyk auth --token $SNYK_TOKEN
# Esegui tutte le scansioni con soglia rigida
snyk test --severity-threshold=critical --fail-on=all
snyk code test --severity-threshold=critical
snyk container test $DOCKER_IMAGE --severity-threshold=critical
# Genera report
snyk test --json > sca-results.json
snyk code test --sarif > code-results.sarif
snyk container test $IMAGE --json > container.json
# Monitora per il tracciamento continuo
snyk monitor --org=$SNYK_ORG --project-name=$CI_PROJECT_NAME
Flusso di Lavoro Correzione e Deploy
# Test dello stato attuale
snyk test
# Auto-correggi ciò che può essere corretto
snyk fix
# Rivedi i cambiamenti
git diff
# Test dopo le correzioni
snyk test
# Commit e push
git commit -am "chore: fix security vulnerabilities"
git push
Debug e Risoluzione Problemi
Modalità Debug
# Output verboso per il debug
snyk test --verbose
# Modalità debug (registrazione molto dettagliata)
snyk test --debug
# Verifica autenticazione
snyk auth --debug
# Verifica pacchetti installati
snyk test --print-deps
Problemi Comuni
# Cancella cache
rm -rf ~/.snyk
# Forza re-autenticazione
snyk logout && snyk auth
# Test senza caricare i risultati
snyk test --skip-unresolved
# Verifica versione CLI di Snyk
snyk --version
# Aggiorna alla versione più recente
npm install -g snyk@latest
Riepilogo Test
# Mostra solo riepilogo
snyk test --quiet
# Conta vulnerabilità
snyk test --json | jq '.vulnerabilities | length'
# Ottieni gravità più alta
snyk test --json | jq '.metadata.severityHeader'
Riferimento Variabili d’Ambiente
| Variabile | Scopo | Esempio |
|---|---|---|
SNYK_TOKEN | Token di autenticazione API | export SNYK_TOKEN=abc123 |
SNYK_ORG | ID organizzazione predefinito | export SNYK_ORG=org-id |
SNYK_API | Endpoint API personalizzato | export SNYK_API=https://custom.snyk.io |
SNYK_INTEGRATION_NAME | Identificatore integrazione in CI/CD | export SNYK_INTEGRATION_NAME=github-actions |
NODE_EXTRA_CA_CERTS | Certificato CA personalizzato | export NODE_EXTRA_CA_CERTS=/path/ca.crt |
HTTP_PROXY | Impostazioni proxy HTTP | export HTTP_PROXY=http://proxy:8080 |
HTTPS_PROXY | Impostazioni proxy HTTPS | export HTTPS_PROXY=https://proxy:8080 |
Migliori Pratiche
Sicurezza
- Autenticati sempre con un token API sicuro (non committare mai i token)
- Usa
--severity-threshold=criticalnel CI/CD di produzione - Aggiorna regolarmente CLI di Snyk all’ultima versione
- Rivedi e approva le auto-correzioni prima di eseguire il merge
- Mantieni i file di politica
.snyksotto controllo di versione - Usa politiche a livello di organizzazione per la coerenza
- Monitora continuamente le vulnerabilità con
snyk monitor
Prestazioni
- Usa il flag
--quietper CI/CD per ridurre l’output - Usa la cache delle dipendenze tra le esecuzioni dove possibile
- Esegui scansioni dei container su tag specifici, non su tutti
- Usa
--skip-unresolvedper saltare i problemi non correggibili - Filtra per gravità per concentrarti su problemi attuabili
- Scansiona solo i percorsi interessati quando possibile
Flusso di Lavoro
- Integra in controlli PR per evitare l’unione di codice non sicuro
- Usa
snyk fixper automatizzare l’applicazione di patch - Rivedi le decisioni di
snyk ignoreprima di committare - Usa
snyk monitorper il tracciamento continuo - Configura avvisi per nuove vulnerabilità
- Documenta eccezioni con motivi e date di scadenza
- Revisione regolare delle vulnerabilità ignorate
Risorse
Documentazione Ufficiale
- Documentazione Snyk
- Riferimento Comandi CLI
- Documentazione Snyk Code
- Scansione Container
- Scansione IaC
- Riferimento API
Comunità e Supporto
Strumenti Correlati
- Docker - Integrazione scansione container
- Kubernetes - Scansione IaC per K8s
- Terraform - Sicurezza Infrastructure as Code
Ultimo aggiornamento: 2026-03-30