
Zabbix भेद्यता आकलन प्लगइन
# Zabbix Threat Control (ztc)
**अपने पहले से चल रहे Zabbix को vulnerability-management कंसोल में बदलें।**
`ztc` स्टॉक **zabbix-agent2** के माध्यम से प्रत्येक होस्ट की सॉफ़्टवेयर इन्वेंट्री पढ़ता है (कोई अतिरिक्त एजेंट deploy करने की आवश्यकता नहीं), उसे [Vulners](https://vulners.com) के विरुद्ध ऑडिट करता है, और **स्कोर किए गए, प्रति-होस्ट findings** — problems, dashboards और CVSS graphs — को Zabbix में वापस भेजता है। एक स्टैटिक बाइनरी, एक ही कमांड से इंस्टॉल होती है।
[](https://github.com/vulnersCom/zabbix-threat-control/actions/workflows/ci.yml)
[](https://github.com/vulnersCom/zabbix-threat-control/releases)
[](LICENSE)

## Why ztc
- **कोई नया एजेंट नहीं, कोई RCE नहीं।** होस्ट मानक zabbix-agent2 `UserParameter`s के माध्यम से इन्वेंट्री रिपोर्ट करते हैं। Remediation एक whitelisted key और संकीर्ण sudoers से होकर जाता है — कभी भी मनमाना `system.run` नहीं।
- **Linux _और_ Windows।** Linux पैकेज Vulners `audit/linux` के माध्यम से; Windows रजिस्ट्री सॉफ़्टवेयर **Smart Audit** के माध्यम से और इंस्टॉल किए गए KBs `audit/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 तक पहुँच सकता है) पर:
```sh
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`](https://github.com/vulnerscom/zabbix-threat-control/blob/master/docs/guide.md) देखें।
अन्य विकल्प (Docker, manual, air-gapped, bootstrap-via-Zabbix): [`deploy/README.md`](https://github.com/vulnerscom/zabbix-threat-control/blob/master/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`](https://github.com/vulnerscom/zabbix-threat-control/blob/master/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
```sh
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`](https://github.com/vulnerscom/zabbix-threat-control/blob/master/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`](https://github.com/vulnerscom/zabbix-threat-control/blob/master/docs/MIGRATION.md)**।
## Development
```sh
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`](https://github.com/vulnerscom/zabbix-threat-control/blob/master/deploy/docker/README.md) में है। CI (build/test/lint) हर push पर चलता है; `v*` commit को tag करने पर binaries और एक GHCR image प्रकाशित होते हैं।
## License
[`LICENSE`](https://github.com/vulnerscom/zabbix-threat-control/blob/master/LICENSE) देखें।