
Plugin de evaluación de vulnerabilidades de Zabbix
Convierte el Zabbix que ya ejecutas en una consola de gestión de vulnerabilidades.
ztc lee el inventario de software de cada host a través del zabbix-agent2 de serie (sin desplegar agentes adicionales), lo audita contra Vulners y envía de vuelta a Zabbix hallazgos puntuados por host — problemas, paneles y gráficos CVSS. Un único binario estático, instalado con un solo comando.

UserParameters estándar de zabbix-agent2. La remediación pasa por una única clave en lista blanca + sudoers restringidos — nunca system.run arbitrario.audit/linux; software del registro de Windows vía Smart Audit y KBs instalados vía audit/kb (con CVSS por CVE). Smart Audit es independiente de la versión de Zabbix.En tu servidor Zabbix (o cualquier host Linux que pueda alcanzar Zabbix + Vulners):
curl -fsSL https://raw.githubusercontent.com/vulnersCom/zabbix-threat-control/master/deploy/install.sh | sudo sh
El instalador te pide tu clave API de Vulners y la conexión a Zabbix, instala un servicio systemd y ofrece crear las entidades de Zabbix (ztc provision --all). Luego vincula la plantilla de recopilación a los hosts que quieras escanear — consulta docs/guide.md.
Otras opciones (Docker, manual, sin conexión a internet, arranque vía Zabbix): deploy/README.md.
hosts: zabbix-agent2 UserParameter
Linux → vulners.os / version / arch / packages
Windows → vulners.os / version / win.software / win.kb
│ (polled into Zabbix items)
▼
ztc scan ─► collect (Zabbix API) ─► audit (Vulners) ─► aggregate ─► sender ─► Zabbix
│
problems (CVSS severity) · dashboard · graphs · vulners.host tags ◄┘
ztc scan --daemon ejecuta el bucle según una programación; ztc provision crea la plantilla de Zabbix, los hosts de informe, los disparadores y el panel.
Vulners - Hosts, - Bulletins, - Packages, - Statistics.vulners.host. En el filtro de Monitorización → Problemas usa Tags: vulners.host Equals <host> para ver las vulnerabilidades de un host. (Un hallazgo = un par (vulnerabilidad, host).)Tendencia de CVSS mediano y distribución de puntuaciones en todo el parque:

Desglose por severidad — recuentos reales de Desastre / Alta / Media / Aviso, no una barra gris "Sin clasificar":

Vulnerabilidades de un host mediante el filtro por etiqueta vulners.host:

Un hallazgo individual — puntuado por CVSS, etiquetado con su host y enlazado a vulners.com:

Todo tiene un valor predeterminado; proporciona los secretos mediante variables de entorno (estas anulan el archivo YAML). Ejemplo completo: config.example.yaml.
ztc --help enumera el conjunto completo.
ztc scan --daemon # run the scan loop on a schedule
ztc scan --once # a single cycle
ztc provision --all # create/reconcile templates, report hosts, dashboard
ztc fix --host H --package P # remediate a package (whitelisted, opt-in)
ztc upgrade # self-update, then re-run `provision --all`
ztc version --check # print version and check for updates
ztc fix actualiza un paquete vulnerable mediante una clave de agente vulners.fix[<pkg>] en lista blanca, gestionada por un worker en el host — sin ejecución arbitraria de comandos. Puede ejecutarse manualmente o, con scan --daemon --auto-fix, ser impulsada por un usuario de confianza que reconozca el problema en Zabbix. Justificación: docs/adr/0001-remediation-mechanism.md.
| Zabbix | 6.0 y 7.0 LTS, 7.4, 8.0 (detección automática) |
| SO auditado | Linux (deb/rpm/apk/…), Windows (software + KB) |
| ztc se ejecuta en | Linux amd64 / arm64 |
La implementación original en Python permanece en el historial de git de este repositorio (los commits anteriores a la reescritura en Go) y en las etiquetas de versión previas a Go. Comparte los mismos nombres en el lado de Zabbix (grupo, hosts de informe, panel), pero recopila mediante claves de agente estándar en lugar de un report.py incluido, divide la plantilla en dos y elimina la Action de corrección. Paso a paso (mapeo de configuración, limpieza de objetos, reinstrumentación de hosts, cambio de remediación): docs/MIGRATION.md.
go build ./... # compile
go test ./... # unit tests (no network)
go vet ./... && gofmt -l .
make build # -> bin/ztc
Un banco de pruebas Docker (Zabbix + agente + ztc) está en deploy/docker/README.md. La CI (build/test/lint) se ejecuta en cada push; etiquetar un commit v* publica binarios y una imagen GHCR.
Consulta LICENSE.
| Variable | Propósito |
|---|
VULNERS_API_KEY | Clave API de Vulners (obligatoria) |
VULNERS_BASE_URL | endpoint de Vulners autoalojado / proxy (opcional) |
ZABBIX_URL | URL del frontend de Zabbix (API JSON-RPC) |
ZABBIX_TOKEN | token de API (preferido) … |
ZABBIX_USER / ZABBIX_PASSWORD | … o usuario + contraseña |
ZABBIX_SERVER_FQDN / ZABBIX_SERVER_PORT | destino de zabbix-sender |
ZTC_SCHEDULE | intervalo de escaneo del daemon (p. ej. 1h) |
ZTC_MIN_CVSS | descartar hallazgos por debajo de este CVSS antes de crear objetos |