Cisco Secure ACS-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco Secure Access Control Server-Logs (ACS) mithilfe eines Google Security Operations-Forwarders erfassen können.
Weitere Informationen finden Sie unter Datenaufnahme in Google Security Operations.
Mit einem Ingestion-Label wird der Parser identifiziert, der Rohdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Ingestion-Label CISCO_ACS
.
Cisco Secure ACS konfigurieren
- Melden Sie sich mit Administratoranmeldedaten in der Cisco Secure ACS-Konsole an.
- Wählen Sie in der Cisco Secure ACS-Konsole System administration > Configuration > Log configuration > Remote log targets aus.
- Klicken Sie auf Erstellen.
Geben Sie im Fenster Erstellen Werte für die folgenden Felder an:
Feld Beschreibung Name Name des Google Security Operations-Forwarders. Beschreibung Beschreibung des Google Security Operations-Forwarders. IP-Adresse IP-Adresse des Google Security Operations-Forwarders. Erweiterte Syslog-Optionen verwenden Wählen Sie diese Option aus, um die erweiterten Syslog-Optionen zu aktivieren. Zieltyp Wählen Sie „TCP-Syslog“ oder „UDP-Syslog“ aus. Port Verwenden Sie einen hohen Port, z. B. 10514. Einrichtungscode LOCAL6 (Code = 22; Standard). Zulässige Höchstlänge Der empfohlene Wert ist 1024. Klicken Sie auf Senden. Das Fenster Remote-Log-Ziele wird mit der neuen Konfiguration für das Remote-Log-Ziel angezeigt.
Wählen Sie in der Cisco Secure ACS-Konsole System administration > Configuration > Log configuration > Logging categories > Per-Instance aus.
Wählen Sie ACS aus und klicken Sie dann auf Konfigurieren.
Wählen Sie im Fenster Per-Instance (Pro Instanz) eine Logging-Kategorie aus und klicken Sie auf Bearbeiten.
Auf dem Tab Allgemein muss für einige Protokollierungskategorien der Schweregrad der Protokollierung auf den Standardwert oder den vom Anbieter angegebenen Wert festgelegt werden.
Für Cisco Secure ACS ist der Standardschweregrad für alle Protokollierungskategorien Warn, mit Ausnahme der Kategorien, für die der Schweregrad nicht geändert werden kann, z. B. AAA-Audit-Notice, Accounting-Notice, Administrative and Operational Audit-Notice und System Statistics-Notice.
Klicken Sie auf den Tab Remote syslog target (Remote-Syslog-Ziel) und verschieben Sie das neu erstellte Remote-Ziel von Available targets (Verfügbare Ziele) nach Selected targets (Ausgewählte Ziele).
Klicken Sie auf Senden.
Wiederholen Sie die Schritte 8 bis 10, um Remote-Ziele für andere Logging-Kategorien zu konfigurieren.
Google Security Operations-Forwarder und Syslog zum Erfassen von Cisco Secure ACS-Protokollen konfigurieren
- Rufen Sie die SIEM-Einstellungen > Weiterleitungen auf.
- Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
- Geben Sie im Feld Name des Forwarders einen eindeutigen Namen für den Forwarder ein.
- Klicken Sie auf Senden. Der Weiterleiter wird hinzugefügt und das Fenster Collector-Konfiguration hinzufügen wird angezeigt.
- Geben Sie im Feld Name des Collectors einen Namen ein.
- Wählen Sie Cisco ACS als Log type (Logtyp) aus.
- Wählen Sie Syslog als Collector-Typ aus.
- Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
- Protokoll: Geben Sie das Protokoll an.
- Adresse: Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, auf dem sich der Collector befindet, und die Adressen für die Syslog-Daten.
- Port: Geben Sie den Zielport an, an dem sich der Collector befindet und an dem er auf Syslog-Daten wartet.
- Klicken Sie auf Senden.
Weitere Informationen zu Google Security Operations-Weiterleitungen finden Sie in der Dokumentation zu Google Security Operations-Weiterleitungen. Informationen zu den Anforderungen für die einzelnen Forwarder-Typen finden Sie unter Forwarder-Konfiguration nach Typ. Wenn beim Erstellen von Weiterleitungen Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.
Referenz zur Feldzuordnung
Dieser Parser verarbeitet Cisco ACS-Protokolle, einschließlich Authentifizierung, Abrechnung, Diagnose und Systemstatistiken. Er verwendet Grok-Muster, um Felder aus verschiedenen Logformaten (SYSLOG + KV, LEEF) zu extrahieren, normalisiert Zeitstempel und Zeitzonen und ordnet Schlüsselfelder dem UDM zu. Dabei werden verschiedene Logtypen mit spezifischer Logik für erfolgreiche/fehlgeschlagene Authentifizierungen, TACACS+-Abrechnung und RADIUS-Ereignisse verarbeitet. Außerdem wird das UDM mit zusätzlichen Feldern wie Geräteinformationen und Authentifizierungsdetails angereichert.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
Acct-Authentic |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Authentic übernommen. |
Acct-Delay-Time |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Delay-Time übernommen. |
Acct-Input-Octets |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Input-Octets übernommen. |
Acct-Input-Packets |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Input-Packets übernommen. |
Acct-Output-Octets |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Output-Octets übernommen. |
Acct-Output-Packets |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Output-Packets übernommen. |
Acct-Session-Id |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Session-Id übernommen. |
Acct-Session-Time |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Session-Time übernommen. |
Acct-Status-Type |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Status-Type übernommen. |
Acct-Terminate-Cause |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Acct-Terminate-Cause übernommen. |
ACSVersion |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld ACSVersion übernommen. |
AD-Domain |
principal.group.group_display_name |
Der Wert wird aus dem Feld AD-Domain übernommen. |
AD-IP-Address |
principal.ip |
Der Wert wird aus dem Feld AD-IP-Address übernommen. |
Called-Station-ID |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Called-Station-ID übernommen. |
Calling-Station-ID |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Calling-Station-ID übernommen. |
Class |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Class übernommen. |
CmdSet |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
ConfigVersionId |
additional.fields[].value.number_value |
Der Wert wird aus dem Feld ConfigVersionId übernommen und in eine Gleitkommazahl konvertiert. |
DestinationIPAddress |
target.ip , intermediary.ip |
Der Wert wird aus dem Feld DestinationIPAddress übernommen. intermediary.ip wird aus Device IP Address abgeleitet. |
DestinationPort |
target.port |
Der Wert wird aus dem Feld DestinationPort übernommen und in eine Ganzzahl konvertiert. |
Device IP Address |
intermediary.ip |
Der Wert wird aus dem Feld Device IP Address übernommen. |
Device Port |
intermediary.port |
Der Wert wird aus dem Feld Device Port übernommen und in eine Ganzzahl konvertiert. |
DetailedInfo |
security_result.summary , security_result.description , security_result.action |
Wenn DetailedInfo „Authentication succeed“ (Authentifizierung erfolgreich), security_result.summary „successful login occurred“ (erfolgreiche Anmeldung) und security_result.action ALLOW ist. Wenn DetailedInfo „Invalid username or password specified“ (Ungültiger Nutzername oder ungültiges Passwort angegeben) enthält, ist security_result.summary „failed login occurred“ (Anmeldung fehlgeschlagen) und security_result.action BLOCK. security_result.description wird aus log_header abgeleitet. |
Framed-IP-Address |
principal.ip |
Der Wert wird aus dem Feld Framed-IP-Address übernommen. |
Framed-Protocol |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Framed-Protocol übernommen. |
NAS-IP-Address |
target.ip |
Der Wert wird aus dem Feld NAS-IP-Address übernommen. |
NAS-Port |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld NAS-Port übernommen. |
NAS-Port-Id |
target.port |
Der Wert wird aus dem Feld NAS-Port-Id übernommen und in eine Ganzzahl konvertiert. |
NAS-Port-Type |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld NAS-Port-Type übernommen. |
NetworkDeviceName |
target.hostname |
Der Wert wird aus dem Feld NetworkDeviceName übernommen. |
Protocol |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Protocol übernommen. |
RadiusPacketType |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
Remote-Address |
principal.ip , target.ip |
Der Wert wird aus dem Feld Remote-Address übernommen und als IP-Adresse geparst. Sie wird für Authentifizierungsereignisse principal.ip und für Abrechnungs- und Diagnoseereignisse target.ip zugeordnet. |
RequestLatency |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld RequestLatency übernommen. |
Response |
principal.user.userid |
Wenn Response „User-Name“ enthält, wird der Nutzername extrahiert und principal.user.userid zugeordnet. |
SelectedAccessService |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld SelectedAccessService übernommen. |
SelectedAuthenticationIdentityStores |
security_result.detection_fields[].value |
Der Wert wird aus dem Feld SelectedAuthenticationIdentityStores übernommen. |
SelectedAuthorizationProfiles |
security_result.detection_fields[].value |
Der Wert wird aus dem Feld SelectedAuthorizationProfiles übernommen. |
Service-Type |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Service-Type übernommen. |
Tunnel-Client-Endpoint |
additional.fields[].value.string_value |
Der Wert wird aus dem Feld Tunnel-Client-Endpoint übernommen und als IP-Adresse geparst. |
User |
target.user.userid |
Der Wert wird aus dem Feld User übernommen. |
UserName |
target.user.userid , principal.mac |
Wenn UserName eine MAC-Adresse ist, wird sie geparst und principal.mac zugeordnet. Andernfalls wird sie auf target.user.userid abgebildet. |
ac-user-agent |
network.http.user_agent |
Der Wert wird aus dem Feld ac-user-agent übernommen. |
cat |
metadata.description |
Der Wert wird aus dem Feld cat übernommen. |
device-mac |
principal.mac |
Der Wert wird aus dem Feld device-mac übernommen, es werden Doppelpunkte hinzugefügt und der Wert wird in Kleinbuchstaben konvertiert. Wenn device-mac „00“ ist, wird es durch „00:00:00:00:00:00“ ersetzt. |
device-platform |
principal.asset.platform_software.platform |
Wenn device-platform „win“ ist, wird principal.asset.platform_software.platform der Wert „WINDOWS“ zugewiesen. |
device-platform-version |
principal.asset.platform_software.platform_version |
Der Wert wird aus dem Feld device-platform-version übernommen. |
device-public-mac |
principal.mac |
Der Wert wird aus dem Feld device-public-mac übernommen, Bindestriche werden durch Doppelpunkte ersetzt und der Wert wird in Kleinbuchstaben konvertiert. |
device-type |
principal.asset.hardware.model |
Der Wert wird aus dem Feld device-type übernommen. |
device-uid |
principal.asset.asset_id |
Der Wert wird aus dem Feld device-uid übernommen und mit „ASSET ID: “ vorangestellt. |
device-uid-global |
principal.asset.product_object_id |
Der Wert wird aus dem Feld device-uid-global übernommen. |
hostname |
principal.hostname |
Der Wert wird aus dem Feld hostname übernommen. |
ip:source-ip |
principal.ip |
Der Wert wird aus dem Feld ip:source-ip übernommen. |
kv.ADDomain |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.Airespace-Wlan-Id |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.AuthenticationIdentityStore |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.AVPair |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.CVPN3000/ASA/PIX7.x-DAP-Tunnel-Group-Name |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.ExternalGroups |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.FailureReason |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.IdentityAccessRestricted |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.IdentityGroup |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.NAS-Identifier |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.SelectedShellProfile |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.ServiceSelectionMatchedRule |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.State |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.Step |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.Tunnel-Medium-Type |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.Tunnel-Private-Group-ID |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.Tunnel-Type |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.UseCase |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.UserIdentityGroup |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.VendorSpecific |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.attribute-131 |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.attribute-89 |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.cisco-av-pair |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
kv.cisco-av-pair:CiscoSecure-Group-Id |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
leef_version |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
log_header |
metadata.description |
Der Wert wird aus dem Feld log_header übernommen. |
log_id |
metadata.product_log_id |
Der Wert wird aus dem Feld log_id übernommen. |
log_type |
metadata.product_event_type |
Der Wert wird aus dem Feld log_type übernommen. |
message_severity |
(nicht zugeordnet) | Nicht dem IDM-Objekt zugeordnet. |
product |
metadata.product_name |
Der Wert wird aus dem Feld product übernommen. |
product_version |
metadata.product_version |
Der Wert wird aus dem Feld product_version übernommen. |
server_host |
target.hostname |
Der Wert wird aus dem Feld server_host übernommen. |
timestamp |
metadata.event_timestamp |
Der Wert wird aus dem Feld timestamp und dem Feld timezone (nach dem Entfernen des Doppelpunkts) übernommen. Der kombinierte Wert wird als Zeitstempel geparst. |
url |
network.dns.questions[].name |
Der Wert wird aus dem Feld url übernommen. |
vendor |
metadata.vendor_name |
Der Wert wird aus dem Feld vendor übernommen. Anfangs auf „GENERIC_EVENT“ festgelegt, wird dann möglicherweise basierend auf den Feldern log_type und den geparsten Feldern überschrieben. Kann „USER_LOGIN“, „USER_UNCATEGORIZED“, „NETWORK_DNS“, „NETWORK_CONNECTION“, „STATUS_UPDATE“ oder „STATUS_UNCATEGORIZED“ sein. Anfangs auf „Cisco“ festgelegt, wird dann möglicherweise durch das Feld vendor überschrieben. Anfangs auf „ACS“ festgelegt, wird dann möglicherweise durch das Feld product überschrieben. Legen Sie diesen Wert auf „CISCO_ACS“ fest. Legen Sie diesen Wert auf „USERNAME_PASSWORD“ fest. Legen Sie diesen Wert auf „TACACS“ fest. Auf „UDP“ für RADIUS-Abrechnungs- und Diagnoseereignisse festlegen. Auf „DNS“ für DNS-Ereignisse festgelegt. Abgeleitet vom Feld security_action , das basierend darauf festgelegt wird, ob die Anmeldung erfolgreich war oder nicht. Wird bei erfolgreichen Anmeldungen auf „successful login occurred“ und bei fehlgeschlagenen Anmeldungen auf „failed login occurred“ gesetzt. Kann auch für bestimmte Diagnoseereignisse für den Identitätsspeicher auf „passed“ gesetzt werden. Bei fehlgeschlagenen Anmeldeversuchen auf „LOW“ setzen. Wird erstellt, indem dem Feld device-uid „ASSET ID: “ vorangestellt wird. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten