Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
reactor — Ejecuta filtros personalizados en Elasticsearch y alerta sobre coincidencias | Kitploit
Herramientas/GitHubGitHub/nccgroup/reactor
Herramientas DefensivasDetección de IntrusionesRespuesta a IncidentesDetección de AnomalíasAnálisis de Registros
GitHubnccgroup/reactor

reactor

Ejecuta filtros personalizados en Elasticsearch y alerta sobre coincidencias

Ver Repositorio
34hace 3 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Reactor

Reactor comenzó como un fork del proyecto de código abierto ElastAlert. El mantenedor de este proyecto debe seguir de cerca los cambios en ElastAlert (excluyendo sus alertadores adicionales) y asegurarse de que cualquier corrección de errores relevante sea aplicada y cualquier característica útil sea incorporada.

Reactor es un motor de alertas que toma un conjunto de reglas con filtros personalizados y alerta sobre las coincidencias. Reactor actualiza automáticamente las alertas silenciadas con información de alertas repetidas.

Historial de parches de ElastAlert

Fecha de accesoCommitNotas
2019-10-16325f1dfe7a45f3ca2a2cc00127ab71fcd4f9ceadSe retrocedió hasta antes de que Reactor fuera creado por primera vez.
2020-01-09ec5d03b95708ea0aa3d29c065f9794fdd95a82a1No utilizamos cobertura.

Versiones compatibles

Actualmente Reactor es compatible con ElasticSearch 5.x.x, 6.x.x y 7.x.x A medida que estén disponibles nuevas versiones de Elasticsearch, Reactor se actualizará para darles soporte. No hay intención de añadir soporte para versiones anteriores de ElasticSearch. Actualmente, no hay fecha para eliminar el soporte de versiones anteriores de ElasticSearch. Si la librería de Python de ElasticSearch elimina el soporte, es probable que hagamos lo mismo.

Compatibilidad

Según las directrices de la librería de Python de ElasticSearch, se recomienda instalar la versión de la librería con la misma versión principal que el clúster.

Para Elasticsearch 7.0 y versiones posteriores, use la versión principal 7 (elasticsearch<8.0.0,>=7.0.0).

Para Elasticsearch 6.0 y versiones posteriores, use la versión principal 6 (elasticsearch<7.0.0,>=6.0.0).

Para Elasticsearch 5.0 y versiones posteriores, use la versión principal 5 (elasticsearch<6.0.0,>=5.0.0).

Tenga en cuenta que hay un bug conocido introducido en la versión 6.4.0 de la librería de ElasticSearch que se corrigió en 7.0.4 pero no en la versión principal 6. El bug coloca el scroll_id en el parámetro de consulta, lo que puede hacer que Elasticsearch devuelva códigos de estado 400 para ids de scroll válidos.

Desarrollo

Puede iniciar una instancia de Elasticsearch dentro de Docker para el desarrollo local usando el siguiente comando:

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

Y la siguiente configuración en 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

Hooks de Git

Este proyecto proporciona hooks de Git para evitar errores del usuario. Por favor, ejecute los siguientes comandos:

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

Ejecutar las pruebas

Reactor está cubierto por dos tipos de pruebas: unitarias y de integración. Las pruebas unitarias garantizan que las funciones individuales y los flujos lógicos funcionen correctamente; las pruebas de integración garantizan que el sistema completo funcione al unísono.

Unitarias

Las pruebas unitarias están escritas con PyTest. Para ejecutar todas las pruebas, use el siguiente comando:

root@kitploit:~
$ py.test

Integración

Las pruebas unitarias se ejecutan en Docker y requieren un archivo .env en el directorio raíz del proyecto. Las pruebas requieren el siguiente contenido dentro del archivo .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

El archivo Docker Compose de integración test.docker-compose.yml tiene 3 variables de entorno que son necesarias para >= v7.x.x y que romperán las versiones anteriores:

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

Para ejecutar las pruebas de integración, use el siguiente comando:

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

Crear certificados SSL para el liderazgo RAFT

El siguiente conjunto de comandos (ejecutados en ./certs/) creará un conjunto de certificados de CA y de dispositivo para ejecutar el clúster simulado en 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

Generar la documentación

Para generar la documentación:

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

Publicar en 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
Descargar herramienta