Elastic Packet Beats-Logs erfassen
Parserversion: 4.0
In diesem Dokument wird beschrieben, wie Sie Elastic Packet Beats-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser initialisiert zuerst Standardwerte für verschiedene Felder, die in Elastic Packet Beats-Logs gefunden werden. Anschließend werden Daten aus den Logeinträgen mithilfe einer Kombination aus grok-Mustern und json-Filtern extrahiert, Datentypkonvertierungen durchgeführt und die extrahierten Felder den entsprechenden Feldern im Unified Data Model (UDM) basierend auf dem Ereignis-Dataset-Typ (z. B. flow, dns, http, tls, dhcpv4) zugeordnet.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz.
- Einen Windows 2016- oder höheren oder Linux-Host mit
systemd. - Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Privilegierter Zugriff auf die Elastic Packet Beats-Verwaltungskonsole oder -Appliance.
- Logstash ist installiert und konfiguriert.
Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen
Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agenten bei Google SecOps zu authentifizieren:
- Neue Bereitstellungen: Verwenden Sie die Chronicle API (Option 1).
- Legacy-Bereitstellungen: Verwenden Sie die Authentifizierungsdatei für die Datenaufnahme (Option 2) weiter, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
Option 1: Dienstkonto für die Chronicle API erstellen (empfohlen)
- Melden Sie sich in der Google Cloud -Konsole an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
- Rufen Sie IAM und Verwaltung > Dienstkonten auf.
- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein (z. B.
bindplane-ingest). - Dienstkontobeschreibung: Geben Sie eine Beschreibung ein (z. B.
Bindplane agent log ingestion).
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein (z. B.
- Klicken Sie auf Erstellen und fortfahren.
- Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle Editor aus.
- Klicken Sie auf Weiter und dann auf Fertig.
- Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie den Tab Schlüssel auf.
- Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
- Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
- Speichern Sie die Schlüsseldatei als
ingestion-auth.jsonim Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.jsonunter Linux oderC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonunter Windows) oder aktualisieren Siecreds_file_pathinconfig.yaml, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern. - Rufen Sie IAM und Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Exporter-Konfiguration.
Option 2: Authentifizierungsdatei für die Datenaufnahme herunterladen (Legacy)
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie Einstellungen > Datenverwaltung > Erfassungs-Agents auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Erfassungs-Agents auf.
- Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
- Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert werden soll.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Gehen Sie zu Einstellungen > Verwaltung > Profil. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Profil auf.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
Bindplane-Agent installieren
Installieren Sie den Bindplane-Agenten gemäß der folgenden Anleitung auf Ihrem Windows- oder Linux-Betriebssystem.
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
Führen Sie dazu diesen Befehl aus:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux-Installation
- Öffnen Sie ein Terminal mit Root- oder sudo-Berechtigungen.
Führen Sie dazu diesen Befehl aus:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Zusätzliche Installationsressourcen
Weitere Installationsoptionen finden Sie in der Installationsanleitung.
Bindplane-Agent für die Aufnahme von Syslog und das Senden an Google SecOps konfigurieren
Greifen Sie auf die Konfigurationsdatei zu:
- Suchen Sie die Datei
config.yaml. In der Regel befindet sie sich unter Linux im Verzeichnis/opt/observiq-otel-collector/oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor (z. B.
nano,vioder Notepad).
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yamlso:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: YOUR_CUSTOMER_ID endpoint: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'ELASTIC_PACKETBEATS' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels- Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
- Ersetzen Sie
<LOCATION>durch die Region Ihrer Google SecOps-Instanz (z. B.us,europeoderasia-southeast1). Der Exporter stellt diesem Wertchronicle.googleapis.comvoran. - Ersetzen Sie
<PROJECT_NUMBER>durch die Projektnummer aus IAM und Verwaltung > Einstellungen. - Ersetzen Sie
YOUR_CUSTOMER_IDdurch die tatsächliche Kundennummer. - Aktualisieren Sie
/path/to/ingestion-authentication-file.jsonauf den Pfad, unter dem die Dienstkontoschlüsseldatei (Option 1) im Abschnitt Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen gespeichert wurde.
Legacy-Ingestion-API-Exporter
Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block
exportersdurch Folgendes. Legen Sie fürcreds_file_pathden Pfad zur Authentifizierungsdatei für die Datenaufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Siemalachiteingestion-pa.googleapis.comdurch Ihren regionalen Endpunkt (z. B.europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: YOUR_CUSTOMER_ID endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'ELASTIC_PACKETBEATS' raw_log_field: body ingestion_labels:
Starten Sie den Bindplane-Agent neu, um die Änderungen zu übernehmen.
Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:
sudo systemctl restart observiq-otel-collectorWenn Sie den Bindplane-Agenten unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:
net stop observiq-otel-collector && net start observiq-otel-collector
Syslog-Weiterleitung in Elastic Packet Beats konfigurieren
Da Packetbeat keine direkte Syslog-Ausgabe unterstützt, müssen Sie Logstash als Zwischenstation verwenden.
Packetbeat so konfigurieren, dass Logs an Logstash gesendet werden
- Melden Sie sich in der Elastic Packet Beats Management Console an.
- Rufen Sie die Einstellungen > Protokollweiterleitung auf.
- Klicken Sie auf den Button + Hinzufügen oder Aktivieren.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen aussagekräftigen Namen ein (z. B.
Logstash Output). - Host: Geben Sie die IP-Adresse des Logstash-Servers ein.
- Port: Geben Sie den Logstash-Beats-Eingabeport ein (normalerweise 5044).
- Protokoll: Wählen Sie Beats-Protokoll aus.
- Format: Wählen Sie JSON aus.
- Zeitzone: Wählen Sie die UTC-Zeitzone aus, um eine systemübergreifende Konsistenz zu gewährleisten.
- Gehen Sie zum Bereich Ereignisse und wählen Sie die relevanten Protokolltypen oder Alle aus.
- Name: Geben Sie einen aussagekräftigen Namen ein (z. B.
Speichern Sie die Konfiguration.
Alternative: „packetbeat.yml“ direkt bearbeiten:
# /etc/packetbeat/packetbeat.yml packetbeat.protocols: - type: dns ports: [53] - type: http ports: [80, 8080, 8000, 5000, 8002] send_headers: true send_all_headers: true - type: tls ports: [443, 993, 995, 5223, 8443, 8883, 9243] - type: dhcpv4 ports: [67, 68] # Enable processors for additional fields processors: - add_network_direction: source: private destination: private internal_networks: - private - community_id: # Send to Logstash using beats protocol output.logstash: hosts: ["LOGSTASH_IP:5044"]Ersetzen Sie
LOGSTASH_IPdurch die IP-Adresse Ihres Logstash-Servers.
Logstash für die Weiterleitung an BindPlane über Syslog konfigurieren
Erstellen Sie eine Logstash-Pipeline-Konfigurationsdatei:
sudo nano /etc/logstash/conf.d/packetbeat-to-bindplane.confFügen Sie die folgende Konfiguration hinzu:
# Receive from Packetbeat input { beats { port => 5044 } } # Optional: Add filters for data enrichment filter { # Preserve original message structure mutate { copy => { "@metadata" => "[@metadata_backup]" } } } # Send to BindPlane via syslog output { syslog { host => "BINDPLANE_IP" port => 514 protocol => "udp" rfc => "rfc5424" facility => "local0" severity => "informational" sourcehost => "%{[agent][hostname]}" appname => "packetbeat" procid => "%{[agent][id]}" msgid => "ELASTIC_PACKETBEATS" structured_data => "packetbeat@32473" message => "%{message}" } }Ersetzen Sie
BINDPLANE_IPdurch die IP-Adresse Ihres BindPlane-Agents.
Starten Sie Logstash neu, um die Konfiguration anzuwenden:
sudo systemctl restart logstash
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| @timestamp | metadata.event_timestamp | Direkt aus dem Rohprotokollfeld @timestamp zugeordnet. |
| agent.hostname | observer.hostname | Direkt aus dem Rohprotokollfeld agent.hostname zugeordnet. |
| agent.id | observer.asset_id | Wird mit agent.type verkettet, um das Feld observer.asset_id zu bilden. |
| agent.type | observer.application | Direkt aus dem Rohprotokollfeld agent.type zugeordnet. |
| agent.version | observer.platform_version | Direkt aus dem Rohprotokollfeld agent.version zugeordnet. |
| audit_category | security_result.category_details | Direkt aus dem Rohprotokollfeld audit_category zugeordnet. |
| audit_cluster_name | additional.fields.audit_cluster_name.value.string_value | Direkt aus dem Rohlogfeld audit_cluster_name zugeordnet. |
| audit_node_host_address | observer.ip | Direkt aus dem Rohprotokollfeld audit_node_host_address zugeordnet. |
| audit_node_id | additional.fields.audit_node_id.value.string_value | Direkt aus dem Rohprotokollfeld audit_node_id zugeordnet. |
| audit_node_name | additional.fields.audit_node_name.value.string_value | Direkt aus dem Rohlogfeld audit_node_name zugeordnet. |
| audit_request_effective_user | observer.user.userid | Direkt aus dem Rohprotokollfeld audit_request_effective_user zugeordnet. |
| audit_request_initiating_user | additional.fields.audit_request_initiating_user.value.string_value | Direkt aus dem Rohprotokollfeld audit_request_initiating_user zugeordnet. |
| audit_request_remote_address | observer.ip | Wird direkt aus dem Rohprotokollfeld audit_request_remote_address zugeordnet, wenn es sich von audit_node_host_address unterscheidet. |
| client.bytes | network.received_bytes (EINGEHEND) / network.sent_bytes (AUSGEHEND) | Zuordnung basierend auf dem Feld network.direction. Wenn INBOUND, wird es network.received_bytes zugeordnet. Wenn OUTBOUND, wird es network.sent_bytes zugeordnet. |
| client.ip | target.ip (EINGEHEND) / principal.ip (AUSGEHEND) | Zuordnung basierend auf dem Feld network.direction. Wenn INBOUND, wird es target.ip zugeordnet. Wenn OUTBOUND, wird es principal.ip zugeordnet. |
| client.port | target.port (EINGEHEND) / principal.port (AUSGEHEND) | Zuordnung basierend auf dem Feld network.direction. Wenn INBOUND, wird es target.port zugeordnet. Wenn OUTBOUND, wird es principal.port zugeordnet. |
| cluster.uuid | additional.fields.uuid.value.string_value | Direkt aus dem Rohprotokollfeld cluster.uuid zugeordnet. |
| Komponente | additional.fields.component.value.string_value | Direkt aus dem Rohprotokollfeld component zugeordnet. |
| destination.bytes | network.sent_bytes | Wird für FLOW-Ereignisse direkt aus dem Rohlogfeld destination.bytes zugeordnet. |
| destination.ip | target.ip | Wird direkt aus dem Rohprotokollfeld destination.ip zugeordnet, wenn network.direction nicht INBOUND oder OUTBOUND ist. |
| destination.mac | target.mac | Wird für FLOW-Ereignisse direkt aus dem Rohlogfeld destination.mac zugeordnet. |
| destination.port | target.port | Wird für FLOW-Ereignisse direkt aus dem Rohlogfeld destination.port zugeordnet. |
| dhcpv4.assigned_ip | network.dhcp.requested_address | Direkt aus dem Rohprotokollfeld dhcpv4.assigned_ip zugeordnet. |
| dhcpv4.client_ip | network.dhcp.yiaddr (ACK) / network.dhcp.ciaddr (REQUEST) / source.ip (REQUEST, wenn dhcpv4.client_ip leer ist) | Zuordnung basierend auf dem Feld network.dhcp.type. Wenn ACK, wird es network.dhcp.yiaddr zugeordnet. Wenn REQUEST, wird es network.dhcp.ciaddr zugeordnet. Wenn REQUEST und dhcpv4.client_ip leer sind, wird es source.ip zugeordnet. |
| dhcpv4.client_mac | network.dhcp.client_identifier | Wird direkt aus dem Rohlogfeld dhcpv4.client_mac zugeordnet, nachdem es in Byte konvertiert wurde. |
| dhcpv4.op_code | network.dhcp.opcode | Wird basierend auf dem Wert von dhcpv4.op_code network.dhcp.opcode zugeordnet. Wenn dhcpv4.op_code den Wert BOOTREPLY oder BOOTREQUEST hat, wird der Wert direkt zugeordnet. Andernfalls wird es UNKNOWN_OPCODE zugeordnet. |
| dhcpv4.option.hostname | network.dhcp.client_hostname | Direkt aus dem Rohprotokollfeld dhcpv4.option.hostname zugeordnet. |
| dhcpv4.option.ip_address_lease_time_sec | network.dhcp.lease_time_seconds | Wird direkt aus dem Rohprotokollfeld dhcpv4.option.ip_address_lease_time_sec zugeordnet, nachdem es in eine vorzeichenlose Ganzzahl konvertiert wurde. |
| dhcpv4.option.message_type | network.dhcp.type | Wird basierend auf dem Wert von dhcpv4.option.message_type network.dhcp.type zugeordnet. Die Zuordnung sieht so aus: ack -> ACK, nack -> NAK, discover -> DISCOVER, offer -> OFFER, request -> REQUEST, decline -> DECLINE, release -> RELEASE, info -> INFORM. Wenn der Wert keiner dieser Werte ist, wird er UNKNOWN_MESSAGE_TYPE zugeordnet. |
| dhcpv4.option.server_identifier | network.dhcp.sname | Direkt aus dem Rohprotokollfeld dhcpv4.option.server_identifier zugeordnet. |
| dns.answers.data | network.dns.answers.data | Direkt aus dem Rohprotokollfeld dns.answers.data zugeordnet. |
| dns.answers.class | network.dns.answers.class | Wird basierend auf dem Wert von dns.answers.class network.dns.answers.class zugeordnet. Die Zuordnung ist wie folgt: IN -> 1, NONE -> 254, ANY -> 255. |
| dns.answers.name | network.dns.answers.name | Direkt aus dem Rohprotokollfeld dns.answers.name zugeordnet. |
| dns.answers.ttl | network.dns.answers.ttl | Wird direkt aus dem Rohprotokollfeld dns.answers.ttl zugeordnet, nachdem es in eine vorzeichenlose Ganzzahl konvertiert wurde. |
| dns.answers.type | network.dns.answers.type | Wird basierend auf dem Wert von dns.answers.type network.dns.answers.type zugeordnet. Die Zuordnung ist wie folgt: A -> 1, NS -> 2, CNAME -> 5, SOA -> 6, PTR -> 12, MX -> 15, TXT -> 16, AAAA -> 28, SRV -> 33, NAPTR -> 35, DS -> 43, DNSKEY -> 48, IXFR -> 251, AXFR -> 252, TYPE99 -> 99, TKEY -> 249, ANY -> 255, ALL -> 255, URI -> 256, NULL -> 0. |
| dns.flags.authoritative | network.dns.authoritative | Wird direkt aus dem Rohprotokollfeld dns.flags.authoritative zugeordnet, wenn es „true“ ist. |
| dns.flags.recursion_available | network.dns.recursion_available | Wird direkt aus dem Rohprotokollfeld dns.flags.recursion_available zugeordnet, wenn es „true“ ist. |
| dns.flags.recursion_desired | network.dns.recursion_desired | Wird direkt aus dem Rohprotokollfeld dns.flags.recursion_desired zugeordnet, wenn es „true“ ist. |
| dns.flags.truncated_response | network.dns.truncated | Wird direkt aus dem Rohprotokollfeld dns.flags.truncated_response zugeordnet, wenn es „true“ ist. |
| dns.id | network.dns.id | Wird direkt aus dem Rohprotokollfeld dns.id zugeordnet, nachdem es in eine vorzeichenlose Ganzzahl konvertiert wurde. |
| dns.question.class | network.dns.questions.class | Wird basierend auf dem Wert von dns.question.class network.dns.questions.class zugeordnet. Die Zuordnung ist wie folgt: IN -> 1, NONE -> 254, ANY -> 255. |
| dns.question.name | network.dns.questions.name | Direkt aus dem Rohprotokollfeld dns.question.name zugeordnet. |
| dns.question.type | network.dns.questions.type | Wird basierend auf dem Wert von dns.question.type network.dns.questions.type zugeordnet. Die Zuordnung ist wie folgt: A -> 1, NS -> 2, CNAME -> 5, SOA -> 6, PTR -> 12, MX -> 15, TXT -> 16, AAAA -> 28, SRV -> 33, NAPTR -> 35, DS -> 43, DNSKEY -> 48, IXFR -> 251, AXFR -> 252, TYPE99 -> 99, TKEY -> 249, ANY -> 255, ALL -> 255, URI -> 256, NULL -> 0. |
| dns.resolved_ip | network.dns.additional.data | Jedes Element im Array dns.resolved_ip wird verarbeitet und dem Feld network.dns.additional.data zugeordnet. |
| dns.response_code | network.dns.response_code | Wird basierend auf dem Wert von dns.response_code network.dns.response_code zugeordnet. Die Zuordnung ist wie folgt: NOERROR -> 0, FORMERR -> 1, SERVFAIL -> 2, NXDOMAIN -> 3, NOTIMP -> 4, REFUSED -> 5, YXDOMAIN -> 6, YXRRSET -> 7, NXRRSET -> 8, NOTAUTH -> 9, NOTZONE -> 10. |
| error.message | security_result.summary | Wird mit status verkettet, um das Feld security_result.summary für HTTP-Ereignisse zu bilden. |
| event.dataset | metadata.product_event_type | Direkt aus dem Rohprotokollfeld event.dataset zugeordnet. |
| flow.final | Wird verwendet, um festzustellen, ob der Ablauf endgültig ist. Andernfalls wird das Ereignis verworfen. | |
| flow.id | network.session_id | Wird für FLOW-Ereignisse direkt aus dem Rohlogfeld flow.id zugeordnet. |
| headers.accept_encoding | security_result.about.labels.Accept-Encoding | Direkt aus dem Rohprotokollfeld headers.accept_encoding zugeordnet. |
| headers.content_length | additional.fields.content_length.value.string_value | Direkt aus dem Rohprotokollfeld headers.content_length zugeordnet. |
| headers.content_type | additional.fields.content_type.value.string_value | Direkt aus dem Rohlogfeld headers.content_type zugeordnet. |
| headers.http_accept | additional.fields.http_accept.value.string_value | Direkt aus dem Rohprotokollfeld headers.http_accept zugeordnet. |
| headers.http_host | principal.hostname, principal.asset.hostname | Direkt aus dem Rohprotokollfeld headers.http_host zugeordnet. |
| headers.http_user_agent | network.http.user_agent | Direkt aus dem Rohprotokollfeld headers.http_user_agent zugeordnet. |
| headers.request_method | network.http.method | Direkt aus dem Rohprotokollfeld headers.request_method zugeordnet. |
| headers.x_b3_parentspanid | additional.fields.x_b3_parentspanid.value.string_value | Direkt aus dem Rohprotokollfeld headers.x_b3_parentspanid zugeordnet. |
| headers.x_b3_sampled | additional.fields.x_b3_sampled.value.string_value | Direkt aus dem Rohprotokollfeld headers.x_b3_sampled zugeordnet. |
| headers.x_envoy_attempt_count | security_result.about.labels.x_envoy_attempt_count | Direkt aus dem Rohprotokollfeld headers.x_envoy_attempt_count zugeordnet. |
| headers.x_envoy_original_path | additional.fields.x_envoy_original_path.value.string_value | Direkt aus dem Rohprotokollfeld headers.x_envoy_original_path zugeordnet. |
| headers.x_forwarded_client_cert | additional.fields.client_cert.value.string_value | Direkt aus dem Rohprotokollfeld headers.x_forwarded_client_cert zugeordnet. |
| headers.x_forwarded_for | principal.ip, principal.asset.ip | Wird direkt aus dem Rohprotokollfeld headers.x_forwarded_for zugeordnet, nachdem die IP-Adresse mit grok extrahiert wurde. |
| headers.x_forwarded_proto | additional.fields.x_forwarded_proto.value.string_value | Direkt aus dem Rohprotokollfeld headers.x_forwarded_proto zugeordnet. |
| headers.x_request_id | additional.fields.x_request_id.value.string_value | Direkt aus dem Rohprotokollfeld headers.x_request_id zugeordnet. |
| Host | principal.ip, principal.asset.ip | Wird direkt aus dem Rohprotokollfeld host zugeordnet, nachdem die IP-Adresse mit grok extrahiert wurde. |
| http.request.method | network.http.method | Direkt aus dem Rohprotokollfeld http.request.method zugeordnet. |
| level | security_result.severity | Wird basierend auf dem Wert von level security_result.severity zugeordnet. Die Zuordnung sieht so aus: INFO -> INFORMATIONAL, ERROR -> ERROR, WARNING -> LOW. |
| logger | additional.fields.logger.value.string_value | Direkt aus dem Rohprotokollfeld logger zugeordnet. |
| method | Wird verwendet, um festzustellen, ob es sich bei dem Ereignis um ein DNS-Ereignis handelt. | |
| msg | security_result.description | Wird direkt aus dem Rohlogfeld msg zugeordnet, nachdem doppelte Anführungszeichen entfernt wurden. |
| network.community_id | network.community_id | Direkt aus dem Rohprotokollfeld network.community_id zugeordnet. |
| network.direction | network.direction | Wird direkt aus dem Rohlogfeld network.direction zugeordnet, nachdem es in Großbuchstaben umgewandelt wurde. Wenn der Wert INGRESS oder INBOUND ist, wird er INBOUND zugeordnet. Wenn der Wert EGRESS oder OUTBOUND ist, wird er OUTBOUND zugeordnet. |
| network.protocol | network.application_protocol | Direkt aus dem Rohprotokollfeld network.protocol zugeordnet. |
| network.transport | network.ip_protocol | Wird für TLS-Ereignisse direkt aus dem Rohlogfeld network.transport zugeordnet. |
| server.bytes | network.sent_bytes (EINGEHEND) / network.received_bytes (AUSGEHEND) | Zuordnung basierend auf dem Feld network.direction. Wenn INBOUND, wird es network.sent_bytes zugeordnet. Wenn OUTBOUND, wird es network.received_bytes zugeordnet. |
| server.domain | principal.hostname, principal.asset.hostname (EINGEHEND) / target.hostname, target.asset.hostname (AUSGEHEND) | Zuordnung basierend auf dem Feld network.direction. Wenn INBOUND, wird es principal.hostname zugeordnet. Wenn OUTBOUND, wird es target.hostname zugeordnet. |
| server.ip | principal.ip, principal.asset.ip (EINGEHEND) / target.ip, target.asset.ip (AUSGEHEND) | Zuordnung basierend auf dem Feld network.direction. Wenn INBOUND, wird es principal.ip zugeordnet. Wenn OUTBOUND, wird es target.ip zugeordnet. |
| server.port | principal.port (EINGEHEND) / target.port (AUSGEHEND) | Zuordnung basierend auf dem Feld network.direction. Wenn INBOUND, wird es principal.port zugeordnet. Wenn OUTBOUND, wird es target.port zugeordnet. |
| source.bytes | network.received_bytes | Wird für FLOW-Ereignisse direkt aus dem Rohlogfeld source.bytes zugeordnet. |
| source.ip | principal.ip, principal.asset.ip | Wird für FLOW-Ereignisse direkt aus dem Rohlogfeld source.ip zugeordnet. |
| source.mac | principal.mac | Wird für FLOW-Ereignisse direkt aus dem Rohlogfeld source.mac zugeordnet. |
| source.port | principal.port | Wird für FLOW-Ereignisse direkt aus dem Rohlogfeld source.port zugeordnet. |
| Status | metadata.description, security_result.summary | Wird metadata.description zugeordnet, wenn level leer ist. Wird mit error.message verkettet, um das Feld security_result.summary für HTTP- und TLS-Ereignisse zu bilden. |
| tls.client.ja3 | network.tls.client.ja3 | Direkt aus dem Rohlogfeld tls.client.ja3 zugeordnet. |
| tls.client.server_name | network.tls.client.server_name | Direkt aus dem Rohprotokollfeld tls.client.server_name zugeordnet. |
| tls.client.supported_ciphers | network.tls.client.supported_ciphers | Jedes Element im tls.client.supported_ciphers-Array wird verarbeitet und dem network.tls.client.supported_ciphers-Array zugeordnet. |
| tls.cipher | network.tls.cipher | Direkt aus dem Rohprotokollfeld tls.cipher zugeordnet. |
| tls.detailed.server_certificate.not_after | network.tls.server.certificate.not_after | Wird direkt aus dem Rohlogfeld tls.detailed.server_certificate.not_after zugeordnet, nachdem es in einen Zeitstempel konvertiert wurde. |
| tls.detailed.server_certificate.not_before | network.tls.server.certificate.not_before | Wird direkt aus dem Rohlogfeld tls.detailed.server_certificate.not_before zugeordnet, nachdem es in einen Zeitstempel konvertiert wurde. |
| tls.detailed.server_certificate.serial_number | network.tls.server.certificate.serial | Direkt aus dem Rohprotokollfeld tls.detailed.server_certificate.serial_number zugeordnet. |
| tls.detailed.server_certificate.version | network.tls.server.certificate.version | Wird direkt aus dem Rohlogfeld tls.detailed.server_certificate.version zugeordnet, nachdem es in einen String konvertiert wurde. |
| tls.established | network.tls.established | Direkt aus dem Rohlogfeld tls.established zugeordnet. |
| tls.next_protocol | network.tls.next_protocol | Direkt aus dem Rohprotokollfeld tls.next_protocol zugeordnet. |
| tls.resumed | network.tls.resumed | Direkt aus dem Rohprotokollfeld tls.resumed zugeordnet. |
| tls.server.hash.sha1 | network.tls.server.certificate.sha1 | Wird direkt aus dem Rohlogfeld tls.server.hash.sha1 zugeordnet, nachdem es in Kleinbuchstaben umgewandelt wurde. |
| tls.server.issuer | network.tls.server.certificate.issuer | Direkt aus dem Rohprotokollfeld tls.server.issuer zugeordnet. |
| tls.server.subject | network.tls.server.certificate.subject | Direkt aus dem Rohprotokollfeld tls.server.subject zugeordnet. |
| tls.version | network.tls.version | Direkt aus dem Rohprotokollfeld tls.version zugeordnet. |
| tls.version_protocol | network.tls.version_protocol | Direkt aus dem Rohprotokollfeld tls.version_protocol zugeordnet. |
| Typ | Wird verwendet, um festzustellen, ob es sich bei dem Ereignis um ein DNS-Ereignis handelt. | |
| url.full | principal.url (INBOUND) / target.url (OUTBOUND) | Zuordnung basierend auf dem Feld network.direction. Wenn INBOUND, wird es principal.url zugeordnet. Wenn OUTBOUND, wird es target.url zugeordnet. |
| user_id | target.user.userid | Direkt aus dem Rohprotokollfeld user_id zugeordnet. |
| user_name | target.user.user_display_name | Direkt aus dem Rohprotokollfeld user_name zugeordnet. |
| metadata.event_type | Standardmäßig auf GENERIC_EVENT festgelegt. Geändert in bestimmte Ereignistypen basierend auf der Protokollquelle und den Ereignisdaten. |
|
| metadata.vendor_name | Standardmäßig auf Elastic festgelegt. |
|
| metadata.product_name | Standardmäßig auf PacketBeat festgelegt. |
|
| security_result.action | Standardmäßig auf ALLOW festgelegt. |
|
| metadata.log_type | Standardmäßig auf ELASTIC_PACKETBEATS festgelegt. |
|
rCode |
dns.response_code |
Aus Änderungsprotokoll zugeordnet |
dhcpv4.flags", "dhcpv4.hardware_type", "dhcpv4.option.rebinding_time_sec", "dhcpv4.option.rebinding_time_sec", "dhcpv4.option.renewal_time_sec", and "dhcpv4.option.max_dhcp_message_size |
security_result.detection_fields |
Aus Änderungsprotokoll zugeordnet |
dhcpv4.option.parameter_request_list", and "dhcpv4.option.dns_servers |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
dhcpv4.hops |
network.dhcp.hops |
Aus Änderungsprotokoll zugeordnet |
dhcpv4.relay_ip |
network.dhcp.giaddr |
Aus Änderungsprotokoll zugeordnet |
dhcpv4.option.domain_name |
network.dhcp.client_hostname |
Aus Änderungsprotokoll zugeordnet |
dhcpv4.option.router |
network.dhcp.ciaddr |
Aus Änderungsprotokoll zugeordnet |
dhcpv4.seconds |
network.dhcp.seconds |
Aus Änderungsprotokoll zugeordnet |
headers.accept_encoding" and "headers.x_envoy_attempt_count |
security_result.about.labels |
Aus Änderungsprotokoll zugeordnet |
headers.content_length", "headers.content_type", "headers.x_forwarded_proto", "headers.x_b3_sampled", "headers.http_accept", "headers.x_b3_parentspanid", "headers.x_envoy_original_path", "client_cert" and "headers.x_request_id |
additional.labels |
Aus Änderungsprotokoll zugeordnet |
headers.x_forwarded_for" and "host |
principal.ip |
Aus Änderungsprotokoll zugeordnet |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten