Cisco IOS-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco IOS-Logs mit Bindplane in Google Security Operations aufnehmen können. Der Parser transformiert Syslog-Rohdaten in ein strukturiertes Format, das dem Unified Data Model (UDM) entspricht. Zuerst werden Felder mithilfe von Grok-Mustern basierend auf gängigen Cisco IOS-Syslog-Formaten initialisiert und extrahiert. Anschließend werden die extrahierten Felder den entsprechenden UDM-Feldern zugeordnet, Ereignisse kategorisiert und die Daten mit zusätzlichem Kontext angereichert, bevor das strukturierte Log im UDM-Format ausgegeben wird.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google SecOps-Instanz
 - Windows 2016 oder höher oder ein Linux-Host mit 
systemd - Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
 - Privilegierter Zugriff auf den Router, Switch oder Server mit Cisco IOS
 
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 im Installationsleitfaden.
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,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: 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_IOS' 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 Kundennummer. - Aktualisieren Sie 
/path/to/ingestion-authentication-file.jsonauf 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-agentWenn 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 auf einem Cisco IOS-Gerät konfigurieren
- Melden Sie sich über SSH oder eine Konsolenverbindung auf dem Cisco IOS-Gerät an.
 Geben Sie den folgenden Befehl für den privilegierten Modus ein:
enableGeben Sie den folgenden Befehl für den Konfigurationsmodus ein:
conf tGeben Sie die folgenden Befehle ein, um Syslog zu konfigurieren:
logging <bindplane_IP_address> logging source-interface <interface>- Ändern Sie 
<bindplane_IP_address>in die tatsächliche IP-Adresse des Bindplane-Agents. - Ersetzen Sie 
<interface>durch die tatsächliche Kommunikationsschnittstelle. 
- Ändern Sie 
 Geben Sie die folgenden Befehle ein, um die Prioritätsstufe zu konfigurieren:
logging trap information logging console informationGeben Sie den folgenden Befehl ein, um die Syslog-Einrichtung zu konfigurieren:
logging facility syslogGeben Sie den folgenden Befehl ein, um die running-config in die startup-config zu kopieren:
copy running-config startup-config
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik | 
|---|---|---|
| AcsSessionID | network.session_id | Wert aus dem Feld „AcsSessionID“. | 
| AcctRequest-Flags | security_result.summary | Wert aus dem Feld „AcctRequest-Flags“. | 
| AcctRequest-Flags | security_result.action | Wenn AcctRequest-Flags Start enthält, wird ALLOW festgelegt. Wenn AcctRequest-Flags Stop enthält, wird BLOCK festgelegt. | 
| AuthenticationIdentityStore | additional.fields.key = AuthenticationIdentityStore, value = AuthenticationIdentityStore | 
Wert aus dem Feld „AuthenticationIdentityStore“. | 
| AuthenticationMethod | additional.fields.key = AuthenticationMethod, value = AuthenticationMethod | 
Wert aus dem Feld „AuthenticationMethod“. | 
| AuthenticationStatus | security_result.summary | Wert aus dem Feld „AuthenticationStatus“. | 
| Authen-Method | security_result.detection_fields.key = Authen-Method, value = Authen-Method | 
Wert aus dem Feld „Authen-Method“. | 
| Authen-Method | extensions.auth.type | Wenn Authen-Method TacacsPlus enthält, legen Sie TACACS fest. | 
| AVPair_priv-lvl | security_result.detection_fields.key = AVPair_priv-lvl, value = AVPair_priv-lvl | 
Wert aus dem Feld „AVPair_priv-lvl“. | 
| AVPair_start_time | additional.fields.key = AVPair_start_time, value = AVPair_start_time | 
Wert aus dem Feld „AVPair_start_time“. | 
| AVPair_task_id | additional.fields.key = AVPair_task_id, value = AVPair_task_id | 
Wert aus dem Feld „AVPair_task_id“. | 
| AVPair_timezone | additional.fields.key = AVPair_timezone, value = AVPair_timezone | 
Wert aus dem Feld „AVPair_timezone“. | 
| auditid | metadata.product_log_id | Wert aus dem Feld „auditid“. | 
| cisco_facility | Nicht dem IDM-Objekt zugeordnet. | |
| cisco_message | metadata.description | Wert aus dem Feld „cisco_message“. | 
| cisco_mnemonic | security_result.rule_name | Wert aus dem Feld „cisco_mnemonic“. | 
| cisco_severity | security_result.severity | Entspricht je nach Wert unterschiedlichen Schweregraden: 0: ALERT, 1: CRITICAL, 2: HIGH, 3: ERROR, 4: MEDIUM, 5: LOW, 6: INFORMATIONAL, 7: INFORMATIONAL. | 
| cisco_severity | security_result.severity_details | Entspricht je nach Wert unterschiedlichen Schweregraden: 0: System unusable, 1: Immediate action needed, 2: Critical condition, 3: Error condition, 4: Warning condition, 5: Normal but significant condition, 6: Informational message only, 7: Appears during debugging only. | 
| cisco_tag | metadata.product_event_type | Wert aus dem Feld „cisco_tag“. | 
| cisco_tag | metadata.event_type | Entsprechend dem Wert verschiedenen Ereignistypen zugeordnet: SYS-6-LOGGINGHOST_STARTSTOP, TRACK-6-STATE, SYS-3-LOGGINGHOST_FAIL, CRYPTO-4-IKMP_NO_SA, HA_EM-3-FMPD_ACTION_NOTRACK, HA_EM-3-FMPD_ERROR: GENERIC_EVENT; IPSEC-3-REPLAY_ERROR, CRYPTO-4-RECVD_PKT_INV_SPI, IPSEC-3-HMAC_ERROR, FW-6-DROP_PKT, SEC-6-IPACCESSLOGP: NETWORK_UNCATEGORIZED; CRYPTO-4-IKMP_BAD_MESSAGE, CRYPTO-6-IKMP_NOT_ENCRYPTED, CRYPTO-6-IKMP_MODE_FAILURE: STATUS_UNCATEGORIZED; SYS-5-CONFIG_I: USER_UNCATEGORIZED. | 
| ClientLatency | additional.fields.key = ClientLatency, value = ClientLatency | 
Wert aus dem Feld „ClientLatency“. | 
| CmdSet | additional.fields.key = CmdSet, value = CmdSet | 
Wert aus dem Feld „CmdSet“. | 
| Befehl | principal.process.command_line | Wert aus dem Befehlsfeld. | 
| CPMSessionID | additional.fields.key = CPMSessionID, value = CPMSessionID | 
Wert aus dem Feld „CPMSessionID“. | 
| description | metadata.description | Wert aus dem Beschreibungsfeld. | 
| DestinationIPAddress | target.asset.ip | Wert aus dem Feld „DestinationIPAddress“. | 
| DestinationIPAddress | target.ip | Wert aus dem Feld „DestinationIPAddress“. | 
| DestinationPort | target.port | Wert aus dem Feld „DestinationPort“. | 
| Device_IP_Address | principal.asset.ip | Wert aus dem Feld „Device_IP_Address“. | 
| Device_IP_Address | principal.ip | Wert aus dem Feld „Device_IP_Address“. | 
| Device_Type | additional.fields.key = Device_Type, value = Device_Type | 
Wert aus dem Feld „Device_Type“. | 
| dst_ip | target.asset.ip | Wert aus dem Feld „dst_ip“. | 
| dst_ip | target.ip | Wert aus dem Feld „dst_ip“. | 
| dst_port | target.port | Wert aus dem Feld „dst_port“. | 
| dst_user | target.user.userid | Wert aus dem Feld „dst_user“. | 
| EnableFlag | security_result.detection_fields.key = EnableFlag, value = EnableFlag | 
Wert aus dem Feld „EnableFlag“. | 
| IdentityGroup | additional.fields.key = IdentityGroup, value = IdentityGroup | 
Wert aus dem Feld „IdentityGroup“. | 
| IdentitySelectionMatchedRule | security_result.detection_fields.key = IdentitySelectionMatchedRule, value = IdentitySelectionMatchedRule | 
Wert aus dem Feld „IdentitySelectionMatchedRule“. | 
| intermediary_host | intermediary.hostname | Wert aus dem Feld „intermediary_host“. | 
| intermediary_ip | intermediary.ip | Wert aus dem Feld „intermediary_ip“. | 
| IPSEC | additional.fields.key = IPSEC, value = IPSEC | 
Wert aus dem IPSEC-Feld. | 
| ISEPolicySetName | extensions.auth.type | Wenn ISEPolicySetName Tacacs enthält, legen Sie TACACS fest. | 
| IsMachineAuthentication | additional.fields.key = IsMachineAuthentication, value = IsMachineAuthentication | 
Wert aus dem Feld „IsMachineAuthentication“. | 
| IsMachineIdentity | security_result.detection_fields.key = IsMachineIdentity, value = IsMachineIdentity | 
Wert aus dem Feld „IsMachineIdentity“. | 
| Standort | additional.fields.key = Location, value = Location | 
Wert aus dem Feld „Standort“. | 
| MatchedCommandSet | additional.fields.key = MatchedCommandSet, value = MatchedCommandSet | 
Wert aus dem Feld „MatchedCommandSet“. | 
| Nachricht | Nicht dem IDM-Objekt zugeordnet. | |
| metadata_event_type | metadata.event_type | Wert aus dem Feld „metadata_event_type“. Wenn leer oder GENERIC_EVENT, wird NETWORK_UNCATEGORIZED festgelegt, wenn „principal_mid_present“ und „target_mid_present“ „true“ sind, USER_UNCATEGORIZED, wenn „principal_userid_present“ „true“ ist, STATUS_UPDATE, wenn „principal_mid_present“ „true“ ist, und andernfalls GENERIC_EVENT. Wenn „Service“ Login enthält, wird der Wert auf USER_LOGIN gesetzt, wenn „principal_userid_present“, „principal_mid_present“ und „target_mid_present“ „true“ sind, oder auf USER_UNCATEGORIZED, wenn „principal_userid_present“ „true“ ist. | 
| Model_Name | additional.fields.key = Model_Name, value = Model_Name | 
Wert aus dem Feld „Model_Name“. | 
| Name | additional.fields.key = Name, value = Name | 
Wert aus dem Feld „Name“. | 
| Network_Device_Profile | additional.fields.key = Network_Device_Profile, value = Network_Device_Profile | 
Wert aus dem Feld „Network_Device_Profile“. | 
| NetworkDeviceGroups | additional.fields.key = NetworkDeviceGroups, value = NetworkDeviceGroups | 
Wert aus dem Feld „NetworkDeviceGroups“. | 
| NetworkDeviceName | principal.asset.hostname | Wert aus dem Feld „NetworkDeviceName“. | 
| NetworkDeviceName | principal.hostname | Wert aus dem Feld „NetworkDeviceName“. | 
| NetworkDeviceProfileId | principal.resource.product_object_id | Wert aus dem Feld „NetworkDeviceProfileId“. | 
| pid | principal.process.pid | Wert aus dem Feld „pid“. | 
| Port | principal.resource.attribute.labels.key = Port, value = Port | 
Wert aus dem Feld „Port“. | 
| Berechtigungsstufe | security_result.detection_fields.key = Privilege-Level, value = Privilege-Level | 
Wert aus dem Feld „Berechtigungsstufe“. | 
| product_event_type | metadata.product_event_type | Wert aus dem Feld „product_event_type“. | 
| Protokoll | additional.fields.key = Protocol, value = Protocol | 
Wert aus dem Feld „Protokoll“. | 
| Protokoll | network.application_protocol | Wenn das Protokoll HTTPS ist, legen Sie es auf HTTPS fest. | 
| Protokoll | network.ip_protocol | Wenn das Protokoll TCP oder UDP ist, wird es auf den Großbuchstabenwert des Protokolls gesetzt. | 
| reason | security_result.summary | Wert aus dem Feld „Grund“. | 
| Region | principal.location.country_or_region | Wert aus dem Feld „Region“. | 
| Remote-Adresse | target.asset.ip | Der Wert wird aus dem Feld „Remote-Address“ übernommen, nachdem er als IP-Adresse validiert wurde. | 
| Remote-Adresse | target.ip | Der Wert wird aus dem Feld „Remote-Address“ übernommen, nachdem er als IP-Adresse validiert wurde. | 
| RequestLatency | security_result.detection_fields.key = RequestLatency, value = RequestLatency | 
Wert aus dem Feld „RequestLatency“. | 
| Antwort | additional.fields.key = Response, value = Response | 
Wert aus dem Antwortfeld. | 
| SelectedAccessService | security_result.action_details | Wert aus dem Feld „SelectedAccessService“. | 
| SelectedAuthenticationIdentityStores | security_result.detection_fields.key = SelectedAuthenticationIdentityStores, value = SelectedAuthenticationIdentityStores | 
Wert aus dem Feld „SelectedAuthenticationIdentityStores“. | 
| SelectedCommandSet | additional.fields.key = SelectedCommandSet, value = SelectedCommandSet | 
Wert aus dem Feld „SelectedCommandSet“. | 
| Dienst | additional.fields.key = Service, value = Service | 
Wert aus dem Feld „Service“. | 
| Service-Argument | additional.fields.key = Service-Argument, value = Service-Argument | 
Wert aus dem Feld „Service-Argument“. | 
| die Ausprägung | security_result.severity | Wenn der Schweregrad Notice enthält, setzen Sie ihn auf INFORMATIONAL. | 
| Software_Version | additional.fields.key = Software_Version, value = Software_Version | 
Wert aus dem Feld „Software_Version“. | 
| source_facility | principal.asset.hostname | Wert aus dem Feld „source_facility“. | 
| source_facility | principal.hostname | Wert aus dem Feld „source_facility“. | 
| src_ip | principal.asset.ip | Wert aus dem Feld „src_ip“. | 
| src_ip | principal.ip | Wert aus dem Feld „src_ip“. | 
| src_mac | principal.mac | Wert aus dem Feld „src_mac“ nach dem Ersetzen von . durch :. | 
| src_port | principal.port | Wert aus dem Feld „src_port“. | 
| src_user_id | principal.user.userid | Wert aus dem Feld „src_user_id“. Wenn das Feld leer ist, wird der Wert aus dem Feld „Nutzer“ übernommen. Wenn das Feld immer noch leer ist, wird der Wert aus dem Feld „StepData_9“ übernommen. | 
| src_user_name | principal.user.user_display_name | Wert aus dem Feld „src_user_name“. | 
| Schritt | additional.fields.key = Step, value = Step | 
Wert aus dem Feld „Schritt“. | 
| StepData_10 | principal.asset.hostname | Wert aus dem Feld „StepData_10“. | 
| StepData_10 | principal.hostname | Wert aus dem Feld „StepData_10“. | 
| StepData_13 | security_result.summary | Wert aus dem Feld „StepData_13“. | 
| StepData_14 | security_result.detection_fields.key = StepData_14, value = StepData_14 | 
Wert aus dem Feld „StepData_14“. | 
| StepData_15 | security_result.detection_fields.key = StepData_15, value = StepData_15 | 
Wert aus dem Feld „StepData_15“. | 
| StepData_20 | security_result.detection_fields.key = StepData_20, value = StepData_20 | 
Wert aus dem Feld „StepData_20“. | 
| StepData_21 | security_result.detection_fields.key = StepData_21, value = StepData_21 | 
Wert aus dem Feld „StepData_21“. | 
| StepData_3 | additional.fields.key = StepData_3, value = StepData_3 | 
Wert aus dem Feld „StepData_3“. | 
| StepData_4 | security_result.detection_fields.key = StepData_4, value = StepData_4 | 
Wert aus dem Feld „StepData_4“. | 
| StepData_6 | security_result.detection_fields.key = StepData_6, value = StepData_6 | 
Wert aus dem Feld „StepData_6“. | 
| StepData_7 | security_result.detection_fields.key = StepData_7, value = StepData_7 | 
Wert aus dem Feld „StepData_7“. | 
| StepData_8 | security_result.detection_fields.key = StepData_8, value = StepData_8 | 
Wert aus dem Feld „StepData_8“. | 
| StepData_9 | principal.user.userid | Wert aus dem Feld „StepData_9“, wenn „src_user_id“ und die Nutzerfelder leer sind. | 
| target_host | target.asset.hostname | Wert aus dem Feld „target_host“. | 
| target_host | target.hostname | Wert aus dem Feld „target_host“. | 
| timestamp | metadata.event_timestamp | Wert aus dem Zeitstempelfeld nach dem Entfernen zusätzlicher Leerzeichen und dem Parsen des Datums. | 
| TotalAuthenLatency | additional.fields.key = TotalAuthenLatency, value = TotalAuthenLatency | 
Wert aus dem Feld „TotalAuthenLatency“. | 
| ts | metadata.event_timestamp | Wert, der nach dem Parsen des Datums aus dem Feld „ts“ übernommen wurde. | 
| Typ | security_result.category_details | Wert aus dem Feld „Typ“. | 
| Nutzer | principal.user.userid | Wert aus dem Feld „Nutzer“, wenn „src_user_id“ leer ist. | 
| UserType | additional.fields.key = UserType, value = UserType | 
Wert aus dem Feld „UserType“. | 
| metadata.vendor_name | Legen Sie CISCO fest. | 
|
| metadata.product_name | Legen Sie CISCO_IOS fest. | 
|
| metadata.log_type | Legen Sie CISCO_IOS fest. | 
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten