
Modèles Elastic Common Schema pour Corelight ou Zeek
Ce dépôt contient tout le nécessaire pour convertir les logs Corelight ou Zeek vers le standard de nommage Elastic Common Schema (ECS) et les stocker dans un déploiement Elastic Stack. Publié initialement en 2019, la même année que l'Elastic Common Schema, ce dépôt est toujours activement maintenu et mis à jour.
Il prend en charge plus de 200 logs et métriques différents et est conçu pour prendre en charge tous les environnements tout en permettant simultanément de personnaliser les options requises et souhaitées pour chaque environnement unique.
Un effort important a été investi pour garantir la prise en charge de tous les environnements, tout en permettant simultanément la personnalisation des options nécessaires et souhaitées pour chaque déploiement unique et respectif.
Le dépôt est principalement composé de deux éléments :
Les fichiers et le script d'automatisation sont open-source sous licence BSD. Voir COPYING pour plus de détails.
Veuillez lire toutes les sections avant d'exécuter le script.
corelight_ecs.py de ce dépôt. L'installation manuelle des modèles et des pipelines n'est pas prise en charge car il y a des centaines de variables dans les fichiers qui sont remplacées par le script.La personnalisation des paramètres d'index, des mappings, des alias et des politiques ILM est encouragée. Par conséquent, le script est conçu pour prendre en charge de nombreux types de personnalisations (détaillés ci-dessous).
De nombreuses personnalisations ne seront pas nécessaires, mais il vaut mieux avoir l'option que de ne pas l'avoir. Il est toujours recommandé d'utiliser votre propre nombre de shards/réplicas et votre propre politique ILM, mais au-delà de cela, vous ne devriez pas avoir besoin de personnaliser beaucoup d'autres choses. Cependant, si vous personnalisez normalement de nombreux éléments dans les modèles d'index, les pipelines d'ingestion et les pipelines Logstash dans tous vos déploiements, vous en aurez toujours la possibilité.
Voir chaque section ci-dessous pour plus de détails.
Le script vous demandera si vous souhaitez choisir des noms/modèles d'index personnalisés pour vos data streams. Cela vous permet de choisir votre propre convention de nommage des index. Par exemple, vous pourriez choisir :
logs-corelight.conn-defaultecs-corelight.conn-defaultcall_it_what_you_will.conn-defaultlogs-corelight.conn-remotesite1Il mettra ensuite à jour tous les modèles d'index nécessaires ainsi que, si vous avez choisi les pipelines d'ingestion ou les pipelines Logstash.
Il n'est pas recommandé de modifier les valeurs par défaut, car les logs Corelight sont désormais configurés pour fonctionner avec tous les autres types de données ECS et pour pouvoir être utilisés depuis une vue de données Kibana telle que logs-*
Pour les environnements multi-locataires tels que les MSSP/CSSP ou les différents réseaux, vous pouvez non seulement choisir la partie organisation du data stream dans les invites du script (qui est la partie default dans les 3 exemples ci-dessus), mais si vous définissez data_stream.namespace dans filebeat ou par une autre méthode ou en branchant les pipelines, alors les pipelines sont configurés pour respecter cette variable si elle est déjà définie et ne pas l'écraser. Assurez-vous simplement que votre namespace est défini sur une valeur qu'Elasticsearch autorise pour un nom d'index (erreur courante qui n'est parfois pas évidente).
Vous pouvez voir les index patterns utilisés dans le Google Sheet et la valeur par défaut pour chaque log. Il répertorie également des informations supplémentaires telles que event.category, event.kind, etc. pour chaque log.
Chaque modèle d'index est spécifié pour appeler un modèle de composant que vous pouvez utiliser pour remplacer les paramètres d'index. Par conséquent, vous n'avez pas besoin de modifier les modèles d'index du dépôt pour utiliser vos propres paramètres d'index.
Créez les modèles de composants suivants ou modifiez-les après l'installation. Les noms des modèles de composants que vous pouvez modifier sont :
pour couvrir tous les logs (répartis en 5 catégories) :
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@custompour couvrir des logs individuels au-delà de ce qui précède, qui nécessitent généralement leurs propres paramètres encore plus spécifiques :
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@customChaque modèle d'index est spécifié pour appeler un modèle de composant que vous pouvez utiliser pour remplacer les mappings d'index pour des éléments tels que les types ou les noms de champs. Par conséquent, vous n'avez pas besoin de modifier les modèles d'index du dépôt pour utiliser vos propres mappings d'index.
Créez les modèles de composants suivants ou modifiez-les après l'installation. Les noms des modèles de composants que vous pouvez modifier sont :
pour couvrir tous les logs (répartis en 5 catégories) :
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@custompour couvrir des logs individuels au-delà de ce qui précède, qui nécessitent généralement leurs propres paramètres encore plus spécifiques :
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@customChaque modèle d'index est spécifié pour appeler un modèle de composant que vous pouvez utiliser pour remplacer la politique ILM afin de définir votre propre rétention. Par conséquent, vous n'avez pas besoin de modifier les modèles d'index du dépôt pour utiliser votre propre politique ILM.
Créez les modèles de composants suivants ou modifiez-les après l'installation. Les noms des modèles de composants que vous pouvez modifier sont :
pour couvrir tous les logs (répartis en 5 catégories) :
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@customceux-ci couvriront les logs individuels au-delà de ce qui précède, qui nécessitent généralement leurs propres paramètres encore plus spécifiques :
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@customChaque modèle d'index est spécifié pour appeler un modèle de composant que vous pouvez utiliser pour remplacer les alias d'index. Par conséquent, vous n'avez pas besoin de modifier les modèles d'index du dépôt pour utiliser vos propres alias ILM.
Créez les modèles de composants suivants ou modifiez-les après l'installation. Les noms des modèles de composants que vous pouvez modifier sont :
pour couvrir tous les logs (répartis en 5 catégories) :
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@customceux-ci couvriront les logs individuels au-delà de ce qui précède, qui nécessitent généralement leurs propres paramètres encore plus spécifiques :
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@customAu début des pipelines d'ingestion, avant que les pipelines Corelight soient appelés, il existe une fonction qui utilise le pipeline d'ingestion nommé corelight-ecs-main-pipeline@custom.
Vous pouvez créer un pipeline d'ingestion portant ce nom si vous souhaitez faire des choses avant que les pipelines Corelight soient appelés.
Si vous ne créez pas le pipeline, la fonction le laisse passer silencieusement ; il est donc optionnel.
À la fin des pipelines d'ingestion, après que tous les pipelines Corelight ont été appelés, il existe une fonction qui utilise le pipeline d'ingestion nommé corelight-ecs-postprocess-final-main-pipeline@custom.
Vous pouvez créer un pipeline d'ingestion portant ce nom si vous souhaitez faire des choses avant que les pipelines Corelight soient appelés.
Si vous ne créez pas le pipeline, la fonction le laisse passer silencieusement ; il est donc optionnel.
Au début des pipelines d'ingestion, dans la règle fourre-tout on_failure pour les échecs des pipelines d'ingestion, avant que les pipelines Corelight soient appelés, il existe une fonction qui utilise le pipeline d'ingestion nommé corelight-ecs-parse_failures-pipeline@custom.
Vous pouvez créer un pipeline d'ingestion portant ce nom si vous souhaitez faire des choses avant que les pipelines Corelight soient appelés.
Si vous ne créez pas le pipeline, la fonction le laisse passer silencieusement ; il est donc optionnel.
À la fin des pipelines d'ingestion, après que tous les pipelines Corelight ont été appelés, il existe une fonction qui utilise le pipeline d'ingestion nommé corelight-ecs-postprocess-final-main-pipeline@custom.
Vous pouvez créer un pipeline d'ingestion portant ce nom si vous souhaitez faire des choses avant que les pipelines Corelight soient appelés.
Si vous ne créez pas le pipeline, la fonction le laisse passer silencieusement ; il est donc optionnel.
git clone https://github.com/corelight/ecs-templates
cd ecs-templates
python3 corelight_ecs.py
--no-color : Désactiver les couleurs pour la journalisation.--debug : Activer la journalisation au niveau debug.--es-default-timeout=10 : Modifier le délai d'attente par défaut de la connexion à Elasticsearch.--es-default-retry=2 : Modifier le nombre de fois par défaut pour réessayer une connexion à Elasticsearch.--git-repository=corelight : Modifier le nombre de fois par défaut pour réessayer une connexion à Elasticsearch.--git-branch=main : Modifier le nombre de fois par défaut pour réessayer une connexion à Elasticsearch.Certaines valeurs devront peut-être être modifiées après l'installation pour s'adapter à votre environnement. Cela inclut des éléments tels qu'une autorité de certification personnalisée pour la connexion Elasticsearch, divers topics Kafka, etc. Comme il y a plus de 20 options dans la sortie Elasticsearch et plus de 60 options réparties sur 5 entrées différentes, l'installateur ne fournit pas, ne demande pas et ne vérifie pas la validité de toutes ces options. Cependant, pour vous aider, le script vous indiquera quels fichiers modifier. De plus, pour ceux qui utilisent une automatisation complète de tous les éléments, un script d'exemple a été fourni pour montrer qu'il est possible d'automatiser le processus de modification des valeurs dans les fichiers après l'installation tout en décommentant simultanément les lignes des variables utilisées.
Voir la section Personnalisation pour plus de détails.
temporary_corelight_routing_indexvoir le fichier changelog.md pour un journal complet des modifications du dépôt.
voir le fichier todo.md pour une liste complète des tâches à faire pour le dépôt.
Le versionnage de ce dépôt est basé sur la version de l'Elastic Common Schema (ECS) qu'il prend en charge. Des champs sont ajoutés à chaque log :
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