
Plantillas de Elastic Common Schema para Corelight o Zeek
Este repositorio contiene todo lo necesario para convertir los logs de Corelight o Zeek al estándar de nomenclatura del Elastic Common Schema (ECS) y almacenarlos en un despliegue de Elastic Stack. Publicado originalmente en 2019, el mismo año que Elastic Common Schema, este repositorio sigue siendo mantenido y actualizado activamente.
Admite más de 200 logs y métricas diferentes y está diseñado para poder soportar todos los entornos, al mismo tiempo que permite personalizar las opciones necesarias y deseadas para cada entorno único.
Se ha realizado un esfuerzo significativo para garantizar la compatibilidad en todos los entornos, permitiendo al mismo tiempo la personalización de las opciones necesarias y deseadas para adaptarse a cada despliegue particular y respectivo.
El repositorio se compone principalmente de dos cosas:
Los archivos y el script de automatización son de código abierto bajo una licencia BSD. Consulte COPYING para más detalles.
Por favor, lea todas las secciones antes de ejecutar el script.
corelight_ecs.py de este repositorio. No se admite la instalación manual de las plantillas y pipelines porque hay cientos de variables en todos los archivos que el script reemplaza.Se recomienda personalizar los ajustes de índice, mapeos, aliases y políticas de ILM. Por lo tanto, el script está diseñado para admitir muchos tipos de personalizaciones (detalladas a continuación).
Muchas personalizaciones no serán necesarias, pero es mejor tener la opción que no tenerla. Siempre se recomienda utilizar su propio número de shards/réplicas y su propia política de ILM, pero más allá de eso no debería necesitar personalizar mucho más. Sin embargo, si normalmente personaliza muchas cosas en las plantillas de índice, pipelines de ingestión y pipelines de Logstash en todos sus despliegues, aún tendrá la capacidad de hacerlo.
Consulte cada sección a continuación para obtener más detalles.
El script le preguntará si desea elegir nombres/patrones de índice personalizados para sus data streams. Esto le permite elegir su propia convención de nomenclatura de índices. Por ejemplo, podría elegir:
logs-corelight.conn-defaultecs-corelight.conn-defaultcall_it_what_you_will.conn-defaultlogs-corelight.conn-remotesite1Luego actualizará también todas las plantillas de índice necesarias, así como los pipelines de ingestión o pipelines de Logstash que haya elegido.
No se recomienda cambiar los valores predeterminados, ya que los logs de Corelight ahora están configurados para funcionar con todos los demás tipos de datos ECS y poder utilizarse desde una vista de datos de Kibana como logs-*
Para entornos multiinquilino como MSSPs/CSSPs o diferentes redes, no solo puede elegir la parte de organización del data stream en las indicaciones del script (que es la parte default en los 3 ejemplos anteriores), sino que, si establece data_stream.namespace en filebeat u otro método o engancha los pipelines, estos están configurados para respetar si esa variable ya está definida y no sobrescribirla. Solo asegúrese de que su namespace esté configurado con un valor que Elasticsearch permita como nombre de índice (un error común que a veces no es evidente).
Puede ver los patrones de índice que se utilizan en la Google Sheet y el valor predeterminado para cada log. También enumera información adicional como event.category, event.kind, etc. para cada log.
Cada plantilla de índice está configurada para llamar a una plantilla de componentes que puede utilizar para sobrescribir los ajustes de índice. Por lo tanto, no necesita modificar las plantillas de índice del repositorio para utilizar sus propios ajustes de índice.
Cree las siguientes plantillas de componentes o modifíquelas después de la instalación. Los nombres de las plantillas de componentes que puede modificar son:
para cubrir todos los logs (divididos en 5 categorías):
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@custompara cubrir logs individuales más allá de los anteriores, que comúnmente necesitan sus propios ajustes para ser aún más específicos:
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@customCada plantilla de índice está configurada para llamar a una plantilla de componentes que puede utilizar para sobrescribir los mapeos de índice, por ejemplo, tipos o nombres de campos. Por lo tanto, no necesita modificar las plantillas de índice del repositorio para utilizar sus propios mapeos de índice.
Cree las siguientes plantillas de componentes o modifíquelas después de la instalación. Los nombres de las plantillas de componentes que puede modificar son:
para cubrir todos los logs (divididos en 5 categorías):
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@custompara cubrir logs individuales más allá de los anteriores, que comúnmente necesitan sus propios ajustes para ser aún más específicos:
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@customCada plantilla de índice está configurada para llamar a una plantilla de componentes que puede utilizar para sobrescribir la política de ILM y establecer su propia retención. Por lo tanto, no necesita modificar las plantillas de índice del repositorio para utilizar su propia política de ILM.
Cree las siguientes plantillas de componentes o modifíquelas después de la instalación. Los nombres de las plantillas de componentes que puede modificar son:
para cubrir todos los logs (divididos en 5 categorías):
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@customestas cubrirán logs individuales más allá de los anteriores, que comúnmente necesitan sus propios ajustes para ser aún más específicos:
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@customCada plantilla de índice está configurada para llamar a una plantilla de componentes que puede utilizar para sobrescribir los aliases de índice. Por lo tanto, no necesita modificar las plantillas de índice del repositorio para utilizar sus propios aliases.
Cree las siguientes plantillas de componentes o modifíquelas después de la instalación. Los nombres de las plantillas de componentes que puede modificar son:
para cubrir todos los logs (divididos en 5 categorías):
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@customestas cubrirán logs individuales más allá de los anteriores, que comúnmente necesitan sus propios ajustes para ser aún más específicos:
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@customAl inicio de los pipelines de ingestión, antes de que se llame a cualquier pipeline de Corelight, hay una función para usar el pipeline de ingestión llamado corelight-ecs-main-pipeline@custom.
Puede crear un pipeline de ingestión con ese nombre si hay cosas que desee hacer antes de que se llamen a los pipelines de Corelight.
Si no crea el pipeline, la función lo omite silenciosamente, por lo que es opcional.
Al final de los pipelines de ingestión, después de que se llame a todos los pipelines de Corelight, hay una función para usar el pipeline de ingestión llamado corelight-ecs-postprocess-final-main-pipeline@custom.
Puede crear un pipeline de ingestión con ese nombre si hay cosas que desee hacer antes de que se llamen a los pipelines de Corelight.
Si no crea el pipeline, la función lo omite silenciosamente, por lo que es opcional.
Al inicio del catchall de on_failure de los pipelines de ingestión para fallos de pipeline de ingestión, antes de que se llame a cualquier pipeline de Corelight, hay una función para usar el pipeline de ingestión llamado corelight-ecs-parse_failures-pipeline@custom.
Puede crear un pipeline de ingestión con ese nombre si hay cosas que desee hacer antes de que se llamen a los pipelines de Corelight.
Si no crea el pipeline, la función lo omite silenciosamente, por lo que es opcional.
Al final de los pipelines de ingestión, después de que se llame a todos los pipelines de Corelight, hay una función para usar el pipeline de ingestión llamado corelight-ecs-postprocess-final-main-pipeline@custom.
Puede crear un pipeline de ingestión con ese nombre si hay cosas que desee hacer antes de que se llamen a los pipelines de Corelight.
Si no crea el pipeline, la función lo omite silenciosamente, por lo que es opcional.
git clone https://github.com/corelight/ecs-templates
cd ecs-templates
python3 corelight_ecs.py
--no-color: Deshabilita los colores para el registro.--debug: Habilita el registro a nivel de depuración.--es-default-timeout=10: Cambia el tiempo de espera predeterminado para la conexión con Elasticsearch.--es-default-retry=2: Cambia el número predeterminado de veces que se reintenta la conexión con Elasticsearch.--git-repository=corelight: Cambia el número predeterminado de veces que se reintenta la conexión con Elasticsearch.--git-branch=main: Cambia el número predeterminado de veces que se reintenta la conexión con Elasticsearch.Ciertos valores pueden necesitar cambios después de la instalación para adaptarse a su entorno. Esto incluiría cosas como una autoridad de certificación personalizada para la conexión con Elasticsearch, varios temas de Kafka, etc. Debido a que hay más de 20 opciones en la salida de Elasticsearch y más de 60 opciones en 5 entradas diferentes, el instalador no proporciona, solicita ni verifica la validez de todas ellas. Sin embargo, para ayudarle, el script le indicará qué archivos modificar. Además, para quienes utilizan la automatización completa de todo, se ha proporcionado un script de ejemplo para demostrar que es posible automatizar el proceso de cambio de los valores en los archivos después de la instalación y, simultáneamente, descomentar las líneas de las variables que se utilizan.
Consulte la sección Personalización para obtener más detalles.
temporary_corelight_routing_indexconsulte el archivo changelog.md para ver el registro de cambios completo del repositorio.
consulte el archivo todo.md para ver la lista completa de tareas pendientes del repositorio.
El control de versiones de este repositorio se basa en la versión del Elastic Common Schema (ECS) que soporta. Se añaden campos a cada 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