
zabbix-threat-control v3.0.0
Zabbix भेद्यता आकलन प्लगइन
Zabbix Threat Control (ztc)
अपने पहले से चल रहे Zabbix को vulnerability-management कंसोल में बदलें।
ztc स्टॉक zabbix-agent2 के माध्यम से प्रत्येक होस्ट की सॉफ़्टवेयर इन्वेंट्री पढ़ता है (कोई अतिरिक्त एजेंट deploy करने की आवश्यकता नहीं), उसे Vulners के विरुद्ध ऑडिट करता है, और स्कोर किए गए, प्रति-होस्ट findings — problems, dashboards और CVSS graphs — को Zabbix में वापस भेजता है। एक स्टैटिक बाइनरी, एक ही कमांड से इंस्टॉल होती है।

Why ztc
- कोई नया एजेंट नहीं, कोई RCE नहीं। होस्ट मानक zabbix-agent2
UserParameters के माध्यम से इन्वेंट्री रिपोर्ट करते हैं। Remediation एक whitelisted key और संकीर्ण sudoers से होकर जाता है — कभी भी मनमानाsystem.runनहीं। - Linux और Windows। Linux पैकेज Vulners
audit/linuxके माध्यम से; Windows रजिस्ट्री सॉफ़्टवेयर Smart Audit के माध्यम से और इंस्टॉल किए गए KBsaudit/kbके माध्यम से (प्रति-CVE CVSS के साथ)। Smart Audit Zabbix संस्करण से स्वतंत्र है। - Zabbix 6.0, 7.0, 7.4 और 8.0। API संस्करण का स्वतः पता लगाता है; आपकी ओर से बनाए रखने के लिए कोई प्रति-संस्करण branches नहीं।
- सिर्फ़ एक सूची नहीं, बल्कि actionable। Findings Zabbix problems बन जाती हैं जो CVSS severity द्वारा स्कोर की जाती हैं, होस्ट द्वारा फ़िल्टर करने योग्य, तैयार डैशबोर्ड पर median-CVSS और score-distribution graphs के साथ।
- एक बाइनरी। एक ही कमांड से इंस्टॉल करें; यह self-updates है।
Quick start
अपने Zabbix सर्वर (या कोई भी Linux होस्ट जो Zabbix + Vulners तक पहुँच सकता है) पर:
curl -fsSL https://raw.githubusercontent.com/vulnersCom/zabbix-threat-control/master/deploy/install.sh | sudo sh
इंस्टॉलर आपकी Vulners API key और Zabbix कनेक्शन के बारे में पूछता है, एक systemd service इंस्टॉल करता है, और Zabbix entities (ztc provision --all) बनाने का विकल्प देता है। फिर collection template को उन होस्ट्स से लिंक करें जिन्हें आप स्कैन करवाना चाहते हैं — docs/guide.md देखें।
अन्य विकल्प (Docker, manual, air-gapped, bootstrap-via-Zabbix): deploy/README.md।
How it works
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 लूप को एक शेड्यूल पर चलाता है; ztc provision Zabbix template, report hosts, triggers और dashboard बनाता है।
What you get in Zabbix
- Report hosts:
Vulners - Hosts,- Bulletins,- Packages,- Statistics। - Dashboard जिसमें Problems-by-severity अवलोकन, प्रति-report समस्या सूचियाँ, Median CVSS Score ट्रेंड और CVSS score distribution पाई चार्ट है।
- Severity-scored problems — प्रत्येक finding अपने CVSS के आधार पर Disaster / High / Average / Warning पर सक्रिय होती है, जिससे Problems by severity सार्थक होता है।
- होस्ट द्वारा फ़िल्टर करें — हर finding में
vulners.hostटैग होता है। Monitoring → Problems मेंTags: vulners.host Equals <host>फ़िल्टर करें ताकि एक होस्ट की vulnerabilities देखी जा सकें। (एक finding = एक (vulnerability, host) जोड़ी।)
पूरे fleet में Median CVSS trend और score distribution:

Severity breakdown — वास्तविक Disaster / High / Average / Warning गिनती, न कि कोई grey "Not classified" बार:

एक होस्ट की vulnerabilities vulners.host टैग फ़िल्टर के माध्यम से:

एक single finding — CVSS द्वारा स्कोर की गई, अपने होस्ट के साथ टैग की गई, vulners.com से लिंक:

Configuration
हर चीज़ का एक डिफ़ॉल्ट होता है; secrets को environment variables के माध्यम से दें (वे YAML फ़ाइल को override करते हैं)। पूरा उदाहरण: config.example.yaml।
| Env | उद्देश्य |
|---|---|
VULNERS_API_KEY | Vulners API key (आवश्यक) |
VULNERS_BASE_URL | self-hosted / proxy Vulners endpoint (वैकल्पिक) |
ZABBIX_URL | Zabbix frontend URL (JSON-RPC API) |
ZABBIX_TOKEN | API token (पसंदीदा) … |
ZABBIX_USER / ZABBIX_PASSWORD | … या उपयोगकर्ता + पासवर्ड |
ZABBIX_SERVER_FQDN / ZABBIX_SERVER_PORT | zabbix-sender लक्ष्य |
ZTC_SCHEDULE | daemon स्कैन अंतराल (जैसे 1h) |
ZTC_MIN_CVSS | objects बनाने से पहले इस CVSS से नीचे के findings हटाएँ |
ztc --help पूरी सूची दिखाता है।
Commands
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
Remediation
ztc fix एक whitelisted vulners.fix[<pkg>] agent key के माध्यम से एक vulnerable package को अपग्रेड करता है, जिसे host-side worker द्वारा drain किया जाता है — कोई मनमाना कमांड निष्पादन नहीं। इसे मैन्युअल रूप से चलाया जा सकता है या, scan --daemon --auto-fix के साथ, Zabbix में problem को acknowledge करने वाले किसी विश्वसनीय उपयोगकर्ता द्वारा संचालित किया जा सकता है। तर्क: docs/adr/0001-remediation-mechanism.md।
Support matrix
| Zabbix | 6.0 & 7.0 LTS, 7.4, 8.0 (auto-detected) |
| ऑडिट किए गए OS | Linux (deb/rpm/apk/…), Windows (software + KB) |
| ztc चलता है | Linux amd64 / arm64 |
Migrating from the Python version
मूल Python implementation इस रिपॉज़िटरी की git history (Go rewrite से पहले के commits) और pre-Go release tags में बनी हुई है। यह समान Zabbix-side नाम (group, report hosts, dashboard) साझा करती है, लेकिन ship किए गए report.py के बजाय स्टॉक agent keys के माध्यम से collect करती है, template को दो भागों में विभाजित करती है, और fix Action को हटा देती है। चरण-दर-चरण (config mapping, object cleanup, host re-instrumentation, remediation switch): docs/MIGRATION.md।
Development
go build ./... # compile
go test ./... # unit tests (no network)
go vet ./... && gofmt -l .
make build # -> bin/ztc
एक Docker test stand (Zabbix + agent + ztc) deploy/docker/README.md में है। CI (build/test/lint) हर push पर चलता है; v* commit को tag करने पर binaries और एक GHCR image प्रकाशित होते हैं।
License
LICENSE देखें।