В настоящее время решения по сбору и анализу событий информационной безопасности, системы класса SIEM находятся на пике своей популярности, современные компании ставят перед собой задачу подключить как можно больше своих ключевых систем к SIEM для консолидации данных из этих систем, анализа событий и разбора инцидентов информационной безопасности на основе полученных и проанализированных данных. SIEM осуществляет сбор событий с практически любых источников: сетевые устройства, базы данных, различные бизнес-приложения, системы информационной безопасности и информационных технологий, приводя их к единообразному виду, пригодному для дальнейшего анализа и работы с полученной информацией.
Принимая во внимание, о каком количестве разных информационных систем может идти речь, невольно задумываешься о возможных вариантах и подходах подключения возможных информационных систем к SIEM и моим желанием поделиться этими знаниями с коллегами, кто тесно связан и работает с системами данного класса. В качестве примера возьмём наиболее популярную систему Arcsight и рассмотрим возможные варианты подключения к информационным системам компании с помощью FlexConnector.
В данной статье хочу представить пошаговую инструкцию взаимодействия FlexСonnector по варианту подключения LOG-FILE тремя возможными способами.
В начале, давайте представим, что есть внутреннее приложение, которое пишет все события в отдельный файл под названием «mytest_log.txt». Эти события необходимо отправить в Arcsight ESM для дальнейшей корреляции, но проблема состоит в том, что необходимого коннектора типа SmartConnector «из коробки» нет. В данном вопросе всегда может выручить коннектор типа FlexConnector, который позволяет корректно передавать события в Arcsight ESM/Logger.
Приведем наглядный пример поступаемых событий от источника в наш файл «mytest_log.txt»:
Следующим шагом необходимо установить Arcsight SmartConnector и написать FlexConnector к текущему log-файлу.
Написать FlexConnector под LOG File можно 3 способами:
Итог: В статье были указаны базовые навыки для написания FlexConnector, но если вам интересны такие фишки как категоризация, submessage, mapping и т.д., то буду готов описать их в следующих статьях.
Принимая во внимание, о каком количестве разных информационных систем может идти речь, невольно задумываешься о возможных вариантах и подходах подключения возможных информационных систем к SIEM и моим желанием поделиться этими знаниями с коллегами, кто тесно связан и работает с системами данного класса. В качестве примера возьмём наиболее популярную систему Arcsight и рассмотрим возможные варианты подключения к информационным системам компании с помощью FlexConnector.
В данной статье хочу представить пошаговую инструкцию взаимодействия FlexСonnector по варианту подключения LOG-FILE тремя возможными способами.
В начале, давайте представим, что есть внутреннее приложение, которое пишет все события в отдельный файл под названием «mytest_log.txt». Эти события необходимо отправить в Arcsight ESM для дальнейшей корреляции, но проблема состоит в том, что необходимого коннектора типа SmartConnector «из коробки» нет. В данном вопросе всегда может выручить коннектор типа FlexConnector, который позволяет корректно передавать события в Arcsight ESM/Logger.
Приведем наглядный пример поступаемых событий от источника в наш файл «mytest_log.txt»:
2017-08-01 01:18:00.579 INFO AUTH: LOGIN SUCCESS. USER: Ivanov. IP: 192.168.0.1
2017-08-01 01:19:13.246 INFO AUTH: LOGIN FAILED. USER: Petrov. IP: 192.168.3.13
2017-08-01 01:20:17.589 INFO AUTH: LOGIN FAILED. USER: Petrov. IP: 192.168.3.13
2017-08-01 01:21:14.646 INFO AUTH: LOGIN FAILED. USER: Petrov. IP: 192.168.3.13
2017-08-01 01:22:09.179 INFO AUTH: LOGIN SUCCESS. USER: Ivanov. IP: 192.168.0.1
2017-08-01 01:23:02.116 INFO AUTH: LOGIN SUCCESS. USER: Petrov. IP: 192.168.3.13
Следующим шагом необходимо установить Arcsight SmartConnector и написать FlexConnector к текущему log-файлу.
Установка и настройка Arcsight SmartConnector
Убедимся что наш коннектор успешно добавлен в Arcsight ESM.
После написания FlexConnector, необходимо указать путь к конфигурационному файлу.
- После запуска указываем путь установки коннектора.
Рекомендация: изменить название стандартного каталога, на тип коннектора.
- Выбираем куда сохранить иконки и нажимаем Next.
- Проверяем параметры установки и нажимаем Install.
- В процессе установки выбираем «Add a Connector», нажимаем Next.
- Выбираем тип коннектора «Arcsight FlexConnector Regex File», нажимаем Next.
- На данном этапе мы указываем только путь к Log-файлу, нажимаем Next.
- Указываем тип получателя. В моём случае это «Arcsight Manager (encrypted)», нажимаем Next.
- Указываем необходимые параметры получателя, нажимаем Next.
- Указываем информацию о нашем коннекторе, нажимаем Next.
- Импортируем сертификат от Arcsight ESM, нажимаем Next.
- Проверяем параметры коннектора, нажимаем Next.
- Теперь необходимо выбрать способ запуска коннектора. При разработке я выбирают ручной запуск «Leave as a standalone application», так удобнее отлавливать ошибки при старте коннектора. Нажимаем Next.
- Настройка коннектора завершена. Подтверждаем завершение установки.
Убедимся что наш коннектор успешно добавлен в Arcsight ESM.
После написания FlexConnector, необходимо указать путь к конфигурационному файлу.
- Запускаем
C:\$ARCSIGHT_HOME\current\bin> .\runagentsetup.bat
Выбираем “Modify Connector”, нажимаем Next.
- Выбираем “Modify connector parameters”, нажимаем Next.
- В поле “Configuration File” указываем только имя конфигурационного файла.
Написать FlexConnector под LOG File можно 3 способами:
- Написание конфигурационного файла в текстовом редактореСамым популярным способом в настоящее время остается написание коннекторов используя текстовый редактор.
В каталоге$ARCSIGHT_HOME\current\user\agent\flexagent
создаем конфигурационный файлMyTest_MyParser_1.sdkrfilereader.properties
.
Образец готового файла:
#MyTest MyParser Configuration File
replace.defaults=true
trim.tokens=true
comments.start.with=#
#2017-08-01 01:18:00.579 INFO AUTH: LOGIN SUCCESS. USER: Ivanov. IP: 192.168.0.1
regex=(.*)\\sINFO\\sAUTH\\D\\s(.*)\\D\\sUSER\\D\\s(.*)\\D\\sIP\\D\\s(.*)
token.count=4
token[0].name=Date
token[0].type=TimeStamp
token[0].format=yyyy-MM-dd HH:mm:ss.SSS
token[1].name=Name1
token[1].type=String
token[2].name=Username
token[2].type=String
token[3].name=UserAddress
token[3].type=IPAddress
additionaldata.enabled=false
event.deviceVendor=__stringConstant(MyTest)
event.deviceProduct=__stringConstant(MyParser)
event.endTime=Date
event.name=Name1
event.sourceUserName=Username
event.sourceAddress=UserAddress
Структура файла очень проста.
- Пишем входные параметры для коннектора
#MyTest MyParser Configuration File
replace.defaults=true
trim.tokens=true
comments.start.with=#
- Пишем регулярное выражение для нашего лога
#2017-08-01 01:18:00.579 INFO AUTH: LOGIN SUCCESS. USER: Ivanov. IP: 192.168.0.1
regex=(.*)\\sINFO\\sAUTH\\D\\s(.*)\\D\\sUSER\\D\\s(.*)\\D\\sIP\\D\\s(.*)
- Указываем количество ключей (отсчёт начинается с “0” )
token.count=4
- Описываем ключи (имя, тип, формат)
token[0].name=Date
token[0].type=TimeStamp
token[0].format=yyyy-MM-dd HH:mm:ss.SSS
token[1].name=Name1
token[1].type=String
token[2].name=Username
token[2].type=String
token[3].name=UserAddress
token[3].type=IPAddress
- Указываем maping полей и submessage
event.deviceVendor=__stringConstant(MyTest)
event.deviceProduct=__stringConstant(MyParser)
event.endTime=Date
event.name=Name1
event.sourceUserName=Username
event.sourceAddress=UserAddress
Данный способ является простым в написании и самым популярным по использованию среди специалистов Arcsight.
Из минусов могу отметить только поиск ошибок, но данная проблема решается запуском коннектора в состоянии “Leave as a standalone application” где мы увидем всю техническую информацию.
- Пишем входные параметры для коннектора
- Использование встроенной утилиты REGEXУ Arcsight SmartConnector есть встроенная утилита regex которая запускает графическую оболочку для создания, либо проверки FlexConnector.
- Запускаем консоль от имени администратора и переходим в каталог установки нашего FlexConnector.
Запускаем утилиту regex:C:\$ARCSIGHT_HOME\current\bin> .\arcsight.bat regex
Данная утилита позволяет создать конфигурационный файл для нашего коннектора. - Создаем новый файл: File — New FlexAgent Regex File. Конфигурационный файл должен храниться в каталоге
$ARCSIGHT_HOME\current\user\agent\flexagent
с расширением файла FILE_NAME.sdkrfilereader.properties. - Подключаем наш источник событий: File — Load Log File. Можно указать путь к реальным логам или тестовым.
- Необходимо написать регулярное выражение для нашего лога. Сделать это можно в поле Regex (для удобства есть кнопка Generate).
Моя регулярка:(.*)\sINFO\sAUTH\D\s(.*)\D\sUSER\D\s(.*)\D\sIP\D\s(.*)
Нажимаем Test. - Необходимо дать названия нашим группам.
- Все группы по умолчанию имеют тип String, поэтому для групп Date и UserAddress необходимо указать тип TimeStamp и IPAddress.
Так же опишем временной формат для группы Date (подробная информация в FlexConnector Guide).
- Далее делаем мапинг полей путём перетаскивания групп и выбора полей для отображения в Arcsight ESM.
Утилита regex не позволяет выбрать для формата IPAddress поле event.sourceAddress, поэтому его необходимо дописать руками:
event.sourceAddress=UserAddress
Так же обязательными полями являются Device Product и Device Vendor. Добавим в конфигурационный файл следующие строки:
event.deviceVendor=__stringConstant(MyTest)
event.deviceProduct=__stringConstant(MyParser)
- Нажимаем Test и проверяем, что все события распарсились. Сохраняем нашу конфигурацию: File — Save FlexAgent Regex File.
Запускаем коннектор, генерируем новые события в log-файл и проверяем поступление событий в Arcsight ESM.
- Запускаем консоль от имени администратора и переходим в каталог установки нашего FlexConnector.
- Использование Arcsight Quick FlexВо время написания данной статьи я впервые воспользовался Arcsight Quick Flex и был приятно удивлён. Данный софт позволяет писать быстро и без ошибок конфигурационный файл, а написание submessage превращается в одно удовольствие.
- Создадим новый проект:
Vendor: MyTest
Product: MyParser
Version: 1
Log File Path: указываем директорию с логами
Project Directory: указываем каталог проекта (не конфигурационного файла!!!)
- После загрузки логов события имеют статус “Base Unparsed”. Запускаем вкладку “Base Regex Editor”.
- В поле “Base Regex” указываем наше регулярное выражение.
Можно проверить корректность регулярного выражения нажав кнопку “Matching details”.
- Нажимаем Tokenize и сохраняем настройки.
Далее для каждого ключа указываем тип, формат, описание и поле для мапинга
- Сохраняем и возвращаемся на главную страницу нажав Log View. Далее нажимаем Refresh и все наши события переходят в статус “Base Parsed”
- Теперь нажимаем Generate Parser и получаем готовый конфигурационный файл для FlexConnector. Экспортируем файл в папку с коннектором:
$ARCSIGHT_HOME\current\user\agent\flexagent
Запускаем коннектор, генерируем новые события в log-file и проверяем поступление событий в Arcsight ESM.
- Создадим новый проект:
Итог: В статье были указаны базовые навыки для написания FlexConnector, но если вам интересны такие фишки как категоризация, submessage, mapping и т.д., то буду готов описать их в следующих статьях.