Сканер уязвимостей OpenVAS

Дата: 22.06.2021. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Сканер уязвимостей OpenVAS

В данной статье пойдет речь о сканере уязвимостей OpenVAS. Читатели познакомятся с базовыми и продвинутыми функциями программы, ее уникальными особенностями и полезными опциями.

Введение

Сканер уязвимостей OpenVAS из решения Greenbone Vulnerability Management (GVM) используется для устройств Greenbone Security Manager и представляет собой полнофункциональный механизм сканирования. Он способен выполнять постоянно обновляемую и расширенную систему тестов сетевых уязвимостей (NVTs).

Релизы

Для всех новых релизов нужны специальные ключи Greenbone Community Feed. Их можно получить, если перейти по данной ссылке. Также понадобятся данные о фингерпринте — 8AE4 BE42 9B60 A59B 311C 2E73 9823 FAA6 0ED1 E580.

Установка

Справочной системой, которая используется большинством разработчиков, является Debian GNU/Linux ‘Buster’ 10. Установка может завершиться ошибкой в любой другой системе. Кроме того, перед ее началом следует установить все необходимые компоненты:

  • компилятор C (например, gcc)
  • cmake >= 3.0
  • libdvm_base, libdvm_util >= 21.10
  • glib-2.0 >= 2.42
  • gio-2.0
  • json-glib-1.0 >= 1.4.4
  • bison
  • flex
  • libgcrypt >= 1.6
  • pkg-config
  • libpcap
  • libgpgme >= 1.1.2
  • redis >= 5.0.3
  • libssh >= 0.6.0
  • libksba >= 1.0.7
  • libgnutls >= 3.6.4

Компоненты для создания документации сборки:

  • Doxygen
  • xmltoman (необязательно, нужен для создания страницы справки)

Компоненты для тестирования сборки:

  • Cgreen (необязательно, только для тестирования сборки)

Рекомендуется, чтобы была поддержка WMI:

  • openvas-smb >= 1.0.1

Рекомендуется использовать расширенные функции Windows (например, автоматический запуск службы удаленного реестра):

  • impacket-wmiexec of python-impacket >= 0.9.15 found within your PATH

Рекомендуется, чтобы была поддержка SNMP:

  • библиотеки netsnmp («netsnmp libraries») или в качестве альтернативы – двоичный файл snmpget

Необходимо установить все важные компоненты для Debian GNU/Linux ‘Buster’ 10:

apt-get install gcc pkg-config libssh-gcrypt-dev libgnutls28-dev \
libglib2.0-dev libjson-glib-dev libpcap-dev libgpgme-dev bison libksba-dev \
libsnmp-dev libgcrypt20-dev redis-server

Компиляция OpenVAS

Если пользователь установил необходимые библиотеки в нестандартное место, ему стоит не забыть добавить переменную среды PKG_CONFIG_PATH в расположение файлов pkg-config перед настройкой:

export PKG_CONFIG_PATH=/your/location/lib/pkgconfig:$PKG_CONFIG_PATH

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

mkdir build
cd build

Затем он настраивает сборку:

cmake -DCMAKE_INSTALL_PREFIX=/path/to/your/installation ..

Или может использовать определенный путь для установки по умолчанию — /usr/local:

cmake ..

Это нужно сделать только один раз.

После этого будут полезны следующие команды:

make                # build the scanner
make doc            # build the documentation
make doc-full       # build more developer-oriented documentation
make tests          # build tests
make install        # install the build
make rebuild_cache  # rebuild the cmake cache

Стоит обратить свое внимание, что возможно придется выполнить команду «make install» от имени Root, особенно если был указан префикс, для которого у данного пользователя нет нужных разрешений.

Чтобы очистить среду сборки, следует удалить содержимое каталога сборки, созданного выше.

Параметры конфигурации

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

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

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

Настройка OpenVAS

Для настройки OpenVAS необходимо выполнить следующие шаги:

  • Опционально: пользователь может изменить настройки сканера по умолчанию, выбрав их в файле $prefix/etc/openvas.conf. Если этот файл не существует, то используются настройки по умолчанию. Пользователь может просмотреть их с помощью команды «openvas-s». Вывод этой команды является допустимым файлом конфигурации. Страница руководства («Man OpenVAS») содержит подробную информацию о доступных настройках, в том числе о возможных ограничениях доступа сканера к целям сканирования и интерфейсам.
  • Для запуска сканирования уязвимостей понадобится целый набор тестов на уязвимость сети (NVT), которые могут быть выполнены OpenVAS. Изначально пользовательская коллекция NVT будет пустой. Рекомендуется выполнить синхронизацию со службой NVT перед первым запуском программы.

Пользователь выполняет данную команду, чтобы получить начальную коллекцию тестов NVT:

greenbone-nvt-sync

Этот инструмент будет использовать Greenbone Security Feed в случае наличия ключа Greenbone. В противном случае – будет задействована информация сообщества, которая доступна там.

Нужно также обратить свое внимание, что для успешной синхронизации данных понадобится инструмент rsync.

Каналы NVT обновляются регулярно. Пользователю также следует как можно чаще обновлять свою коллекцию NVT для обнаружения новых угроз.

  • Сканеру будет нужен работающий сервер Redis для временного хранения информации, собранной на отсканированных хостах. Поддерживаются версии Redis 3.2 и более новые. Просмотрев файл doc/redis_config.txt, пользователь сможет узнать, как настроить и запустить сервер.

Самый простой и надежный способ запустить Redis на Ubuntu и Debian – это использовать systemd:

sudo cp config/redis-openvas.conf /etc/redis/
sudo chown redis:redis /etc/redis/redis-openvas.conf
sudo echo "db_address = /run/redis-openvas/redis.sock" > <install-prefix>/etc/openvas/openvas.conf
sudo systemctl start [email protected]
  • Служба Greenbone Vulnerability Management (GVWD) работает как клиент OSP для подключения к сканерам и управления ими. OpenVAS не действует как служба OSP — для этого нужен модуль OSPD-OpenVAS. Фактические пользовательские интерфейсы (например, GSA или GVM-Tools) будут взаимодействовать только с gvwd и ospd-openvas, а не со сканером. Пользователь может запустить OpenVAS для загрузки и установки плагинов в Redis, используя следующую команду:
openvas -u

Примечание: ospd-openvas выполнит обновление автоматически.

  • Стоит также сказать, что пользователь может запускать OpenVAS от имени пользователя без высоких привилегий, однако рекомендуется делать это только от имени Root, поскольку ряд тестов сетевых уязвимостей (NVT) требуют данных привилегий Root для выполнения необходимых операций, таких как Packet injection.

Поскольку OpenVAS будет запущен из процесса ospd-openvas с помощью sudo, для файла sudoers требуется следующая настройка:

sudo visudo

Нужно также добавить эту строку, чтобы разрешить пользователю, работающему с ospd-openvas, запускать программу OpenVAS с правами Root:

<user> ALL = NOPASSWD: <install prefix>/sbin/openvas

Если пользователь успел добавить определенный префикс, следует также обновить путь в файле sudoers:

Defaults        secure_path=<existing paths...>:<install prefix>/sbin

Конфигурация журнала

При возникновении всех проблем сканер по умолчанию записывает данные журнала в файл:

<install-prefix>/var/log/gvm/openvas.log

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

Данные журнала можно хранить в определенном файле:

<install-prefix>/etc/openvas/openvas_log.conf

Конфигурация делится по доменам, подобно этому примеру:

[sd   main]
prepend=%t %p
prepend_time_format=%Y-%m-%d %Hh%M.%S %Z
file=/var/log/gvm/openvas.log
level=128

Поле «level» ответственно за объем записываемых данных в журнал. Его значение может варьироваться:

4  Errors.
  8  Critical situation.
 16  Warnings.
 32  Messages.
 64  Information.
128  Debug.  (Lots of output.)

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

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

Ведение системного журнала может быть активно в каждом домене, например:

[sd   main]
prepend=%t %p
prepend_time_format=%Y-%m-%d %Hh%M.%S %Z
file=syslog
syslog_facility=daemon
level=128

Статический анализ кода с помощью Clang Static Analyzer

Если пользователь хочет использовать статический анализатор Clang, чтобы выполнить статический анализ кода, он может сделать это, добавив префикс команд конфигурации и сборки с помощью scan-build:

scan-build cmake ..
scan-build make

Инструмент даст ему подсказку о том, как запустить веб-браузер и просмотреть полученные результаты.

Рекомендуется выполнить этот анализ в отдельном пустом каталоге сборки и очистить его перед началом нового сканирования.

Примечание: если это новая практика или читатель мало понимает в сборках, рекомендуется использовать Greenbone Security Manager TRIAL (GSM TRIAL), подготовленную виртуальную машину с легко доступной настройкой. Информацию о ней можно прочитать здесь.

Техническая поддержка

По любым вопросам использования OpenVAS следует обращаться к Greenbone Community Portal. Если пользователь обнаружил проблему с программным обеспечением, нужно отправить отчет о ней на GitHub. Если пользователь является клиентом Greenbone, он может также направить свой вопрос к Greenbone Support Portal.

Мейнтейнер

OpenVAS поддерживается компанией Greenbone Networks GmbH.

Пользователи могут создать свой запрос на небольшие улучшения программы в GitHub. Более крупные изменения необходимо сначала обсудить с командой разработчиков в разделе «Вопросы».

Лицензия

Этот модуль имеет только лицензию GNU General Public License v2.0. Вопросы копирайтинга программы описаны здесь.

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

2 комментария на “Сканер уязвимостей OpenVAS

  1. статья не актуальная, команды неверные (-bash: openvas-nvt-sync: command not found), зеркало с базой уязвимостей давно не активно.
    заметка выглядит как копипаста года так 2017го, причем непроверенная

Добавить комментарий для Кирилл Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *