
zabbix-threat-control v3.0.0
Plugin per la valutazione delle vulnerabilità di Zabbix
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.

Perché ztc
- Nessun nuovo agente, nessuna RCE. Gli host segnalano l'inventario tramite i
UserParameterstandard di zabbix-agent2. La remediation passa attraverso una singola chiave in whitelist e sudoers ristretti — maisystem.runarbitrario. - Linux e Windows. Pacchetti Linux tramite Vulners
audit/linux; software Windows dal registro di sistema tramite Smart Audit e KB installati tramiteaudit/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 conTags: 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:

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

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

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

Configurazione
Tutto ha un valore predefinito; fornisci i segreti tramite variabili d'ambiente (queste
sovrascrivono il file YAML). Esempio completo: config.example.yaml.
| Env | Scopo |
|---|---|
VULNERS_API_KEY | API key Vulners (richiesta) |
VULNERS_BASE_URL | endpoint Vulners self-hosted / proxy (opzionale) |
ZABBIX_URL | URL del frontend Zabbix (API JSON-RPC) |
ZABBIX_TOKEN | token API (preferito) … |
ZABBIX_USER / ZABBIX_PASSWORD | … oppure utente + password |
ZABBIX_SERVER_FQDN / ZABBIX_SERVER_PORT | destinazione zabbix-sender |
ZTC_SCHEDULE | intervallo di scansione del demone (es. 1h) |
ZTC_MIN_CVSS | scarta 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
| Zabbix | 6.0 & 7.0 LTS, 7.4, 8.0 (rilevamento automatico) |
| SO controllati | Linux (deb/rpm/apk/…), Windows (software + KB) |
| ztc gira su | Linux 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.