
Corelight oder Zeek Elastic Common Schema-Vorlagen
Dieses Repository enthält alles, was erforderlich ist, um Corelight- oder Zeek-Logs in den Namensstandard des Elastic Common Schema (ECS) zu konvertieren und sie in einer Elastic-Stack-Bereitstellung zu speichern. Ursprünglich 2019 veröffentlicht, im selben Jahr wie Elastic Common Schema, wird dieses Repository weiterhin aktiv gepflegt und aktualisiert.
Es unterstützt über 200 verschiedene Logs und Metriken und ist darauf ausgelegt, alle Umgebungen zu unterstützen und gleichzeitig die erforderlichen und gewünschten Optionen an jede einzelne Umgebung anpassen zu können.
Erhebliche Anstrengungen wurden investiert, um die Unterstützung für alle Umgebungen sicherzustellen und gleichzeitig die Anpassung notwendiger und gewünschter Optionen an jede einzelne und jeweilige Bereitstellung zu ermöglichen.
Das Repository besteht hauptsächlich aus zwei Dingen:
Die Dateien und das Automatisierungsskript sind Open Source unter einer BSD-Lizenz. Siehe COPYING für Details.
Bitte lesen Sie alle Abschnitte, bevor Sie das Skript ausführen.
corelight_ecs.py aus diesem Repository. Eine manuelle Installation der Vorlagen und Pipelines wird nicht unterstützt, da hunderte Variablen in den Dateien vorhanden sind, die vom Skript ersetzt werden.Die Anpassung von Indexeinstellungen, Mappings, Aliassen und ILM-Richtlinien wird ausdrücklich empfohlen. Daher ist das Skript so konzipiert, dass es viele Arten von Anpassungen unterstützt (unten im Detail beschrieben).
Viele Anpassungen werden nicht benötigt, aber es ist besser, die Option zu haben als nicht. Es wird immer empfohlen, Ihre eigene Anzahl von Shards/Repliken und Ihre eigene ILM-Richtlinie zu verwenden, aber darüber hinaus sollten Sie nicht viel anderes anpassen müssen. Wenn Sie jedoch normalerweise viele Dinge in den Indexvorlagen, Ingest Pipelines und Logstash-Pipelines in allen Ihren Bereitstellungen anpassen, haben Sie weiterhin die Möglichkeit dazu.
Weitere Details finden Sie in den jeweiligen Abschnitten unten.
Das Skript fragt Sie, ob Sie benutzerdefinierte Indexnamen/-muster für Ihre Datastreams wählen möchten. Dies ermöglicht Ihnen, Ihre eigene Indexnamenskonvention zu wählen. Zum Beispiel könnten Sie wählen:
logs-corelight.conn-defaultecs-corelight.conn-defaultcall_it_what_you_will.conn-defaultlogs-corelight.conn-remotesite1Es aktualisiert dann auch alle notwendigen Indexvorlagen, falls Sie Ingest Pipelines oder Logstash-Pipelines gewählt haben.
Es wird nicht empfohlen, die Standardwerte zu ändern, da die Corelight-Logs nun so eingerichtet sind, dass sie mit allen anderen Arten von ECS-Daten funktionieren und innerhalb einer Kibana-Datensicht wie logs-* verwendet werden können.
Für Multi-Tenant-Umgebungen wie MSSPs/CSSPs oder verschiedene Netzwerke können Sie nicht nur den Organisationsteil des Datastreams in den Abfragen des Skripts wählen (das ist der default-Teil in den 3 obigen Beispielen). Wenn Sie jedoch data_stream.namespace in Filebeat oder über eine andere Methode setzen oder die Pipelines anhängen, sind die Pipelines so eingestellt, dass sie diese Variable respektieren, falls sie bereits gesetzt ist, und sie nicht überschreiben. Stellen Sie nur sicher, dass Ihr Namespace auf einen Wert gesetzt ist, den Elasticsearch für einen Indexnamen zulässt (ein häufiger Fehler, der manchmal nicht offensichtlich ist).
Sie können die verwendeten Indexmuster in der Google-Tabelle und den Standard für jedes Log einsehen. Außerdem werden einige zusätzliche Informationen wie event.category, event.kind usw. für jedes Log aufgelistet.
Jede Indexvorlage ist so festgelegt, dass sie eine Komponentenvorlage aufruft, mit der Sie die Indexeinstellungen überschreiben können. Daher müssen Sie die Repository-Indexvorlagen nicht modifizieren, um Ihre eigenen Indexeinstellungen zu verwenden.
Erstellen Sie die folgenden Komponentenvorlagen oder modifizieren Sie sie nach der Installation. Die Namen der Komponentenvorlagen, die Sie modifizieren können, sind:
um alle Logs abzudecken (unterteilt in 5 Kategorien):
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@customum einzelne Logs über die obigen hinaus abzudecken, die häufig eigene, noch spezifischere Einstellungen benötigen:
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@customJede Indexvorlage ist so festgelegt, dass sie eine Komponentenvorlage aufruft, mit der Sie die Index-Mappings für Dinge wie Feldtypen oder -namen überschreiben können. Daher müssen Sie die Repository-Indexvorlagen nicht modifizieren, um Ihre eigenen Index-Mappings zu verwenden.
Erstellen Sie die folgenden Komponentenvorlagen oder modifizieren Sie sie nach der Installation. Die Namen der Komponentenvorlagen, die Sie modifizieren können, sind:
um alle Logs abzudecken (unterteilt in 5 Kategorien):
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@customum einzelne Logs über die obigen hinaus abzudecken, die häufig eigene, noch spezifischere Einstellungen benötigen:
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@customJede Indexvorlage ist so festgelegt, dass sie eine Komponentenvorlage aufruft, mit der Sie die ILM-Richtlinie überschreiben können, um Ihre eigene Aufbewahrungsdauer festzulegen. Daher müssen Sie die Repository-Indexvorlagen nicht modifizieren, um Ihre eigene ILM-Richtlinie zu verwenden.
Erstellen Sie die folgenden Komponentenvorlagen oder modifizieren Sie sie nach der Installation. Die Namen der Komponentenvorlagen, die Sie modifizieren können, sind:
um alle Logs abzudecken (unterteilt in 5 Kategorien):
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@customdiese werden einzelne Logs über die obigen hinaus abdecken, die häufig eigene, noch spezifischere Einstellungen benötigen:
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@customJede Indexvorlage ist so festgelegt, dass sie eine Komponentenvorlage aufruft, mit der Sie die Index-Aliase überschreiben können. Daher müssen Sie die Repository-Indexvorlagen nicht modifizieren, um Ihre eigenen Index-Aliase zu verwenden.
Erstellen Sie die folgenden Komponentenvorlagen oder modifizieren Sie sie nach der Installation. Die Namen der Komponentenvorlagen, die Sie modifizieren können, sind:
um alle Logs abzudecken (unterteilt in 5 Kategorien):
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@customdiese werden einzelne Logs über die obigen hinaus abdecken, die häufig eigene, noch spezifischere Einstellungen benötigen:
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@customAm Anfang der Ingest Pipelines, bevor irgendwelche Corelight-Pipelines aufgerufen werden, gibt es eine Funktion zur Verwendung der Ingest Pipeline namens corelight-ecs-main-pipeline@custom.
Sie können eine Ingest Pipeline mit diesem Namen erstellen, wenn es Dinge gibt, die Sie tun möchten, bevor die Corelight-Pipelines aufgerufen werden.
Wenn Sie die Pipeline nicht erstellen, übergibt die Funktion sie stillschweigend, daher ist sie optional.
Am Ende der Ingest Pipelines, nachdem alle Corelight-Pipelines aufgerufen wurden, gibt es eine Funktion zur Verwendung der Ingest Pipeline namens corelight-ecs-postprocess-final-main-pipeline@custom.
Sie können eine Ingest Pipeline mit diesem Namen erstellen, wenn es Dinge gibt, die Sie tun möchten, bevor die Corelight-Pipelines aufgerufen werden.
Wenn Sie die Pipeline nicht erstellen, übergibt die Funktion sie stillschweigend, daher ist sie optional.
Am Anfang der Ingest Pipelines, im on_failure-Catchall für Ingest-Pipeline-Fehler, bevor irgendwelche Corelight-Pipelines aufgerufen werden, gibt es eine Funktion zur Verwendung der Ingest Pipeline namens corelight-ecs-parse_failures-pipeline@custom.
Sie können eine Ingest Pipeline mit diesem Namen erstellen, wenn es Dinge gibt, die Sie tun möchten, bevor die Corelight-Pipelines aufgerufen werden.
Wenn Sie die Pipeline nicht erstellen, übergibt die Funktion sie stillschweigend, daher ist sie optional.
Am Ende der Ingest Pipelines, nachdem alle Corelight-Pipelines aufgerufen wurden, gibt es eine Funktion zur Verwendung der Ingest Pipeline namens corelight-ecs-postprocess-final-main-pipeline@custom.
Sie können eine Ingest Pipeline mit diesem Namen erstellen, wenn es Dinge gibt, die Sie tun möchten, bevor die Corelight-Pipelines aufgerufen werden.
Wenn Sie die Pipeline nicht erstellen, übergibt die Funktion sie stillschweigend, daher ist sie optional.
git clone https://github.com/corelight/ecs-templates
cd ecs-templates
python3 corelight_ecs.py
--no-color: Deaktiviert Farben für die Protokollierung.--debug: Aktiviert die Protokollierung auf Debug-Ebene.--es-default-timeout=10: Ändert das Standard-Timeout beim Warten auf die Verbindung zum Elasticsearch.--es-default-retry=2: Ändert die Standardanzahl der Wiederholungsversuche für eine Verbindung zum Elasticsearch.--git-repository=corelight: Ändert die Standardanzahl der Wiederholungsversuche für eine Verbindung zum Elasticsearch.--git-branch=main: Ändert die Standardanzahl der Wiederholungsversuche für eine Verbindung zum Elasticsearch.Bestimmte Werte müssen möglicherweise nach der Installation geändert werden, um zu Ihrer Umgebung zu passen. Dazu gehören Dinge wie eine benutzerdefinierte Zertifizierungsstelle für die Elasticsearch-Verbindung, verschiedene Kafka-Topics und so weiter. Da es über 20 Optionen im Elasticsearch-Output und über 60 Optionen über 5 verschiedene Inputs gibt, bietet der Installer nicht alle an, fragt nicht nach ihnen und prüft nicht deren Gültigkeit. Um Ihnen jedoch zu helfen, teilt Ihnen das Skript mit, welche Dateien Sie ändern müssen. Außerdem wurde für diejenigen, die eine vollständige Automatisierung verwenden, ein Beispielskript bereitgestellt, um zu zeigen, dass es möglich ist, den Prozess der Wertänderung in den Dateien nach der Installation zu automatisieren und gleichzeitig die Zeilen für die verwendeten Variablen zu entkommentieren.
Weitere Details finden Sie im Abschnitt Anpassung.
temporary_corelight_routing_indexDen vollständigen Changelog des Repositorys finden Sie in der Datei changelog.md.
Eine vollständige Liste der anstehenden Aufgaben für das Repository finden Sie in der Datei todo.md.
Die Versionierung dieses Repositorys basiert auf der Version des Elastic Common Schema (ECS), das es unterstützt. Jedem Log werden Felder hinzugefügt:
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