
Modelli Elastic Common Schema di Corelight o Zeek
Questo repository contiene tutto il necessario per convertire i log Corelight o Zeek nello standard di denominazione Elastic Common Schema (ECS) e archiviarli in un deployment Elastic Stack. Rilasciato originariamente nel 2019, lo stesso anno dell'Elastic Common Schema, questo repository è ancora attivamente mantenuto e aggiornato.
Supporta oltre 200 log e metriche diversi ed è progettato per supportare tutti gli ambienti, consentendo al contempo di personalizzare le opzioni necessarie e desiderate per supportare ogni ambiente specifico.
È stato investito uno sforzo significativo per garantire il supporto in tutti gli ambienti, consentendo allo stesso tempo la personalizzazione delle opzioni necessarie e desiderate per adattarsi a ogni deployment unico e rispettivo.
Il repository è principalmente composto da due cose:
I file e lo script di automazione sono open-source sotto licenza BSD. Vedere COPYING per i dettagli.
Leggere tutte le sezioni prima di eseguire lo script.
corelight_ecs.py da questo repository. L'installazione manuale dei modelli e delle pipeline non è supportata perché ci sono centinaia di variabili in tutti i file che vengono sostituite dallo script.La personalizzazione di impostazioni degli indici, mappature, alias e policy ILM è incoraggiata. Pertanto, lo script è progettato per supportare molti tipi di personalizzazioni (dettagliate di seguito).
Molte personalizzazioni non saranno necessarie, ma è meglio avere l'opzione piuttosto che non averla. Si consiglia sempre di utilizzare il proprio numero di shard/repliche e la propria policy ILM, ma oltre a questo non dovresti aver bisogno di personalizzare molto altro. Tuttavia, se normalmente personalizzi molte cose nei modelli di indice, nelle pipeline di ingest e nelle pipeline Logstash in tutti i tuoi deployment, avrai comunque questa possibilità.
Consulta ogni sezione di seguito per maggiori dettagli.
Lo script ti chiederà se desideri scegliere nomi/pattern personalizzati per i tuoi data stream. Questo ti permette di scegliere la tua convenzione di denominazione degli indici. Ad esempio potresti scegliere:
logs-corelight.conn-defaultecs-corelight.conn-defaultcall_it_what_you_will.conn-defaultlogs-corelight.conn-remotesite1Successivamente aggiornerà anche tutti i modelli di indice necessari se hai scelto pipeline di ingest o pipeline Logstash.
Non è consigliato modificare i valori predefiniti, poiché i log Corelight sono ora configurati per funzionare con tutti gli altri tipi di dati ECS e per poter essere utilizzati da una vista dati Kibana come logs-*
Per ambienti multi-tenant come MSSP/CSSP o reti diverse, puoi non solo scegliere la parte relativa all'organizzazione del data stream nei prompt dello script (che è la parte default nei 3 esempi precedenti), ma se imposti data_stream.namespace in filebeat o con qualche altro metodo o hook nelle pipeline, allora le pipeline sono configurate per rispettare se quella variabile è già impostata e per non sovrascriverla. Assicurati solo che il tuo namespace sia impostato su un valore che Elasticsearch consente per un nome di indice (errore comune che a volte non è ovvio).
Puoi vedere i pattern degli indici utilizzati nel Google Sheet e il valore predefinito per ciascun log. Inoltre, elenca alcune informazioni aggiuntive come event.category, event.kind, ecc. per ogni log.
Ogni modello di indice è configurato per chiamare un component template che puoi utilizzare per sovrascrivere le impostazioni dell'indice. Pertanto non è necessario modificare i modelli di indice del repository per utilizzare le proprie impostazioni dell'indice.
Crea i seguenti component template o modificali dopo l'installazione. I nomi dei component template che puoi modificare sono:
per coprire tutti i log (divisi in 5 categorie):
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@customper coprire i singoli log oltre a quelli sopra, che comunemente necessitano di impostazioni ancora più specifiche:
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@customOgni modello di indice è configurato per chiamare un component template che puoi utilizzare per sovrascrivere le mappature dell'indice per elementi come tipi o nomi di campi. Pertanto non è necessario modificare i modelli di indice del repository per utilizzare le proprie mappature dell'indice.
Crea i seguenti component template o modificali dopo l'installazione. I nomi dei component template che puoi modificare sono:
per coprire tutti i log (divisi in 5 categorie):
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@customper coprire i singoli log oltre a quelli sopra, che comunemente necessitano di impostazioni ancora più specifiche:
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@customOgni modello di indice è configurato per chiamare un component template che puoi utilizzare per sovrascrivere la policy ILM e impostare la propria conservazione dei dati. Pertanto non è necessario modificare i modelli di indice del repository per utilizzare la propria policy ILM.
Crea i seguenti component template o modificali dopo l'installazione. I nomi dei component template che puoi modificare sono:
per coprire tutti i log (divisi in 5 categorie):
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@customquesti copriranno i singoli log oltre a quelli sopra, che comunemente necessitano di impostazioni ancora più specifiche:
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@customOgni modello di indice è configurato per chiamare un component template che puoi utilizzare per sovrascrivere gli alias dell'indice. Pertanto non è necessario modificare i modelli di indice del repository per utilizzare i propri alias.
Crea i seguenti component template o modificali dopo l'installazione. I nomi dei component template che puoi modificare sono:
per coprire tutti i log (divisi in 5 categorie):
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@customquesti copriranno i singoli log oltre a quelli sopra, che comunemente necessitano di impostazioni ancora più specifiche:
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@customAll'inizio delle pipeline di ingest, prima che venga chiamata qualsiasi pipeline Corelight, è presente una funzione che utilizza la pipeline di ingest denominata corelight-ecs-main-pipeline@custom.
Puoi creare una pipeline di ingest con quel nome se ci sono operazioni che desideri eseguire prima che le pipeline Corelight vengano chiamate.
Se non crei la pipeline, la funzione la salta silenziosamente; pertanto è facoltativa.
Alla fine delle pipeline di ingest, dopo che tutte le pipeline Corelight sono state chiamate, è presente una funzione che utilizza la pipeline di ingest denominata corelight-ecs-postprocess-final-main-pipeline@custom.
Puoi creare una pipeline di ingest con quel nome se ci sono operazioni che desideri eseguire prima che le pipeline Corelight vengano chiamate.
Se non crei la pipeline, la funzione la salta silenziosamente; pertanto è facoltativa.
All'inizio del catchall on_failure delle pipeline di ingest per gli errori delle pipeline di ingest, prima che venga chiamata qualsiasi pipeline Corelight, è presente una funzione che utilizza la pipeline di ingest denominata corelight-ecs-parse_failures-pipeline@custom.
Puoi creare una pipeline di ingest con quel nome se ci sono operazioni che desideri eseguire prima che le pipeline Corelight vengano chiamate.
Se non crei la pipeline, la funzione la salta silenziosamente; pertanto è facoltativa.
Alla fine delle pipeline di ingest, dopo che tutte le pipeline Corelight sono state chiamate, è presente una funzione che utilizza la pipeline di ingest denominata corelight-ecs-postprocess-final-main-pipeline@custom.
Puoi creare una pipeline di ingest con quel nome se ci sono operazioni che desideri eseguire prima che le pipeline Corelight vengano chiamate.
Se non crei la pipeline, la funzione la salta silenziosamente; pertanto è facoltativa.
git clone https://github.com/corelight/ecs-templates
cd ecs-templates
python3 corelight_ecs.py
--no-color: Disabilita i colori per il logging.--debug: Abilita il logging a livello di debug.--es-default-timeout=10: Modifica il timeout predefinito di attesa per la connessione a Elasticsearch.--es-default-retry=2: Modifica il numero predefinito di tentativi di connessione a Elasticsearch.--git-repository=corelight: Modifica il numero predefinito di tentativi di connessione a Elasticsearch.--git-branch=main: Modifica il numero predefinito di tentativi di connessione a Elasticsearch.Alcuni valori potrebbero dover essere modificati dopo l'installazione per adattarsi al proprio ambiente. Questo include elementi come un certificato CA personalizzato per la connessione a Elasticsearch, vari topic per Kafka e così via. Poiché ci sono oltre 20 opzioni nell'output Elasticsearch e oltre 60 opzioni su 5 input diversi, l'installer non fornisce, richiede e verifica la validità di tutte queste opzioni. Tuttavia, per aiutarti, lo script ti dirà quali file modificare. Inoltre, per chi utilizza la piena automazione di tutto, è stato fornito uno script di esempio per dimostrare che è possibile automatizzare il processo di modifica dei valori nei file dopo l'installazione e, contemporaneamente, decommentare le righe per le variabili utilizzate.
Vedi la sezione Personalizzazione per maggiori dettagli.
temporary_corelight_routing_indexbro.export.elasticsearch.use_data_streamsvedi il file changelog.md per un changelog completo del repository.
vedi il file todo.md per un elenco completo delle cose da fare per il repository.
Il versionamento di questo repository si basa sulla versione dell'Elastic Common Schema (ECS) che supporta. I campi vengono aggiunti a ogni 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