
Plugin per la valutazione delle vulnerabilità di Zabbix
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.

UserParameter standard di zabbix-agent2. La remediation passa attraverso una singola
chiave in whitelist e sudoers ristretti — mai system.run arbitrario.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.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.
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.
Vulners - Hosts, - Bulletins, - Packages, - Statistics.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:

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:

Tutto ha un valore predefinito; fornisci i segreti tramite variabili d'ambiente (queste
sovrascrivono il file YAML). Esempio completo: config.example.yaml.
ztc --help elenca l'insieme completo.
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
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.
| 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 |
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.
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.
Vedi LICENSE.
| 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 |