- Регистрация
- 21.07.20
- Сообщения
- 40.408
- Реакции
- 1
- Репутация
- 0
Здравствуйте и добро пожаловать в нашу новую статью, в которой будет рассказано об оповещениях (алертах) в нашем решении SOCaaS. Как вы все знаете, предупреждения в любом SOC играют жизненно важную роль при уведомлении группы реагирования.
Они могут прервать цепочку кибер-атак или отслеживать эту атаку, в зависимости от политики предприятия и команды. Вы, наверное, задаетесь вопросом, зачем нам нужно включать больше предупреждений. Разве модулей предупреждений Open Distro недостаточно? Это потому, что ему не хватает количества выходов и его интегрируемости с остальной частью нашего решения, например Thehive. Мы познакомим вас с другой альтернативой.
Оглавление всех постов.
Статья разделена на следующие разделы:
* Установка и настройка ElastAlert, ElastAlert-Server и Praeco
* Создание правил
1-Установка и настройка ElastAlert, ElastAlert-Server и Praeco:
1.1 Введение:
A- Определения
— Praeco: позволяет создавать оповещения с опциями уведомлений, включая Slack, электронную почту, Telegram, Jira.
Оповещения в Praeco могут быть собраны либо путем выбора полей, о которых нужно оповещать, и соответствующих операторов с помощью конструктора запросов, либо вручную с помощью языка запросов Kibana (KQL).
— ElastAlert — это простая структура для оповещения об аномалиях, всплесках или других интересных паттернах на основе данных в Elasticsearch. Он работает путем объединения Elasticsearch с двумя типами компонентов: типами правил и предупреждениями. Elasticsearch периодически опрашивается, и данные передаются в тип правила, который определяет, когда будет найдено совпадение. Когда происходит совпадение, передается одно или несколько предупреждений, которые принимают меры в зависимости от совпадения.
Это настраивается набором правил, каждое из которых определяет запрос, тип правила и набор предупреждений.
— Правила Sigma: Sigma — это общий и открытый формат подписи, который позволяет вам прямо описывать соответствующие события журнала. Формат правила очень гибкий, его легко написать и он применим к любому типу файла журнала. Основная цель этого проекта — предоставить структурированную форму, в которой исследователи или аналитики могут описать свои однажды разработанные методы обнаружения и сделать их доступными для других.
B- Клонирование проектов:
cd /etc
git clone
git clone
git clone
Вы можете найти дополнительную информацию по этому URL-адресу:
1.2-Настройка Elastalert:
cd /etc/elastalert
mkdir rules rule_templates
cp config.yaml.example config.yaml
nano config.yaml
Настройте elastalert config.yaml с помощью:
Ваш es_host: localhost
Уникальный writeback_index: elastalert_status
Измените папку rules_folder на rules
ПРИМЕЧАНИЕ. Если вы используете python 2.7, вам необходимо изменить его на 3.6.
A- Установка python3.6 в Ubuntu:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
B-Обновление конфигурации Python:
sudo update-alternatives — install /usr/bin/python python /usr/bin/python2.7
sudo update-alternatives — install /usr/bin/python python /usr/bin/python3.6
C-Изменение Python по умолчанию:
update-alternatives — config python
И выберите python3.6
Теперь по умолчанию у вас должен быть python3.6
D-Install pip3:
sudo apt install python3-pip
E- Вам также необходимо установить PyYAML (пример 5.1):
pip install PyYAML==5.1
F- Требования к установке и elastalert
cd /etc/elastalert
pip3 install “setuptools>=11.3”
python setup.py install
G- Создание индекса:
cd /usr/local/bin/
./elastalert-create-index
Параметры
ES Host : localhost
ES Port : 9200
Use ssl : t
Verify ssl :f
Мы будем использовать по умолчанию ES_username: admin и ES_password: admin.
Также оставьте ответ по умолчанию для остальных вопросов.
1.3- Настройка сервера API:
Настройте сервер API /etc/elastalert-server/config/config.json с помощью:
A- Журналы предупреждений о неисправностях (No Data):
Обработчик метаданных, относящийся к индексу обратной записи журнала предупреждений, ищет документы с _type elastalert. Начиная с 7.x, это не возвращает результатов, потому что все документы имеют _type _doc.
Таким образом, в вашем журнале предупреждений (в интерфейсе Praeco позже) вы увидите No Data.
Итак, вам необходимо:
cd /etc/elastalert-server/src/handlers/metadata/
nano get.js
удалите строку, содержащую тип: «elastalert»,
Теперь вы сможете просматривать журналы предупреждений в интерфейсе praeco.
B-Установите Elastalert-Server:
sudo npm install
sudo npm run start
Вы должны увидеть эту строку, если она запустилась успешно. Это просто предупреждение из-за небезопасного соединения (SSL_verify = False).
1.4- Настройка Praeco:
A- Изменить файлы конфигурации:
cd /etc/praeco/config
nano api.config.json
nano elastalert.yml
B- Установите Praeco:
sudo npm install
export PRAECO_ELASTICSEARCH=localhost
C- Скопируйте BaseRule.cfg:
Перед запуском сервисов необходимо:
cp /etc/praeco/rules/BaseRule.config /etc/elastalert/rules/
Этот файл содержит настройки для Slack, SMTP и Telegram.
Здесь мы добавим URL-адрес Slack Webhook, используемый в Разделе 2.
cd /etc/elastalert/rules/
nano BaseRule.config
добавьте URL-адрес Webhook
D- Запустите Praeco:
npm run serve
Теперь вы должны увидеть, что пользовательский интерфейс работает по адресу
Вот ваш интерфейс Praeco
2- Создание правил:
2.1.- Создание правил с помощью интерфейса Praeco и отправка их в Slack webhook:
Перейдите в Правила(Rules) -> Добавить правило(Add Rule):
Теперь вы можете видеть, что создание правила очень похоже на Open Distro Alerting Tool, мы отфильтруем предупреждение и укажем место назначения.
Щелкните UNFILTERED и укажите фильтр вручную или с помощью инструмента предварительной сборки.
Затем нажмите Close
Мы будем использовать уведомления Slack с тем же URL-адресом веб-перехватчика, который используется в разделе 2, и тем же каналом (#test).
Нажмите Save
Ваше оповещение включено по умолчанию
Мы можем проверить, что оповещения были успешно отправлены в Slack.
В нашем слабом канале:
2.2- Отправка предупреждений из ElastAlert в TheHive
К сожалению, Praeco не обеспечивает вывод предупреждений в TheHive, поэтому мы будем редактировать наши правила вручную и отправлять их с помощью elastalert-server.
Благодаря этому обходному пути правила будут хорошо работать в фоновом режиме благодаря Elastalert-server, они также будут присутствовать в интерфейсе Praeco, но, к сожалению, мы не сможем редактировать или настраивать их с помощью интерфейса Praeco.
A- Создание правила: «User_creation»:
Во-первых, мы создадим наше правило из интерфейса Praceo, как и раньше, мы укажем любой URL-адрес в нашем выводе HTTP, потому что мы удалим его позже.
Когда закончите, нажмите Save.
B- Уведомления о доставке в Thehive:
Добавьте настройку TheHive, сохраните и перезапустите Elastalert-Server
Перейдите в /etc/elastalert/rules
nano User_creation.yml
C. Проверка предупреждений в Praeco
Наше оповещение было успешно отправлено в Hive
К сожалению, как мы упоминали ранее, правило не будет редактироваться с помощью интерфейса Praeco, вам придется отредактировать его вручную в /etc/elastalert/rules:
D- Проверка предупреждений в интерфейсе TheHive:
2.3- Получите помощь с инструментом Sigma для создания правил:
Как упоминалось ранее, инструмент Sigma помог нам преобразовать правила сигмы в несколько форматов, включая Elastalert.
URL проекта с подробными инструкциями:
A- Загрузить инструмент Sigma
cd ~
git clone
B- Создайте свое оповещение с помощью инструмента сигма
cd ~/sigma/tools
pip3 install -r requirements.txt
Выполнить (пример правила) (это одна команда):
./sigmac -t elastalert -c winlogbeat ../rules/windows/builtin/win_user_creation.yml
К сожалению, это правило не может напрямую использоваться (Praeco / Elastalert-Server) из-за отсутствия нескольких полей.
Таким образом, вы можете выбрать важную информацию из этого правила (строка запроса) и создать собственное правило в интерфейсе Praeco с этой информацией.
Этот инструмент очень важен, поскольку помогает собирать информацию о многих правилах и их строках запроса.
Примечание: Иногда вам нужно проверить свои журналы (Kibana → Discover Interface) и их поля, чтобы убедиться, что поля имен в ваших журналах совпадают с полями имен в правилах сигмы. Если в ваших полях отображается желтая ошибка, перейдите к шаблону индекса, выберите соответствующий индекс и нажмите кнопку «Обновить поля».
2.4- Отправка предупреждений Wazuh в theHive:
Мы будем использовать тот же обходной путь, упомянутый ранее, для предупреждений wazuh, сначала мы создадим предупреждения wazuh с помощью интерфейса praeco, затем мы вручную отредактируем файл правил, чтобы добавить вывод Hive:
A. Создайте правило wazuh и сохраните его:
Мы использовали для фильтрации правила с помощью rule.id (вы можете выбрать любое другое поле).
Вы можете получить идентификатор правил в wazuh → Overview → Security events.
B-Отредактируйте правило и перезапустите elastalert-server:
nano /etc/elastalert/wazuh-alert-TEST.yaml
C- Проверка оповещений:
Спасибо за уделенное время. Мы надеемся, что вам понравилась эта статья и вы лучше поняли систему оповещений, используемую в нашем проекте. Увидимся в следующей статье.
Они могут прервать цепочку кибер-атак или отслеживать эту атаку, в зависимости от политики предприятия и команды. Вы, наверное, задаетесь вопросом, зачем нам нужно включать больше предупреждений. Разве модулей предупреждений Open Distro недостаточно? Это потому, что ему не хватает количества выходов и его интегрируемости с остальной частью нашего решения, например Thehive. Мы познакомим вас с другой альтернативой.
Оглавление всех постов.
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
- Отчетность
- Case Management
Статья разделена на следующие разделы:
* Установка и настройка ElastAlert, ElastAlert-Server и Praeco
* Создание правил
1-Установка и настройка ElastAlert, ElastAlert-Server и Praeco:
1.1 Введение:
A- Определения
— Praeco: позволяет создавать оповещения с опциями уведомлений, включая Slack, электронную почту, Telegram, Jira.
Оповещения в Praeco могут быть собраны либо путем выбора полей, о которых нужно оповещать, и соответствующих операторов с помощью конструктора запросов, либо вручную с помощью языка запросов Kibana (KQL).
— ElastAlert — это простая структура для оповещения об аномалиях, всплесках или других интересных паттернах на основе данных в Elasticsearch. Он работает путем объединения Elasticsearch с двумя типами компонентов: типами правил и предупреждениями. Elasticsearch периодически опрашивается, и данные передаются в тип правила, который определяет, когда будет найдено совпадение. Когда происходит совпадение, передается одно или несколько предупреждений, которые принимают меры в зависимости от совпадения.
Это настраивается набором правил, каждое из которых определяет запрос, тип правила и набор предупреждений.
— Правила Sigma: Sigma — это общий и открытый формат подписи, который позволяет вам прямо описывать соответствующие события журнала. Формат правила очень гибкий, его легко написать и он применим к любому типу файла журнала. Основная цель этого проекта — предоставить структурированную форму, в которой исследователи или аналитики могут описать свои однажды разработанные методы обнаружения и сделать их доступными для других.
B- Клонирование проектов:
cd /etc
git clone
You must be registered for see links
git clone
You must be registered for see links
git clone
You must be registered for see links
Вы можете найти дополнительную информацию по этому URL-адресу:
You must be registered for see links
1.2-Настройка Elastalert:
cd /etc/elastalert
mkdir rules rule_templates
cp config.yaml.example config.yaml
nano config.yaml
Настройте elastalert config.yaml с помощью:
Ваш es_host: localhost
Уникальный writeback_index: elastalert_status
Измените папку rules_folder на rules

ПРИМЕЧАНИЕ. Если вы используете python 2.7, вам необходимо изменить его на 3.6.

A- Установка python3.6 в Ubuntu:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
B-Обновление конфигурации Python:
sudo update-alternatives — install /usr/bin/python python /usr/bin/python2.7
sudo update-alternatives — install /usr/bin/python python /usr/bin/python3.6
C-Изменение Python по умолчанию:
update-alternatives — config python
И выберите python3.6

Теперь по умолчанию у вас должен быть python3.6
D-Install pip3:
sudo apt install python3-pip
E- Вам также необходимо установить PyYAML (пример 5.1):
pip install PyYAML==5.1
F- Требования к установке и elastalert
cd /etc/elastalert
pip3 install “setuptools>=11.3”
python setup.py install
G- Создание индекса:
cd /usr/local/bin/
./elastalert-create-index
Параметры
ES Host : localhost
ES Port : 9200
Use ssl : t
Verify ssl :f
Мы будем использовать по умолчанию ES_username: admin и ES_password: admin.
Также оставьте ответ по умолчанию для остальных вопросов.

1.3- Настройка сервера API:
Настройте сервер API /etc/elastalert-server/config/config.json с помощью:
- Абсолютный путь к вашей папке elastalert для elastalertPath: /etc/elastalert
- Адрес вашего экземпляра elasticsearch для es_host: elasticsearch
- Тот же writeback_index из config.yaml: elastalert_status

A- Журналы предупреждений о неисправностях (No Data):
Обработчик метаданных, относящийся к индексу обратной записи журнала предупреждений, ищет документы с _type elastalert. Начиная с 7.x, это не возвращает результатов, потому что все документы имеют _type _doc.
Таким образом, в вашем журнале предупреждений (в интерфейсе Praeco позже) вы увидите No Data.
Итак, вам необходимо:
cd /etc/elastalert-server/src/handlers/metadata/
nano get.js
удалите строку, содержащую тип: «elastalert»,
Теперь вы сможете просматривать журналы предупреждений в интерфейсе praeco.


B-Установите Elastalert-Server:
sudo npm install
sudo npm run start
Вы должны увидеть эту строку, если она запустилась успешно. Это просто предупреждение из-за небезопасного соединения (SSL_verify = False).

1.4- Настройка Praeco:
A- Изменить файлы конфигурации:
cd /etc/praeco/config
nano api.config.json

nano elastalert.yml


B- Установите Praeco:
sudo npm install
export PRAECO_ELASTICSEARCH=localhost
C- Скопируйте BaseRule.cfg:
Перед запуском сервисов необходимо:
cp /etc/praeco/rules/BaseRule.config /etc/elastalert/rules/
Этот файл содержит настройки для Slack, SMTP и Telegram.
Здесь мы добавим URL-адрес Slack Webhook, используемый в Разделе 2.
cd /etc/elastalert/rules/
nano BaseRule.config
добавьте URL-адрес Webhook

D- Запустите Praeco:
npm run serve
Теперь вы должны увидеть, что пользовательский интерфейс работает по адресу
You must be registered for see links
: 8080.Вот ваш интерфейс Praeco

2- Создание правил:
2.1.- Создание правил с помощью интерфейса Praeco и отправка их в Slack webhook:
Перейдите в Правила(Rules) -> Добавить правило(Add Rule):

Теперь вы можете видеть, что создание правила очень похоже на Open Distro Alerting Tool, мы отфильтруем предупреждение и укажем место назначения.
Щелкните UNFILTERED и укажите фильтр вручную или с помощью инструмента предварительной сборки.
Затем нажмите Close

Мы будем использовать уведомления Slack с тем же URL-адресом веб-перехватчика, который используется в разделе 2, и тем же каналом (#test).



Нажмите Save
Ваше оповещение включено по умолчанию

Мы можем проверить, что оповещения были успешно отправлены в Slack.

В нашем слабом канале:

2.2- Отправка предупреждений из ElastAlert в TheHive
К сожалению, Praeco не обеспечивает вывод предупреждений в TheHive, поэтому мы будем редактировать наши правила вручную и отправлять их с помощью elastalert-server.
Благодаря этому обходному пути правила будут хорошо работать в фоновом режиме благодаря Elastalert-server, они также будут присутствовать в интерфейсе Praeco, но, к сожалению, мы не сможем редактировать или настраивать их с помощью интерфейса Praeco.
A- Создание правила: «User_creation»:
Во-первых, мы создадим наше правило из интерфейса Praceo, как и раньше, мы укажем любой URL-адрес в нашем выводе HTTP, потому что мы удалим его позже.
Когда закончите, нажмите Save.

B- Уведомления о доставке в Thehive:
Добавьте настройку TheHive, сохраните и перезапустите Elastalert-Server
Перейдите в /etc/elastalert/rules
nano User_creation.yml

C. Проверка предупреждений в Praeco

Наше оповещение было успешно отправлено в Hive
К сожалению, как мы упоминали ранее, правило не будет редактироваться с помощью интерфейса Praeco, вам придется отредактировать его вручную в /etc/elastalert/rules:

D- Проверка предупреждений в интерфейсе TheHive:

2.3- Получите помощь с инструментом Sigma для создания правил:
Как упоминалось ранее, инструмент Sigma помог нам преобразовать правила сигмы в несколько форматов, включая Elastalert.
URL проекта с подробными инструкциями:
You must be registered for see links

A- Загрузить инструмент Sigma
cd ~
git clone
You must be registered for see links
B- Создайте свое оповещение с помощью инструмента сигма
cd ~/sigma/tools
pip3 install -r requirements.txt
Выполнить (пример правила) (это одна команда):
./sigmac -t elastalert -c winlogbeat ../rules/windows/builtin/win_user_creation.yml


К сожалению, это правило не может напрямую использоваться (Praeco / Elastalert-Server) из-за отсутствия нескольких полей.
Таким образом, вы можете выбрать важную информацию из этого правила (строка запроса) и создать собственное правило в интерфейсе Praeco с этой информацией.
Этот инструмент очень важен, поскольку помогает собирать информацию о многих правилах и их строках запроса.
Примечание: Иногда вам нужно проверить свои журналы (Kibana → Discover Interface) и их поля, чтобы убедиться, что поля имен в ваших журналах совпадают с полями имен в правилах сигмы. Если в ваших полях отображается желтая ошибка, перейдите к шаблону индекса, выберите соответствующий индекс и нажмите кнопку «Обновить поля».
2.4- Отправка предупреждений Wazuh в theHive:
Мы будем использовать тот же обходной путь, упомянутый ранее, для предупреждений wazuh, сначала мы создадим предупреждения wazuh с помощью интерфейса praeco, затем мы вручную отредактируем файл правил, чтобы добавить вывод Hive:
A. Создайте правило wazuh и сохраните его:

Мы использовали для фильтрации правила с помощью rule.id (вы можете выбрать любое другое поле).
Вы можете получить идентификатор правил в wazuh → Overview → Security events.

B-Отредактируйте правило и перезапустите elastalert-server:
nano /etc/elastalert/wazuh-alert-TEST.yaml

C- Проверка оповещений:


Спасибо за уделенное время. Мы надеемся, что вам понравилась эта статья и вы лучше поняли систему оповещений, используемую в нашем проекте. Увидимся в следующей статье.