Контролируем безопасность сети с помощью OSSIM::Журнал СА 5.2005
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9943
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8154
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8259
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5226
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5910
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Контролируем безопасность сети с помощью OSSIM

Архив номеров / 2005 / Выпуск №5 (30) / Контролируем безопасность сети с помощью OSSIM

Рубрика: Безопасность /  Механизмы защиты

Сергей Яремчук СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС

Контролируем безопасность сети с помощью OSSIM

Сегодня для полноценной защиты сети уже недостаточно тандема «межсетевой экран + система обнаружения атак». Для всестороннего контроля и анализа ситуации необходимо задействовать разные инструменты. Но только в том случае, когда возможно собрать все данные в одном месте, можно получить действительно полную информацию о событиях, происходящих в сети. Разработчики системы OSSIM (Open Source Security Information Management) предоставили системным администраторам такую возможность.

Стандартом де-факто для обеспечения безопасности сети считается использование систем обнаружения атак. В мире открытого кода несомненным лидером среди такого рода продуктов является Snort. Это весьма функциональный и понятный инструмент, который может очень многое рассказать о происходящем в подконтрольной сети. Но все же несмотря на достоинства систем обнаружения атак, они не всегда могут дать полную картину происходящего. Довольно часто такой инструмент, как tcptrack, способен рассказать о проблемах сети гораздо больше. Кроме того, внушительный объем выдаваемой СОА информации и ошибки в определении событий приводят к тому, что администратор получает большое количество ложных тревог. Поэтому приходится использовать и другие утилиты, помогающие получить более ясное представление о событии.

С другой стороны, практически все основные утилиты и Snort в том числе предназначены для сбора данных. Их анализ лежит полностью на плечах исследователя. Поэтому вполне естественно появились разработки, которые приводят полученные данные в удобный для анализа вид.

Другая категория проектов своей основной задачей ставит интеграцию как можно большего числа приложений и предоставляет инструменты для анализа собранных данных. К примеру, sguil (http://sguil.sourceforge.net). Его главной особенностью (помимо интеграции различных инструментов), является вывод информации пользователю в реальном времени.

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

В настоящее время в OSSIM интегрировано большое количество разнообразных свободных инструментов: Snort, Nessus, Acid, Ntop, Nmap, P0f, Arpwatch, oinkmaster, pads, tcptrack, tcpdump и некоторые другие. Дополнительно возможен анализ данных, поставляемых другими приложениями (например, preludeIDS, Osiris, NTsyslog, Snare, Cisco Secure IDS), которые могут быть доставлены при помощи разных способов: syslog, snmp, сокетов и пр. Открытая архитектура позволяет добавить новый датчик в течение нескольких часов.

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

В процессе обнаружения используются все три возможные фазы:

  • предварительная обработка;
  • коллекционирование данных;
  • последующая централизованная обработка информации.

Если первые две фазы можно считать традиционными, то последующая обработка собранной информации является центральным звеном всей системы OSSIM. Ведь именно на этой стадии возможно применение механизмов, позволяющих улучшить чувствительность к обнаружению различных событий, в том числе и достаточно сложных, например распределенных или растянутых по времени атак. Для этого на последней стадии события располагаются по приоритетам, производится оценка риска и сопоставление с целью выявления взаимосвязи. Для оценки приоритета события используется несколько составляющих. Так, если происходит нападение на сервер из внешней сети и к тому же сканер nessus показывает наличие уязвимости на сервисе, используемом нападающим, то такому событию присваивается более высокий приоритет, чем событию, в котором пользователь внутренний сети не может подключиться к принтеру. Если нападение направлено на сервис, не используемый в данной сети, то такое событие вообще может быть отброшено для уменьшения объема выводимой информации.

Оценка риска происходит по трем факторам:

  • данные, на основании которых выработано предупреждение;
  • угрозы, которые представляет событие;
  • вероятности успешного осуществления атаки.

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

  • Корреляция, основанная на последовательности событий, построенных на известных уязвимостях, связывающая известные образцы и поведение, определяющее нападение, с помощью правил, осуществляемых статическим аппаратом. Например, если происходит событие А, затем Б, необходимо выполнить действие В. Сложность состоит в составлении правил, способных анализировать события абстрактно.
  • Корреляция, использующая эвристические алгоритмы, накопление по событиям и времени, что делает возможным обнаружение неизвестных вариантов атак и обеспечивает более глобальный обзор ситуации. Для этих целей используется накопление событий (как для всей сети, так и отдельных машин) с целью получения нового индикатора или моментальный снимок безопасного состояния сети. В результате создается так называемый накопленный риск, который может быть использован для оценки критических ситуаций посредством алгоритма CALM (Compromise and Attack Level Monitor). На его входе размещается множество событий, а на выходе – индикатор безопасного состояния сети.

После такой обработки предупреждения (alerts), собранные детекторами и достойные внимания, будут выданы уже как тревоги (alarms).

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

  • мониторинг использования, который обеспечивает общую информацию о машине, например среднее число данных, передаваемых за день;
  • мониторинг профиля обеспечивает информацию об активности пользователя, позволяя вывести характер деятельности, например, «POP3-почта, http и ftp» – нормальный режим работы пользователя;
  • мониторинг сессии обеспечивает в реальном времени показ сессий с возможностью отображения характера активности машины в сети.

Но это еще не все уровни мониторинга. На основании данных монитора сессии и монитора риска рath-монитор следит за маршрутами, используемыми различными компьютерами для связей, и вычисляет составной риск. При этом строятся графики постоянных ТСР-сессий, позволяющие идентифицировать сетевые нападения, совершаемые одновременно на несколько компьютеров, и отдельно графики хаотически изменяющихся UDP, TCP и ICMP связей. Кроме этого, OSSIM производит инвентаризацию сети, используя как активные, так и пассивные методы, запоминая тип операционной системы, МАС-адрес сетевого устройства, netbios и DNS-имя, предоставляемые сервисы и версии используемого в них программного обеспечения и пр. При выявленном отклонении сразу же генерируется предупреждение.

 Затем эту информацию можно получить при помощи Forensic console и Control panel. Forensic console обеспечивает доступ ко всем данным и представляет собой поисковик, который в отличие от монитора риска позволяет исследовать каждое событие, происходящее в системе, с максимальной детализацией. Сontrol panel позволяет просматривать сетевую ситуацию на более высоком уровне. С его помощью можно получить доступ ко всем инструментам мониторинга, оценить уровень риска для сетей, отслеживать машины и подсети, уровень риска которых превысил порог безопасности, оценивать производительность основных сервисов, потоки в сетях, количественные характеристики полученной пользователями почты, доступа извне, обнаруженных вирусов. Для удобства работы некоторым событиям задается порог, превышение которого свидетельствует об аномальной активности в сети.

Структурно оssim может быть разделен на 4 компонента:

  • агенты – призваны объединить и обеспечить занесение в базу данных информации, снятой с различных датчиков: snort, pads, ntop, tcptrack, p0f, arpwatch, nessus и пр.;
  • база данных – открытый интерфейс, обеспечивающий занесение информации в реляционную базу данных (основные составляющие – MySQL, ossim, snort/acid и phpgacl);
  • сервер – производит управление корреляционным движком, нормализацию данных, оценку риска и приоритета событий;
  • консоль – позволяет управлять работой всей системы, анализировать данные, производить оценку риска и содержит структуры, обеспечивающие веб-интерфейс, при помощи которого производится управление (основные составляющие: Apache, PHP c ADOdb, phpgacl, rrdtool, mrtg, acid, Nessus, Nmap, Ntop, FPDF и пр.).

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

Схема. Структура БД OSSIM

Схема. Структура БД OSSIM

OSSIM может быть установлен на любую POSIX-совместимую систему – Linux, *BSD, есть сведения об успешном использовании в Mac OS X.

Что необходимо для установки OSSIM

Учитывая большое количество разнородных приложений, предназначенных для сбора и вывода информации, плюс необходимость реализации всех зависимостей, установка OSSIM дело если нетрудное, но требующее внимательного и тщательного подхода. Кроме того, на момент написания статьи последней версией была 0.9.8rc2, имеющая небольшие отличия в установке от стабильной версии 0.9.7. В основном они касаются настройки агентов. Возможно, к выходу стабильного 1.0 релиза, а, судя по активности разработчиков, он уже не за горами, ситуация изменится. Кстати, в версии 0.9.8 сделан первый шаг к интернационализации интерфейса, пока доступны только английский, французский, немецкий, португальский, испанский, чешский и японский языки. В статье будет рассмотрен процесс установки 0.9.8rc2, так как с выходом полноценного релиза читателю будет легко ориентироваться в тех местах, где будут отличия для 0.9.7, о них будет сказано дополнительно.

Исходные коды OSSIM и документацию можно получить:

На сайтах, кроме исходных текстов, доступны и прекомпилированые rpm-пакеты, в том числе необходимые для удовлетворения всех зависимостей и построения датчиков, например для Fedora Core: http://www.ossim.net/download/fedora/RPMS.ossim.

Мы рассмотрим общий случай: установку из исходных текстов на один компьютер с минимально необходимой информацией по конфигурированию сопутствующих компонентов, т.к. более подробное изложение займет слишком много места. Наибольшую помощь в установке может оказать документ INSTALL.Debian, который вы найдете в архиве с исходными кодами. Это наиболее полный документ с информацией об установке, поэтому он актуален и для пользователей других дистрибутивов.

Кроме того, в этом же архиве лежит несколько README файлов с более подробным описанием особенностей установки того или иного приложения.

Для установки из исходных текстов вам понадобятся:

MySQL

http://www.mysql.com

Glib

http://www.gtk.org

LibXML2

http://xmlsoft.org

Gnet

http://www.gnetlibrary.org

LibGDA

http://www.gnome-db.org

RRD Tool

http://people.ee.ethz.ch/~oetiker/webtools/rrdtool

Snort

http://www.snort.org

Ntop

http://www.ntop.org

Apache

http://httpd.apache.org

mod_ssl

http://www.modssl.org

PHP

http://www.php.net

Аcid

http://acidlab.sourceforge.net

FPDF

http://www.fpdf.org/en

phpGACL

http://phpgacl.sourceforge.net

OpenSSH

http://www.openssh.org

Nessus

http://www.nessus.org

Adodb

http://adodb.sourceforge.net

mrtg

http://people.ee.ethz.ch/~oetiker/webtools/mrtg

Nmap

http://www.insecure.org/nmap

Ntop

http://www.ntop.org

OpenNMS

http://www.opennms.org

Pads

http://passive.sourceforge.net

Tcptrack

http://www.rhythm.cx/~steve/devel/tcptrack

oinkmaster

http://oinkmaster.sourceforge.net

libpcap

http://www.tcpdump.org

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

При установке использовался дистрибутив ALTLinux 2.4 Master, на дисках которого можно найти подавляющее число необходимых компонентов. В крайнем случае их можно доустановить при помощи apt-get.

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

Итак, начинаем с создания баз данных, необходимых для хранения информации. Распакуем архив, далее для краткости этот каталог будем обозначать как $OSSIM_PATH. Запускаем MySQL:

# /etc/init.d/mysqld start

Starting safe_mysqld service:                  [ DONE ]

Устанавливаем пароль, если до этого MySQL не использовался.

# mysqladmin -u root password root_password

Создаем две базы данных ossim и snort (эта база данных используется при построении датчика Snort).

# mysql -u root –p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 1 to server version: 4.0.20-log

 

Type "help;" or "h" for help. Type "c" to clear the buffer. 

mysql> create database ossim;

Query OK, 1 row affected (0.09 sec)

mysql> create database snort;

Query OK, 1 row affected (0.00 sec)

mysql> exit

Bye

Далее создаем таблицы при помощи готовых шаблонов, лежащих в подкаталоге db архива.

# cd $OSSIM_PATH/db 

# cat create_mysql.sql | mysql -u root ossim -p

# cat ossim_data.sql snort_nessus.sql realsecure.sql | mysql -u root ossim -p

После чего в базе данных ossim должна появиться структура таблиц, описанная в файле $OSSIM_PATH/doc/ossim_db_structure.txt. Для доступа к базам данных ossim использует файл /etc/ ossim/framework/ossim.conf. Чтобы не создавать его вручную, используем готовый шаблон.

# mkdir /etc/ossim/

# cp $OSSIM_PATH/contrib/debian/framework/ossim.conf /etc/ossim/

Теперь редактируем этот файл. В данный момент нас интересует секция для доступа к базе ossim.

#################################################

# OSSIM db configuration

#################################################

ossim_type=mysql

ossim_base=ossim

ossim_user=root

ossim_pass=root_passwd

ossim_host=localhost

ossim_port=3306

Как видите, для доступа к базе данных используется пользователь root, имеющий максимальные права. С точки зрения безопасности, такой подход не совсем правилен. Это упрощение сделано, чтобы минимизировать объем информации. К тому же из-за большого количества элементов на этапе настройки, скорее всего, возникнут проблемы (особенно при первой попытке). Благодаря пользователю root можно быть спокойным хотя бы за этот участок работы. После отладки, уже в рабочей системе, лучше избегать такого подхода и создать для каждого случая своего пользователя с минимально необходимыми правами, частично пример такого подхода вы найдете в конце статьи.

Далее для создания таблиц нам потребуются исходные тексты в Snort и Acid. Если же их планируется использовать как датчики на этом же компьютере, то устанавливаем и настраиваем, как описано в документации.

Создаем базы данных для snort.

# tar –xzvf snort-2.3.2.tar.gz

# cd snort 2.3.2

# cat ./schemas/create_mysql | mysql -u root -p snort

В более ранних версиях скрипты находились вместо schemas в contrib.

После этого переходим к таблицам Acid. На сценарии необходимо предварительно наложить патчи.

# cd /var/www

# tar -xzvf /tmp/acid-0.9.6b23.tar.gz

# cd acid

# patch -p1 < $OSSIM_PATH /contrib/acid.patch

patching file acid_cache.inc

patching file acid_common.php

patching file acid_conf.php

patching file acid_hdr2.html

patching file acid_main.php

patching file acid_output_query.inc

patching file acid_qry_common.php

patching file acid_qry_form.php

patching file acid_qry_sqlcalls.php

patching file acid_state_citems.inc

patching file acid_state_criteria.inc

patching file acid_update_db.php

patching file create_acid_tbls_mysql.sql

patching file create_acid_tbls_pgsql.sql

Далее настройка ACID происходит обычным образом, не забудьте только изменить параметры доступа к базе данных в acid_conf.php.

$alert_dbname   = "snort";

$alert_host     = "localhost";

$alert_port     = "3306";

$alert_user     = "root";

$alert_password = "root_passwd ";

Создаем необходимые таблицы.

# cat ./create_acid_tbls_mysql.sql | mysql -u root snort -p

Устанавливаем и настраиваем датчики  Snort и Spade

Так как мы устанавливаем все компоненты OSSIM на один компьютер, то теперь инсталлируем Snort как датчик. Для этого первым делом ставим Spade (Statistical Packet Anomaly Detection Engine). Ранее он поставлялся вместе с Snort, сейчас для удобства он поставляется вместе с ossim, его можно взять и с официального сайта (http://www.silicondefense.com).

# cd    $OSSIM_PATH/contrib/spade/Spade-040223.1.tgz

# tar -xzvf Spade-040223.1.tgz

# cd Spade-040223.1

# vi   Makefile

Редактируем переменную SNORTBASE, указывающую на месторасположение исходных текстов Snort:

# make 

   ...............

Spade installed!

Накладываем патчи на Snort, номера версий в моем случае не совпадают, но проблем замечено не было:

# cd snort-2.3.2

# patch -p0 < $OSSIM_PATH/contrib/snort-2.1-ossim.patch

patching file src/output-plugins/spo_database.c

Hunk #2 succeeded at 69 with fuzz 1.

Hunk #3 succeeded at 184 (offset 1 line).

Hunk #5 succeeded at 327 (offset 1 line).

Hunk #6 succeeded at 684 (offset 9 lines).

Hunk #7 succeeded at 860 (offset 1 line).

Hunk #8 succeeded at 928 (offset 9 lines).

Hunk #9 succeeded at 1735 (offset 1 line).

Hunk #10 succeeded at 2844 (offset 9 lines).

Hunk #11 succeeded at 2855 (offset 1 line).

И далее устанавливаем Snort обычным образом, не забывая добавить опцию --with-mysql, для того чтобы он мог заносить данные в MySQL:

# ./configure --with-mysql

# make

# make install

После чего создаем каталог /etc/snort:

# mkdir /etc/snort

И копируем в образовавшийся каталог необходимые файлы:

# cp snort-2.3.2/etc/snort.conf /etc/snort/

# cp snort-2.3.2/etc/unicode.map /etc/snort/

# cp $OSSIM_PATH/contrib/spade/spade.conf.sample /etc/snort/spade.conf

Далее редактируем эти файлы, при этом в snort.conf должны быть строки, настраивающие уровень критичности заносимых сообщений для syslog и параметры базы данных:

###################################

# Step #3: Configure output plugins

###################################

output alert_syslog: LOG_AUTH LOG_ALERT

output database: alert, mysql, user=root dbname=snort host=localhost logfile=fast.log

И подключаем файл spade.conf директивой:

Includespade.conf

После чего заполняем секцию в файле ossim.conf, которая отвечает за доступ к БД для сенсора Snort:

# ########################

# # SNORT db configuration

# # (look at snort.conf)

# ########################

 snort_type=mysql

 snort_base=snort

 snort_user=root

 snort_pass=root_passwd

 snort_host=localhost

 snort_port=3306

Настройку доступа к базе данных на этом этапе можно считать законченной.

Настраиваем сервер OSSIM

Приступаем к установке сервера:

# cd $OSSIM_PATH/

# ./autogen.sh

По умолчанию утилита конфигурируется с опциями ./configure --sysconfdir=/etc --localstatedir=/var, если удобнее разместить всю структуру, например в /opt/ossim их можно переопределить.

# cd src/

# make

После чего в /etc/ossim должен появиться ряд подкаталогов, сейчас нас интересует только один – /etc/ossim/server, содержащий несколько XML-файлов (config.xml, directives.xml, generic.xml, trojans.xml, directives.xml). Кроме того, при установке должен быть создан каталог /var/log/ossim, предназначенный для журнала, а исполняемый файл ossim-server нужно переместить в /usr/local/bin/. Проверьте их наличие, если чего-то нет – скопируйте или создайте вручную.

На следующем шаге необходимо отредактировать файл /etc/ossim/server/config.xml. Структура его проста и понятна, в нем содержатся данные для доступа к базам ossim и snort, IP-адрес (не используйте 127.0.0.1, иначе не сможете подключиться к серверу) и интерфейс, на котором сервер будет слушать подключение агентов и консоли, e-mail, на который будут отсылаться предупреждения. Дополнительно могут указываться IP-адреса дублирующих (replication) серверов в случае совместной работы нескольких серверов OSSIM.

Здесь становится очевидно одно из неудобств настройки OSSIM: для всех компонентов используются свои конфигурационные файлы, информация в некоторых из них (например, параметры доступа к БД) дублируются, что приводит к увеличению объема работ, а также путанице и ошибкам.

Когда все готово, сервер можно запускать.

# ossim-server -d -c /etc/ossim/server/config.xml

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

# cat /var/log/ossim/server.log

OSSIM-Message: sim_thread_scheduler

OSSIM-Message: sim_thread_organizer

OSSIM-Message: sim_thread_server

OSSIM-Message: Waiting for connections...

Сервер готов принимать подключения.

Приступаем к настройке консоли

Все настройки производятся в конфигурационном файле /etc/ossim/framework/ossim.conf, который мы использовали ранее. Кроме параметров доступа к базам ossim и snort, требуется указать пути к некоторым приложениям.

###################

# Base dir

###################

data_dir=/opt/ossim

base_dir=/var/www/ossim

# я переместил подкаталог www поближе к остальным файлам веб-сервера

ossim_interface=eth0

ossim_link=/ossim/

adodb_path=/usr/share/adodb/

phpgacl_path=/var/www/phpgacl/

И в самом конце файла:

jpgraph_path=/usr/share/jpgraph/

Заходим в /var/www/phpgacl/, редактируем два файла gacl.class.php и admin/gacl_admin.inc.php, где в переменных «db_type», «db_host», «db_user», «db_password» и «db_name» указываем параметры доступа к базе данных ossim (параметр «db_table_prefix» оставляем пустым). Здесь же создаем подкаталог admin/templates_c с возможностью записи в него с правами пользователя, от имени которого работает веб-сервер.

Копируем шаблон конфигурации веб-сервера.

#  cp $OSSIM_PATH/etc/httpd/ossim.conf /etc/httpd/conf/

И проверяем правильность путей внутри него:

<IfModule mod_alias.c>

  Alias /ossim "/var/www/ossim"

</IfModule>

<Directory /var/www/ossim>

  <IfModule mod_php4.c>

    php_value include_path .:/usr/share/ossim/php/

  </IfModule>

</Directory>

<Directory /var/www/phpgacl>

  AuthType Basic

  AuthName OSSIM

  AuthUserFile /var/www/ossim-users

  Require valid-user

  AllowOverride None

</Directory>

Как видите, для доступа необходимо завести пользователя ossim и задать пароль:

# htpasswd -c /var/www/ossim-users ossim

New password:

Re-type new password:

Adding password for user ossim

Теперь рассмотрим конфигурационный файл Apache httpd.conf и проверим загрузку модулей mod_php4 и mod_ssl, а также подключим при помощи параметра Include файл /etc/httpd/conf/ossim.conf. Перезапускаем веб-сервер и вводим в браузере http://localhost/phpgacl/setup.php, для настройки phpgacl. Теперь, когда phpgacl установлен, необходимо перейти к странице http://localhost/ossim/setup/ossim_acl.php, что приведет к автоматическому заполнению базы данных с заданными по умолчанию параметрами доступа (пользователь admin пароль admin, который необходимо затем обязательно изменить, используя «Сonfiguration -> Main»).

Установка RRDTool проста, скачиваем последнюю версию с http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/download.html и устанавливаем обычным образом. После чего указываем в файле /etc/ossim/framework/ossim.conf местонахождение исполняемых файлов и библиотек.

rrdtool_path=/usr/bin/

rrdtool_lib_path=/usr/lib/perl5/

Следующим шагом идет настройка mrtg, здесь работы немного больше. Скачиваем с http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub, накладываем патчи:

# tar –xvzf mrtg-2.10.5.tar.gz

# cd mrtg-2.10.5/bin

# patch -p0 < $OSSIM_PATH/contrib/mrtg/mrtg.diff

Затем компилируем и устанавливаем, как описано в doc/unix-guide.txt. После чего создаем необходимые каталоги и прописываем путь к ним в конфигурационных файлах.

# mkdir /var/www/mrtg

# cd /var/www/mrtg

# mkdir host_qualification net_qualification global_qualification level_qualification

Теперь редактируем /etc/ossim/framework/mrtg-rrd.cfg:

WorkDir: /var/www/mrtg

Include: /var/www/mrtg/hosts/host_qualification.cfg

Include: /var/www/mrtg/nets/net_qualification.cfg

Include: /var/www/mrtg/global/global_qualification.cfg

И в файле /etc/httpd/conf/ossim.conf редактируем переменные:

mrtg_rrd_files_path=/var/www/mrtg

rrdpath_host=/var/www/mrtg/host_qualification/

rrdpath_net=/var/www/mrtg/net_qualification/

rrdpath_global=/var/www/mrtg/global_qualification/

font_path=/opt/ossim/contrib/fonts

Далее необходимо, чтобы интерпретатор Perl видел модуль ossim_conf.pm. Для достижения этого можно создать символическую ссылку:

# ln -s $OSSIM_PATH/include/ossim_conf.pm /usr/lib/perl5/

Можно также указать другой каталог, перечисленный в массиве @INC (вывести весь список можно, perl -e ’print «@INC »’), либо сделать видимым путь к $OSSIM_PATH/include/ в массиве @INC, указав эти данные в скрипте draw_graph.pl, добавив вначале строку:

use lib "/opt/ossim/include";

либо поместив модуль и скрипт в один каталог (переменная @INC обычно включает текущий каталог). Другие варианты решения смотрите perldoc -q @INC.

Сам скрипт draw_graph.pl копируем каталог cgi-bin веб-сервера:

# cp $OSSIM_PATH/scripts/draw_graph.pl /var/www/cgi-bin/

Запускаем скрипт launch-mrtg, который создаст необходимые файлы:

# cd $OSSIM_PATH/mrtg

# ./launch-mrtg

И обеспечиваем ему периодический запуск:

# crontab –e

0-59/5 * * * * $OSSIM_PATH/mrtg/launch-mrtg

либо используя готовый шаблон:

# cp $OSSIM_PATH/etc/cron.d/ossim /etc/cron.d/

Для обновления данных, используемых утилитами mrtg и rrdtool, применяется скрипт control_panel.py, который необходимо поместить в каталог, где он будет виден переменной PATH:

# cp $OSSIM_PATH/scripts/control_panel.py /usr/local/bin/

# chmod +x /usr/local/bin/control_panel.py

Ставим ntop. При построении OSSIM он может быть размещен в принципе на любом компьютере, хотя в документации описана установка на компьютер, выполняющий роль консоли. Перед установкой на него необходимо наложить патчи.

# tar –xzvf ntop-3.1.tar.gz

# cd  ntop-3.1/

# patch -p0 < $OSSIM_PATH/contrib/ntop/ntop-3.1-ossim.diff

В указанном каталоге находятся патчи для нескольких версий ntop. Далее все проходит,как описано в документации. Если все прошло нормально, на результат можно посмотреть, набрав http://localhost:3000, активируем rrdPlugin зайдя в «Admin -> plugins».

Редактируем файл ossim.conf:

ntop_link=http://your_ntop_host:3000/

rrdpath_ntop=/var/lib/ntop/rrd

Начиная с версии 0.9.7, консоль OSSIM может создавать отчеты в формате pdf, что очень удобно при выводе на печать. Для реализации такой возможности используется FPDF – специализированный класс PHP, представляющий собой свободную (не требующую отчислений при коммерческом использовании) замену Pdflib. Установка проста. Скачиваем архив и копируем файл fpdf.php в каталог, указанный в параметре include_path т.е. /usr/share/ossim/php/ (или в php.ini) файла настройки ossim.conf веб-сервера.

# tar -xzvf fpdf153.tgz

# cd  fpdf153

# cp fpdf.php  /usr/share/ossim/php/

Интеграция OSSIM и nessus описана в README.nessus, поэтому за более подробной инструкцией обращайтесь к нему. Ничего необычного в установке нет. Заносим в /etc/ossim/framework/ossim.conf данные для доступа к серверу nessus:

nessus_user=ossim

nessus_pass=your_password

nessus_host=localhost

nessus_port=1241

nessus_path=/usr/bin/nessus

nessus_rpt_path=/var/www/ossim/vulnmeter/

Пароль задается так.

# /usr/sbin/nessus-adduser 

Using /var/tmp as a temporary file holder

 

Add a new nessusd user

----------------------

Login : ossim

Authentication (pass/cert) [pass] :

Login password : your_password

Для обновления подключаемых модулей вводим:

# nessus-update-plugins

# perl $OSSIM_PATH/scripts/update_nessus_ids.pl

Кроме того, для запуска сканирования используется Perl-скрипт $OSSIM_PATH/scripts/do_nessus.pl, который заносит результат работы в базу данных ossim.

Настраиваем работу с агентами

И наконец, настройка работы с агентами. Установка управляющего скрипта (написанного на Python), при помощи которого осуществляется контроль над агентами, несколько отличается в версиях 0.9.7 и 0.9.8. Ранее необходимо было просто скопировать файлы на свое место, теперь этим руководит отдельный сценарий. При этом если просто скопировать скрипт в каталог, перечисленный в переменной PATH, то при работе выдается множество ошибок, лучше всего создать ссылку:

# cd $OSSIM_PATH/agent

# ln -sf `pwd` /usr/local/bin

# python setup.py install

Копируем конфигурационный файл на свое место:

# mkdir /etc/ossim/agent

# cp $OSSIM_PATH/etc/agent/config.xml /etc/ossim/agent

и запускаем, проверяя на наличие ошибок:

# ossim-agent -v

Если агент запустился без проблем и жалуется на отсутствие датчиков, то все нормально и можно открывать конфигурационный файл для редактирования. Файл config.xml имеет простую и понятную структуру, поэтому особых сложностей не предвидится.

В самом начале идет описание сервера:

<!-- Ip and port number where the ossim server is listening -->

    <serverip>192.168.0.10 </serverip>

    <serverport>40001</serverport>

    <watchdog enable="yes" interval="30"/>

    <logdir> /var/log/ossim</logdir>

Секция <plugins> описывает датчики. Если какой-то из датчиков не установлен, то пункт, отвечающий за его запуск, следует «закомментировать», чтобы при работе не засорять файлы журнала ненужными сообщениями об ошибках. Например, датчик snort описан так:

<plugin id="1001" process="snort" type="detector" start="yes" enable="yes">

            <startup>/etc/init.d/snort start</startup>

            <shutdown>/etc/init.d/snort stop</shutdown>

            <source>fast</source>

            <interface>eth0</interface>

            <sensor>192.168.0.10</sensor>

            <location>/var/log/snort/fast.log</location>

        </plugin>

В принципе здесь все просто и должно быть понятно, но это не значит, что все сразу и заработает. Причин может быть две: неправильная строка запуска команды, либо команда недоступна из PATH. Поясню на примере. В ALTLinux, как и во многих других дистрибутивах, а также при установке snort из исходников, скрипт запуска называется snortd, а не snort. С Apache неразберихи еще больше, скрипт может называться и apache, и httpd, и httpd2. Поэтому проконтролируйте правильность написания названий. Во втором случае вместо строки, записанной по умолчанию в файле:

tcptrack -i eth0 -P 40003 -F 10 –D

укажите полный путь к утилите (это даже считается хорошим тоном).

/usr/bin/tcptrack -i eth0 -P 40003 -F 10 –D

Записываем в файл /etc/services следующие строки:

ossim-agent      40001/tcp           #ossim-agent

ossim-agent      40001/udp           #ossim-agent

Теперь можно запускать в боевом режиме:

# ossim-agent -d -c /etc/ossim/agent/config.xml

(->)  Agent:   Waiting for server...

(<-)  Agent:   Server connected

C точки зрения безопасности агентам лучше дать минимальные права для работы с базой данных:

# mysql -u root –p

mysql> GRANT INSERT, SELECT on snort.* to root@sensor_ip

IDENTIFIED BY "mysql_password";

mysql> GRANT INSERT, SELECT on ossim.* to root@sensor_ip

IDENTIFIED BY "mysql_password";

mysql> exit;

хотя на этапе настройки это можно пропустить.

Рисунок 1. Пункты меню конфигурации позволяют получить более точный результат

Рисунок 1. Пункты меню конфигурации позволяют получить более точный результат

Рисунок 2. Получение подробных отчетов – одна из положительных сторон OSSIM

Рисунок 2. Получение подробных отчетов – одна из положительных сторон OSSIM

Теперь, когда самая трудная часть позади и все настройки произведены, можно заходить в консоль. Вызываем веб-браузер и вводим https://localhost/ossim, используя в качестве имени/пароля admin-admin. При первом запуске система активирует все необходимые для работы параметры и установит настройки для Control Panel. Дальнейшее изучение вы можете продолжить самостоятельно, щелкая мышкой и наблюдая за информацией выдаваемой системой.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru