Voltar às atualizações
New releaseAug 1, 2026

zabbix-threat-control v3.0.0

Plugin de avaliação de vulnerabilidades do Zabbix

Compartilhar

Zabbix Threat Control (ztc)

Transforme o Zabbix que você já opera em um console de gerenciamento de vulnerabilidades.

ztc lê o inventário de software de cada host por meio do zabbix-agent2 padrão (sem agente extra para implantar), audita-o contra o Vulners e envia descobertas pontuadas por host — problemas, dashboards e gráficos CVSS — de volta ao Zabbix. Um único binário estático, instalado com um comando.

CI Release License

O dashboard do Vulners no Zabbix

Por que ztc

  • Sem novo agente, sem RCE. Os hosts reportam o inventário via UserParameters padrão do zabbix-agent2. A remediação passa por uma única chave na lista de permissões e um sudoers restrito — nunca system.run arbitrário.
  • Linux e Windows. Pacotes Linux via audit/linux do Vulners; software do registro do Windows via Smart Audit e KBs instalados via audit/kb (com CVSS por CVE). O Smart Audit é independente da versão do Zabbix.
  • Zabbix 6.0, 7.0, 7.4 e 8.0. Detecta automaticamente a versão da API; sem ramificações por versão para manter do seu lado.
  • Acionável, não apenas uma lista. As descobertas se tornam problemas do Zabbix pontuados por severidade CVSS, filtráveis por host, com gráficos de CVSS mediano e distribuição de pontuações em um dashboard pronto.
  • Um único binário. Instale com um único comando; ele se atualiza sozinho.

Início rápido

No seu servidor Zabbix (ou em qualquer host Linux que alcance o Zabbix + Vulners):

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

O instalador solicita sua chave de API do Vulners e a conexão com o Zabbix, instala um serviço systemd e oferece a criação das entidades do Zabbix (ztc provision --all). Em seguida, vincule o template de coleta aos hosts que deseja auditar — consulte docs/guide.md.

Outras opções (Docker, manual, sem conexão externa, bootstrap via Zabbix): deploy/README.md.

Como funciona

 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 executa o loop em um agendamento; ztc provision cria o template do Zabbix, os hosts de relatório, os triggers e o dashboard.

O que você obtém no Zabbix

  • Hosts de relatório: Vulners - Hosts, - Bulletins, - Packages, - Statistics.
  • Dashboard com uma visão geral de Problemas por severidade, listas de problemas por relatório, uma tendência de Pontuação CVSS mediana e um gráfico de pizza de distribuição de pontuações CVSS.
  • Problemas pontuados por severidade — cada descoberta é acionada como Disaster / High / Average / Warning com base no seu CVSS, para que Problemas por severidade seja significativo.
  • Filtrar por host — cada descoberta carrega uma tag vulners.host. Em Monitoramento → Problemas, filtre por Tags: vulners.host Equals <host> para ver as vulnerabilidades de um host. (Uma descoberta = um par (vulnerabilidade, host).)

Tendência de CVSS mediano e distribuição de pontuações em toda a frota:

Tendência da pontuação CVSS mediana e distribuição de pontuações CVSS

Detalhamento por severidade — contagens reais de Disaster / High / Average / Warning, não uma barra cinza "Não classificado":

Problemas por severidade

Vulnerabilidades de um host via o filtro de tag vulners.host:

Filtrar problemas pela tag vulners.host

Uma única descoberta — pontuada por CVSS, marcada com seu host e com link para vulners.com:

Um problema Vulners pontuado e marcado

Configuração

Tudo tem um padrão; forneça segredos por meio de variáveis de ambiente (elas substituem o arquivo YAML). Exemplo completo: config.example.yaml.

Variável de ambienteFinalidade
VULNERS_API_KEYChave da API do Vulners (obrigatória)
VULNERS_BASE_URLendpoint do Vulners auto-hospedado / via proxy (opcional)
ZABBIX_URLURL do frontend do Zabbix (API JSON-RPC)
ZABBIX_TOKENtoken da API (preferido) …
ZABBIX_USER / ZABBIX_PASSWORD… ou usuário + senha
ZABBIX_SERVER_FQDN / ZABBIX_SERVER_PORTdestino do zabbix-sender
ZTC_SCHEDULEintervalo da varredura do daemon (ex.: 1h)
ZTC_MIN_CVSSdescarta descobertas abaixo desse CVSS antes de criar objetos

ztc --help lista o conjunto completo.

Comandos

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

Remediação

O ztc fix atualiza um pacote vulnerável por meio de uma chave de agente vulners.fix[<pkg>] na lista de permissões, consumida por um worker no host — sem execução arbitrária de comandos. Ele pode ser executado manualmente ou, com scan --daemon --auto-fix, ser acionado por um usuário de confiança que reconhece o problema no Zabbix. Fundamentação: docs/adr/0001-remediation-mechanism.md.

Matriz de suporte

Zabbix6.0 & 7.0 LTS, 7.4, 8.0 (detecção automática)
SO auditadoLinux (deb/rpm/apk/…), Windows (software + KB)
O ztc executa emLinux amd64 / arm64

Migração da versão Python

A implementação original em Python permanece no histórico do git deste repositório (os commits anteriores à reescrita em Go) e nas tags de release anteriores ao Go. Ela compartilha os mesmos nomes no lado do Zabbix (grupo, hosts de relatório, dashboard), mas coleta por meio das chaves padrão do agente em vez de um report.py incluído, divide o template em dois e remove a Action de correção. Passo a passo (mapeamento de configuração, limpeza de objetos, reinstrumentação de hosts, troca de remediação): docs/MIGRATION.md.

Desenvolvimento

go build ./...     # compile
go test ./...      # unit tests (no network)
go vet ./... && gofmt -l .
make build         # -> bin/ztc

Um ambiente de teste com Docker (Zabbix + agente + ztc) está em deploy/docker/README.md. A CI (build/test/lint) é executada a cada push; marcar um commit com v* publica binários e uma imagem GHCR.

Licença

Consulte LICENSE.

Categorias