Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
reactor — Elasticsearch에서 사용자 정의 필터를 실행하고 일치 항목이 있으면 알림을 보냅니다. | Kitploit
도구/GitHubGitHub/nccgroup/reactor
Defensive ToolsIntrusion DetectionIncident ResponseAnomaly DetectionLog Analysis
GitHubnccgroup/reactor

reactor

Elasticsearch에서 사용자 정의 필터를 실행하고 일치 항목이 있으면 알림을 보냅니다.

저장소 보기
343년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Reactor

Reactor는 오픈소스 프로젝트 ElastAlert의 포크로 시작되었습니다. 이 프로젝트의 관리자는 ElastAlert의 변경 사항(추가 알리퍼(alerter)는 제외)을 주의 깊게 살펴보고 관련 버그 수정 사항이 패치되고 유용한 기능이 포팅되도록 해야 합니다.

Reactor는 사용자 지정 필터가 포함된 일련의 규칙을 받아 일치하는 항목에 대해 알림을 보내는 알림 엔진입니다. Reactor는 음소거된 알림을 반복 알림 정보로 자동 업데이트합니다.

ElastAlert 패치 기록

액세스한 날짜커밋비고
2019-10-16325f1dfe7a45f3ca2a2cc00127ab71fcd4f9ceadReactor가 처음 생성되기 이전까지 거슬러 올라갔습니다.
2020-01-09ec5d03b95708ea0aa3d29c065f9794fdd95a82a1coverage를 사용하지 않습니다.

지원 버전

현재 Reactor는 Elasticsearch 5.x.x, 6.x.x, 7.x.x를 지원합니다. Elasticsearch의 새 버전이 출시되면 Reactor도 해당 버전을 지원하도록 업데이트됩니다. 이전 버전의 ElasticSearch에 대한 지원을 추가할 계획은 없습니다. 현재 이전 버전의 ElasticSearch 지원을 제거할 날짜는 정해져 있지 않습니다. ElasticSearch의 Python 라이브러리가 지원을 중단하면 Reactor도 그에 따라 지원을 중단할 가능성이 높습니다.

호환성

ElasticSearch Python 라이브러리 지침에 따라 클러스터와 동일한 메이저 버전의 라이브러리를 설치하는 것이 좋습니다.

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).

ElasticSearch 라이브러리의 버전 6.4.0에서 도입된 알려진 버그가 있습니다. 이 버그는 7.0.4에서 수정되었지만 메이저 버전 6에서는 수정되지 않았습니다. 이 버그는 scroll_id를 쿼리 매개변수에 넣기 때문에 유효한 스크롤 ID에 대해 Elasticsearch가 400 상태 코드를 반환할 수 있습니다.

개발

다음 명령을 사용하여 Docker에서 로컬 개발용 Elasticsearch 인스턴스를 시작할 수 있습니다:

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에는 v7.x.x 이상에 필요한 3개의 환경 변수가 있으며, 이 변수들은 이전 버전에서 문제를 일으킵니다:

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

RAFT 리더십용 SSL 인증서 생성

./certs/ 디렉터리에서 수행되는 다음 명령 세트는 localhost에서 모의 클러스터를 실행하기 위한 CA 및 장치 인증서 세트를 생성합니다:

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
도구 다운로드