Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
reactor — Executa filtros personalizados no Elasticsearch e alerta sobre correspondências | Kitploit
Ferramentas/GitHubGitHub/nccgroup/reactor
Ferramentas DefensivasDetecção de IntrusãoResposta a IncidentesDetecção de AnomaliasAnálise de Logs
GitHubnccgroup/reactor

reactor

Executa filtros personalizados no Elasticsearch e alerta sobre correspondências

Ver Repositório
34há 3 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Reactor

O Reactor começou como um fork do projeto de código aberto ElastAlert. O mantenedor deste projeto deve acompanhar de perto as alterações no ElastAlert (excluindo seus alertadores adicionais) e garantir que quaisquer correções de bugs relevantes sejam aplicadas e qualquer recurso útil seja portado.

O Reactor é um mecanismo de alerta que recebe um conjunto de regras com filtros personalizados e alerta sobre correspondências. O Reactor atualiza automaticamente alertas silenciados com informações de alertas repetidos.

Histórico de patches do ElastAlert

Data de acessoCommitNotas
2019-10-16325f1dfe7a45f3ca2a2cc00127ab71fcd4f9ceadVoltou até antes de o Reactor ser criado pela primeira vez.
2020-01-09ec5d03b95708ea0aa3d29c065f9794fdd95a82a1Não usamos cobertura.

Versões Suportadas

Atualmente, o Reactor suporta ElasticSearch 5.x.x, 6.x.x e 7.x.x. Conforme novas versões do elasticsearch forem disponibilizadas, o Reactor será atualizado para dar suporte a elas. Não há intenção de adicionar suporte a versões mais antigas do ElasticSearch. Atualmente, não há uma data para remover o suporte a versões mais antigas do ElasticSearch. Se a biblioteca Python do ElasticSearch remover o suporte, provavelmente faremos o mesmo.

Compatibilidade

Conforme as diretrizes da biblioteca Python do ElasticSearch, é recomendado instalar a versão da biblioteca com a mesma versão principal do cluster.

Para Elasticsearch 7.0 e versões posteriores, use a versão principal 7 (elasticsearch<8.0.0,>=7.0.0).

Para Elasticsearch 6.0 e versões posteriores, use a versão principal 6 (elasticsearch<7.0.0,>=6.0.0).

Para Elasticsearch 5.0 e versões posteriores, use a versão principal 5 (elasticsearch<6.0.0,>=5.0.0).

Observe que há um bug conhecido introduzido na versão 6.4.0 da biblioteca ElasticSearch, corrigido na 7.0.4, mas não na versão principal 6. O bug coloca o scroll_id no parâmetro de consulta, o que pode fazer o Elasticsearch retornar códigos de status 400 para IDs de scroll válidos.

Desenvolvimento

Você pode iniciar uma instância do elasticsearch dentro do docker para desenvolvimento local usando o seguinte comando:

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

E a seguinte configuração em 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 do Git

Este projeto fornece hooks do git para evitar erros do usuário. Execute os seguintes comandos:

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

Executando testes

O Reactor é coberto por dois tipos de teste: unitário e de integração. O teste unitário garante que funções individuais e fluxos lógicos funcionem corretamente; o teste de integração garante que todo o sistema funcione em conjunto.

Unitário

Os testes unitários são escritos usando PyTest. Para executar todos os testes, execute o seguinte comando:

root@kitploit:~
$ py.test

Integração

Os testes unitários são executados no docker e exigem um arquivo .env no diretório raiz do projeto. Os testes exigem o seguinte conteúdo dentro do arquivo .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

O arquivo Docker Compose de integração test.docker-compose.yml possui 3 variáveis de ambiente obrigatórias para >= v7.x.x, que quebrarão versões mais antigas:

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

Para executar os testes de integração, execute o seguinte comando:

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

Criar certificados SSL para liderança do RAFT

O seguinte conjunto de comandos (executado em ./certs/) criará um conjunto com um certificado CA e um certificado de dispositivo para executar o cluster simulado em 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

Construir documentação

Para construir a documentação:

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

Publicar no 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
Baixar ferramenta