Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

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

Категории

Все категории
Loading categories
reactor — Запускает пользовательские фильтры по Elasticsearch и оповещает о совпадениях. | Kitploit
Инструменты/GitHubGitHub/nccgroup/reactor
Оборонительные ИнструментыОбнаружение ВторженийРеагирование на ИнцидентыОбнаружение АномалийАнализ Журналов
GitHubnccgroup/reactor

reactor

Запускает пользовательские фильтры по Elasticsearch и оповещает о совпадениях.

Репозиторий
343 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Reactor

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

Reactor — это механизм оповещений, который принимает набор правил с пользовательскими фильтрами и оповещает о совпадениях. Reactor автоматически обновляет отключённые оповещения информацией о повторных срабатываниях.

История патчей из ElastAlert

Дата обращенияCommitПримечания
2019-10-16325f1dfe7a45f3ca2a2cc00127ab71fcd4f9ceadОткат к состоянию до момента создания Reactor.
2020-01-09ec5d03b95708ea0aa3d29c065f9794fdd95a82a1Мы не используем coverage.

Поддерживаемые версии

В настоящее время Reactor поддерживает ElasticSearch 5.x.x, 6.x.x и 7.x.x. По мере выхода новых версий elasticsearch Reactor будет обновляться для их поддержки. Добавлять поддержку более старых версий ElasticSearch не планируется. На данный момент нет даты удаления поддержки старых версий ElasticSearch. Если python-библиотека ElasticSearch прекратит их поддержку, мы, скорее всего, последуем её примеру.

Совместимость

Следуя рекомендациям python-библиотеки ElasticSearch, рекомендуется устанавливать версию библиотеки с той же основной версией, что и кластер.

Для Elasticsearch 7.0 и новее используйте основную версию 7 (elasticsearch<8.0.0,>=7.0.0).

Для Elasticsearch 6.0 и новее используйте основную версию 6 (elasticsearch<7.0.0,>=6.0.0).

Для Elasticsearch 5.0 и новее используйте основную версию 5 (elasticsearch<6.0.0,>=5.0.0).

Обратите внимание, что в версии 6.4.0 библиотеки ElasticSearch есть известная ошибка, которая была исправлена в 7.0.4, но не в основной версии 6. Ошибка помещает scroll_id в параметр запроса, из-за чего Elasticsearch может возвращать коды состояния 400 для допустимых scroll ids.

Разработка

Вы можете запустить экземпляр elasticsearch в docker для локальной разработки с помощью следующей команды:

root@kitploit:~
$ docker run -d -p 9200:9200/tcp --name elasticsearch docker.elastic.co/elasticsearch/elasticsearch:<version>

И следующую конфигурацию в config.yaml:

root@kitploit:~
writeback_index: reactor
alert_alias: reactor_alerts

elasticsearch: &elasticsearch
  host: localhost
  port: 9200

# Global settings to be applied to every run
rule:
  elasticsearch: *elasticsearch

Git-хуки

Этот проект предоставляет git-хуки для предотвращения ошибок пользователя. Выполните следующие команды:

root@kitploit:~
$ cp .git-hooks-pre-push .git/hooks/pre-push

Запуск тестов

Reactor покрыт двумя типами тестирования: модульным и интеграционным. Модульное тестирование гарантирует, что отдельные функции и логические потоки работают корректно; интеграционное тестирование — что вся система работает согласованно.

Модульные тесты

Модульные тесты написаны с использованием PyTest. Чтобы запустить все тесты, выполните следующую команду:

root@kitploit:~
$ py.test

Интеграционные тесты

Интеграционные тесты выполняются в docker и требуют наличия файла .env в корневом каталоге проекта. Тесты требуют следующего содержимого внутри файла .env:

root@kitploit:~
# The ElasticSearch version to be tested, reactor supports >= 5.x.x
ES_VERSION=6.3.2
# Basic configuration information so that reactor can query ElasticSearch
ES_HOST=elasticsearch
ES_USER=elastic
ES_PASSWORD=changeme

Файл интеграционного Docker Compose test.docker-compose.yml содержит 3 переменные окружения, которые обязательны для >= v7.x.x и сломают более старые версии:

root@kitploit:~
node.name=elasticsearch
discovery.seed_hosts=elasticsearch
cluster.initial_master_nodes=elasticsearch

Для выполнения интеграционных тестов запустите следующую команду:

root@kitploit:~
$ docker-compose -f docker-compose-test.yml up --abort-on-container-exit --build  reactor elasticsearch

Создание SSL-сертификатов для роли лидера в RAFT

Следующий набор команд (выполняемых в ./certs/) создаст набор сертификатов — корневого CA и устройства — для запуска имитированного кластера на localhost:

root@kitploit:~
# Only do once: generate the root CA key:
$ openssl genrsa -out transport-ca.key 4096

# Generate the root CA certificate:
## Country Name (2 letter code) []:GB
## State or Province Name (full name) []:.
## Locality Name (eg, city) []:.
## Organization Name (eg, company) []:.
## Organizational Unit Name (eg, section) []:.
## Common Name (eg, fully qualified host name) []:PyRaftLog
## Email Address []:.
$ openssl req -x509 -new -nodes -key transport-ca.key -sha256 -days 1024 -out transport-ca.pem

# Generate device certificates
# Only do once: generate device key:
$ openssl genrsa -out transport-consensus.key 4096

# Generate device certificate signing request:
## Country Name (2 letter code) []:GB
## State or Province Name (full name) []:.
## Locality Name (eg, city) []:.
## Organization Name (eg, company) []:.
## Organizational Unit Name (eg, section) []:.
## Common Name (eg, fully qualified host name) []:localhost
## Email Address []:.
$ openssl req -new -key transport-consensus.key -out transport-consensus.csr

# Generate a signed device certificate:
$ openssl x509 -req -in transport-consensus.csr -CA transport-ca.pem -CAkey transport-ca.key -CAcreateserial -out transport-consensus.crt -days 500 -sha256

Сборка документации

Чтобы собрать документацию:

root@kitploit:~
$ pip install -r requirements-docs.txt
$ cd docs
$ sphinx-build -b html -d build/doctrees -W source build/html

Публикация в PyPi

  1. pip install --upgrade setuptools wheel
  2. pip install --upgrade twine
  3. python3 setup.py sdist bdist_wheel
  4. twine check dist/*
  5. twine upload --skip-existing dist/* --verbose
Скачать инструмент