Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 130, ОКТЯБРЬ 2009 г.

Под прессом IT-рисков. Обзор Open Source систем управления уязвимостями

Сергей «grinder» Яремчук (grinder@synack.ru)

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

Перед тем как начать обзор, скажем несколько слов о назначении систем управления уязвимостями (Vulnerability Management). Чем они отличаются от привычных инструментов пен-тестера и администратора? Сегодня защита сетей строится на, в общем-то, стандартном наборе: межсетевой экран, корпоративные антивирусы, система обнаружения атак Snort с консолью BASE, программа поиска известных уязвимостей Nessus/OpenVAS, сетевой сканер Nmap и некоторые другие. В отдельности каждая из этих программ/сервисов отлично выполняет свои функции, выдавая специалистам внушительный объем информации. Анализировать и сопоставлять полученные данные приходится в полуавтоматическом режиме. Для уточнения ситуации запускается одна утилита, затем еще одна и т.д. В результате для полного понимания текущей обстановки в сети требуется перевернуть горы отчетов, созданных разноплановыми программами, на что уходит невероятное количество времени.

Еще одна проблема: нужно постоянно отслеживать появление уязвимостей в используемых ОС и приложениях, оценивать восприимчивость ПО к отдельным типам сетевых атак, держать в уме, какие обновления установлены, а какие еще предстоит накатить. Что касается поиска известных уязвимостей, то его можно выполнять самостоятельно, подписавшись на рассылку одного или нескольких специализированных ресурсов. Это, конечно же, Security Focus (www.securityfocus.com/vulnerabilities) и OSVDB базы (Open Source Vulnerability DataBase, osvdb.org), содержащие уязвимости с 2002 года. Для удобства в последнем случае можно воспользоваться утилитой HackerStorm OSVDB Tool (www.hackerstorm.com). Также стоит упомянуть о базе обнаруженных проблем безопасности в ПО, созданной под покровительством Национального Института Стандартов и Технологий, США (nvd.nist.gov).

Но если произведена еще не описанная ни в одном источнике атака, либо сеть пострадала от «проделок» инсайдера, то проблемы можно обнаружить только на основе собранных статистических данных. Причем без автоматизации процесса, снимающей нагрузку с IT-персонала и предоставляющей возможность систематизировать накопленную информацию, здесь не обойтись. Так появились новые разработки, задача которых - привести все полученные разными приложениями данные в удобный для анализа вид. Подобные программы являются комплексным решением и включают средства инвентаризации ресурсов сети, мониторинга систем, системы обнаружения и отражения атак, генерации отчетов и т.д.
Существует весьма большой список коммерческих решений - Microsoft Security Response Center (MSRC), IBM Internet Security Systems, Lumension Vulnerability Management (ранее PatchLink), QualysGuard, Symantec Control Compliance Suite (SCCS), MaxPatrol от Positive Technologies и многие другие. При всех своих достоинствах стоят они весьма недешево, и проще обойтись свободными аналогами. О них и поговорим.

Управление защитой с OSSIM

Главная задача проекта OSSIM (Open Source Security Information Management, ossim.net) - максимальная интеграция разнородных утилит в пределах единой открытой архитектуры. В результате появляется возможность накоплять данные, находить и отслеживать четкие взаимосвязи в собранной информации. Источниками служат практически любые утилиты, способные обрабатывать сетевую или системную информацию в реальном времени. В настоящее время список интегрированных в OSSIM инструментов довольно широк: Arpwatch, P0f, pads, Nessus/OpenVAS, Ntop, Snort, tcptrack, tcpdump, Nmap, Spade, Nagios, Osiris, OCSInventory-NG, OSSEC, RRDTool (дополнительно возможен анализ данных, собираемых preludeIDS, NTsyslog, Snare, Cisco Secure IDS). Данные могут быть доставлены при помощи разных способов: syslog, plain log, SNMP, OPSEC, сокет и пр. – и администратор может получить информацию о любом событии в сети, хосте или устройстве.

Отдельная система подвергается детальному анализу, для чего собирается информация о типичном ее использовании (например, средний трафик за день), активности пользователя (почта, аська, http, ftp и т.п.) и производится мониторинг сессии в реальном времени с возможностью отобразить характер активности машины в Сети. Агенты OCSInventory-NG поставляют данные об установленном на каждом компьютере оборудовании и ПО. На основании данных мониторинга OSSIM следит за связями отдельных компьютеров и вычисляет составной риск. Для этого строятся графики постоянных ТСР-сессий, графики изменяющихся UDP, TCP и ICMP связей, что позволяет идентифицировать сетевые атаки, совершаемые одновременно на несколько компьютеров. В результате OSSIM может работать как система предотвращения атак (IPS, Intrusion Prevention System), основываясь на коррелированных данных, собранных со всех источников. Неплохое дополнение к оборонительному арсеналу!

Типичная система на OSSIM состоит из:

  • сервера - производит управление корреляционным движком, нормализацию данных, оценку риска и приоритета событий;
  • демона контроля framework, работающего на сервере и связывающего отдельные части вместе;
  • базы данных – обеспечивает занесение информации в реляционную базу данных и корреляцию данных (основные компоненты - MySQL, OSSIM, Snort/ACID и Phpgacl);
  • агентов – призваны объединить и обеспечить занесение в базу данных информации, снятой с различных сенсоров: Snort, Pads, Ntop, Tcptrack, p0f, Arpwatch, Nessus и пр. (список плагинов доступен на страничке www.alienvault.com/home.php?id=plugins);
  • веб-консоль управления – управление работой всей системы, анализ и выдача данных, оценка риска (Apache, PHP c ADOdb, Phpgacl, Rrdtool, Mrtg, ACID, Nessus, Nmap, Ntop, FPDF и пр.)

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

Реализовано три уровня доступа к настройкам и функциям - сетевой администратор, системный инженер и специалист защиты (CSO, Chief Security Officer).

В качестве системы для базирования OSSIM подойдет любая ОС, на которой могут быть запущены все или отдельные компоненты; логичнее использовать предпочитаемый дистрибутив Linux. Проект для установки и использования OSSIM предлагает исходные тексты (архив и доступ к CVS) и установочный ISO-образ - AlienVault Open Source SIM Installer (32- и 64-битные версии размером ~600 Мб). Первый вариант подходит для случаев, когда нельзя выделить под сервер OSSIM отдельный компьютер; установка осуществляется в рабочую систему. Его можно рекомендовать для небольших сетей. На сайте имеются немного устаревшие инструкции по установке OSSIM из исходных текстов для Debian, Gentoo и Fedora. Для человека, ориентирующегося в основных вопросах, установка не вызовет сложностей. Хотя, учитывая большое количество разнородных приложений, предназначенных для сбора и вывода информации, а также необходимость реализации всех зависимостей, процесс потребует очень внимательного подхода. Этот вариант можно рекомендовать тем, кто хочет действительно разобраться, как работает OSSIM.

Поскольку OSSIM собирает достаточно много данных, лучше для него выделить отдельную систему (разработчики рекомендуют именно этот вариант). Установка в этом случае обычно производится на чистый компьютер или виртуальную машину и занимает около 10 минут.

Основой SIM Installer является Debian 5.0.1 «Lenny». Надо сказать, загрузочное меню выполнено не очень удачно. Фон сделан в виде описания дистрибутива (черные буквы на белом), поэтому элементы выбора варианта установки, выводимые также черным шрифтом (Install, Graphical Install, Advanced Options и Help), практически не видны. Далее идет обычная установка Debian - выбираем в установщике язык, раскладку, страну; ждем, пока закончится процесс развертывания системы, и настраиваем сеть (IP-адрес, маска, DNS-сервер, имя узла). По умолчанию программа установки предлагает использовать весь диск, но можно выбрать и ручную разметку. Несмотря на то, что в меню можно выбрать графический вариант установки, я бы советовал остановиться на псевдографике. Пункты те же, возможности те же, не знаю, что разработчики сделали с инсталлером Debian, но в графическом режиме он конкретно глючит. После установки система автоматически перезагрузится, затем некоторое время будет затрачено на первичную инициализацию компонентов OSSIM.

Знакомимся с OSSIM поближе

Команда «netstat -ant» после установки покажет, что открыто с десяток дополнительных портов. Ряд из них соответствует приложениям, используемым OSSIM в качестве сенсоров для сбора данных. Файлы настроек различных компонентов OSSIM находятся в каталоге /etc/ossim; для удобства они разложены по подкаталогам и назначению - server, framework, agent и update. Настройки сервера находятся в файле ossim_setup.conf, отредактировать который можно вручную, или выполнив команду ossim-setup. В этом файле находятся параметры для подключения к серверу и MySQL, настройки сенсоров. Большинство параметров внутри можно назвать стандартными, и они должны быть понятны без пояснений. Так, строка detectors определяет приложения, используемые в качестве сенсоров (чем больше таких датчиков, тем лучше). После установки к OSSIM подключен только один интерфейс, а значит, все утилиты прослушивают сеть только на нем:

# vi /etc/ossim/ossim_setup.conf

[sensor]
detectors=snare, p0f, osiris, arpwatch, snortunified, pads, ssh, pam_unix, rrd, sudo, iptables, nagios
interfaces=eth0
monitors=nmap-monitor, ntop-monitor, ossim-monitor

При необходимости добавляем и другие, просто перечислив через запятую:

interfaces=eth0,eth1

Аналогичные установки, только для агентов, ищи в файле agent/config.cfg. Для подключения к серверу OSSIM агенты используют порт 40001; изменить его можно, отредактировав параметр port:

# vi /etc/ossim/agent/config.cfg

[output-server]
enable = True
ip = 192.168.17.10
port = 40001

Теперь открываем веб-браузер и заходим на страницу http://server; для регистрации используем admin/admin. После небольшого, но весьма полезного ликбеза по использованию дистрибутива попадаем в консоль управления. Практически сразу будет доступен ряд отчетов.

Панель визуально разбита на три области. Справа находится список функций OSSIM: Dashboards (выводятся риски, здесь видно появление новой ОС или сервиса), Incidents, Events (аномалии, события), Monitors (мониторинг сети и систем), Reports (отчеты по узлам, оборудованию, ПО, сети), Policy (настройка политик и действий, запуск программы или отправка e-mail), Correlation, Configuration, Tools (бэкап, ссылки для закачки клиентов, сканер сети).

Настроек достаточно много. Первым делом следует правильно указать сети, контролируемые OSSIM. Это можно сделать в Policy -> Policy. Далее переходим во вкладку Network и запускаем сканирование сети Tools - NetScan, активация Enable full scan позволит провести более глубокое сканирование. Заносим найденные системы в список контроля, все они будут показаны во вкладке Policy –> Policy -> Host. При необходимости заносим данные о системах вручную. Информацию по сетям и хостам затем можно использовать при настройке политик. Чтобы установить агента на удаленную систему, переходим в Tools -> Downloads, где в зависимости от версии ОС выбираем компоненты, качаем и ставим.

Хочу обратить внимание, что в каждой вкладке доступен Help; там со скринами показано назначение основных настроек. Даже при базовом знании английского разобраться будет несложно.

SIGVI: контроль угроз

Проект SIGVI (sigvi.upcnet.es) разрабатывается в политехническом университете Каталония и представляет собой Open Source приложение (лицензия GNU GPL), предназначенное для обнаружения, предупреждения и управления угрозами. Принцип работы SIGVI прост: программа периодически загружает новые оповещения об уязвимостях (для этого используются стандарты CVE, CPE и CVSS протокола SCAP, – см. врезку), а затем полученная информация в соответствии с настройками фильтров отправляется администратору. Источники, откуда берутся сообщения, настраиваются во вкладке Tools - Sources.

Чтобы не рассылать лишние данные, SIGVI должен знать об используемых сервисах. Это можно настроить вручную или использовать инструмент NSDi (Network Services Discoverer), который автоматизирует процесс сбора данных. Для каждой уязвимости, затрагивающей одну из используемых на серверах программ, SIGVI создает сообщение тревоги (alert). Принимается во внимание фактор риска и свойства сервиса. Фактор риска рассчитывается на основании вектора CVSS. Вектор применяет классификацию по шкале критичности 0 - 10, определяющей степень риска (кстати, эти данные использует сканер Nessus и другие подобные решения). При этом учитывается доступ (локальный, удаленный), сложность атаки (квалификация атакующего, настройки систем и т.п.), аутентификация, наличие рабочего эксплоита, обновлений, закрывающих уязвимость и прочие параметры. Полное описание стандарта CVSS ты найдешь на сайте Security Lab (www.securitylab.ru/analytics/355336.php). А вот чтобы определить, в каких случаях оповещать администратора, используются фильтры. Например, их можно настроить так, что сообщение будет генерироваться только при наличии готового эксплоита. Все полученные предупреждения заносятся в базу данных и доступны в любое время. Реализован поиск по нескольким критериям и большое количество отчетов.

Интерфейс SIGVI написан при помощи PHP5, и для установки подойдет любая LAMP (Linux+Apache+MySQL+PHP5) система. В качестве базы данных могут быть использованы MySQL, PostgreSQL, SQL Server, Oracle, Informix и некоторые другие СУБД. Сам процесс установки, можно сказать, стандартен для программ такого рода. Распаковываем архив в корневой каталог веб-сервера и устанавливаем нужные права (веб-сервер у меня работает от имени www-data):

$ sudo tar xzvf sigvi-1.3.02b.tgz -С /var/www/
$ sudo chown -R www-data:www-data /var/www/
$ sudo chmod -R 750 /var/www/sigvi

Создаем базу данных с таблицами:

$ mysql -u root -p < sigvi-1.3.02b.sql

Корректируем переменные в conf/app.conf.php:

# vi /var/www/sigvi/conf/app.conf.php

define("HOME","/sigvi"); // домашний каталог
define("ADM_EMAIL","sigvi <root@localhost>"); // почта админа
define("SERVER_URL","http://localhost"); // URL сервера
// тип БД - mysql, mysqli, postgres, oracle, все варианты описаны в include/dbms
define("DBType","mysqli");
// узел, на котором находится БД
define("DBServer","localhost");
define("DBName","sigvi");
// пользователь и пароль (меняем обязательно)
define("DBUser","sigvi");
define("DBPass","NEWpassword");
// тип аутентификации, по умолчанию внутренний, можно выбрать LDAP
define("authMethod","dbms");
//define("ldapServer","ldaps://your.ldap.server");

Изменив пароль в файле, не забываем обновить его в базе данных:

mysql> UPDATE user SET Password=PASSWORD ('NEWpassword') WHERE user='sigvi';

Как видно из конфига, доступ к SIGVI возможен по записям внутренней базы пользователей или внешней (LDAP, СУБД).В программе реализовано три группы пользователей - администратор SIGVI (полный доступ), администратор групп (проверка алертов, работа с пользователями) и администратор сервера (конечный пользователь, получающий оповещения).

Что еще?

OSSIM и SIGVI являются наиболее популярными и функциональными программами, хотя, возможно, и несколько сложными в освоении. Поэтому кратко расскажу о других решениях.

Принцип работы Advisory Check (ADVCHK, advchk.unixgu.ru) аналогичен SIGVI. Программа собирает сообщения о новых уязвимостях с разных источников, в качестве которых могут выступать RSS, RDF и XML-каналы. Затем полученную информацию сравнивает со списком установленных приложений, полученных от менеджера пакетов (поддерживается pkg_info, dpkg, rpm, portage, lpp, реестр Windows и некоторые другие), – и отсылает сообщение, если обнаруживается уязвимость. Предусмотрено и ручное добавление списка программ, но такой подход даже в малых сетях не доставит много радости. Возможен контроль удаленных систем: для этого используется несколько способов - SSH, Windows-RPC и Nmap.
ADVCHK написан на Perl'е и весит всего 15 Кб. Его установка достаточно проста: нужно установить библиотеки Getopt::Std, LWP::UserAgent и Storable, затем распаковать архив и запустить «./install.sh». Для мониторинга WinNT/2k/XP/2k3 используется WinExe, который можно скачать с сайта eol.ovh.org/winexe. Список источников описан в файле advchk_addfeeds.sh, и при необходимости его можно уточнить.

RogueScanner (www.paglo.com/opensource/roguescanner) предназначен для обнаружения несанкционированного подключения устройств к WiFi-сети. При работе используется система классификации устройств (Collaborative Device Classification System, имеет данные о более чем 1 млн. устройств), которая позволяет автоматически обнаруживать и идентифицировать типы устройств в реальном времени. Чтобы собрать максимальное количество данных об устройстве, используется несколько методов, – в результате исследователь получает сведения о производителе, модели, IP/MAC-адрес, DNS или NetBIOS-имя. Собранная информация отправляется на сервер. RogueScanner также подходит для инвентаризации устройств в сети.

Анализатор трафика Sguil

Хотя Sguil (sguil.sf.net) напрямую не относится к Vulnerability Management, его наличие дает в руки специалистов хороший инструмент, позволяющий просматривать ситуацию в сети в реальном времени. Построен он по клиент-серверной архитектуре. Информация для анализа собирается сенсорами, в качестве которых может выступать Snort. В отличие от BASE, все собранные данные сохраняются в MySQL и отображаются на клиенте мгновенно. Администратор может сразу видеть проблемы в сети. Клиент написан на Tcl/Tk и будет работать на любой системе, куда портированы соответствующие библиотеки - Linux, *BSD, Solaris, Mac OS X и Windows.

Протокол SCAP

Протокол автоматизации управления данными безопасности (The Security Content Automation Protocol, scap.nist.gov) – это набор открытых стандартов, определяющих технические спецификации для представления и обмена данными по безопасности. Эти данные могут быть использованы для автоматизации процесса поиска уязвимостей, оценки соответствия технических механизмов контроля и измерения уровня защищенности. SCAP состоит из следующих стандартов:

  • Типовые уязвимости и ошибки конфигурации (Common Vulnerabilities and Exposures, CVE);
  • Список типовых конфигураций (Common Configuration Enumeration, CCE);
  • Список типовых платформ (Common Platform Enumeration, CPE);
  • Единая система определения величины уязвимостей (Common Vulnerability Scoring System, CVSS);
  • Расширяемый формат описания списка проверки конфигурации (Extensible Configuration Checklist Description Format, XCCDF);
  • Открытый язык описания уязвимостей и оценки (Open Vulnerability and Assessment Language, OVAL).

INFO

OSSIM позволяет наблюдать за узлами в сети и их взаимодействиями, получать отчет об аномалиях, выявленных в системе, например, смене MAC-адреса, изменении версии ОС или службы.

Для быстрой установки OSSIM лучше использовать AlienVault Open Source SIM Installer, который построен на Debian и включает все необходимое.

WWW

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001