Добрый день, хабрасообщество!
В данной статье я поделюсь своим практическим опытом по выгрузке событий из ArcSight ESM. Детально рассмотрю функциональность и предоставлю пошаговую инструкцию по настройке ArcSight Forwarder Connector, а так же опишу интересные лайфхаки.
Для начала давайте разберёмся зачем события вообще отправлять из Arcsight ESM (ведь им и в БД неплохо живется).
Все эти пункты мы можем реализовать при помощи ArcSight Forwarder Connector, но первичная настройка начинается на самом ArcSight ESM:
После создания учётной записи и фильтрации на Arcsight ESM, мы можем приступить к установке и настройке Arcsight Forwarder Connector
Настройка типов назначения:
Маленькие хитрости при работе с Arcsight Forwarder Connector
В итоге мы можем наблюдать что ArcSight имеет массу возможностей по интеграции, как со своими системами, так и с внешними источниками. Но правды ради, стоит сказать, что поток событий постепенно увеличивается, одни и те же события необходимо отправлять в несколько источников, должно быть постоянное взаимодействие различных систем… и тут возможности обычного коннектора заканчиваются.
Поэтому инженерами Micro Focus была разработана новая архитектура, которая получила название ArcSight Data Platform. Отличительной особенностью данной архитектуры является продукт ArcSight Event Broker, который служит для маршрутизации огромного потока событий в различные системы (ESM, Logger, UEBA, Investigate, Hadoop и т.д.) и способен обрабатывать более 500 000 EPS!!!
В данной статье я поделюсь своим практическим опытом по выгрузке событий из ArcSight ESM. Детально рассмотрю функциональность и предоставлю пошаговую инструкцию по настройке ArcSight Forwarder Connector, а так же опишу интересные лайфхаки.
Для начала давайте разберёмся зачем события вообще отправлять из Arcsight ESM (ведь им и в БД неплохо живется).
- Ваша компания имеет несколько ESM серверов и стоит задача оправлять события в центральный ArcSight ESM для глобальной корреляции
- У вас имеется сторонняя система (например ELK) в которую необходимо отправлять события от ArcSight
- Отправка событий по syslog в CEF-формате
- Выгрузка событий в CSV-файл для дальнейшей работы
Все эти пункты мы можем реализовать при помощи ArcSight Forwarder Connector, но первичная настройка начинается на самом ArcSight ESM:
Первичная настройка на Arcsight ESM
Все работы производятся на последней версии Arcsight ESM 6.11 (но к предыдущим версиям это тоже применимо).
Для начала создадим учётную запись, которая будет использоваться для выгрузки событий из ESM.
В навигационной панели переходим в раздел «Users» и в каталоге «Customer User Groups» создадим свой каталог «Forwarder Events»
Нажимаем на вновь созданную группу «Forwarder Event» и создаем пользователя, например «fwd»
Для нового пользователя необходимо задать тип учётной записи и пароль.
User Type = Forwarding Connector
Теперь необходимо создать фильтр для тех событий, которые мы хотим выгружать из Arcsight ESM. Для этого в навигационной панели выбираем раздел «Filters» и создаем фильтр с необходимыми нам условиями.
Например, я планирую выгружать все корреляционные события из ESM, поэтому мой фильтр будет выглядеть следующим образом
После того как создан фильтр, его необходимо наложить на группу «Forwarder Events», в которую входит пользователь «fwd».
Переходим в навигационную панель в раздел «Users» и для группы «Forwarder Events» выбираем «Edit Access Control»
Далее в «ACL Editor» переходим во вкладку «Events» и нажимаем «Add» для добавления нашего, созданного ранее, фильтра
На этом все настройки со стороны Arcsight ESM закончены
Для начала создадим учётную запись, которая будет использоваться для выгрузки событий из ESM.
В навигационной панели переходим в раздел «Users» и в каталоге «Customer User Groups» создадим свой каталог «Forwarder Events»
Нажимаем на вновь созданную группу «Forwarder Event» и создаем пользователя, например «fwd»
Для нового пользователя необходимо задать тип учётной записи и пароль.
User Type = Forwarding Connector
Теперь необходимо создать фильтр для тех событий, которые мы хотим выгружать из Arcsight ESM. Для этого в навигационной панели выбираем раздел «Filters» и создаем фильтр с необходимыми нам условиями.
Например, я планирую выгружать все корреляционные события из ESM, поэтому мой фильтр будет выглядеть следующим образом
После того как создан фильтр, его необходимо наложить на группу «Forwarder Events», в которую входит пользователь «fwd».
Переходим в навигационную панель в раздел «Users» и для группы «Forwarder Events» выбираем «Edit Access Control»
Далее в «ACL Editor» переходим во вкладку «Events» и нажимаем «Add» для добавления нашего, созданного ранее, фильтра
На этом все настройки со стороны Arcsight ESM закончены
После создания учётной записи и фильтрации на Arcsight ESM, мы можем приступить к установке и настройке Arcsight Forwarder Connector
Установка и настройка ArcSight Forwarder Connector
Для установки Arcsight Forwarder Connector нам понадобится любой сервер с Linux и последняя версия (ArcSight-7.5.0.7986.0-SuperConnector-Linux64.bin) коннектора.
Первым делом нам необходимо сделать наш файл исполняемым:
Теперь приступим к установке самого коннектора:
Ознакомимся с информацией, нажимаем «Enter» и указываем каталог установки:
Далее отказываемся от создания ссылок выбрав пункт «4» и подтверждаем установку
В конце мы получим информацию об успешной установке и дальнейшие указания по запуску настройщика коннектора
Теперь сделаем предварительную настройку
Запускаем ./runagentsetup.sh
Выбираем пункт «Add a Connector» и тип «ArcSight Forwarding Connector (Enhanced)»
Далее коннектор предложит вам скрыть ввод параметров (логин/пароль)
Теперь задаём параметры ESM-сервера с которого мы будем забирать события и указываем параметры ранее созданной учётной записи «fwd»
Теперь необходимо импортировать сертификат ArcSight ESM на наш коннектор
Когда интеграция с ESM прошла успешно, коннектор предложит вам несколько вариантов передачи событий
Далее я опишу настройку под каждый из вариантов
Первым делом нам необходимо сделать наш файл исполняемым:
chmod +x ArcSight-7.5.0.7986.0-SuperConnector-Linux64.bin
Теперь приступим к установке самого коннектора:
./ArcSight-7.5.0.7986.0-SuperConnector-Linux64.bin
Ознакомимся с информацией, нажимаем «Enter» и указываем каталог установки:
/opt/arcsight/forwarder
Далее отказываемся от создания ссылок выбрав пункт «4» и подтверждаем установку
В конце мы получим информацию об успешной установке и дальнейшие указания по запуску настройщика коннектора
Теперь сделаем предварительную настройку
Запускаем ./runagentsetup.sh
/opt/arcsight/forwarder/current/bin/runagentsetup.sh
Выбираем пункт «Add a Connector» и тип «ArcSight Forwarding Connector (Enhanced)»
Далее коннектор предложит вам скрыть ввод параметров (логин/пароль)
Теперь задаём параметры ESM-сервера с которого мы будем забирать события и указываем параметры ранее созданной учётной записи «fwd»
Теперь необходимо импортировать сертификат ArcSight ESM на наш коннектор
Когда интеграция с ESM прошла успешно, коннектор предложит вам несколько вариантов передачи событий
Далее я опишу настройку под каждый из вариантов
Настройка типов назначения:
Отправка событий в ArcSight ESM
Вводим данные сервера ESM, на который мы будем отправлять события. Тут уже необходимо будет указать логин и пароль стандартной учётной записи
Теперь указываем название коннектора, который появится на сервере назначения ESM
Импортируем сертификат на коннектор
На этом настройка закончена. Осталось определиться только с параметром запуска коннектора. Мы можем установить коннектора как службу с автоматическим запуском, либо как приложение, которое необходимо запускать вручную
Я обычно выбираю создание службы с автоматическим запуском
На сервере назначения проверяем регистрацию коннектора и поступление событий на него
Теперь указываем название коннектора, который появится на сервере назначения ESM
Импортируем сертификат на коннектор
На этом настройка закончена. Осталось определиться только с параметром запуска коннектора. Мы можем установить коннектора как службу с автоматическим запуском, либо как приложение, которое необходимо запускать вручную
/opt/arcsight/forwarder/current/bin/arcsight agents
Я обычно выбираю создание службы с автоматическим запуском
На сервере назначения проверяем регистрацию коннектора и поступление событий на него
Отправка событий в ArcSight Logger
Первым делом необходимо создать «Receiver» на самом Arcsight Logger. Для этого в Logger выбираем раздел «Configuration», далее «Receivers» и нажимаем Add.
Даём название нашему получателю и выбираем тип получаемых событий
Теперь переходим к настройке на коннекторе
Задаём параметры для подключения к Logger и указываем наш созданный Receiver — FWD_ESM
Импортируем сертификат для коннектора
Проверяем поступление событий на ArcSight Logger
Даём название нашему получателю и выбираем тип получаемых событий
Теперь переходим к настройке на коннекторе
Задаём параметры для подключения к Logger и указываем наш созданный Receiver — FWD_ESM
Импортируем сертификат для коннектора
Проверяем поступление событий на ArcSight Logger
Отправка событий по Syslog в CEF-формате
Тут всё элементарно. Вводим только адрес назначения, по какому порту будем отправлять и указываем протокол передачи данных
Проверяем поступление событий, например в ELK
Проверяем поступление событий, например в ELK
Отправка событий путём выгрузки в CSV-файл
В данном случае нам необходимо указать только каталог где будет создаваться csv-файл, какие поля выгружать и время ротации файла
Отправка событий в HPE Operations Manager
Передача событий происходит через SNMP-протокол с дальнейшим отображением событий в IT Operations Management
Маленькие хитрости при работе с Arcsight Forwarder Connector
Выгрузка корреляционных событий вместе с базовыми
По умолчанию Arcsight Forwarder Connector выгружает только корреляционные события. Но что делать, если необходимы базовые события, например для детального расследования инцидента.
Для этого нам необходимо указать ID-коннектора и ID-пользователя в качестве параметра, а так же прописать всё это в конфигурационный файл ESM.
ID-коннектора можно узнать командой
ID-пользователя «fwd» можно посмотреть в его профиле на ESM
Далее нам необходимо на самом сервере Arcsight ESM внести дополнительный параметр в файл server.properties
Останавливаем сервер
Вносим параметры
Запускаем сервер ESM
Теперь корреляционные события будут выгружаться вместе с базовыми
Для этого нам необходимо указать ID-коннектора и ID-пользователя в качестве параметра, а так же прописать всё это в конфигурационный файл ESM.
ID-коннектора можно узнать командой
cat /opt/arcsight/forwarder/current/user/agent/agent.properties | grep entityid
ID-пользователя «fwd» можно посмотреть в его профиле на ESM
Далее нам необходимо на самом сервере Arcsight ESM внести дополнительный параметр в файл server.properties
Останавливаем сервер
/etc/init.d/arcsight_services stop all
Вносим параметры
vi /opt/arcsight/manager/config/server.properties
eventstream.cfc=(connectro ID).(forwarder user ID)
Запускаем сервер ESM
/etc/init.d/arcsight_services start all
Теперь корреляционные события будут выгружаться вместе с базовыми
Дополнительная фильтрация событий на Forwarder Connector
После установки Arcsight Forwarder Connector и подключения всех необходимых узлов назначения, запускаем
Выбираем “Modify Connector”
Далее “Add, modify, or remove destinations”
Далее выбираем для какого источника назначения будет производится фильтрация
Выбираем «Modify destination settings»
В этом меню задаются все настройки коннектора. В нашем случае необходим пункт 10 — Filters
Назначаем фильтрацию: в моём случае отбрасывать все события, которые НЕ РАВНЫ значению в поле deviceVendor.
Таким образом мы можем отправлять разнообразный поток событий на Forwarder Connector и раскидывать события в нужный нам источник назначения
/opt/arcsight/forwarder/current/bin/runagentsetup.sh
Выбираем “Modify Connector”
Далее “Add, modify, or remove destinations”
Далее выбираем для какого источника назначения будет производится фильтрация
Выбираем «Modify destination settings»
В этом меню задаются все настройки коннектора. В нашем случае необходим пункт 10 — Filters
Назначаем фильтрацию: в моём случае отбрасывать все события, которые НЕ РАВНЫ значению в поле deviceVendor.
Таким образом мы можем отправлять разнообразный поток событий на Forwarder Connector и раскидывать события в нужный нам источник назначения
Настройка кодировки выгружаемых событий
Для корректного отображения событий содержащих русскоязычные символы необходимо на Forwarder Connector прописать дополнительные параметры в файле agent.wrapper.conf.
Вносим следующие строки (не ошибитесь с порядковой нумерацией wrapper.java.additional)
vi /opt/arcsight/forwarder/current/user/agent/agent.wrapper.conf
Вносим следующие строки (не ошибитесь с порядковой нумерацией wrapper.java.additional)
wrapper.java.additional.10=-Dfile.encoding=UTF8
wrapper.java.additional.11=-Duser.language=ru
wrapper.java.additional.12=-Duser.region=RU
В итоге мы можем наблюдать что ArcSight имеет массу возможностей по интеграции, как со своими системами, так и с внешними источниками. Но правды ради, стоит сказать, что поток событий постепенно увеличивается, одни и те же события необходимо отправлять в несколько источников, должно быть постоянное взаимодействие различных систем… и тут возможности обычного коннектора заканчиваются.
Поэтому инженерами Micro Focus была разработана новая архитектура, которая получила название ArcSight Data Platform. Отличительной особенностью данной архитектуры является продукт ArcSight Event Broker, который служит для маршрутизации огромного потока событий в различные системы (ESM, Logger, UEBA, Investigate, Hadoop и т.д.) и способен обрабатывать более 500 000 EPS!!!