Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
reactor — Elasticsearchに対してカスタムフィルターを実行し、一致した場合にアラートを発出します。 | Kitploit
ツール/GitHubGitHub/nccgroup/reactor
防御ツール侵入検知インシデントレスポンス異常検知ログ分析
GitHubnccgroup/reactor

reactor

Elasticsearchに対してカスタムフィルターを実行し、一致した場合にアラートを発出します。

リポジトリを見る
343年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Reactor

Reactor は、オープンソースプロジェクト ElastAlert のフォークとして始まりました。このプロジェクトのメンテナーは、ElastAlert の変更(追加のアラート機能を除く)を注意深く追跡し、関連するバグ修正がパッチとして適用され、有用な機能が移植されるようにする必要があります。

Reactor は、カスタムフィルターを持つ一連のルールを受け取り、一致したアラートを通知するアラートエンジンです。Reactor は、抑制されたアラートを繰り返しアラート情報で自動的に更新します。

ElastAlert からのパッチ履歴

アクセス日コミット備考
2019-10-16325f1dfe7a45f3ca2a2cc00127ab71fcd4f9ceadReactor が最初に作成される前まで遡りました。
2020-01-09ec5d03b95708ea0aa3d29c065f9794fdd95a82a1カバレッジは使用していません。

サポート対象バージョン

現在 Reactor は ElasticSearch 5.x.x、6.x.x、7.x.x をサポートしています。 新しいバージョンの elasticsearch が利用可能になり次第、Reactor もサポートするよう更新されます。 以前のバージョンの ElasticSearch のサポートを追加する予定はありません。 現時点では、以前のバージョンの ElasticSearch のサポートを削除する予定日はありません。ElasticSearch の python ライブラリがサポートを廃止した場合、それに追随する可能性が高いです。

互換性

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 は、ユニットテストと統合テストの 2 種類のテストでカバーされています。ユニットテストは個々の関数とロジックフローが正しく動作することを確認し、統合テストはシステム全体が一体となって動作することを確認します。

ユニットテスト

ユニットテストは 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
ツールをダウンロード