アップデート一覧に戻る
New releaseAug 1, 2026

zabbix-threat-control v3.0.0

Zabbix 脆弱性評価プラグイン

共有

Zabbix 脅威管理 (ztc)

既に運用中の Zabbix を脆弱性管理コンソールに変えます。

ztc は、標準の zabbix-agent2 を通じて各ホストのソフトウェアインベントリを読み取り(追加エージェントは不要)、Vulners と照合して、スコア付きのホスト別検出結果(問題、ダッシュボード、CVSS グラフ)を Zabbix に書き戻します。静的バイナリ1つで、1コマンドでインストールできます。

CI Release License

Zabbix の Vulners ダッシュボード

ztc の特長

  • 新しいエージェント不要、RCE なし。 ホストは標準の zabbix-agent2 UserParameter でインベントリを報告します。修復は単一のホワイトリスト化されたキーと限定された sudoers 経由でのみ行われ、任意の system.run は使われません。
  • Linux Windows。 Linux パッケージは Vulners audit/linux、Windows のレジストリソフトウェアは Smart Audit、インストール済み KB は audit/kb(CVE ごとの CVSS 付き)で監査します。Smart Audit は Zabbix のバージョンに依存しません。
  • Zabbix 6.0、7.0、7.4、8.0。 API バージョンを自動検出するため、利用側でバージョンごとのブランチを管理する必要はありません。
  • 単なるリストではなく、アクションにつながる。 検出結果は CVSS 深刻度でスコアリングされた Zabbix 問題になり、ホスト別にフィルタリングでき、既製ダッシュボードに 中央値 CVSS とスコア分布グラフ が表示されます。
  • バイナリ1つ。 1コマンドでインストールでき、自己更新します。

クイックスタート

Zabbix サーバー(または Zabbix + Vulners に到達できる任意の Linux ホスト)で:

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

インストーラは Vulners API キーと Zabbix 接続情報を尋ね、systemd サービスをインストールし、Zabbix エンティティの作成(ztc provision --all)を提案します。その後、スキャンしたいホストに収集テンプレートをリンクしてください。詳細は docs/guide.md を参照してください。

その他のオプション(Docker、手動、エアギャップ、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 はスケジュールに従ってループを実行し、ztc provision は Zabbix テンプレート、レポートホスト、トリガー、ダッシュボードを作成します。

Zabbix で得られるもの

  • レポートホスト: Vulners - Hosts- Bulletins- Packages- Statistics
  • ダッシュボード: 深刻度別の問題の概要、レポートごとの問題リスト、中央値 CVSS スコアのトレンド、CVSS スコア分布の円グラフ。
  • 深刻度でスコアリングされた問題 — 各検出結果は CVSS に基づいて Disaster / High / Average / Warning のいずれかで発報されるため、深刻度別の問題 が意味を持ちます。
  • ホスト別フィルタ — すべての検出結果には vulners.host タグが付与されます。Monitoring → ProblemsTags: vulners.host Equals <host> をフィルタすると、1つのホストの脆弱性を確認できます。(1つの検出結果 = 1つの(脆弱性, ホスト)ペア。)

フリート全体の中央値 CVSS トレンドとスコア分布:

中央値 CVSS スコアのトレンドと CVSS スコア分布

深刻度の内訳 — 実際の Disaster / High / Average / Warning の件数が表示され、灰色の「Not classified」バー1本にはなりません:

深刻度別の問題

1つのホストの脆弱性vulners.host タグフィルタを使用:

vulners.host タグで問題をフィルタ

単一の検出結果 — CVSS でスコアリングされ、ホストタグが付き、vulners.com にリンクされています:

スコアリング・タグ付けされた Vulners の問題

設定

すべての項目にデフォルト値があります。シークレットは環境変数で指定できます(YAML ファイルより優先されます)。完全な例: config.example.yaml

Env目的
VULNERS_API_KEYVulners API キー(必須)
VULNERS_BASE_URLセルフホスト / プロキシの Vulners エンドポイント(オプション)
ZABBIX_URLZabbix フロントエンド URL(JSON-RPC API)
ZABBIX_TOKENAPI トークン(推奨)…
ZABBIX_USER / ZABBIX_PASSWORD…またはユーザー + パスワード
ZABBIX_SERVER_FQDN / ZABBIX_SERVER_PORTzabbix-sender の接続先
ZTC_SCHEDULEデーモンのスキャン間隔(例: 1h
ZTC_MIN_CVSSこの CVSS 未満の検出結果をオブジェクト作成前に除外

ztc --help に全項目が表示されます。

コマンド

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 は、ホスト側ワーカーが消費するホワイトリスト化された vulners.fix[<pkg>] エージェントキーを介して脆弱なパッケージをアップグレードします。任意のコマンド実行は行われません。手動で実行することも、scan --daemon --auto-fix を使用して、Zabbix で問題を承認した信頼できるユーザーによって駆動することもできます。設計根拠: docs/adr/0001-remediation-mechanism.md

サポートマトリクス

Zabbix6.0 & 7.0 LTS、7.4、8.0(自動検出)
監査対象 OSLinux(deb/rpm/apk/…)、Windows(ソフトウェア + KB)
ztc の実行環境Linux amd64 / arm64

Python 版からの移行

元の Python 実装は、このリポジトリの git 履歴(Go 書き換え前のコミット)と Go 化以前のリリースタグに残っています。Zabbix 側の名前(グループ、レポートホスト、ダッシュボード)は同じですが、同梱の report.py ではなく標準エージェントキーで収集し、テンプレートを2つに分割し、fix Action を廃止しています。ステップバイステップ(設定マッピング、オブジェクトのクリーンアップ、ホストの再計装、修復の切り替え): docs/MIGRATION.md

開発

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

Docker テスト環境(Zabbix + agent + ztc)は deploy/docker/README.md にあります。CI(ビルド/テスト/リンタ)はプッシュのたびに実行され、v* タグを付けるとバイナリと GHCR イメージが公開されます。

ライセンス

LICENSE を参照してください。

カテゴリ