воскресенье, 30 августа 2015 г.

Splunk. Установка и базовые понятия

Приветствую тебя, уважаемый читатель!

Данный пост я хочу посвятить набирающей большую популярность теме управления информационной безопасностью в организации и выявлению инцидентов ИБ. Для решения данной задачи придуман класс решений под названием - SIEM. Они позволяют решать большое количество разных задач, но нам будут интересны следующие:
  • получение большого количества разнородных событий от различных сенсоров (IDS/IPS, системные журналы, СУБД, антивирусные системы, средства анализа защищенности и т.д.);
  • анализ и сопоставление событий от разных сенсоров между собой;
  • удобное отображение информации о состоянии защищенности объектов мониторинга;
  • генерация оповещений и регистрация инцидентов ИБ.

Различных SIEM-систем достаточно много (вот тут приведён достаточно большой список - http://www.anti-malware.ru/analytics/Technology_Analysis/Overview_SECURITY_systems_global_and_Russian_market), но нас будет интересовать система Splunk. Этот пост первый из цикла, посвященного данной системе и особенностям работы с ней.
Если коротко – Splunk это система для сбора и хранения всевозможных логов и журналов. При определённом умении Splunk можно превратить в достаточно мощное средство для выявления инцидентов  ИБ, этим и займёмся.



 Установка и первичная настройка Splunk

Минимально необходимым компонентом для работы системы является – Splunk сервер, который может работать под управлением всех основных операционных систем (windows, linux, solaris и т.д.). Splunk можно загрузить по следующему адресу - http://ru.splunk.com/download/?ac=test_modal_enterprise. Перед этим необходимо зарегистрироваться на сайте.
В рамках цикла статей я буду использовать Splunk сервер под управление операционной системы Debian 3.2.68 x64. После загрузки дистрибутива система его необходимо установить с помощью следующей команды:

dpkg -i splunk-6.2.4-271043-linux-2.6-amd64.deb

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




Далее необходимо запустить Splunk с помощью команды: 

        /opt/splunk/bin/splunk start

После сообщения об успешном старте можно заходить в web-интерфейс и начинать использовать систему. Web-интерфейс запущен на tcp-порту 8000.  

http://<splunk_server_ip>:8000/en-US/account/login?

Учётные данные по умолчанию – admin changeme. При первом входе Вам будет предложено их изменить, что настоятельно рекомендую сделать, как никак мы будем создавать инструмент для управления ИБ.

Впервые зайдя в Splunk, вы увидите интерфейс как на скриншоте ниже (за исключением иконки IP-reputation, о нём поговорим позднее).



В левой части окна будут перечислены приложения, установленные в Splunk и доступные для работы.


Примечание
Приложение это своего рода среда или интерфейс, в котором пользователь работает с событиями, которые собирает Splunk. На данном этапе не будет заострять внимание на приложениях, главное, что необходимо сейчас знать:
  • по умолчанию доступно приложение Search and Reporting;
  • у Splunk есть несколько основных типов расширения функциональности – приложения (Apps) и дополнения (Add-on).

   В центральной части экрана будет пустое окно, на котором предполагается размещение главного дашборда.
    В правой верхней части расположено меню для управления системой Splunk, в том числе всеми источниками данных. Нас будет особенно интересовать раздел «Settings», т.к. так или иначе мы коснёмся всех его разделов. Он представлен на скриншоте ниже.




Нажав на иконку приложения «Search and Reporting» вы попадёте в рабочий интерфейс  данного приложения.


Первоначально вы попадёте на вкладку «Search» предназначенную для создания запросов к проиндексированным событиям. Для запросов к данным используется специально разработанный язык по возможностям не уступающий, а часто и превосходящий возможности SQL.
Строка поиска состоит из 2-х частей. Первая часть непосредственно для ввода запроса, а вторая (выпадающий список) для определения временного интервала поиска событий.


Какие типы источников событий можно подключить

Теперь немного о том, какие типы источников данных можно подключить к Splunk. Заранее скажу очевидную, но важную вещь, для того чтобы Splunk корректно получал и индексировал событие оно должно иметь понятный системе Timestamp, а для источника событий должен быть корректно определён разделитель событий (event delimiter). Если одно из этих условий не выполнено – не удивляйтесь увиденному в интерфейсе управления J

Для получения списка типов источников необходимо перейти в меню «Settings-Data Inputs» и вы увидите окно как на скриншоте ниже. Для читателей имеющих опыт работы с SIEM системами я думаю всё очевидно, для тех, кто такого опыта не имел я расскажу.



Тип Files & directories позволяет получать события из локальных файлов и директорий. Тут всё очевидно, Splunk ждёт новых событий в файле (появления новых строк) и соответственно новых файлов в директории. И в первом и во втором случае при заведении нового источника данных есть два варианта мониторинга – index once (получить события и не следить за изменениями) и continuously monitor (получить все события и следить за изменениями).
Тип TCP позволяет открыть слушающий tcp-сокет на Splunk-сервере и ждать получения данных из сети.
Тип UDP позволяет открыть слушающий udp-сокет на Splunk-сервере и ждать получения данных из сети.
Тип Scripts предназначен для подключения скриптов и получения данных, генерируемых в результате их работы. Данному пункту будет посвящен отдельный пост, т.к. это очень мощный инструмент. Для скриптов можно задавать ключи запуска, интервал запуска и т.д.

Также в данном окне есть отдельный раздел под названием Forwarder inputs, который предназначен для получения данных от Splunk Forwarder, который фактически является агентом для сбора событий на конечных объектах мониторинга. Есть несколько модификаций форвардеров, очень упрощенно – есть просто собирающие и пересылающие события на splunk-сервер (Universal Forwarder - http://www.splunk.com/en_us/download/universal-forwarder.html) и более продвинутый класс, который может сам парсить события, индексировать их, имеет web-интерфейс и т.д. (Heavy Forwarder).

Настраивая или заводя, кому как привычнее, новый источник данных у него есть несколько общих параметров/атрибутов вне зависимости от типа, а именно:
Sourcetype – это имя типа данных, куда предполагается относить все данные определённого типа;
Host – это идентификатор источника, от которого приходят события в какой-либо sourcetype (обычно доменное имя или ip-адрес);
Source – непосредственно имя файла или номер сокета, которые мониторит Splunk.

Почему очень важно запомнить данные вещи? Эти 3 параметра будут своего рода фильтрами во всех запросах к проиндексированным событиям. Про язык запросов системы Splunk я расскажу в следующем посте, но в зависимости от начальной части запроса базовая идея следующая:
        source="/var/log/auth.log"  -  означает получить все события из какого-либо конкретного файла/сокета/скрипта (в данном случае auth.log операционной системы).
      sourcetype=linux_audit -  означает получить все события, занесённые в какой-либо тип данных, т.е. если при регистрации нескольких файлов с событиями им указан один и тот же тип данных, при таком запросе мы получим события из всех файлов (в данном случае из типа linux_audit).
        host=splunk  -   означает получить все события проиндексированные с какого-либо хоста.


Подключение к Splunk журналов linux

Для наиболее простого примера подключим для мониторинга журнал событий Linux. Сейчас я не буду останавливаться на всех деталях, а просто опишу последовательность действий при подключении файла.

1.                  Перейдите в меню «Settings – Data Input - Files & directories» или введите в браузере http:// <splunk_server_ip>:8000/en-US/manager/search/data/inputs/monitor.

2.                  Нажмите на кнопку «New», введите путь к файлу auth.log и выберите continuously monitor. 


Нажмите «Next».

3.             Выберите тип данных (sourcetype operating system) из списка, а именно «linux_audit», в правой части будут отражены события с выделенным timestamp.

 Нажмите «Next».

4.       В открывшемся окне можно ничего не менять.



5.    Если всё прошло успешно, то после нажатия на «Start searching» вы увидите перечень событий из журнала аудита.






На этом пока всё ;)

Комментариев нет:

Отправить комментарий