Сканеры уязвимости позволяют в автоматическом режиме произвести оценку эффективности защиты систем. OpenSource решение OpenVAS по своим возможностям не уступает коммерческим аналогам.
Интерес к сканерам уязвимости или безопасности в последнее время заметно утих, хотя их значимость от этого не изменилась ни сколько. Это по прежнему нужный инструмент в руках администратора. Хотя некоторые администраторы игнорируют такой класс программ, обычно ссылаясь на то что они периодически обновляют ПО и им бояться нечего. На самом деле наличие свежей версии программы вовсе не означает отсутствие проблем. И например уязвимость может проявляться только при определенных настройках, версия ПО роли не играет. Также критически сервисы многие стараются не трогать пока работает. Сканер уязвимости здесь будет очень кстати, так как про такие системы бывает просто забывают.
Сами сканеры уязвимости являются логическим продолжением сетевых сканеров, они умеют обнаруживать узлы и идентифицировать сервисы (по банеру, заголовку и т.д.) и проверять их по базам известных уязвимостей и на наличие специфических дыр связанных с неправильной настройкой. Для некоторых проверок может производится имитация атаки (тесты безопасности). По итогам администратор получает отчет, в котором наглядно показана текущая ситуация. Нужно помнить что сканер уязвимости это не панацея, он не может найти то чего нет в базе.
Список продуктов очень велик Nessus vulnerability scanner, Xspider, GFI LanGuard, SAINT, BeyondTrust Retina Network Security Scanner и другие. Практически все решения ранее предлагавшиеся бесплатно сегодня коммерцизировались и максимум что можно получить это ограниченную версию. Поэтому наличие бесплатных программ вроде OpenVAS (openvas.org) очень кстати.
Возможности OpenVAS
Распространяемый по лицензии GNU GPL OpenVAS (OpenSource Vulnerability Assessment Scanner) является форком популярного сканера безопасности Nessus, изначально открытого, но в 2005 году ставшего закрытым продуктом. И хотя они в чем то сохранили схожесть, на данный момент это совершенно разные решения. С версии 6 в OpenVAS реализована новая концепция управления информацией о безопасности. В основе работы OpenVAS лежит коллекция NVT (Network Vulnerability Tests) тестов безопасности (более 30000), позволяющих выявить уязвимость. Описание известных проблем затем проверяется по базам автоматизированного управления уязвимостями CVE и OpenSCAP (Security Content Automation Protocol). Сам OpenSCAP (open-scap.org) поддерживает несколько спецификаций: XCCDF, OVAL, ARF, CCE, CVSS и CVE.
Как и Nessus OpenVAS построен по клиент-серверной схеме и состоит из нескольких из нескольких сервисов и инструментов. Ядром является сервис OpenVAS Scanner, который собственно и выполняет сканирование (работает на 9391 порту). Причем в процессе проверок систем используются известные продукты: nmap и pnscan, ike-scan, pnscan, strobe и другие. Вся интеллектуальная часть содержится в OpenVAS Manager (порт 9390), которая может собирать и анализировать результаты собранные с нескольких установок OpenVAS. Это основной сервис который обеспечивает полной контроль над уязвимостями, реализованы управление политиками, сканирование по расписанию, обнаружение ложных срабатываний, представление отчетов в самых разных форматах (XML, HTML, LateX и др.). Для управления сканерами используется протокол OTP (OpenVAS Transfer Protocol), сам может получать команды по XML подобном OpenVAS Management Protocol (OMP). Все настройки и собранная информация хранится централизованно в SQL базе данных (SQLite).
Управление всеми функциями (основные учетными записями и потоками OpenSCAP ) производится через OpenVAS Administrator (порт 9393), который реализован в виде инструмента командной строки или может работать как сервис. Реализованы три клиентские части: консольная OpenVAS CLI (omp), веб-интерфейс Greenbone Security Assistant (GSA) (порт 443 или 9392, используется свой microhttpd веб-сервер) и настольный Qt клиент Greenbone Security Desktop (GSD). При этом CLI и GSD доступны для Linux и Windows.
Кроме этого поддерживается интеграция с другими продуктами, класса ISMS (Information Security Management System) и системами мониторинга (Nagios).
Мажорные обновления OpenVAS выходят каждые 12 месяцев.
Развертывание OpenVAS
Проект для установки предлагает исходные тексты, также на сайте OpenVAS доступны ссылки на репозитарии для CentOS/RedHat 6, Debian 6-7, Fedora 15-20, openSUSE. Открыв репозиторий (download.opensuse.org/repositories/security:/OpenVAS:/UNSTABLE:/v6/) для Debian находим ссылки на репозитарии для Ubuntu 12.10-13.04, SUSE Linux Enterprise 11 и Mandriva 2011. Также разработчики Ubuntu предлагают неофициальный репозитарий для этой ОС (launchpad.net/~openvas). Для проверки правильности установки предлагается специальный скрипт openvas-check-setup (svn.wald.intevation.org/svn/openvas/trunk/tools/openvas-check-setup) который может обнаружить любые ошибки в конфигурации и наличие нужных служб, а также выдает рекомендации по их устранению.
Также предлагается OVA образ для виртуальных машин который совместим с VirtualBox и ESXi (внутри Debian Squeeze). В большинстве случаев это самый удобный вариант, его и рассмотрим далее. В системе несколько аккаунтов по умолчанию: root/root, openvas/openvas и администратор веб-панели admin/admin. Все пароли следует обязательно изменить при помощи команды passwd и для admin Extras/My Settings. После загрузки виртуальной машины заходим как пользователь root, после чего обновляем ОС:
# apt-get dist-upgrade
# apt-get upgrade
Раскладка в локальной консоли не очень удачная (ее можно поменять в /etc/default/keyboard), поэтому лучше все настройки системы и запуск консольных команд производить удаленно через ssh.
# apt-get install openssh-server
Адрес для входа в веб-интерфейс автоматически отображается в консоли после регистрации пользователя openvas, его также можно узнать при помощи ifconfig.
Далее рекомендуется изменить ключи:
# gpg --homedir=/usr/local/etc/openvas/gnupg --delete-secret-keys 94094F5B
# gpg --homedir=/usr/local/etc/openvas/gnupg --delete-keys 94094F5B
# openvasmd --create-credentials-encryption-key
# /etc/init.d/openvas-manager restart
Этого достаточно. Более подробная информация по некоторым настройкам приложений можно получить в файлах INSTALL и README в подкаталогах /root/build, в меню Greenbone (Help – Contents или нажав знак «?» в подменю), и конечно же на сайте проекта.
Производим сканирование
Интерфейс GSA вообще не сложен, и хотя не локализован сориентироваться в настройках очень легко. В самом верху расположено меню содержащее 7 пунктов соответствующих определенной задаче или настройкам. После регистрации можно сразу приступить к проверке, в этом поможет мастер встречающий в окне приветствия, по нажатию на фиолетовый значок в панели Tasks. Поле «Quick start: Immediately scan an IP address» (рис.1) позволяет сразу же создать задачу для проверки узла или сети. Для этого нужно просто указать IP или имя. Сканирование производится с настройками по умолчанию (Full and fast), выбрав гиперссылку рядом сразу можем просмотреть установки.
Сами политики сканирования настраиваются в Configuration – Scan Configs. Здесь уже имеется 5 политик: одна пустая (empty) и 4 преднастроенные. По количеству тестов (на момент написания этих строк 33144) преднастроенные политики между собой не отличаются. Разница лишь в настройках сканера. Готовые политики делятся также на fast и deep. Вторые не учитывают результаты предыдущих тестов и вся процедура каждый раз повторяется сначала. По опыту скажу что deep редко когда выдает что-то особенное, но вот время сканирования увеличивается в разы. Поэтому при первом сканировании достаточно использовать Full and fast или Full and fast ultimate, в последующем критические системы можно (для самоуспокоения) дополнительно проверить deep политиками. Настройки конкретной политики легко узнать выбрав в поле Actions фиолетовую кнопку «Scan Config Detail» (рис.2).
Настройки готовых политик менять нельзя, но их можно экспортировать (зеленая Export Scan Config) или клонировать чтобы создать на их основе свою, для просто нажимаем оранжевую Clone. В результате появляется еще одна политика с окончанием Clone 1. Используя кнопку Edit Scan Config изменяем параметры. Их здесь очень много, все NVT тесты сгруппированы по различным типам операционных систем и сетевого оборудования, содержат настройки nmap, ping, snmpwal, настройки логина, использование ARP, проверки паролей и много другого. Конечно некоторое время потребуется чтобы во всем разобраться (если нет желания использовать установки по умолчанию). Сами тесты могут быть динамическими (добавляются самостоятельно) или статическими.
В подразделе Configuration имеется еще ряд полезных пунктов с которым следует ознакомится, так как затем настройки будут фигурировать в задании. Например, в Targets — Port List задается список портов, которые будут проверяться на конечных узлах. Здесь 9 преднастроек, по умолчанию в задании используется OpenVAS Default. В Targets – Credential указываются учетные записи пользователей от имени которых будет производится подключение к удаленным узлам и проверка системы (если пользователь доменный, то логин указываем в формате домен\логин). Для аутентификации можно использовать как логин и пароль, так и публичный/приватный ключ. В Configuration – Slave добавляются дополнительные OpenVAS Manager, который будет использоваться для проверки узлов. Задания можно запускать вручную, но лучше это производить автоматически во время меньшей загруженности систем. Для этого следует в Configuration – Schedules создать задачи. Выбираем New Schedule и в предложенных полях указываем название, время первого запуска, часовой пояс (если не совпадает с текущим), и периодичность.
Теперь настраиваем узлы которые будут сканироваться. Переходим в Configuration – Target, здесь находим готовое задание для проверки локальной системы и созданное при помощи Quick start. Нажимаем New Target (звездочка) и указываем название, вписываем узлы ( IP, диапазон, имя узла), Port List, подключаем Credential. Возможно прописать все узлы в текстовый файл, который и указать при помощи «From file».
Все готово чтобы создать новую задачу проверки безопасности. Переходим в раздел Scan Management — New Task, и заполняем поля (рис.3): указываем имя и описание, в выпадающих списках выбраем все, что мы раньше настраивали — политику сканирования, узлы, расписание и т. д.
Некоторые параметры подписаны как optional их можно не трогать. Нажимаем Create Task, задача появляется в Scan Management — Task. Текущее состояние отображается в поле Status, в поле Actions находятся кнопки позволяющие управлять задачей: запустить, остановить, изменить настройки, клонировать, экспортировать и т. д. Нажимаем Start и ожидаем окончания сканирования (перед этим лучше установить автообновление окна, чтобы видеть прогресс). По окончании сканирования можем просмотреть отчет, для этого следует нажать на Task Detail (рис.4).
Отчет содержит две позиции Threat (угрозы) и Scan Results. Все предупреждения разбиты на 4 позиций по уровню опасности. Основное внимание следует обратить на High, Medium и Low, которые собственно и указывают на проблемы. Отчеты None, Log и False Pos показывают обычно предупреждения о неудачных операциях. Подробный отчет можно увидеть нажав Details, и затем выбрать формат для экспорта (PDF, TXT, HTML, XML и другие) и при необходимости фильтры. Кнопка Compare позволяет сравнить отчеты. Это очень полезная операция, позволяющая увидеть что изменилось со времени последнего сканирования, например оценить эффективность принятых мер безопасности.
В Asset Management — Hosts доступен еще один вид отчета Prognostic Report позволяющий оценить все предупреждения относящиеся к конкретнуму узлу полученные в ходе предыдущих проверок. Вполне вероятно что некоторые отчеты сканера могут содержать ложные срабатывания, чтобы они не мешали используется раздел Override В Note можно прописывать некоторое объяснение которое привязывается к NVT тесту.
Периодически следует обновлять NVT/SCAP/CERT базы, все настройки находятся в Administration, в трех одноименных разделах. Кроме этого можно использовать консольные команды:
# openvas-nvt-sync
# openvas-scapdata-sync
# openvas-certdata-sync
# openvassd
# openvasmd --rebuild
# killall openvassd
# /etc/init.d/openvas-scanner restart
# /etc/init.d/openvas-manager restart
# /etc/init.d/openvas-administrator restart
# /etc/init.d/greenbone-security-assistant restart
Для удобства их лучше запускать при помощи cron, обновляя базы перед сканированием.
***
OpenVAS это очень простой в использовании, не требующий серьезного обучения и настроек и к тому же совершенно бесплатный продукт, позволяющий на порядок поднять защищенность сети.