Cisco-VPN-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco ASA-VPN-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser extrahiert Felder aus den Syslog-Nachrichten mithilfe von Grok-Mustern und verarbeitet sowohl Standard-Syslog-Formate als auch alternative Nachrichtenstrukturen. Anschließend werden die extrahierten Felder dem Unified Data Model (UDM) zugeordnet, Ereignisse anhand von IDs und extrahierten Informationen kategorisiert und die Daten mit Metadaten wie Anbieter, Produkt und Ereignistyp angereichert. Der Parser verarbeitet auch bestimmte Ereignis-IDs und wendet zusätzliche Grok-Muster und ‑Logik an, um relevante Details zu extrahieren und den entsprechenden UDM-Feldern zuzuordnen.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google SecOps-Instanz
- Ein Windows-Host mit Windows 2016 oder höher oder ein Linux-Host mit
systemd
- Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
- Privilegierter Zugriff auf Cisco ASA
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie SIEM-Einstellungen > Collection Agents auf.
- Laden Sie die Authentifizierungsdatei für die Aufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
- Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.
Fenstereinbau
- Ö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 zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
- Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet sie sich unter Linux im Verzeichnis/etc/bindplane-agent/
oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor (z. B.
nano
,vi
oder Notepad).
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" 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: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'CISCO_VPN' 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
<customer_id>
durch die tatsächliche Kunden-ID. - Aktualisieren Sie
/path/to/ingestion-authentication-file.json
auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.
Bindplane-Agent neu starten, um die Änderungen zu übernehmen
Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:
sudo systemctl restart bindplane-agent
Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:
net stop BindPlaneAgent && net start BindPlaneAgent
Syslog für Cisco ASA VPN konfigurieren
- Öffnen Sie Cisco ASDM.
- Gehen Sie zu Konfiguration > Funktionen > Properties > Logging > Logging-Einrichtung.
- Wählen Sie das Kästchen Logging aktivieren aus, um Syslog zu aktivieren.
- Wählen Sie unter Logging (Protokollierung) die Option Syslog Servers (Syslog-Server) aus und klicken Sie auf Add (Hinzufügen).
- Geben Sie im Fenster Syslog-Server hinzufügen die folgenden Konfigurationsdetails ein:
- Schnittstelle: Wählen Sie die Schnittstelle für die ausgehende Kommunikation aus.
- IP-Adresse: Geben Sie die IP-Adresse des BindPlane-Agents ein.
- Protokoll: Wählen Sie UDP aus.
- Port: Geben Sie die Portnummer des Bindplane-Agents ein.
- Klicken Sie auf OK.
- Wählen Sie im Bereich Logging die Option Logging-Filter aus.
- Wählen Sie Syslog Servers (Syslog-Server) aus und klicken Sie auf Edit (Bearbeiten).
- Wählen Sie in der Liste Filter on severity (Nach Schweregrad filtern) die Option Informational (Informationell) aus.
- Klicken Sie auf OK.
- Klicken Sie auf Übernehmen.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
accesslist |
target.resource.name |
Extrahierte Daten aus message_info , wenn eventtype „ASA-4-106103“ ist. Stellt den Namen der Zugriffsliste dar. |
action |
security_result.action |
Vom Parser anhand von Schlüsselwörtern in der Logmeldung abgeleitet (z.B. „Ablehnen“, „Verwerfen“, „Zulassen“, „Akzeptieren“). Entspricht ALLOW oder BLOCK. |
action |
security_result.action_details |
Der Roh-Stringwert der ergriffenen Maßnahme (z.B. „Zulässig“, „Abgelehnt“, „Getrennt“). |
app_name |
principal.application |
Der Name der vom Prinzipal verwendeten Anwendung (z.B. „CLI“). Extrahierte Daten aus message_details für die Ereignis-IDs 111008, 111009 und 111010. |
assigned_ipv4 |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
assigned_ipv6 |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
bytes_rcv |
network.received_bytes |
Die Anzahl der in der Sitzung empfangenen Bytes. Aus log_mssg für Ereignis-ID 113019 extrahiert. |
bytes_sent |
network.sent_bytes |
Die Anzahl der in der Sitzung gesendeten Byte. Aus log_mssg für Ereignis-ID 113019 extrahiert. |
cipher |
network.tls.cipher |
Die für die SSL-Sitzung verwendete Chiffre. Extrahierte Daten aus message_info für den Ereignistyp 725012. |
cisco_message_number |
security_result.rule_name |
Die Cisco-Nachrichtennummer, die aus dem Feld eventtype extrahiert wurde. |
cisco_severity |
security_result.severity_details |
Der aus dem Feld eventtype extrahierte Cisco-Schweregrad. |
command |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
cumulative_total_count.key |
security_result.outcomes.key |
Der Schlüssel „cumulative_total_count“ wird dem Array security_result.outcomes hinzugefügt. |
cumulative_total_count.value |
security_result.outcomes.value |
Der Wert der kumulativen Gesamtzahl, die aus message_info extrahiert wurde. |
current_average_rate.key |
security_result.outcomes.key |
Der Schlüssel „current_average_rate“ wird dem Array security_result.outcomes hinzugefügt. |
current_average_rate.value |
security_result.outcomes.value |
Der Wert des aktuellen durchschnittlichen Satzes, der aus message_info extrahiert wurde. |
current_burst_rate.key |
security_result.outcomes.key |
Der Schlüssel „current_burst_rate“ wird dem Array security_result.outcomes hinzugefügt. |
current_burst_rate.value |
security_result.outcomes.value |
Der Wert der aktuellen Burst-Rate, extrahiert aus message_info . |
desc |
metadata.description |
Beschreibung des Ereignisses, die aus der Log-Nachricht extrahiert wurde. Wird verwendet, wenn keine genauere Beschreibung verfügbar ist. |
description |
metadata.description |
Eine detailliertere Beschreibung des Ereignisses, die, sofern verfügbar, aus der Log-Nachricht extrahiert wurde. |
destination_ip |
target.ip , target.asset.ip |
Ziel-IP-Adresse, die aus verschiedenen Logmeldungsformaten extrahiert wurde. |
destination_ip_port |
target.port oder network.application_protocol |
Zielport, der aus verschiedenen Logmeldungsformaten extrahiert wurde. Wenn der extrahierte Wert keine Zahl ist, wird er als das Anwendungsprotokoll behandelt. |
dst_email |
target.user.email_addresses oder target.user.userid |
E-Mail-Adresse oder Nutzer-ID des Zielkontos, extrahiert aus message_info . Wenn der Wert einem E-Mail-Format entspricht, wird er email_addresses hinzugefügt. Andernfalls wird er als userid verwendet. |
dst_host |
target.hostname |
Ziel-Hostname, extrahiert aus message_info . |
dst_ip |
target.ip , target.asset.ip |
Ziel-IP-Adresse, die aus dem Haupt-Grok-Muster oder anderen spezifischen Mustern extrahiert wird. |
dst_port |
target.port |
Zielport, der aus dem Haupt-Grok-Muster oder anderen spezifischen Mustern extrahiert wird. |
duration |
network.session_duration |
Dauer der Sitzung, extrahiert aus message_details und in Sekunden umgerechnet. |
event_date |
@timestamp |
Das Datum und die Uhrzeit des Ereignisses, die aus verschiedenen Zeitstempelfeldern im Rohlog abgeleitet und mit dem Filter date geparst werden. |
event_id |
metadata.product_event_type (Teil von) |
Wird in Kombination mit event_severity verwendet, um das Feld metadata.product_event_type zu bilden. |
event_name |
metadata.product_event_type (Teil von) |
Wird in Kombination mit event_severity und event_type verwendet, um das Feld metadata.product_event_type zu bilden, sofern verfügbar. |
event_severity |
metadata.product_event_type (Teil von), security_result.severity , is_alert , is_significant |
Wird in Kombination mit event_id oder event_name und event_type verwendet, um das Feld metadata.product_event_type zu bilden. Wird auch verwendet, um die Felder security_result.severity , is_alert und is_significant abzuleiten. |
event_type |
metadata.product_event_type (Teil von) |
Wird in Kombination mit event_name und event_severity verwendet, um das Feld metadata.product_event_type zu bilden, sofern verfügbar. |
eventtype |
metadata.product_event_type , security_result.rule_name , security_result.severity_details , security_result.severity |
Der String für den Ereignistyp, der zum Ableiten der Felder metadata.product_event_type , security_result.rule_name , security_result.severity_details und security_result.severity verwendet wird. |
fragment_id |
security_result.about.resource.id |
ID des IP-Fragments, das für die Ereignis-ID 209005 aus message_details extrahiert wurde. |
group |
principal.group.group_display_name , principal.user.group_identifiers , target.user.group_identifiers |
Gruppenname, der aus verschiedenen Logmeldungsformaten extrahiert wird. |
group_name |
principal.group.group_display_name |
Gruppenname, der aus dem Feld group extrahiert wird, wenn es sich um einen Hostnamen handelt. |
has_principal_ip |
– | Interne Variable, die für die Logik verwendet wird und nicht UDM zugeordnet ist. |
has_target_ip |
– | Interne Variable, die für die Logik verwendet wird und nicht UDM zugeordnet ist. |
hostname |
principal.hostname , principal.asset.hostname |
Hostname des Prinzipal, der aus verschiedenen Logmeldungsformaten extrahiert wurde. |
hostname2 |
principal.hostname , principal.asset.hostname |
Hostname des Hauptkontos, der als Fallback extrahiert wird, wenn hostname nicht verfügbar ist. |
icmp_code |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
icmp_dst_ip |
target.ip , target.asset.ip |
Ziel-IP-Adresse aus einer ICMP-Fehlermeldung. |
icmp_id |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
icmp_src_ip |
principal.ip , principal.asset.ip |
Quell-IP-Adresse aus einer ICMP-Fehlermeldung. |
icmp_type |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
intermediary_ip |
principal.ip , principal.asset.ip |
Die Zwischen-IP-Adresse, die aus message_info für die Ereignis-ID 111010 extrahiert wurde. |
invalid_ip |
– | Interne Variable, die für die Logik verwendet wird und nicht UDM zugeordnet ist. |
ip_1 |
principal.ip , principal.asset.ip |
Die Quell-IP-Adresse wird als Fallback extrahiert, wenn Quell- und Ziel-IP-Adressen identisch sind. |
ip_2 |
target.ip , target.asset.ip |
Die Ziel-IP-Adresse wird als Fallback extrahiert, wenn Quell- und Ziel-IP-Adressen identisch sind. |
ipprotocol |
network.ip_protocol |
IP-Protokoll, das aus verschiedenen Logmeldungsformaten extrahiert und in Großbuchstaben konvertiert wurde. |
issuer |
network.tls.client.certificate.issuer |
Aussteller des Peer-Zertifikats, extrahiert aus message_details für die Ereignis-ID 717037. |
local_proxy_ip |
intermediary.ip |
Lokale Proxy-IP-Adresse, extrahiert aus message_details für die Ereignis-ID 713041. |
log_mssg |
security_result.description , sr.action |
Wird verwendet, um das Feld security_result.description auszufüllen und Authentifizierungsaktionen zu extrahieren. |
login |
security_result.summary |
Anmeldestatus, extrahiert aus message_info . |
max_configured_rate.key |
security_result.outcomes.key |
Der Schlüssel „max_configured_rate“ wird dem Array security_result.outcomes hinzugefügt. |
max_configured_rate.value |
security_result.outcomes.value |
Der Wert der maximal konfigurierten Rate, extrahiert aus message_info . |
message_details |
Verschiedene Felder | Der Hauptteil der Log-Nachricht mit Details zum Ereignis. Je nach Ereignis-ID werden verschiedene Grok-Muster verwendet. |
message_info |
metadata.description |
Wird verwendet, um das Feld metadata.description auszufüllen, sofern verfügbar. |
observer |
observer.hostname oder observer.ip |
Hostname oder IP-Adresse des Beobachters, die aus der Log-Nachricht extrahiert wurde. |
observer_ip |
observer.ip |
IP-Adresse des Beobachters, extrahiert aus dem Feld observer . |
peer_type |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
policy |
target.resource.name |
Der Richtlinienname, der für die Ereignis-ID 113003 aus message_details extrahiert wurde. |
policy_name |
target.resource.name |
Der Richtlinienname, der für die Ereignis-IDs 113009 und 113011 aus message_details extrahiert wurde. |
principal_ip |
principal.ip , principal.asset.ip |
Die primäre IP-Adresse, die aus message_details für die Ereignis-ID 113009 extrahiert wurde. |
privilege_level_from |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
privilege_level_to |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
process |
principal.process.command_line |
Prozessname, extrahiert aus message_details für die Ereignis-ID 711004. |
protocol |
network.ip_protocol oder network.application_protocol |
Das im Ereignis verwendete Protokoll, das aus verschiedenen Logmeldungsformaten extrahiert wurde. Wenn das Protokoll ein Standard-IP-Protokoll (ICMP, TCP, UDP, ESP) ist, wird es network.ip_protocol zugeordnet. Andernfalls wird es network.application_protocol zugeordnet. |
reason |
security_result.description |
Grund für das Ereignis, extrahiert aus message_details für die Ereignis-ID 113016. |
remote_proxy_ip |
intermediary.ip |
Die IP-Adresse des Remote-Proxys, die aus message_details für die Ereignis-ID 713041 extrahiert wurde. |
retrieved_file |
target.file.full_path |
Pfad zur abgerufenen Datei, extrahiert aus message_info . |
security_action |
security_result.action |
Sicherheitsmaßnahme, die vom Parser basierend auf dem Ereigniskontext abgeleitet wird. |
security_category |
security_result.category |
Sicherheitskategorie, die vom Parser basierend auf dem Ereigniskontext abgeleitet wird. |
security_result.description |
security_result.description |
Beschreibung des Sicherheitsergebnisses, das aus der Log-Nachricht extrahiert oder abgeleitet wurde. |
security_result.severity |
security_result.severity |
Schweregrad des Sicherheitsergebnisses, abgeleitet aus dem Feld event_severity . |
security_result.summary |
security_result.summary |
Zusammenfassung des Sicherheitsergebnisses, die aus der Log-Nachricht extrahiert oder abgeleitet wurde. |
sent_bytes |
network.sent_bytes |
Anzahl der gesendeten Byte, extrahiert aus message_info . |
ses_id |
network.session_id |
Sitzungs-ID, die aus message_info extrahiert wurde. |
session_id |
network.session_id |
Sitzungs-ID, die aus message_info extrahiert wurde. |
sess_type |
principal.hostname , principal.asset.hostname |
Sitzungstyp, der aus log_mssg extrahiert und als Hostname verwendet wird, wenn hostname nicht verfügbar ist. |
source_ip |
principal.ip , principal.asset.ip |
Quell-IP-Adresse, die aus verschiedenen Logmeldungsformaten extrahiert wurde. |
source_ip_port |
principal.port |
Quellport, der aus verschiedenen Logmeldungsformaten extrahiert wurde. |
src_email |
principal.user.email_addresses oder principal.user.userid |
Quell-E-Mail-Adresse oder ‑Nutzer-ID, die aus message_info extrahiert wurde. Wenn der Wert einem E-Mail-Format entspricht, wird er email_addresses hinzugefügt. Andernfalls wird er als userid verwendet. |
src_ip |
principal.ip , principal.asset.ip |
Quell-IP-Adresse, die aus dem Haupt-Grok-Muster oder anderen spezifischen Mustern extrahiert wird. |
src_port |
principal.port |
Quellport, der aus dem Haupt-Grok-Muster oder anderen spezifischen Mustern extrahiert wird. |
src_user |
principal.user.user_display_name |
Anzeigename des Quellnutzers, extrahiert aus message_details für die Ereignis-IDs 713049 und 713120. |
subject |
network.tls.client.certificate.subject |
Betreff des Peer-Zertifikats, extrahiert aus message_details für die Ereignis-ID 717037. |
summary |
security_result.summary |
Zusammenfassung des Ereignisses, extrahiert aus message_details für die Ereignis-ID 113016. |
target_host |
target.hostname |
Ziel-Hostname, extrahiert aus message_details für die Ereignis-ID 113004. |
target_ip |
target.ip , target.asset.ip |
Ziel-IP-Adresse, extrahiert aus message_details für die Ereignis-ID 113004. |
target_user |
target.user.userid |
Die Zielnutzer-ID, die für die Ereignis-ID 113003 aus message_details extrahiert wurde. |
task_duration |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
tcp_dst_ip |
target.ip , target.asset.ip |
Ziel-IP-Adresse aus der ursprünglichen TCP-Nutzlast einer ICMP-Fehlermeldung. |
tcp_dst_port |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
tcp_src_ip |
principal.ip , principal.asset.ip |
Quell-IP-Adresse aus der ursprünglichen TCP-Nutzlast einer ICMP-Fehlermeldung. |
tcp_src_port |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
threshold |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
tls_version |
network.tls.version |
TLS-Version, extrahiert aus message_details für die Ereignis-ID 725002. |
ts |
@timestamp |
Zeitstempel des Ereignisses, der mit dem Filter date geparst wurde. |
ts_day |
@timestamp (Teil von) |
Der Tag des Monats aus dem Zeitstempel, der zum Erstellen des Felds @timestamp verwendet wird. |
ts_month |
@timestamp (Teil von) |
Der Monat aus dem Zeitstempel, der zum Erstellen des Felds @timestamp verwendet wird. |
ts_time |
@timestamp (Teil von) |
Die Zeit aus dem Zeitstempel, die zum Erstellen des Felds @timestamp verwendet wird. |
ts_year |
@timestamp (Teil von) |
Das Jahr aus dem Zeitstempel, das zum Erstellen des Felds @timestamp verwendet wird. |
tunnel_type |
– | Dieses Feld wird zwar geparst, aber nicht dem IDM-Objekt im UDM zugeordnet. |
user |
principal.user.userid , target.user.userid |
Nutzer-ID, die aus verschiedenen Logmeldungsformaten extrahiert wird. |
user_agent |
network.http.user_agent |
User-Agent-String, der aus message_details für die Ereignis-ID 722055 extrahiert wurde. |
user_attr.key |
principal.user.attribute.labels.key |
Schlüssel eines Nutzerattributs, das für die Ereignis-IDs 734003 und 734001 aus message_details extrahiert wurde. |
user_attr.value |
principal.user.attribute.labels.value |
Wert eines Nutzerattributs, das für die Ereignis-IDs 734003 und 734001 aus message_details extrahiert wurde. |
userid |
principal.user.userid |
Nutzer-ID, die für die Ereignis-ID 106103 aus message_details extrahiert wurde. |
username |
principal.user.userid |
Nutzername, der für die Ereignis-IDs 111008, 111009, 111010 und 113008 aus message_details extrahiert wurde. |
– | metadata.vendor_name |
Fest codiert auf „CISCO“. |
– | metadata.product_name |
Fest codiert auf „ASA VPN“ oder „VPN“. |
– | metadata.event_type |
Wird durch die Parserlogik anhand des Vorhandenseins bestimmter Felder und Ereignis-IDs bestimmt. Kann GENERIC_EVENT, NETWORK_CONNECTION, STATUS_UPDATE, NETWORK_FTP, USER_LOGIN, USER_LOGOUT, NETWORK_UNCATEGORIZED, USER_UNCATEGORIZED oder NETWORK_FLOW sein. |
– | metadata.log_type |
Fest codiert auf „CISCO_VPN“. |
– | metadata.event_timestamp |
Kopiert aus dem geparsten Feld @timestamp . |
– | extensions.auth.type |
Je nach Ereigniskontext auf „VPN“, „AUTHTYPE_UNSPECIFIED“ oder „MACHINE“ festgelegt. |
– | security_result.about.resource.type |
Für die Ereignis-ID 209005 auf „PACKET FRAGMENT“ festlegen. |
– | is_alert |
Auf „true“ setzen für Ereignisse mit hoher Schwere (event_severity 0 oder 1). |
– | is_significant |
Auf „true“ setzen für Ereignisse mit hoher Schwere (event_severity 0 oder 1). |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten