Torna agli aggiornamenti
New releaseAug 1, 2026

zabbix-threat-control v3.0.0

Plugin per la valutazione delle vulnerabilità di Zabbix

Condividi

Zabbix Threat Control (ztc)

Trasforma lo Zabbix che già utilizzi in una console di vulnerability management.

ztc legge l'inventario software di ogni host tramite lo standard zabbix-agent2 (nessun agente aggiuntivo da distribuire), lo confronta con Vulners e inserisce risultati con punteggio, per host — problemi, dashboard e grafici CVSS — di nuovo in Zabbix. Un singolo binario statico, installato con un comando.

CI Release License

La dashboard Vulners in Zabbix

Perché ztc

  • Nessun nuovo agente, nessuna RCE. Gli host segnalano l'inventario tramite i UserParameter standard di zabbix-agent2. La remediation passa attraverso una singola chiave in whitelist e sudoers ristretti — mai system.run arbitrario.
  • Linux e Windows. Pacchetti Linux tramite Vulners audit/linux; software Windows dal registro di sistema tramite Smart Audit e KB installati tramite audit/kb (con CVSS per CVE). Smart Audit è indipendente dalla versione di Zabbix.
  • Zabbix 6.0, 7.0, 7.4 e 8.0. Rileva automaticamente la versione dell'API; nessun branch per versione da mantenere da parte tua.
  • Azionabile, non solo un elenco. I risultati diventano problemi Zabbix con punteggio basato sulla gravità CVSS, filtrabili per host, con grafici della mediana CVSS e della distribuzione dei punteggi in una dashboard già pronta.
  • Un solo binario. Installazione con un singolo comando; si auto-aggiorna.

Avvio rapido

Sul tuo server Zabbix (o su qualsiasi host Linux che possa raggiungere Zabbix + Vulners):

curl -fsSL https://raw.githubusercontent.com/vulnersCom/zabbix-threat-control/master/deploy/install.sh | sudo sh

L'installer chiede la tua API key Vulners e la connessione Zabbix, installa un servizio systemd e offre di creare le entità Zabbix (ztc provision --all). Poi collega il template di raccolta agli host che vuoi scansionare — vedi docs/guide.md.

Altre opzioni (Docker, manuale, air-gapped, bootstrap-via-Zabbix): deploy/README.md.

Come funziona

 hosts: zabbix-agent2  UserParameter
   Linux   → vulners.os / version / arch / packages
   Windows → vulners.os / version / win.software / win.kb
        │   (interrogati negli item Zabbix)
        ▼
   ztc scan ─► collect (Zabbix API) ─► audit (Vulners) ─► aggregate ─► sender ─► Zabbix
                                                                           │
        problemi (gravità CVSS) · dashboard · grafici · tag vulners.host ◄┘

ztc scan --daemon esegue il ciclo secondo una pianificazione; ztc provision crea il template Zabbix, gli host di report, i trigger e la dashboard.

Cosa ottieni in Zabbix

  • Host di report: Vulners - Hosts, - Bulletins, - Packages, - Statistics.
  • Dashboard con una panoramica dei problemi per gravità, elenchi di problemi per report, un trend della mediana del punteggio CVSS e un grafico a torta della distribuzione dei punteggi CVSS.
  • Problemi con punteggio di gravità — ogni risultato genera un evento Disaster / High / Average / Warning in base al suo CVSS, così Problems by severity è significativo.
  • Filtro per host — ogni risultato porta un tag vulners.host. In Monitoring → Problems filtra con Tags: vulners.host Equals <host> per vedere le vulnerabilità di un singolo host. (Un risultato = una coppia (vulnerabilità, host).)

Trend della mediana CVSS e distribuzione dei punteggi sull'intera flotta:

Trend del punteggio CVSS mediano e distribuzione dei punteggi CVSS

Ripartizione per gravità — conteggi reali di Disaster / High / Average / Warning, non una sola barra grigia "Non classificato":

Problemi per gravità

Le vulnerabilità di un singolo host tramite il filtro sul tag vulners.host:

Filtra i problemi tramite il tag vulners.host

Un singolo risultato — con punteggio CVSS, taggato con il suo host, collegato a vulners.com:

Un problema Vulners con punteggio e tag

Configurazione

Tutto ha un valore predefinito; fornisci i segreti tramite variabili d'ambiente (queste sovrascrivono il file YAML). Esempio completo: config.example.yaml.

EnvScopo
VULNERS_API_KEYAPI key Vulners (richiesta)
VULNERS_BASE_URLendpoint Vulners self-hosted / proxy (opzionale)
ZABBIX_URLURL del frontend Zabbix (API JSON-RPC)
ZABBIX_TOKENtoken API (preferito) …
ZABBIX_USER / ZABBIX_PASSWORD… oppure utente + password
ZABBIX_SERVER_FQDN / ZABBIX_SERVER_PORTdestinazione zabbix-sender
ZTC_SCHEDULEintervallo di scansione del demone (es. 1h)
ZTC_MIN_CVSSscarta i risultati sotto questo CVSS prima di creare gli oggetti

ztc --help elenca l'insieme completo.

Comandi

ztc scan --daemon                 # esegue il ciclo di scansione secondo una pianificazione
ztc scan --once                   # un singolo ciclo
ztc provision --all               # crea/riconcilia template, host di report, dashboard
ztc fix --host H --package P      # ripara un pacchetto (in whitelist, opt-in)
ztc upgrade                       # auto-aggiornamento, poi riesegue `provision --all`
ztc version --check               # stampa la versione e verifica la presenza di aggiornamenti

Remediation

ztc fix aggiorna un pacchetto vulnerabile tramite una chiave agente vulners.fix[<pkg>] in whitelist, gestita da un worker lato host — nessuna esecuzione di comandi arbitrari. Può essere eseguito manualmente o, con scan --daemon --auto-fix, essere attivato da un utente fidato che riconosce il problema in Zabbix. Motivazione: docs/adr/0001-remediation-mechanism.md.

Matrice di supporto

Zabbix6.0 & 7.0 LTS, 7.4, 8.0 (rilevamento automatico)
SO controllatiLinux (deb/rpm/apk/…), Windows (software + KB)
ztc gira suLinux amd64 / arm64

Migrazione dalla versione Python

L'implementazione Python originale rimane nella storia git di questo repository (i commit precedenti alla riscrittura in Go) e nei tag di release pre-Go. Condivide gli stessi nomi lato Zabbix (gruppo, host di report, dashboard), ma raccoglie tramite le chiavi agente standard invece di uno report.py distribuito, divide il template in due e rimuove l'Action di fix. Passo passo (mappatura della configurazione, pulizia degli oggetti, re-istrumentazione degli host, passaggio alla remediation): docs/MIGRATION.md.

Sviluppo

go build ./...     # compilazione
go test ./...      # test unitari (senza rete)
go vet ./... && gofmt -l .
make build         # -> bin/ztc

Un banco di prova Docker (Zabbix + agent + ztc) si trova in deploy/docker/README.md. La CI (build/test/lint) viene eseguita a ogni push; il tagging di un commit v* pubblica i binari e un'immagine GHCR.

Licenza

Vedi LICENSE.

Categorie