Поиск по сайту:

Как использовать Vuls в качестве сканера уязвимостей в Ubuntu 22.04


Автор выбрал программу Write for DOnations.

Введение

Национальная база данных уязвимостей (NVD). Ограниченные ресурсы, Vuls может сканировать несколько систем одновременно и отправлять отчеты по электронной почте или в Slack. Он имеет три режима сканирования (быстрый, быстрый root и глубокий), которые вы можете выбрать в зависимости от ситуации.

Vuls не является широким сканером ИТ-безопасности; например, он не отслеживает сетевой трафик и не защищает от атак методом грубой силы. Однако Vuls предоставляет возможность автоматизировать отчеты об уязвимостях для пакетов Linux. Когда базы данных, которые использует Vuls, получают информацию об исправлении определенных уязвимостей, Vuls также включает эту информацию об исправлении в свои отчеты. При создании отчетов Vuls отдает приоритет наиболее актуальным уязвимостям, используя установленную систему ранжирования из базы данных.

В этом руководстве вы развернете Vuls на сервере Ubuntu 22.04. Этот процесс включает в себя создание Vuls и его зависимостей из исходного кода, настройку сканирования и создание отчетов в Slack, а также, при необходимости, подключение его к целевым машинам для включения удаленного сканирования. В конце концов, у вас будет автоматизированная система отчетов об уязвимостях, которая предупреждает вас об уязвимостях и устраняет необходимость в ручных проверках.

Предпосылки

Для выполнения этого урока вам понадобится:

  • Сервер с оперативной памятью не менее 2 ГБ под управлением Ubuntu 22.04 с доступом root и дополнительной учетной записью без полномочий root. Вы можете настроить это, следуя этому руководству по начальной настройке сервера. В этом руководстве пользователем без полномочий root является sammy.
  • Рабочее пространство Slack, участником которого вы являетесь. Чтобы узнать, как создать рабочее пространство, посетите официальную документацию.
  • (Необязательно) Несколько серверов под управлением (предпочтительно) Ubuntu 22.04 с доступом root и дополнительной учетной записью без полномочий root, если вы хотите настроить Vuls для их удаленного сканирования. В этом руководстве вспомогательной учетной записью является sammy-shark. Для дополнительной учетной записи должен быть настроен ключ SSH для аутентификации, что можно сделать, следуя документации по продукту Vuls.< /li>

Шаг 1 — Установка зависимостей

В этом разделе вы создадите папку для хранения данных Vuls, установите последнюю версию языка программирования Go и установите другие пакеты, которые требуются Vuls и его зависимостям.

В этом руководстве вы будете хранить все данные, связанные с Vuls, в каталоге /usr/share/vuls-data. Создайте его, выполнив следующую команду:

  1. sudo mkdir /usr/share/vuls-data

Чтобы сделать его доступным для sammy, выполните следующую команду:

  1. sudo chown -R sammy /usr/share/vuls-data

Теперь вы создали папку vuls-data, которая будет вашим рабочим пространством. Прежде чем продолжить установку необходимых пакетов, сначала обновите кеш менеджера пакетов:

  1. sudo apt update

Чтобы загрузить и скомпилировать зависимости, вы должны установить git, gcc, make, sqlite, debian-goodies и wget. sqlite — это система баз данных, которую вы будете использовать здесь для хранения информации об уязвимостях. debian-goodies содержит утилиту checkrestart, которая предоставляет информацию о том, какие пакеты можно и нужно перезапустить в любой момент времени.

Вы можете установить их все одной командой:

  1. sudo apt install sqlite git debian-goodies gcc make wget -y

Теперь вы установили необходимые пакеты и можете приступить к установке Go и связанных с ним программ, которые будет использовать Vuls.

Установка Go

Установите Go с помощью менеджера пакетов snap, выполнив следующую команду:

  1. sudo snap install go --classic

Вы используете snap для установки Go, так как он устанавливает последнюю версию языка, в отличие от apt, который может установить более старую версию. Работа с более старой версией не рекомендуется и может помешать вам пройти это руководство.

Для работы Go требуется несколько переменных среды, которые вы настроите: GOPATH и PATH. GOPATH указывает рабочий каталог для Go. PATH, который содержит каталоги, в которых размещаются программы, должен быть расширен, чтобы указать системе, где найти сам Go.

Эти переменные среды необходимо устанавливать каждый раз, когда пользователь входит в систему. Чтобы автоматизировать это, вы создадите новый исполняемый файл с именем go-env.sh в папке /etc/profile.d. Это приведет к тому, что каталог будет выполняться каждый раз, когда пользователь входит в систему.

Создайте go-env.sh с помощью текстового редактора:

  1. sudo nano /etc/profile.d/go-env.sh

Добавьте в файл следующие команды:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin:/snap/bin

Команда export устанавливает заданную переменную среды в желаемое значение. Здесь вы используете его для заполнения GOPATH и PATH соответствующими значениями.

Сохраните и закройте файл.

В настоящее время go-env.sh не является исполняемым. Чтобы это исправить, пометьте его как исполняемый, выполнив следующую команду:

  1. sudo chmod +x /etc/profile.d/go-env.sh

Чтобы избежать повторного входа в систему, вы можете перезагрузить go-env.sh, выполнив:

  1. source /etc/profile.d/go-env.sh

Команда source перезагружает данный файл в текущую оболочку, сохраняя при этом его состояние.

Теперь вы установили язык Go, настроили его переменные среды и установили пакеты, которые потребуются вам позже. Затем вы загрузите и скомпилируете программы Go, которые требуются Vuls. Это программы go-cve-dictionary и goval-dictionary, которые Vuls использует для запросов к базам данных уязвимостей.

Установка и запуск словаря go-cve

В этом разделе вы загрузите и скомпилируете go-cve-dictionary, пакет Go, который обеспечивает доступ к Национальной базе данных уязвимостей. Затем вы запустите его, чтобы получить данные об уязвимостях, которые могут использовать Vuls. NVD — это репозиторий правительства США общедоступных уязвимостей кибербезопасности, содержащий идентификаторы уязвимостей (CVE — Common Vulnerabilities and Exposures), сводки и анализ воздействия, и он доступен в машиночитаемом формате.

Go хранит пакеты в $GOPATH/src/. Вы можете расширить это, используя подкаталоги для обозначения происхождения. Например, пакеты из GitHub, созданные пользователем example-user, будут храниться в папке $GOPATH/src/github.com/example-user. .

Сначала вы установите go-cve-dictionary, клонировав пакет Go с GitHub и затем скомпилировав его.

Начните с создания каталога для его хранения в соответствии с примером пути:

  1. mkdir -p $GOPATH/src/github.com/vulsio

Перейдите к нему, запустив:

  1. cd $GOPATH/src/github.com/vulsio

Теперь вы клонируете go-cve-dictionary с GitHub на свой сервер, выполнив:

  1. git clone https://github.com/vulsio/go-cve-dictionary.git

Затем перейдите в корень пакета:

  1. cd go-cve-dictionary

Наконец, скомпилируйте и установите его, выполнив следующую команду:

  1. make install

Имейте в виду, что выполнение этой команды может занять некоторое время.

Чтобы сделать его доступным для всей системы, скопируйте его в /usr/local/bin:

  1. sudo cp $GOPATH/bin/go-cve-dictionary /usr/local/bin

go-cve-dictionary требует доступа к каталогу вывода журнала; по умолчанию это /var/log/vuls. Создайте его, запустив:

  1. sudo mkdir /var/log/vuls

Прямо сейчас каталог журналов доступен для чтения всем. Ограничьте доступ для текущего пользователя с помощью следующей команды:

  1. sudo chmod 700 /var/log/vuls

Установка флагов разрешений на 700 ограничивает доступ только к владельцу.

Чтобы сделать его доступным для sammy или другого пользователя, выполните следующую команду:

  1. sudo chown -R sammy /var/log/vuls

Затем вы получите данные об уязвимостях из NVD и сохраните их в рабочей области Vuls (/usr/share/vuls-data):

  1. go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3

Эта команда извлечет данные об уязвимостях NVD с 2002 по текущий год и сохранит их в базе данных в папке /usr/share/vuls-data.

Примечание. Выполнение этой команды займет много времени и может завершиться ошибкой, если на вашем сервере менее 2 ГБ ОЗУ.

В этом разделе вы загрузили и установили go-cve-dictionary, а затем получили данные NVD для использования Vuls. Теперь вы загрузите и установите goval-dictionary и получите данные OVAL для Ubuntu.

Установка и запуск goval-словаря

В этом разделе вы загрузите и скомпилируете goval-dictionary, пакет Go, который обеспечивает доступ к базе данных OVAL для Ubuntu. Затем вы запустите его и получите данные об уязвимостях для использования Vuls. OVAL расшифровывается как Open Vulnerability and Assessment Language. Это открытый язык, используемый для быстрой проверки наличия уязвимостей программного обеспечения в данной системе.

Перейдите в папку $GOPATH/src/github.com/vulsio:

  1. cd $GOPATH/src/github.com/vulsio

Клонируйте пакет с GitHub, выполнив следующую команду:

  1. git clone https://github.com/vulsio/goval-dictionary.git

Войдите в папку пакета:

  1. cd goval-dictionary

Скомпилируйте и установите его с помощью make:

  1. make install

Скопируйте его в /usr/local/bin, чтобы сделать его глобально доступным:

  1. sudo cp $GOPATH/bin/goval-dictionary /usr/local/bin

Затем получите данные OVAL для Ubuntu 22, выполнив следующую команду:

  1. sudo goval-dictionary fetch ubuntu --dbpath=/usr/share/vuls-data/oval.sqlite3 22

Здесь вы загрузили и установили goval-dictionary, а затем получили данные OVAL для Ubuntu. Затем вы загрузите и установите gost и получите данные средства отслеживания безопасности Debian.

Установка и запуск гост

В этом разделе вы загрузите и скомпилируете gost, пакет Go, который предоставляет доступ к средству отслеживания ошибок безопасности Debian. Затем вы запустите его и получите данные об уязвимостях для использования Vuls. Средство отслеживания безопасности Ubuntu собирает всю информацию о статусе уязвимости пакетов, распространяемых вместе с Ubuntu.

Вы сохраните этот пакет в том же каталоге, что и раньше. Перейдите к нему, выполнив следующую команду:

  1. cd $GOPATH/src/github.com/vulsio

Клонируйте пакет с GitHub, выполнив:

  1. git clone https://github.com/vulsio/gost.git

Когда он завершится, войдите в папку с пакетом:

  1. cd gost

Скомпилируйте и установите его с помощью make:

  1. make install

Скопируйте его в /usr/local/bin, чтобы сделать его глобально доступным:

  1. sudo cp $GOPATH/bin/gost /usr/local/bin

Затем создайте каталог файла журнала для gost:

  1. sudo mkdir /var/log/gost

Ограничьте доступ для текущего пользователя с помощью следующей команды:

  1. sudo chmod 700 /var/log/gost

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

  1. sudo chown -R sammy /var/log/gost

Затем получите данные трекера безопасности Ubuntu, запустив:

  1. gost fetch ubuntu --dbpath=/usr/share/vuls-data/gost.sqlite3

Вывод может быть длинным. Возможно, он не очистится в терминале, и в этом случае вы можете запустить команду clear.

Вы только что загрузили и установили gost, а затем получили данные для Debian. На следующем шаге вы загрузите и установите Vuls.

Шаг 2 — Загрузка и настройка Vuls

Установив все зависимости, вы теперь загрузите и скомпилируете Vuls из исходного кода. Вы также настроите его для сканирования локального компьютера.

Создайте новый каталог, содержащий путь к репозиторию Vuls, с помощью этой команды:

  1. mkdir -p $GOPATH/src/github.com/future-architect

Перейдите к нему:

  1. cd $GOPATH/src/github.com/future-architect

Клонируйте Vuls из GitHub, выполнив следующую команду:

  1. git clone https://github.com/future-architect/vuls.git

Войдите в папку пакета:

  1. cd vuls

Скомпилируйте и установите его одновременно, запустив:

  1. make install

Помните, что выполнение этой команды может занять некоторое время.

Скопируйте его в /usr/local/bin, чтобы сделать его глобально доступным:

  1. sudo cp $GOPATH/bin/vuls /usr/local/bin

Теперь вы создадите файл конфигурации для Vuls. Вернитесь к /usr/share/vuls-data:

  1. cd /usr/share/vuls-data

Vuls хранит свою конфигурацию в файле TOML, который вы назовете config.toml. Создайте его с помощью текстового редактора:

  1. sudo nano config.toml

Введите следующую конфигурацию:

[cveDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"

[ovalDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"

[gost]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/gost.sqlite3"

[servers]

[servers.localhost]
host = "localhost"
port = "local"
scanMode = [ "fast" ]
#scanMode = ["fast", "fast-root", "deep", "offline"]

Первые два раздела этой конфигурации (cveDict, ovalDict и gost) указывают Vuls на базы данных уязвимостей, которые вы только что добавили. Раздел servers отмечает начало информации, относящейся к серверу. Отдельные разделы будут группировать информацию о каждом сервере. Единственный сервер, который Vuls будет сканировать с этой описанной конфигурацией, — это локальный сервер: localhost.

Vuls предоставляет четыре режима сканирования:

  • Быстрый режим (по умолчанию) сканирует без привилегий суперпользователя, не имеет зависимостей и очень легок на целевом сервере.
  • Быстрый режим root сканирует с привилегиями root и может обнаруживать обновленные, но еще не перезапущенные процессы.
  • Режим глубокого сканирования аналогичен режиму быстрого рутирования, но проверяет журналы изменений, что может привести к высокой нагрузке на целевой сервер.
  • Автономный режим сканирует машину без доступа к Интернету и может использоваться в сочетании с другими режимами.

Сохраните и закройте файл.

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

  1. vuls configtest

Вы получите вывод, подобный этому:

Output
[Jan 5 20:24:29] INFO [localhost] vuls-v0.22.0-build-20230105_201926_554ecc4 [Jan 5 20:24:29] INFO [localhost] Validating config... [Jan 5 20:24:29] INFO [localhost] Detecting Server/Container OS... [Jan 5 20:24:29] INFO [localhost] Detecting OS of servers... [Jan 5 20:24:29] INFO [localhost] (1/1) Detected: localhost: ubuntu 22.10 [Jan 5 20:24:29] INFO [localhost] Detecting OS of containers... [Jan 5 20:24:29] INFO [localhost] Checking Scan Modes... [Jan 5 20:24:29] INFO [localhost] Checking dependencies... [Jan 5 20:24:29] INFO [localhost] Dependencies... Pass [Jan 5 20:24:29] INFO [localhost] Checking sudo settings... [Jan 5 20:24:29] INFO [localhost] sudo ... No need [Jan 5 20:24:29] INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode [Jan 5 20:24:29] INFO [localhost] Scannable servers are below... localhost

Вы правильно ввели конфигурацию, и Vuls обнаружил, что может сканировать локальный сервер.

Вы установили и настроили Vuls для сканирования локального сервера. На следующем шаге вы запустите локальное сканирование и просмотрите сгенерированный отчет.

Шаг 3 — Запуск локального сканирования

На этом шаге вы запустите локальное сканирование, а затем просмотрите сгенерированный отчет об уязвимости. К настоящему времени вы настроили только локальный сервер, который Vuls правильно обнаружил на последнем шаге. Режим сканирования по умолчанию, если он не указан явно, — fast.

Чтобы запустить сканирование, выполните следующую команду:

  1. vuls scan

Вывод будет примерно таким:

[Jan  5 20:26:14]  INFO [localhost] vuls-v0.22.0-build-20230105_201926_554ecc4
[Jan  5 20:26:14]  INFO [localhost] Start scanning
[Jan  5 20:26:14]  INFO [localhost] config: /usr/share/vuls-data/config.toml
[Jan  5 20:26:14]  INFO [localhost] Validating config...
[Jan  5 20:26:14]  INFO [localhost] Detecting Server/Container OS...
[Jan  5 20:26:14]  INFO [localhost] Detecting OS of servers...
[Jan  5 20:26:14]  INFO [localhost] (1/1) Detected: localhost: ubuntu 22.10
[Jan  5 20:26:14]  INFO [localhost] Detecting OS of containers...
[Jan  5 20:26:14]  INFO [localhost] Checking Scan Modes...
[Jan  5 20:26:14]  INFO [localhost] Detecting Platforms...
[Jan  5 20:26:14]  INFO [localhost] (1/1) localhost is running on other
[Jan  5 20:26:14]  INFO [localhost] Scanning OS pkg in fast mode
[Jan  5 20:26:14]  INFO [localhost] Scanning listen port...
[Jan  5 20:26:14]  INFO [localhost] Using Port Scanner: Vuls built-in Scanner


Scan Summary
================
localhost       ubuntu22.10     695 installed





To view the detail, vuls tui is useful.
To send a report, run vuls report -h.

Vuls записал, что он делал в процессе. Чтобы просмотреть отчет об обнаруженных уязвимостях, выполните:

  1. vuls tui

Vuls делит представление отчета на четыре панели:

  • Сканированные машины, расположенные в левом верхнем углу, содержат список машин, которые были просканированы Vuls.
  • Найденные уязвимости, расположенные справа от списка компьютеров, показывают уязвимости, обнаруженные Vuls в установленных пакетах.
  • Подробная информация, занимающая левую часть экрана, показывает подробную информацию об уязвимости, полученную из баз данных.
  • Затронутые пакеты, расположенные справа от подробной информации, показывают, какие версии затронутых пакетов и есть ли исправленная версия.

Вы можете перемещать курсор по каждой из панелей, нажимая ENTER. Вы можете перемещаться по каждой панели с помощью стрелок на клавиатуре. Когда вы закончите, нажмите CTRL+C, чтобы выйти.

На этом шаге вы запустили локальное сканирование и проверили результаты. В следующем (необязательном) разделе вы настроите Vuls для сканирования нескольких целевых машин.

Шаг 4 — (Необязательно) Настройка нескольких целевых машин

В этом разделе вы настроите Vuls для сканирования нескольких целевых машин. Этот процесс включает в себя настройку /etc/sudoers на целевых машинах и настройку Vuls для сканирования этой цели.

Вы можете добавить столько серверов, сколько пожелаете, при условии, что у вас есть IP-адрес целевого сервера, корневой доступ к целевому серверу и доступная учетная запись на целевом сервере (sammy-shark в этом руководстве).

Вы можете использовать только учетную запись пользователя без полномочий root на целевом сервере для сканирования в быстром режиме. Чтобы включить сканирование в быстром корневом и глубоком режимах, вам необходимо отредактировать файл /etc/sudoers на целевых машинах. Файл sudoers определяет, какие пользователи могут запускать какие команды и нужен ли вам пароль для определенных команд.

visudo — это утилита для определения правил доступа и привилегированного доступа, и вы можете запускать ее только как root. Из-за важности sudoers файл выдаст предупреждение, если вы попытаетесь выйти с ошибками.

На целевом сервере войдите в систему как root и откройте sudoers для редактирования, запустив visudo:

  1. visudo

Добавьте эту строку в конец файла:

sammy-shark ALL=(ALL) NOPASSWD: /usr/bin/apt-get update, /usr/bin/stat *, /usr/sbin/checkrestart

Эта строка указывает sudo разрешить пользователю sammy-shark запускать apt-get update, checkrestart и все команды, доступные из stat, без указания пароля.

Сохраните и закройте файл. Если вы допустили синтаксическую ошибку в процессе, visudo сообщит вам об этом и предложит отредактировать его снова или выйти.

Примечание. Добавляя пользователя sammy-shark в sudoers, вы разрешаете Vuls сканировать с использованием быстрого корневого и глубокого режимов. Если вы хотите разрешить эти режимы и для локального компьютера (localhost), вы можете отредактировать sudoers на localhost. Для получения дополнительной информации о sudoers вы можете просмотреть наше руководство по редактированию файлов Sudoers.

Vuls использует утилиту checkrestart для проверки пакетов, которые обновлены, но требуют перезапуска. Чтобы убедиться, что он есть на целевом сервере, установите его на дополнительный сервер (серверы), выполнив следующую команду:

  1. apt install debian-goodies -y

Это все, что вам нужно сделать на целевом сервере. Теперь вы можете выйти из системы и вернуться на исходный сервер.

Чтобы добавить новый сервер для сканирования, откройте config.toml и добавьте следующие строки под отметкой [servers]:

[servers.target_name]
host = "target_ip"
port = "22"
user = "account_username"
keyPath = "/home/sammy/.ssh/id_rsa"
scanMode = [ "deep" ] # "fast", "fast-root" or "deep"

Строки выше — это шаблон для добавления новых серверов. Не забудьте заменить target_name на желаемое имя, target_ip на IP-адрес целевого сервера, < mark>account_username с именем пользователя (в этом руководстве используется sammy-shark) и укажите путь к вашему закрытому ключу RSA для пользователя Сэмми. Vuls не поддерживает аутентификацию по паролю SSH, поэтому необходимо указать keyPath.

Сохраните и закройте файл.

Затем для каждого добавленного вами целевого сервера вы подтвердите ключи RSA на локальном компьютере. Для этого вы войдете на целевой сервер с вашего первого сервера с соответствующим ключом, например:

  1. ssh sammy-shark@target_ip -i /home/sammy/.ssh/id_rsa

Не забудьте ввести путь к вашему закрытому ключу RSA. Когда вас спросят, хотите ли вы продолжить подключение, введите yes, затем выйдите из системы, нажав CTRL + D.

Примечание. Если вы получили сообщение об ошибке о том, что права доступа к файлам ключей слишком открыты, установите для них значение 600, выполнив следующую команду:

  1. chmod 600 account_rsa_key

Установка разрешений 600 гарантирует, что только владелец сможет читать и записывать файл ключа.

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

  1. vuls configtest

В выводе будет подробно описано все, что проверил Vuls, например зависимости, доступ суперпользователя и версии ОС. Если есть какие-либо ошибки, сравните свой config.toml с конфигурацией, предоставленной ранее в этом разделе.

На этом шаге вы добавили дополнительные серверы в конфигурацию Vuls, пометив их для сканирования. В следующем разделе вы настроите Vuls для периодического сканирования и отправки отчетов в рабочую область Slack.

Шаг 5 — Настройка периодического сканирования и отправки отчетов в Slack

Теперь вы настроите Vuls для отправки отчетов в Slack и установите задание cron для периодического запуска сканирования Vuls.

Чтобы использовать интеграцию со Slack, вам потребуется входящий веб-перехватчик в Slack для вашей рабочей области. Входящие веб-перехватчики позволяют приложению предоставлять информацию в режиме реального времени от других приложений. В этом случае вы настроите Vuls для отправки отчетов в ваш канал Slack.

Если вы еще не создали веб-перехватчик, вам сначала нужно создать приложение для своей рабочей области. Для этого сначала войдите в Slack и перейдите на страницу создания приложения Slack. Выберите имя, которое вы узнаете, выберите нужную рабочую область и нажмите «Создать приложение».

Вы будете перенаправлены на страницу настроек нового приложения. Выберите элемент Входящие веб-перехватчики на левой панели навигации.

Включите веб-перехватчики, переключив кнопку переключателя рядом с заголовком «Активировать входящие веб-перехватчики» в положение «Вкл.».

Новый раздел загрузится на страницу после активации. Прокрутите и нажмите кнопку «Добавить новый веб-перехватчик в рабочую область». Откроется новая страница для запроса доступа к вашему рабочему пространству. Выберите канал, на который вы хотите отправлять отчеты, и нажмите Разрешить.

Вы будете перенаправлены обратно на страницу настроек для веб-перехватчиков, и теперь новый веб-перехватчик будет указан в таблице под URL-адресом веб-перехватчика. Нажмите «Копировать», чтобы скопировать URL-адрес и записать его для дальнейшего использования.

Вернувшись в свой терминал для исходного сервера, откройте config.toml для редактирования:

  1. sudo nano config.toml

Добавьте следующие строки:

[slack]
hookURL      = "your_hook_url"
channel      = "#your_channel_name"
authUser     = "your_username"
#notifyUsers  = ["@username"]

Замените your_hook_URL на указанный вами URL-адрес веб-перехватчика, your_channel_name на имя нужного канала и your_username на имя пользователя Slack, создавшего веб-перехватчик. Сохраните и закройте файл.

Чтобы протестировать интеграцию, вы можете создать отчет, запустив vuls report:

  1. sudo vuls report -to-slack

Вулсу потребуется несколько секунд, чтобы сбежать и выйти. Если он возвращает ошибку, проверьте, что вы ввели в предыдущих строках.

Проверьте свое приложение Slack, чтобы убедиться, что Vuls успешно отправил отчет на указанный канал.

Теперь, когда вы настроили отчеты, вы можете настроить сканирование по расписанию. cron — это планировщик заданий на основе времени, встроенный в каждый компьютер с Ubuntu. Он настраивается с помощью файла crontab, который в точном синтаксисе определяет, когда должна выполняться команда. Чтобы облегчить редактирование, вы будете использовать утилиту crontab, которая открывает текущий файл crontab в редакторе.

Откройте текущий файл crontab, выполнив следующую команду:

  1. crontab -e

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

Добавьте следующую строку в конец файла:

0 0 * * * vuls scan -config=/usr/share/vuls-data/config.toml; vuls report -config=/usr/share/vuls-data/config.toml > /dev/null 2>&1

Эта строка указывает cron запускать сканирование vuls и отчет vuls с заданной конфигурацией каждый день в полдень (обозначается 0 0 * * * в синтаксисе cron).

Сохраните и закройте файл.

На этом шаге вы подключили Vuls к рабочей области Slack и настроили cron для запуска сканирования Vuls и отправки отчетов в Slack каждый день в полдень.

Заключение

Вы успешно настроили Vuls с автоматическим сканированием и составлением отчетов на сервере Ubuntu 22.04. Дополнительные параметры отчетов, а также способы устранения неполадок см. в документации Vuls.

С Vuls оценка уязвимости становится более плавной в производственных средах. В качестве альтернативы настройке cron также можно использовать Vuls в брандмауэре с Vuls, чтобы ограничить доступ и уменьшить потребность в корневом доступе.