Zabbix Threat Control – плагин оценки уязвимости с помощью Zabbix

Этот плагин преобразует вашу систему мониторинга Zabbix в систему управления уязвимостями, рисками и безопасностью для вашей инфраструктуры.

Что делает плагин

Он предоставляет Zabbix информацию об уязвимостях, существующих во всей вашей инфраструктуре, и предлагает легко применимые планы исправления.

Информация отображается в Zabbix в следующем формате:

  • Максимальный показатель CVSS для каждого сервера.
  • Команда для исправления всех обнаруженных уязвимостей для каждого сервера.
  • Список бюллетеней по безопасности с описаниями уязвимых пакетов, действительными для вашей инфраструктуры.
  • Список всех уязвимых пакетов в вашей инфраструктуре.

Информация о бюллетенях по безопасности и пакетах включает:

  • Индекс воздействия на инфраструктуру.
  • CVSS-оценка пакета или бюллетеня.
  • Количество затронутых серверов.
  • Подробный список затронутых хостов.
  • Гиперссылка на описание бюллетени.

Иногда невозможно обновить все пакеты на всех серверах до версии, которая устраняет существующие уязвимости.

Предложенное представление позволяет выборочно обновлять серверы или пакеты.

Этот подход позволяет исправлять уязвимости с использованием разных стратегий:

  • все уязвимости на конкретном сервере;
  • одна уязвимость во всей инфраструктуре.

Это можно сделать непосредственно из Zabbix (используя стандартную функциональность) либо по команде администратора, либо автоматически.

Как работает плагин

  • Используя Zabbix API, плагин получает списки установленных пакетов, имен и версий ОС со всех серверов в инфраструктуре (если с ними связан шаблон «Vulners OS-Report»).
  • Передача данных в Vulners
  • Получает информацию об уязвимостях для каждого сервера.
  • Обрабатывает полученную информацию, агрегирует ее и отправляет обратно в Zabbix через zabbix-sender.
  • Наконец, результат отображается в Zabbix.

Требования

На узле zabbix-сервера:

  • python 3 (только для ztc скриптов)
  • python modules: pyzabbix, jpath, requests
  • zabbix version 3.4
  • zabbix-sender utility
  • zabbix-get utility

На всех серверах, требующих сканирования уязвимостей:

  • zabbix-agent

Установка

RHEL, CentOS и другие RPM

rpm -Uhv https://repo.vulners.com/redhat/vulners-repo.rpm

На узле zabbix-сервера:

yum install zabbix-threat-control-main zabbix-threat-control-host

На всех серверах, требующих сканирования уязвимостей:

yum install zabbix-threat-control-host

Debian и другие на его основе

 wget https://repo.vulners.com/debian/vulners-repo.deb



dpkg -i vulners-repo.deb 

На узле zabbix-сервера:

apt-get update && apt-get install zabbix-threat-control-main zabbix-threat-control-host

На всех серверах, требующих сканирования уязвимостей:

apt-get update && apt-get install zabbix-threat-control-host

Сборка из исходников

На узле zabbix-сервера:

git clone https://github.com/vulnersCom/zabbix-threat-control.git

mkdir -p /opt/monitoring/zabbix-threat-control

cp zabbix-threat-control/*.py /opt/monitoring/zabbix-threat-control/

cp zabbix-threat-control/*.conf /opt/monitoring/zabbix-threat-control/

chown -R zabbix:zabbix /opt/monitoring/zabbix-threat-control

chmod 640 /opt/monitoring/zabbix-threat-control/*.conf

touch /var/log/zabbix-threat-control.log

chown zabbix:zabbix /var/log/zabbix-threat-control.log

chmod 664 /var/log/zabbix-threat-control.log

На всех серверах, требующих сканирования уязвимостей:

git clone https://github.com/vulnersCom/zabbix-threat-control.git

mkdir -p /opt/monitoring/

cp -R zabbix-threat-control/os-report /opt/monitoring/

chown -R zabbix:zabbix /opt/monitoring/os-report

Настройка

Файл конфигурации находится здесь:

/opt/monitoring/zabbix-threat-control/ztc.conf

Учетные данные Vulners

Для использования API Vulners вам нужен api-ключ.

Чтобы получить его, выполните следующие шаги:

Войдите в систему на vulners.com.

Перейдите в userinfo https://vulners.com/userinfo.

Выберите «API KEYS».

Выберите «scan» в меню областей и нажмите «Generate new key».

Вы получите api-ключ, который выглядит так:

RGB9YPJG7CFAXP35PMDVYFFJPGZ9ZIRO1VGO9K9269B0K86K6XQQQR32O6007NUK

Теперь вам нужно добавить api-ключ Vulners в свой файл конфигурации (параметр) – >VulnersApiKey

VulnersApiKey = RGB9YPJG7CFAXP35PMDVYFFJPGZ9ZIRO1VGO9K9269B0K86K6XQQQR32O6007NUK

Учетные данные Zabbix

Чтобы подключиться к Zabbix, вам нужно указать следующее в файле конфигурации:

URL, имя пользователя и пароль. Обратите внимание, что Пользователь должен иметь права на создание групп, хостов и шаблонов в Zabbix.

Доменное имя и порт Zabbix-сервера для передачи данных с помощью zabbix-отправителя.

Ниже приведен пример допустимого файла конфигурации:

ZabbixApiUser = yourlogin

ZabbixApiPassword = yourpassword

ZabbixFrontUrl = https://zabbixfront.yourdomain.com



ZabbixServerFQDN = zabbixserver.yourdomain.com

ZabbixServerPort = 10051

Объект Zabbix

Чтобы создать все необходимые объекты в Zabbix, запустите:

prepare.py

скрипт с параметрами:

/opt/monitoring/zabbix-threat-control/prepare.py -uvtda 

Он проверит, что утилиты zabbix-agent и zabbix-get настроены правильно и создают следующие объекты с использованием Zabbix API:

  • Шаблон, используемый для сбора данных с серверов.
  • Zabbix хосты для получения данных об уязвимостях.
  • Уязвимость устраняется действием команды.
  • Панель инструментов для отображения результатов.

Серверы, требующие сканирования на наличие уязвимостей

Zabbix-агент должен иметь возможность выполнять удаленные команды.

Для этого измените параметры в файле конфигурации zabbix-agent

/etc/zabbix/zabbix_agentd.conf

добавьте следующие параметры:

EnableRemoteCommands=1



LogRemoteCommands=1

Zabbix-агент должен иметь возможность обновлять пакеты с правами root. Для этого добавьте строку в файл /etc/sudoers

zabbix ALL=(ALL) NOPASSWD: /usr/bin/yum -y update *

zabbix ALL=(ALL) NOPASSWD: /usr/bin/apt-get --assume-yes install --only-upgrade *

Выполнение

 /opt/monitoring/os-report/report.py 

Скрипт передает имя, версию и установленные пакеты операционной системы в Zabbix.

Работает с zabbix-агентом на всех хостах, к которым связан шаблон «Vulners OS-Report».

 /opt/monitoring/zabbix-threat-control/scan.py 

Скрипт обрабатывает необработанные данные из zabbix и vulners и переносит  их в систему мониторинга с помощью zabbix-sender.

Работает с zabbix-агентом на сервере Zabbix через пункт «Service» на хосте «Vulners – Statistics».

Эти 2 скрипта выше запускаются один раз в день.

Время запуска выбирается случайным образом во время установки и не изменяется во время работы.

 /opt/monitoring/zabbix-threat-control/fix.py 

Скрипт запускает команды для исправления уязвимостей на серверах.

Выполняется как удаленная команда в действии «Vunlers» в Zabbix.

см.также:



2018-09-03T14:01:19
Закрытие уязвимостей