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

Автор выбрал Free и Open Source Fund, чтобы получить пожертвование как часть Write for DOnations program.

Вступление

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

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

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

Предпосылки

Прежде чем начать этот урок, вам необходимо:

  • Сервер с ОЗУ не менее 2 ГБ под управлением Ubuntu 18.04 с доступом с правами root и дополнительной учетной записью без полномочий root. Вы можете настроить это, следуя https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04, приведенным в этом руководстве по первоначальной настройке сервера]. Для этого урока пользователь без полномочий root ++.

  • (Необязательно) Несколько серверов, на которых работает (предпочтительно) Ubuntu 18.04 с доступом с правами root и дополнительной учетной записью без полномочий root, если вы хотите настроить Vuls для их удаленного сканирования. В этом руководстве вторичной учетной записью является ++.

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

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

Начните с входа в систему как ++:

ssh @

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

sudo mkdir /usr/share/

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

sudo chown -R  /usr/share/

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

sudo apt update

Чтобы загрузить и скомпилировать зависимости, вы установите + git +, + gcc +, + make +, + sqlite +, + debian-goodies +, + golang-go + и + wget + ,

+ sqlite + - это система баз данных, которую вы будете использовать здесь для хранения информации об уязвимостях. https://packages.debian.org/stretch/debian-goodies [+ debian-goodies +] содержит утилиту + checkrestart +, которая предоставляет информацию о том, какие пакеты можно и нужно перезапускать в любой момент времени. + golang-go + - это язык программирования Go.

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

sudo apt install sqlite git debian-goodies gcc make wget golang-go -y

Вы установили необходимые пакеты, в том числе Go.

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

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

Создайте + go-env.sh +, используя ваш текстовый редактор:

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

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

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

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

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

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

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

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

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

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

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

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

Шаг 2 - Установка и запуск go-cve-dictionary

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

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

Сначала вы установите + go-cve-dictionary +, созданный + kotakanbe +, путем клонирования пакета Go из GitHub и последующей его компиляции.

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

mkdir -p $GOPATH/src/github.com/kotakanbe

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

cd $GOPATH/src/github.com/kotakanbe

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

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

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

cd go-cve-dictionary

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

make install

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

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

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

sudo mkdir /var/log/vuls

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

sudo chmod 700 /var/log/vuls

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

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

sudo chown -R  /var/log/vuls

Теперь вы получите данные об уязвимостях с NVD и сохраните их в своем рабочем пространстве Vuls (+ / usr / share / +):

for i in `seq 2002 $(date +"%Y")`; do sudo go-cve-dictionary fetchnvd -dbpath /usr/share//cve.sqlite3 -years $i; done

Эта команда циклически повторяется с 2002 по текущий год (+ seq 2002 $ (date +"% Y ") +) и вызывает + go-cve-dictionary fetchnvd +, чтобы извлечь данные NVD для текущего (цикл) год, пройдя + -год $ i +. Затем он сохраняет эту информацию в базе данных в + / usr / share / +.

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

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

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

Тот же автор + kotakanbe + пишет + goval-dictionary +, и вы сохраните его рядом с предыдущим пакетом.

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

cd $GOPATH/src/github.com/kotakanbe

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

git clone https://github.com/kotakanbe/goval-dictionary.git

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

cd goval-dictionary

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

make install

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

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

Затем загрузите данные OVAL для Ubuntu 18.x, выполнив следующую команду:

sudo goval-dictionary fetch-ubuntu -dbpath=/usr/share//oval.sqlite3 18

На этом этапе вы скачали и установили + goval-dictionary + и получили данные OVAL для Ubuntu 18.x. На следующем этапе вы загрузите и установите Vuls.

Шаг 4 - Загрузка и настройка Vuls

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

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

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

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

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

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

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

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

cd vuls

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

make install

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

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

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

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

cd /usr/share/

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

sudo nano config.toml

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

/usr/share/vuls-data/config.toml

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

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

[servers]

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

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

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

  • Fast mode (по умолчанию): сканирует без корневых привилегий, не имеет зависимостей и очень плохо работает на целевом сервере.

  • Fast root mode: сканирует с правами root и может обнаруживать обновленные, но еще не перезапущенные процессы.

  • Deep scan mode: аналогично режиму быстрого root, но проверяет журналы изменений, которые могут привести к высокой нагрузке на целевой сервер.

  • Offline mode: сканирует аппарат без доступа к Интернету и может использоваться в сочетании с другими режимами.

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

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

vuls configtest

Вы увидите следующий вывод:

[Feb 27 19:36:42]  INFO [localhost] Validating config...
[Feb 27 19:36:42]  INFO [localhost] Detecting Server/Container OS...
[Feb 27 19:36:42]  INFO [localhost] Detecting OS of servers...
[Feb 27 19:36:42]  INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Feb 27 19:36:42]  INFO [localhost] Detecting OS of containers...
[Feb 27 19:36:42]  INFO [localhost] Checking Scan Modes...
[Feb 27 19:36:42]  INFO [localhost] Checking dependencies...
[Feb 27 19:36:42]  INFO [localhost] Dependencies... Pass
[Feb 27 19:36:42]  INFO [localhost] Checking sudo settings...
[Feb 27 19:36:42]  INFO [localhost] sudo ... No need
[Feb 27 19:36:42]  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
[Feb 27 19:36:42]  INFO [localhost] Scannable servers are below...
localhost

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

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

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

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

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

vuls scan

Вы увидите вывод, похожий на этот:

[Feb 27 19:44:12]  INFO [localhost] Start scanning
[Feb 27 19:44:12]  INFO [localhost] config: /usr/share//config.toml
[Feb 27 19:44:12]  INFO [localhost] Validating config...
[Feb 27 19:44:12]  INFO [localhost] Detecting Server/Container OS...
[Feb 27 19:44:12]  INFO [localhost] Detecting OS of servers...
[Feb 27 19:44:12]  INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Feb 27 19:44:12]  INFO [localhost] Detecting OS of containers...
[Feb 27 19:44:12]  INFO [localhost] Checking Scan Modes...
[Feb 27 19:44:12]  INFO [localhost] Detecting Platforms...
[Feb 27 19:44:12]  INFO [localhost] (1/1) localhost is running on other
[Feb 27 19:44:12]  INFO [localhost] Scanning vulnerabilities...
[Feb 27 19:44:12]  INFO [localhost] Scanning vulnerable OS packages...
[Feb 27 19:44:12]  INFO [localhost] Scanning in fast mode


One Line Summary
================
localhost       ubuntu18.04     539 installed


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

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

vuls tui

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

  • Отсканированные машины: в левом верхнем углу перечислены машины, отсканированные Vuls.

  • Найденные уязвимости: находится справа от списка компьютеров, показывает уязвимости Vuls, обнаруженные в установленных пакетах.

  • Подробная информация: занимает левую часть экрана, показывает подробную информацию об уязвимости, извлеченной из баз данных.

  • Затронутые пакеты: находится справа от подробной информации, показывает, какие версии затронутых пакетов и есть ли фиксированная версия.

изображение: https: //assets.digitalocean.com/articles/vuls1804/step4a.png [представление отчетов Alt vuls]

Вы можете перемещать курсор по панелям, нажимая + ENTER, и перемещаться с помощью стрелок на клавиатуре.

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

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

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

На предыдущем шаге вы настроили Vuls для сканирования локальной машины (+ localhost +). Вы можете добавить столько серверов, сколько пожелаете, если у вас есть следующее:

  • IP-адрес целевого сервера

  • root-доступ к целевому серверу

  • доступная учетная запись на целевом сервере (++ в этом руководстве)

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

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

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

visudo

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

/ и т.д. / sudoers

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

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

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

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

sudo apt install debian-goodies -y

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

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

/usr/share/vuls-data/config.toml

[servers.]
host = ""
port = "22"
user = ""
keyPath = ""
scanMode = [ "deep" ] # "fast", "fast-root" or "deep"

Вышеуказанные строки служат шаблоном для добавления новых серверов. Не забудьте заменить ` на желаемое имя, ` на IP целевого сервера, ` на имя пользователя и ` на путь к ключу RSA. Vuls не поддерживает аутентификацию по паролю SSH, поэтому необходимо указывать + keyPath +.

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

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

ssh @ -i

Когда вас спросят, хотите ли вы продолжить соединение, введите + yes +, а затем выйдите из системы, нажав + CTRL + D +.

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

chmod 600

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

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

vuls configtest

Там не будет никакого вывода из этой команды. Если есть какие-либо ошибки, проверьте ваш + config.toml + на соответствие конфигурации в руководстве.

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

Шаг 7 - Настройка периодического сканирования и создания отчетов для Slack

В этом разделе вы сконфигурируете Vuls для отправки отчетов в Slack и создадите задание `+ cron + 'для периодического запуска сканирования Vuls.

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

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

Вы будете перенаправлены на страницу настроек нового приложения. Нажмите * Incoming Webhooks * в левой панели навигации.

изображение: https: //assets.digitalocean.com/articles/vuls1804/step6a.png [Alt левая навигационная панель "входящие webhooks"]

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

изображение: https: //assets.digitalocean.com/articles/vuls1804/step6b.png [Alt активировать входящие веб-хуки]

Новый раздел дальше вниз по странице будет раскрыт. Прокрутите вниз и нажмите кнопку * Добавить новый веб-крючок в рабочую область *. На следующей странице выберите канал, на который вы хотите отправлять отчеты, и нажмите * Авторизовать *.

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

Затем откройте + config.toml + для редактирования:

sudo nano config.toml

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

/usr/share/vuls-data/config.toml

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

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

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

sudo vuls report -to-slack

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

Вы можете проверить приложение Slack и подтвердить, что Vuls успешно отправил отчет.

изображение: https: //assets.digitalocean.com/articles/vuls1804/step6c.png [альтернативный заголовок для опубликованного сообщения Slack]

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

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

crontab -e

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

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

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

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

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

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

Заключение

Теперь вы успешно настроили Vuls с автоматическим сканированием и отчетами на сервере Ubuntu 18.04. Для получения дополнительных возможностей отчетности, а также устранения неполадок, посетите Vuls документацию.

Благодаря Vuls оценка уязвимости становится более эффективной для производственных сред. В качестве альтернативы настройке + cron +, также можно использовать Vuls в https://www.digitalocean.com/community/tutorials/an-introduction-to-continuous-integration-delivery-and-deployment [ непрерывное развертывание] рабочий процесс, поскольку его сканы облегчены, и вы можете запускать их по мере необходимости. Вы также можете рассмотреть возможность использования firewall с Vuls для ограничения доступа и уменьшения потребности в корневом доступе.

Related