
CorelightまたはZeek Elastic Common Schemaテンプレート
このリポジトリには、Corelight または Zeek のログを Elastic Common Schema (ECS) の命名標準に変換し、Elastic Stack デプロイメントに格納するために必要なものがすべて含まれています。2019年に Elastic Common Schema と同じ年に最初にリリースされたこのリポジトリは、今もなお積極的にメンテナンスされ、更新されています。
200を超えるさまざまなログとメトリクス をサポートしており、すべての環境をサポートしつつ、各固有の環境をサポートするために必要なオプションや望ましいオプションをカスタマイズできるように設計されています。
すべての環境をサポートすることに多大な努力が払われると同時に、各固有かつ個別のデプロイメントに合わせて必要なオプションと望ましいオプションをカスタマイズできるようになっています。
このリポジトリは主に次の2つの要素で構成されています:
ファイルと自動化スクリプトは、BSD ライセンスの下でオープンソースです。詳細は COPYINGを参照してください。
スクリプトを実行する前に、すべてのセクションをお読みください。
corelight_ecs.py スクリプトを使用すること。ファイル全体にはスクリプトによって置き換えられる数百の変数があるため、テンプレートとパイプラインを手動でインストールすることはサポートされていません。インデックス設定、マッピング、エイリアス、ILM ポリシーのカスタマイズを推奨します。そのため、スクリプトは多くの種類のカスタマイズをサポートできるように設計されています(詳細は下記)。
必要ないカスタマイズも多いですが、ないよりはあった方が良いでしょう。独自のシャード数/レプリカ数と ILM ポリシーを使用することを常にお勧めしますが、それ以外はあまりカスタマイズする必要はないはずです。ただし、すべてのデプロイメントでインデックステンプレート、インジェストパイプライン、Logstash パイプラインの多くの項目を通常どおりカスタマイズしている場合は、その機能を引き続き利用できます。
詳細については、以下の各セクションを参照してください。
データストリームにカスタムのインデックス名/パターンを選択したい場合は、スクリプトが確認を求めます。これにより、独自のインデックス命名規則を選択できます。たとえば、次のように選択できます:
logs-corelight.conn-defaultecs-corelight.conn-defaultcall_it_what_you_will.conn-defaultlogs-corelight.conn-remotesite1その後、インジェストパイプラインまたは Logstash パイプラインを選択した場合は、必要なすべてのインデックステンプレートも更新されます。
Corelight のログは他のすべてのタイプの ECS データと連携し、logs-* などの Kibana データビュー内から使用できるように設定されているため、デフォルトを変更することはお勧めしません。
マルチテナント環境(MSSP/CSSP や異なるネットワークなど)では、スクリプトのプロンプトでデータストリームの組織部分を選択できるだけでなく(上記の3つの例では default の部分)、filebeat や他の方法で data_stream.namespace を設定するか、パイプラインをフックする場合、パイプラインはその変数がすでに設定されている場合に上書きしないよう尊重するように設定されています。namespace が Elasticsearch がインデックス名として許可する値に設定されていることを確認してください(時々気づきにくい一般的な間違いです)。
使用されるインデックスパターンと各ログのデフォルトは Google Sheet で確認できます。また、各ログの event.category、event.kind などの追加情報も一部記載されています。
各インデックステンプレートは、インデックス設定を上書きするために使用できるコンポーネントテンプレートを呼び出すように指定されています。 したがって、独自のインデックス設定を使用するためにリポジトリのインデックステンプレートを変更する必要はありません。
以下のコンポーネントテンプレートを作成するか、インストール後に変更してください。変更可能なコンポーネントテンプレートの名前は次のとおりです:
すべてのログをカバーする場合(5つのカテゴリに分割):
corelight-ecs-component-metric_log-base-settings@customcorelight-ecs-component-parse_failures-base-settings@customcorelight-ecs-component-protocol_log-base-settings@customcorelight-ecs-component-system_log-base-settings@customcorelight-ecs-component-unknown_log-base-settings@custom上記に加えて、より具体的な設定が必要になることが多い個別のログをカバーする場合:
corelight-ecs-component-protocol_log-conn-base-settings@customcorelight-ecs-component-protocol_log-dns-base-settings@customcorelight-ecs-component-protocol_log-files-base-settings@customcorelight-ecs-component-protocol_log-http-base-settings@customcorelight-ecs-component-protocol_log-smb-base-settings@customcorelight-ecs-component-protocol_log-smtp-base-settings@customcorelight-ecs-component-protocol_log-ssl-base-settings@customcorelight-ecs-component-protocol_log-suricata_corelight-base-settings@customcorelight-ecs-component-protocol_log-syslog-base-settings@customcorelight-ecs-component-protocol_log-various-base-settings@custom各インデックステンプレートは、フィールドタイプやフィールド名などのインデックスマッピングを上書きするために使用できるコンポーネントテンプレートを呼び出すように指定されています。 したがって、独自のインデックスマッピングを使用するためにリポジトリのインデックステンプレートを変更する必要はありません。
以下のコンポーネントテンプレートを作成するか、インストール後に変更してください。変更可能なコンポーネントテンプレートの名前は次のとおりです:
すべてのログをカバーする場合(5つのカテゴリに分割):
corelight-ecs-component-metric_log-mappings@customcorelight-ecs-component-parse_failures-mappings@customcorelight-ecs-component-protocol_log-mappings@customcorelight-ecs-component-system_log-mappings@customcorelight-ecs-component-unknown_log-mappings@custom上記に加えて、より具体的な設定が必要になることが多い個別のログをカバーする場合:
corelight-ecs-component-protocol_log-conn-mappings@customcorelight-ecs-component-protocol_log-dns-mappings@customcorelight-ecs-component-protocol_log-files-mappings@customcorelight-ecs-component-protocol_log-http-mappings@customcorelight-ecs-component-protocol_log-smb-mappings@customcorelight-ecs-component-protocol_log-smtp-mappings@customcorelight-ecs-component-protocol_log-ssl-mappings@customcorelight-ecs-component-protocol_log-suricata_corelight-mappings@customcorelight-ecs-component-protocol_log-syslog-mappings@customcorelight-ecs-component-protocol_log-various-mappings@custom各インデックステンプレートは、独自の保持期間を設定するために ILM ポリシーを上書きできるコンポーネントテンプレートを呼び出すように指定されています。 したがって、独自の ILM ポリシーを使用するためにリポジトリのインデックステンプレートを変更する必要はありません。
以下のコンポーネントテンプレートを作成するか、インストール後に変更してください。変更可能なコンポーネントテンプレートの名前は次のとおりです:
すべてのログをカバーする場合(5つのカテゴリに分割):
corelight-ecs-component-metric_log-ilm-settings@customcorelight-ecs-component-parse_failures-ilm-settings@customcorelight-ecs-component-protocol_log-ilm-settings@customcorelight-ecs-component-system_log-ilm-settings@customcorelight-ecs-component-unknown_log-ilm-settings@customこれらは、上記に加えて、より具体的な設定が必要になることが多い個別のログをカバーします:
corelight-ecs-component-protocol_log-conn-ilm-settings@customcorelight-ecs-component-protocol_log-dns-ilm-settings@customcorelight-ecs-component-protocol_log-files-ilm-settings@customcorelight-ecs-component-protocol_log-http-ilm-settings@customcorelight-ecs-component-protocol_log-smb-ilm-settings@customcorelight-ecs-component-protocol_log-smtp-ilm-settings@customcorelight-ecs-component-protocol_log-ssl-ilm-settings@customcorelight-ecs-component-protocol_log-suricata_corelight-ilm-settings@customcorelight-ecs-component-protocol_log-syslog-ilm-settings@customcorelight-ecs-component-protocol_log-various-ilm-settings@custom各インデックステンプレートは、インデックスエイリアスを上書きするために使用できるコンポーネントテンプレートを呼び出すように指定されています。 したがって、独自のインデックスエイリアスを使用するためにリポジトリのインデックステンプレートを変更する必要はありません。
以下のコンポーネントテンプレートを作成するか、インストール後に変更してください。変更可能なコンポーネントテンプレートの名前は次のとおりです:
すべてのログをカバーする場合(5つのカテゴリに分割):
corelight-ecs-component-metric_log-aliases@customcorelight-ecs-component-parse_failures-aliases@customcorelight-ecs-component-protocol_log-aliases@customcorelight-ecs-component-system_log-aliases@customcorelight-ecs-component-unknown_log-aliases@customこれらは、上記に加えて、より具体的な設定が必要になることが多い個別のログをカバーします:
corelight-ecs-component-protocol_log-conn-aliases@customcorelight-ecs-component-protocol_log-dns-aliases@customcorelight-ecs-component-protocol_log-files-aliases@customcorelight-ecs-component-protocol_log-http-aliases@customcorelight-ecs-component-protocol_log-smb-aliases@customcorelight-ecs-component-protocol_log-smtp-aliases@customcorelight-ecs-component-protocol_log-ssl-aliases@customcorelight-ecs-component-protocol_log-suricata_corelight-aliases@customcorelight-ecs-component-protocol_log-syslog-aliases@customcorelight-ecs-component-protocol_log-various-aliases@customインジェストパイプラインの先頭で、Corelight のパイプラインが呼び出される前に、corelight-ecs-main-pipeline@custom という名前のインジェストパイプラインを使用する機能があります。
Corelight のパイプラインが呼び出される前に行いたい処理がある場合は、その名前でインジェストパイプラインを作成できます。
パイプラインを作成しない場合、この関数はそれを静かにスキップするため、任意です。
インジェストパイプラインの末尾で、すべての Corelight パイプラインが呼び出された後に、corelight-ecs-postprocess-final-main-pipeline@custom という名前のインジェストパイプラインを使用する機能があります。
Corelight のパイプラインが呼び出される前に行いたい処理がある場合は、その名前でインジェストパイプラインを作成できます。
パイプラインを作成しない場合、この関数はそれを静かにスキップするため、任意です。
インジェストパイプラインの on_failure キャッチオール(インジェストパイプライン障害時)の先頭で、Corelight のパイプラインが呼び出される前に、corelight-ecs-parse_failures-pipeline@custom という名前のインジェストパイプラインを使用する機能があります。
Corelight のパイプラインが呼び出される前に行いたい処理がある場合は、その名前でインジェストパイプラインを作成できます。
パイプラインを作成しない場合、この関数はそれを静かにスキップするため、任意です。
インジェストパイプラインの末尾で、すべての Corelight パイプラインが呼び出された後に、corelight-ecs-postprocess-final-main-pipeline@custom という名前のインジェストパイプラインを使用する機能があります。
Corelight のパイプラインが呼び出される前に行いたい処理がある場合は、その名前でインジェストパイプラインを作成できます。
パイプラインを作成しない場合、この関数はそれを静かにスキップするため、任意です。
git clone https://github.com/corelight/ecs-templates
cd ecs-templates
python3 corelight_ecs.py
--no-color: ログの色を無効にします。--debug: デバッグレベルのログを有効にします。--es-default-timeout=10: elasticsearch への接続を待機するデフォルトのタイムアウトを変更します。--es-default-retry=2: elasticsearch への接続を再試行するデフォルトの回数を変更します。--git-repository=corelight: elasticsearch への接続を再試行するデフォルトの回数を変更します。--git-branch=main: elasticsearch への接続を再試行するデフォルトの回数を変更します。一部の値は、お使いの環境に合わせてインストール後に変更が必要な場合があります。これには、elasticsearch 接続用のカスタム認証局、Kafka の各種トピックなどが含まれます。 elasticsearch 出力には 20 を超えるオプションがあり、5 つの異なる入力には 60 を超えるオプションがあるため、インストーラーはそれらすべてを提供、プロンプト表示、検証することはありません。 ただし、サポートとして、スクリプトはどのファイルを変更すべきかを指示します。 また、あらゆるものを完全自動化するユーザーのために、サンプルスクリプト が用意されており、インストール後にファイル内の値を変更し、同時に使用される変数の行のコメントを解除するプロセスを自動化できることを示しています。
詳細については、カスタマイズ セクションを参照してください。
temporary_corelight_routing_index に設定します。bro.export.elasticsearch.use_data_streams を有効にできます。リポジトリの完全な変更履歴については、changelog.md ファイルを参照してください。
リポジトリのやることの完全なリストについては、todo.md ファイルを参照してください。
このリポジトリのバージョニングは、サポートしている Elastic Common Schema (ECS) のバージョンに基づいています。 各ログに次のフィールドが追加されます:
labels.corelight.ecs_versionlabels.corelight.ecs_methodlabels.corelight.ecs_method_versionhttps://github.com/corelight/ecs-templates
https://github.com/corelight/ecs-logstash-mappings
https://github.com/corelight/ecs-mapping
https://github.com/corelight/ecs-dashboards
corelight-ecs-component-protocol_log-weird-base-settings@customcorelight-ecs-component-protocol_log-x509-base-settings@customcorelight-ecs-component-protocol_log-weird-mappings@customcorelight-ecs-component-protocol_log-x509-mappings@customcorelight-ecs-component-protocol_log-weird-ilm-settings@customcorelight-ecs-component-protocol_log-x509-ilm-settings@customcorelight-ecs-component-protocol_log-weird-aliases@customcorelight-ecs-component-protocol_log-x509-aliases@custom