
Modelos de Elastic Common Schema para Corelight ou Zeek
Este repositório contém tudo o que é necessário para converter logs do Corelight ou Zeek para o padrão de nomenclatura Elastic Common Schema (ECS) e armazená-los em uma implantação Elastic Stack. Lançado originalmente em 2019, no mesmo ano do Elastic Common Schema, este repositório ainda é mantido e atualizado ativamente.
Suporta mais de 200 logs e métricas diferentes e foi projetado para suportar todos os ambientes, ao mesmo tempo em que permite personalizar as opções necessárias e desejadas para cada ambiente específico.
Esforço significativo foi investido para garantir suporte em todos os ambientes, ao mesmo tempo em que permite a personalização das opções necessárias e desejadas para cada implantação única e respectiva.
O repositório é composto principalmente de duas coisas:
Os arquivos e o script de automação são open-source sob uma licença BSD. Consulte COPYING para detalhes.
Leia todas as seções antes de executar o script.
corelight_ecs.py deste repositório. Não é suportado instalar manualmente os modelos e pipelines, porque há centenas de variáveis nos arquivos que são substituídas pelo script.A personalização de Configurações de Índice, Mapeamentos, Aliases e Políticas ILM é incentivada. Portanto, o script foi projetado para suportar muitos tipos de personalizações (detalhadas abaixo).
Muitas personalizações não serão necessárias, mas é melhor ter a opção do que não ter. Sempre é recomendado usar seu próprio número de shards/réplicas e política ILM, mas além disso você não deve precisar personalizar muito mais. No entanto, se você normalmente personaliza muitas coisas nos modelos de índice, pipelines de ingestão e pipelines logstash em todas as suas implantações, ainda terá essa capacidade.
Consulte cada seção abaixo para mais detalhes.
O script perguntará se você gostaria de escolher nomes/padrões de índice personalizados para seus data streams. Isso permite que você escolha sua própria convenção de nomenclatura de índice. Por exemplo, você poderia escolher:
logs-corelight.conn-defaultecs-corelight.conn-defaultcall_it_what_you_will.conn-defaultlogs-corelight.conn-remotesite1Em seguida, ele atualizará todos os modelos de índice necessários, bem como se você escolher pipelines de ingestão ou pipelines logstash.
Não é recomendado alterar os padrões, pois os logs Corelight agora estão configurados para funcionar com todos os outros tipos de dados ECS e poderem ser usados em uma data view do Kibana, como logs-*
Para ambientes multi-tenant, como MSSPs/CSSPs ou redes diferentes, você pode não apenas escolher a parte da organização do data stream nos prompts do script (que é a parte default nos 3 exemplos acima), porém, se você definir data_stream.namespace no filebeat ou algum outro método ou conectar os pipelines, então os pipelines estão configurados para respeitar se essa variável já estiver definida, para não substituí-la. Apenas certifique-se de que seu namespace esteja definido com um valor que o Elasticsearch permita para um nome de índice (erro comum que às vezes não é óbvio).
Você pode ver os padrões de índice usados no Google Sheet e o padrão para cada log. Além disso, lista algumas informações adicionais, como event.category, event.kind, etc., para cada log.
Cada modelo de índice é especificado para chamar um modelo de componente que você pode usar para substituir as Configurações de Índice. Portanto, você não precisa modificar os modelos de índice do repositório para usar suas próprias Configurações de Índice.
Crie os seguintes modelos de componente ou modifique-os após a instalação. Os nomes dos modelos de componente que você pode modificar são:
para cobrir todos os logs (divididos em 5 categorias):
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 cobrir logs individuais além dos acima, que comumente precisam de suas próprias configurações para serem ainda mais 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@customcorelight-ecs-component-protocol_log-weird-base-settings@customcorelight-ecs-component-protocol_log-x509-base-settings@customCada modelo de índice é especificado para chamar um modelo de componente que você pode usar para substituir os Mapeamentos de Índice para coisas como tipos ou nomes de campos. Portanto, você não precisa modificar os modelos de índice do repositório para usar seus próprios Mapeamentos de Índice.
Crie os seguintes modelos de componente ou modifique-os após a instalação. Os nomes dos modelos de componente que você pode modificar são:
para cobrir todos os logs (divididos em 5 categorias):
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 cobrir logs individuais além dos acima, que comumente precisam de suas próprias configurações para serem ainda mais 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@customcorelight-ecs-component-protocol_log-weird-mappings@customcorelight-ecs-component-protocol_log-x509-mappings@customCada modelo de índice é especificado para chamar um modelo de componente que você pode usar para substituir a Política ILM para definir sua própria retenção. Portanto, você não precisa modificar os modelos de índice do repositório para usar sua própria Política ILM.
Crie os seguintes modelos de componente ou modifique-os após a instalação. Os nomes dos modelos de componente que você pode modificar são:
para cobrir todos os logs (divididos em 5 categorias):
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@customestes cobrirão logs individuais além dos acima, que comumente precisam de suas próprias configurações para serem ainda mais 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@customcorelight-ecs-component-protocol_log-weird-ilm-settings@customcorelight-ecs-component-protocol_log-x509-ilm-settings@customCada modelo de índice é especificado para chamar um modelo de componente que você pode usar para substituir os Aliases de Índice. Portanto, você não precisa modificar os modelos de índice do repositório para usar seus próprios Aliases de Índice.
Crie os seguintes modelos de componente ou modifique-os após a instalação. Os nomes dos modelos de componente que você pode modificar são:
para cobrir todos os logs (divididos em 5 categorias):
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@customestes cobrirão logs individuais além dos acima, que comumente precisam de suas próprias configurações para serem ainda mais 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@customcorelight-ecs-component-protocol_log-weird-aliases@customcorelight-ecs-component-protocol_log-x509-aliases@customNo início dos pipelines de ingestão, antes que qualquer pipeline Corelight seja chamado, há uma função para usar o pipeline de ingestão chamado corelight-ecs-main-pipeline@custom.
Você pode criar um pipeline de ingestão com esse nome se houver coisas que queira fazer antes que os pipelines Corelight sejam chamados.
Se você não criar o pipeline, a função o ignora silenciosamente; portanto, é opcional.
No final dos pipelines de ingestão, depois que todos os pipelines Corelight forem chamados, há uma função para usar o pipeline de ingestão chamado corelight-ecs-postprocess-final-main-pipeline@custom.
Você pode criar um pipeline de ingestão com esse nome se houver coisas que queira fazer antes que os pipelines Corelight sejam chamados.
Se você não criar o pipeline, a função o ignora silenciosamente; portanto, é opcional.
No início do on_failure catchall dos pipelines de ingestão para falhas de pipeline de ingestão, antes que qualquer pipeline Corelight seja chamado, há uma função para usar o pipeline de ingestão chamado corelight-ecs-parse_failures-pipeline@custom.
Você pode criar um pipeline de ingestão com esse nome se houver coisas que queira fazer antes que os pipelines Corelight sejam chamados.
Se você não criar o pipeline, a função o ignora silenciosamente; portanto, é opcional.
No final dos pipelines de ingestão, depois que todos os pipelines Corelight forem chamados, há uma função para usar o pipeline de ingestão chamado corelight-ecs-postprocess-final-main-pipeline@custom.
Você pode criar um pipeline de ingestão com esse nome se houver coisas que queira fazer antes que os pipelines Corelight sejam chamados.
Se você não criar o pipeline, a função o ignora silenciosamente; portanto, é opcional.
git clone https://github.com/corelight/ecs-templates
cd ecs-templates
python3 corelight_ecs.py
--no-color: Desativa cores para logging.--debug: Ativa logging em nível de debug.--es-default-timeout=10: Altera o tempo limite padrão de espera pela conexão com o elasticsearch.--es-default-retry=2: Altera o número padrão de tentativas de conexão com o elasticsearch.--git-repository=corelight: Altera o número padrão de tentativas de conexão com o elasticsearch.--git-branch=main: Altera o número padrão de tentativas de conexão com o elasticsearch.Certos valores podem precisar ser alterados após a instalação, para se adequarem ao seu ambiente. Isso incluiria coisas como uma autoridade certificadora personalizada para a conexão com o elasticsearch, vários tópicos para kafka, e assim por diante. Como existem mais de 20 opções na saída do elasticsearch e mais de 60 opções em 5 entradas diferentes, o instalador não fornece, solicita e valida todas elas. No entanto, para ajudar você, o script informará quais arquivos modificar. Além disso, para aqueles que usam automação completa de todas as coisas, um script de exemplo foi fornecido para mostrar que é possível automatizar o processo de alteração dos valores nos arquivos após a instalação e, simultaneamente, remover os comentários das linhas das variáveis que são usadas.
Consulte a seção Personalização para mais detalhes.
temporary_corelight_routing_indexconsulte o arquivo changelog.md para um changelog completo do repositório.
consulte o arquivo todo.md para uma lista completa de tarefas do repositório.
O versionamento deste repositório é baseado na versão do Elastic Common Schema (ECS) que ele suporta. Campos são adicionados a cada log:
labels.corelight.ecs_versionlabels.corelight.ecs_methodlabels.corelight.ecs_method_version