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

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

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

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

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

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

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

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

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

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

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

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

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

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

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

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

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

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

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

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

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

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

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

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

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

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

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

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

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

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

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

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

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

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

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

12.03.2018г.
Просмотров: 4433
Комментарии: 0
Глубокое обучение с точки зрения практика

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

12.03.2018г.
Просмотров: 3096
Комментарии: 0
Изучаем pandas

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

12.03.2018г.
Просмотров: 3894
Комментарии: 0
Программирование на языке Rust (Цветное издание)

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

19.12.2017г.
Просмотров: 3910
Комментарии: 0
Глубокое обучение

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

19.12.2017г.
Просмотров: 6399
Комментарии: 0
Анализ социальных медиа на Python

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

19.12.2017г.
Просмотров: 3244
Комментарии: 0
Основы блокчейна

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

19.12.2017г.
Просмотров: 3540
Комментарии: 0
Java 9. Полный обзор нововведений

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

16.02.2017г.
Просмотров: 7381
Комментарии: 0
Опоздавших не бывает, или книга о стеке

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

17.05.2016г.
Просмотров: 10735
Комментарии: 0
Теория вычислений для программистов

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

30.03.2015г.
Просмотров: 12455
Комментарии: 0
От математики к обобщенному программированию

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

18.02.2014г.
Просмотров: 14122
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

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

13.02.2014г.
Просмотров: 9206
Комментарии: 0
Читайте, размышляйте, действуйте

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

12.02.2014г.
Просмотров: 7151
Комментарии: 0
Рисуем наши мысли

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

10.02.2014г.
Просмотров: 5457
Комментарии: 3
Страна в цифрах

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

18.12.2013г.
Просмотров: 4691
Комментарии: 0
Большие данные меняют нашу жизнь

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

18.12.2013г.
Просмотров: 3506
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

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

04.12.2013г.
Просмотров: 3218
Комментарии: 0
Паутина в облаках

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

03.12.2013г.
Просмотров: 3457
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

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

02.12.2013г.
Просмотров: 3102
Комментарии: 0
Не думай о минутах свысока

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

Друзья сайта  

 Мониторинг сетевых событий при помощи sguil

Архив номеров / 2005 / Выпуск №3 (28) / Мониторинг сетевых событий при помощи sguil

Рубрика: Безопасность /  Сетевая безопасность

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

Мониторинг сетевых событий при помощи sguil

… is built by network security analysts for network security analysts.

Интересно сегодня наблюдать за процессом развития средств сетевой безопасности. Сначала считалось, что для ее обеспечения на достаточном уровне необходимо использовать межсетевой экран, который при правильной настройке позволяет отсеивать проблемный трафик. Затем стало ясно, что межсетевой экран способен обеспечить только минимальный уровень защиты и в 1980 г. с публикации Джона Андерсона (John Anderson) «Computer Security Threat Monitoring and Surveillance» началось развитие систем обнаружения атак, хотя к их активному использованию пришли чуть позже – где-то в первой половине 90-х. Долгое время считалось, что системы обнаружения атак также являются идеальным помощником администратора, но вскоре стали заметны их недостатки.

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

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

На страницах журнала [5] уже рассказывалось о работе системы обнаружения атак SHADOW – Secondary Heuristic Analysis for Defensive Online Warfare (http://www.nswc.navy.mil/ ISSEC/CID), основное отличие которой от традиционных СОА, вроде Snort, состоит в отказе от наблюдения за конкретными уязвимостями и использовании статистического анализа потоков информации.

Другой проект – sguil пробует решить задачу обнаружения атак по-своему.

Проект sguil

Методология, на которой построен sguil, называется Network Security Monitoring – NSM. Ее главный акцент сосредоточен на сборе как можно большего количества данных, упрощении доступа к ним и дальнейшего всестороннего анализа. В общем же назначение sguil состоит в интеграции различных инструментов, предназначенных для защиты сети. Для этого она связывает предупреждения СОА с базой данных TCP/IP-сеансов, полным содержимым пакетов и другой полезной информацией. После обнаружения атаки sguil обеспечивает исследователя полными данными, необходимыми для изучения проблемы, позволяя оценить ситуацию и принять правильное решение. При обнаружении события ему может быть присвоена одна из семи категорий (таблица 1). В противном случае оно помечается как не требующее дальнейшего внимания, и такие события больше не выводятся на консоль, но все равно сохраняются в базе данных. Вся записанная информация может быть легко добыта и проанализирована при помощи предварительно подготовленных SQL-запросов. Естественно, при необходимости такие запросы можно составлять и самому, сохраняя их затем для повторного использования.

События, имеющие один и тот же IP-адрес, сигнатуру и сообщение, могут быть сопоставлены между собой. Для удобства реализован и импорт отчетов, составленных сканером безопасности Nessus.

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

  • Snort (http://www.snort.org), собирающий информацию не только о событиях защиты, но и TCP/IP-сеансах и используемых портах. Отдельный сенсор захватывает все данные, проходящие по сети.
  • Barnyard (http://www.sourceforge.net/projects/barnyard) – собирает данные из файлов журнала Snort и заносит их в реальном времени в базу данных.
  • SANCP – Security Analyst Network Connection Profiler (http://www.metre.net/files/sancp-1.6.1.tar.gz) – собирает, записывает и анализирует статистическую информацию по TCP/IP-сеансам.

Дополнительно могут загружаться и расшифровываться данные от сниффера Ethereal, если он установлен в системе. Для доступа к информации, собранной сервером используются GUI-клиенты, написанные на Tcl/Tk, роль которых не менее важна, чем сервера и датчиков, т.к. именно с их помощью производится основной отбор данных в реальном времени и последующий их анализ. При необходимости могут создаваться отчеты в виде текстового файла или сообщений электронной почты.

Таблица 1. Категории событий, контролируемые sguil

Номер категории

Название категории

События, включаемые в категорию

I

Root/Administrator Account Compromise

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

II

User Account Compromise

К этой категории причисляются ситуации, когда к системе получен доступ с правами пользователя, не обладающего наивысшими привилегиями, т.е. взлом пользовательских аккаунтов или сервисов, запущенных от имени обычного пользователя вроде apache при использовании веб-сервера Аpache. Эта категория считается опасной, так как нападающий, получив минимальные права, может поднять свои привилегии в системе.

III

Attempted Account Compromise

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

IV

Denial of Service

К этой категории причисляются все действия злоумышленника, направленные на истощение ресурсов целевой системы или сети.

V

Poor Security Practice or Policy Violation

К этой категории причисляются все события, которые могут подвергнуть систему риску быть атакованной (запрет использования файла в сетях peer-to-peer, неправильная настройка DNS, доступ к ресурсам компьютера из Интернета и пр.).

VI

Reconnaissance

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

VII

Virus Activity

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

Естественно, первое, что приходит в голову после знакомства с sguil, это «еще один интерфейс к IDS Snort». Это не совсем так. Главное отличие sguil от других проектов, задачей которых является выдача информации собранной Snort, состоит в выводе данных в реальном времени и возможности проводить необходимые исследования, позволяющие изучить конкретное событие.

Рисунок 1

Установка sguil

На момент написания статьи актуальной была версия 0.5.3. Такой номер версии, как обычно в мире Open Source, не означает недоработанность утилиты. Сама установка и настройка при внимательном подходе происходит, как правило, без особых проблем. В качестве операционной системы может быть использована любая из UNIX-систем, но использование мультиплатформенных компонентов позволяет установить sguil на Mac OS X или Windows. На сайте проекта http://sguil.sourceforge.net продукт доступен как через cvs, так и в виде архива с исходными текстами. Его также можно получить на сайте проекта Snort, при этом для удобства установки все части системы, т.е. sensor, server и client на некоторых сайтах могут находиться в разных архивах. Если хорошо поискать, то можно найти и прекомпилированые пакеты. Например, на сайте BOSECO Internet Security Solutions (http://www.boseco.com), кроме rpm-пакетов доступен и базирующийся на Fedora Core дистрибутив IDSLite, имеющий уже подготовленный к работе sguil. В ftp-архиве http://www.spenneberg.org/IDS, кроме rpm-пакетов со sguil, имеются и приложения, необходимые для удовлетворения зависимостей. Наиболее общей является установка исходных текстов, поэтому в статье будет показан этот вариант. Итак, для настройки различных компонентов нам понадобятся:

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

Рисунок 2

Создание базы данных для хранения информации

На всех компонентах sguil в целях безопасности рекомендуется использовать отдельного непривилегированного пользователя, поэтому вначале создаем его.

# groupadd sguil

# useradd -g sguil -s /bin/false -c "Sguil NSM" sguil

В качестве сервера базы данных на данный момент используется только MySQL, установке которого посвящено много статей, плюс в документации sguil этот процесс описан подробно, поэтому сейчас он рассматриваться не будет. При установке сервера при помощи rpm-пакетов некоторые шаги будут выполнены автоматически, вам останется только проконтролировать результат.

Запускаем MySQL, устанавливаем пароль для root, который во многих дистрибутивах оставлен пустым, и даем необходимые привилегии пользователю sguil, от имени которого и будем в дальнейшем работать с базой данных.

# /etc/init.d/mysqld start

Инициализируется база данных MySQL:      [  ОК  ]

Запускается MySQL:                  [  ОК  ]

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD("passwd") WHERE user="root"; 

Query OK, 2 rows affected (0.08 sec)

Rows matched: 2  Changed: 2  Warnings: 0

mysql> FLUSH PRIVILEGES;

mysql> GRANT ALL PRIVILEGES ON sguildb.* TO sguil@localhost IDENTIFIED BY "sguilpasswd" WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

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

После всего команда:

# mysql -u root -p -e "show tables"

должна дать следующий вывод.

+-------------------+

  | Tables_in_sguildb |

  +-------------------+

  | data              |

  | event             |

  | history           |

  | icmphdr           |

  | portscan          |

  | sensor            |

  | sessions          |

  | status            |

  | tcphdr            |

  | udphdr            |

  | user_info         |

  | version           |

  +-------------------+

Установка сервера sguild

Для удобства лучше поместить все конфигурационные файлы сервера в отдельный каталог, например /etc/sguild. Поэтому создаем его и переносим туда файлы sguild.users, sguild.conf, sguild.queries, sguild.access, autocat.conf, которые находятся в архиве приложения в подкаталоге server. Далее проверяем наличие необходимых компонентов.

# tclsh

% package require Tclx

can"t find package Tclx

Устанавливаем Tclx, в результате вывод будет такой.

% package require Tclx

8.3

tclsh>exit

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

# ./sguild -adduser sguil

ERROR: The mysqltcl extension does NOT appear to be installed on this sysem.

Download it at http://www.xdobry.de/mysqltcl/

SGUILD: Exiting...

Не получилось, система сообщает, что не установлен mysqltcl.

Исправляемся.

# ./sguild -adduser sguil

ERROR: The sha1 package does NOT appear to be installed on this system.

The sha1 package is part of the tcllib extension. A port/package is available for most linux and BSD systems.

SGUILD: Exiting...

Опять. На этот раз нет sha1, являющегося частью библиотеки tcllib.

# ./sguild -adduser sguil

Please enter a passwd for sguil:

Retype passwd:

User "sguil" added successfully

SGUILD: Exiting...

Теперь все нормально, а в файле /etc/sguild/sguild.users должна появиться следующая запись.

# cat /etc/sguild/sguild.users

sguil(.)(.)MU47f7efd575а04e2da381e2781b8f95bef4a0083c

По умолчанию файл /etc/sguild/sguild.access позволяет подсоединяться к серверу любому клиенту и датчику. Для безопасности желательно указать конкретные адреса.

Например:

sensor 192.168.0.20

client 127.0.0.1

Копируем исполняемый файл сервера sguild и библиотеки, после чего запускаем.

# ср /home/source/sguil-0.5.3/server/sguild /usr/bin

# ср -R /home/source/sguil-0.5.3/server/lib /etc/sguil

# sguild

Loading access list: /etc/sguild/sguild.access

Adding sensor to access list: 192.168.0.20

Adding client to access list: 127.0.0.1

: Done

Loader Forked

Queryd Forked

Error: mysqluse/db server: Unknown database "sguildb"

The database sguildb does not exist. Create it ([y]/n)?:

Creating the DB sguildb...Okay.

Creating the structure for sguildb:

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

 Querying DB for archived events...

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

Retrieving DB info...

Sguild Initialized.No clients to send info msg to.

====== Sensor Agent Status ======

Все. Сервер работает и ждет подключения сенсоров, а в процессе первого запуска была создана база данных. В rpm-пакетах и в подкаталоге pkgbuild/rpm имеется скрипт sguild.init, который обеспечит запуск sguild при старте системы. Во время работы sguild использует конфигурационный файл sguild.conf, простой и к тому же хорошо комментированный. В нем придется подправить значения некоторых параметров, в первую очередь значение переменной SGUILD_LIB_PATH /etc/sguil/lib, так как по умолчанию она указывает на текущий каталог. Также проверьте путь к утилитам (p0f, tcpflow), параметры работы с базой данных, номера портов, на которых sguil будет ожидать подключения сенсоров и клиентов, каталог для хранения журналов, местонахождение правил snort и пр.

Настройка GUI-клиента sguil.tk

Это самая простая часть настройки. Клиент sguil.tk, представляет собой готовый скрипт на tcl/tk и при наличии всех необходимых компонентов он будет работать без проблем. В Windows его можно запустить при помощи библиотеки ActiveState (http://www.activestate.com/Products/ActiveTcl), в документе «Getting SGUIL to work with Windows» подробно описан этот процесс. Во время своей работы скрипт считывает файл sguil.conf, который по умолчанию должен лежать либо в домашнем каталоге пользователя, либо в каталоге, в котором находится скрипт. Иначе требуется указать его местонахождение явно.

# ./sguil.tk -- -c /etc/sguil/sguil.conf

Параметры, которые можно задать при помощи этого файла, понятны и где необходимо снабжены комментариями. Некоторые из них можно изменить и после запуска. Среди них имя сервера и порт, включение поддержки OpenSSL, путь к программам, вывод времени, цвет, используемый при отображении тех или иных событий, почтовый адрес и сообщение, которое будет отослано при обнаружении критических происшествий. Для тестирования можно подключиться к серверу demo.sguil.net порт 7734, введя любого пользователя и пароль, и выбрав датчик «reset».

Установка датчика

Это самая сложная часть настроек, требующая внимательности, так как скрипты выводят мало отладочной информации и ошибку отследить довольно тяжело. Для удобства все сенсоры, работающие на одном компьютере, используют свой персональный каталог, в который они будут записывать информацию – $LOG_DIR/$SENSOR_NAME. Разработчики рекомендуют создать для этих целей на жестком диске отдельный раздел, смонтировать его в каталог /nsm и создать в нем подкаталоги, в которые будет записываться информация, поступающая от датчиков. Такой подход позволит избежать переполнения основного раздела в случае, если информации будет много. Я для этих целей использую каталог /var/snort_data. В подкаталоге sensor/snort_mods находятся два патча для препроцессоров Snort. Для работы sguil они не обязательны, но увеличивают количество собранной информации и упрощают ее запись в базу данных. Для работы потребуются исходники Snort. На момент написания статьи в архиве sguil были патчи для snort 2.1, я использовал последний «слепок» (CVS snapshot), проблем с установкой и использованием не было. Но если у вас что-то пойдет не так, возьмите соответствующую версию snort и соберите датчик с ней. Далее заходим в подкаталог src/preprocessors и устанавливаем патчи.

# cd src/preprocessors

# cp spp_portscan.c spp_portscan.c.bak

# cp spp_stream4.c spp_stream4.c.bak

# cp /sensors/snort_mods/2_1/spp_portscan_sguil.patch

# cp /sensors/snort_mods/2_1/spp_stream4.patch

# patch spp_portscan.c < spp_portscan_sguil.patch

# patch spp_stream4.c < spp_stream4_sguil.patch

После чего устанавливаем Snort как обычно (см. статью Павла Заклякова [6]), не включая во время конфигурирования поддержку mysql, о взаимодействии с которой теперь позаботится barnyard. Теперь в файле snort.conf описываем параметры работы обновленных препроцессоров.

Формат записи для portscan:

preprocessor portscan: $HOME_NET

В нашем случае он будет таким:

preprocessor portscan: $HOME_NET 4 3 /var/snort_data/gateway/portscans syn

Запись для stream4:

preprocessor stream4: detect_scans, disable_evasion_alerts, keepstats db /var/snort_data/ gateway/ssn_logs

И в разделе «Snort unified binary format alerting and logging» раскомментируем следующую строку:

output log_unified: filename snort.log, limit 128

Для нормальной работы сенсоров необходимо, чтобы каталоги /var/snort_data/ gateway/portscans и /var/snort_data/gateway/ssn_logs существовали и права доступа позволяли пользователю sguil записать в них информацию. Иначе будет получено такое сообщение:

ERROR: spp_portscan: /var/snort_data/gateway/portscans is not a directory or is not writable

Fatal Error, Quitting..

Перед запуском их необходимо создать вручную.

# mkdir /var/snort_data/gateway/portscans

# mkdir  /var/snort_data/gateway/ssn_logs

# chown -R sguil /var/snort_data

# chgrp -R sguil  /var/snort_data

Запускаем Snort:

#  snort -u sguil -g sguil -l /var/snort_data/ -c /etc/snort/snort.conf -U -A none -m 501 -i eth0

Running in IDS mode

Log directory = /var/snort_data/

 

Initializing Network Interface eth0

 

        --== Initializing Snort ==--

Initializing Output Plugins!

Decoding Ethernet on interface eth0

Initializing Preprocessors!

Initializing Plug-ins!

Parsing Rules file /etc/snort/snort.conf

И так далее, заодно наблюдаем, как запускаются сконфигурированые нами препроцессоры.

Но это еще не все. Для захвата двоичных данных используется скрипт log_packets.sh, который можно найти в подкаталоге sensor архива sguil. Необходимо обеспечить его запуск/перезапуск при помощи cron.

# cp /sensor/log_packets.sh   /usr/bin/

И в файл, используемый crontab, внести следующие строки для перезапуска каждый час.

00 0-23/1 * * * /usr/bin/log_packets.sh restart

Кроме того, необходимо обязательно заглянуть внутрь файла и подправить значения переменных HOSTNAME, SNORT_PATH, LOG_DIR, GREP, PS, PIDFILE, INTERFACE, выставив их в соответствии с вашей системой. При помощи MAX_DISK_USE можно указать процент заполнения диска данными по достижении которого начнется удаление старой информации, а переменная FILTER позволяет более точно указать скрипту на то, какие данные интересуют исследователя, так как сценарий по умолчанию забирает всю информацию.

И наконец, установка Barnyard. Чтобы не накладывать патчи, необходимые для работы со sguil (они имеются в архиве), рекомендуется использовать версию 0.2.0. Конфигурирование производится с параметрами ./configure --enable-mysql, после чего Barnyard компилируется и устанавливается обычным образом. Далее правим конфигурационный файл barnyard.conf, раскомментируем строку в конце файла и указываем в ней на параметры подключения к базе данных и место сбора информации сенсорами.

# sguil

#----

# This output plug-in is used to generate output for use

# with the SGUIL user interface.  To learn more about

# SGUIL, go to http://sguil.sourceforge.net

#

output sguil: mysql, sensor_id 0, database sguildb, server syn, user sguil,password sguilpasswd, sguild_host syn, sguild_port 7736

Теперь запускаем.

# /usr/sbin/barnyard -c /etc/snort/barnyard.conf -d /var/snort_data/ -g /etc/snort/gen-msg.map

    -s /etc/snort/sid-msg.map -f snort.log -w /etc/snort/waldo.file

Barnyard Version 0.2.0 (Build 32)

Opened spool file "/var/snort_data/gateway /snort.log.1109764386"

Closing spool file "/var/snort_data/gateway /snort.log.1109764386".  Read 0 records

Opened spool file "/var/snort_data/gateway /snort.log.1109794324"

Waiting for new data

Правим конфигурационный файл sensor_agent.conf и запускаем сам скрипт sensor_agent.tcl, лежащий в подкаталоге sensor, который обеспечивает передачу данных на сервер.

# ./sensor_agent.tcl

Connected to 192.168.0.20

Checking for PS files in /var/snort_data/gateway/portscans.

Checking for Session files in /var/snort_data/gateway/ssn_logs.

Checking for sancp stats files in /var/snort_data/gateway/sancp.

Sending sguild (sock3) DiskReport /var/snort_data/gateway 15%

Sending sguild (sock3) PING

Sensor Data Rcvd: PONG

PONG recieved

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

====== Sensor Agent Status ======

No clients to send info msg to.

====== Sensor Agent Status ======

Connect from 192.168.0.20:32797 sock14

Validating sensor access: 192.168.0.20 :

ALLOWED

Sensor Data Rcvd: CONNECT gateway

No clients to send info msg to.

Sensor Data Rcvd: DiskReport /var/snort_data/gateway 15%

No clients to send info msg to.

Sensor Data Rcvd: PING

Для автоматического запуска sensor_agent.tcl при старте системы используйте скрипт init/sensoragent.

Все. Теперь можно подключаться к серверу при помощи клиента sguil.tk и приступать к анализу собранной информации. Как видно из рисунка, окно клиента sguil по умолчанию состоит из двух вкладок RealTime Events и Escalated Events, в которых в реальном времени выводится информация, собранная snort. Верхняя половина также разделена на три части, в которых выводятся события по степеням важности, более серьезные в верхнем окне, менее серьезные в нижнем. Если это неудобно, то можно изменить количество панелей при помощи переменных RTPANES, RTPANE_ PRIORITY и RTCOLOR_PRIORITY в файле sguil.conf. Дополнительно можно отобрать все события, подпадающие под определенную категорию, в отдельную вкладку, воспользовавшись пунктом меню File. При этом если на скрытой вкладке появится событие, заслуживающее внимания, то заголовок изменит свой цвет. Параметр ST показывает на статус предупреждения (RT – real time), CNT представляет собой счетчик событий со сходными характеристиками. Нижняя половина также разделена на две части. Слева выводится информация, собранная при помощи обратного DNS-запроса и сервиса whois, внизу можно просмотреть, в зависимости от выбранной вкладки, системные и пользовательские сообщения. Последние представляют собой простейший чат между пользователями, зарегистрировавшимися на одном сервере. В правом нижнем окне выводится более подробная информация о предупреждении. При помощи меню Query можно создавать запросы для отбора определенной информации, которые будут сохранены в файле /etc/sguil/sguild.queries. Для удобства предлагаются мастера и уже подготовленные запросы. Пункт Reports позволяет генерировать отчеты.

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

Рисунок 3

Ссылки:

  1. Домашняя страница проекта sguil – http://sguil.sourceforge.net.
  2. Richard Bejtlich «What Is Network Security Monitoring?»: http://www.awprofessional.com/title/0321246772.
  3. Richard Bejtlich «Why Sguil Is the Best Option for Network Security Monitoring Data»: http://www.informit.com/articles/article.asp?p=350390&seqNum=1.
  4. Michael Boman «Network Security Analysis with SGUIL»: http://www.boseco.com/presentations/sguil-2004-1/img0.html.
  5. Яремчук С. Тени исчезают в полдень. – журнал «Системный администратор», №12, 2004 г.
  6. Закляков П. Обнаружение телекоммуникационных атак: теория и практика, snort. – журнал «Системный администратор», №10, 2003 г.

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

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

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

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

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