Collecter les journaux Cisco Secure ACS

Compatible avec :

Ce document explique comment collecter les journaux Cisco Secure Access Control Server (ACS) à l'aide d'un transmetteur Google Security Operations.

Pour en savoir plus, consultez Ingestion de données dans Google Security Operations.

Une étiquette d'ingestion identifie l'analyseur qui normalise les données de journaux brutes au format UDM structuré. Les informations de ce document s'appliquent au parseur avec le libellé d'ingestion CISCO_ACS.

Configurer Cisco Secure ACS

  1. Connectez-vous à la console Cisco Secure ACS à l'aide des identifiants administrateur.
  2. Dans la console Cisco Secure ACS, sélectionnez System administration > Configuration > Log configuration > Remote log targets.
  3. Cliquez sur Créer.
  4. Dans la fenêtre Créer, spécifiez les valeurs des champs suivants :

    Champ Description
    Nom Nom du redirecteur Google Security Operations.
    Description Description du transmetteur Google Security Operations.
    Adresse IP Adresse IP du redirecteur Google Security Operations.
    Utiliser les options syslog avancées Sélectionnez cette option pour activer les options syslog avancées.
    Type de cible Sélectionnez "Syslog TCP" ou "Syslog UDP".
    Port Utilisez un port élevé, tel que 10514.
    Code de l'établissement LOCAL6 (code = 22 ; par défaut)
    Longueur maximale La valeur recommandée est 1 024.
  5. Cliquez sur Envoyer. La fenêtre Cibles de journaux à distance s'affiche avec la nouvelle configuration de la cible de journaux à distance.

  6. Dans la console Cisco Secure ACS, sélectionnez System administration > Configuration > Log configuration > Logging categories > Per-Instance.

  7. Sélectionnez ACS, puis cliquez sur Configurer.

  8. Dans la fenêtre Par instance, sélectionnez une catégorie de journalisation, puis cliquez sur Modifier.

    Dans l'onglet Général, pour certaines catégories de journalisation, la gravité de la journalisation doit être définie sur la valeur par défaut ou sur celle fournie par le fournisseur.

    Pour Cisco Secure ACS, le niveau de gravité par défaut est Avertissement pour toutes les catégories de journaux, à l'exception de celles pour lesquelles le niveau de gravité ne peut pas être modifié, telles que les notifications d'audit AAA, les notifications de comptabilité, les notifications d'audit administratif et opérationnel, et les notifications de statistiques système.

  9. Cliquez sur l'onglet Cible syslog distante, puis déplacez la cible distante que vous venez de créer de Cibles disponibles vers Cibles sélectionnées.

  10. Cliquez sur Envoyer.

  11. Pour configurer des cibles distantes pour d'autres catégories de journalisation, répétez les étapes 8 à 10.

Configurer le redirecteur Google Security Operations et Syslog pour ingérer les journaux Cisco Secure ACS

  1. Accédez à Paramètres SIEM > Transférateurs.
  2. Cliquez sur Ajouter un nouveau transfert.
  3. Dans le champ Nom du transitaire, saisissez un nom unique pour le transitaire.
  4. Cliquez sur Envoyer. Le redirecteur est ajouté et la fenêtre Ajouter une configuration de collecteur s'affiche.
  5. Dans le champ Nom du collecteur, saisissez un nom.
  6. Sélectionnez Cisco ACS comme Type de journal.
  7. Sélectionnez Syslog comme type de collecteur.
  8. Configurez les paramètres d'entrée obligatoires suivants :
    • Protocole : spécifiez le protocole.
    • Adresse : spécifiez l'adresse IP ou le nom d'hôte cibles où réside le collecteur et les adresses des données syslog.
    • Port : spécifiez le port cible sur lequel le collecteur réside et écoute les données syslog.
  9. Cliquez sur Envoyer.

Pour en savoir plus sur les redirecteurs Google Security Operations, consultez la documentation sur les redirecteurs Google Security Operations. Pour en savoir plus sur les exigences de chaque type de redirecteur, consultez Configuration des redirecteurs par type. Si vous rencontrez des problèmes lors de la création de transferts, contactez l'assistance Google Security Operations.

Référence du mappage de champs

Ce parseur gère les journaux Cisco ACS, y compris l'authentification, la comptabilité, les diagnostics et les statistiques système. Il utilise des modèles Grok pour extraire des champs de différents formats de journaux (SYSLOG+KV, LEEF), normalise les codes temporels et les fuseaux horaires, et mappe les champs clés à l'UDM, en gérant différents types de journaux avec une logique spécifique pour les réussites/échecs d'authentification, la comptabilité TACACS+ et les événements RADIUS. Il enrichit également les données UDM avec des champs supplémentaires tels que les informations sur l'appareil et les détails d'authentification.

Table de mappage UDM

Champ de journal Mappage UDM Logique
Acct-Authentic additional.fields[].value.string_value La valeur est extraite du champ Acct-Authentic.
Acct-Delay-Time additional.fields[].value.string_value La valeur est extraite du champ Acct-Delay-Time.
Acct-Input-Octets additional.fields[].value.string_value La valeur est extraite du champ Acct-Input-Octets.
Acct-Input-Packets additional.fields[].value.string_value La valeur est extraite du champ Acct-Input-Packets.
Acct-Output-Octets additional.fields[].value.string_value La valeur est extraite du champ Acct-Output-Octets.
Acct-Output-Packets additional.fields[].value.string_value La valeur est extraite du champ Acct-Output-Packets.
Acct-Session-Id additional.fields[].value.string_value La valeur est extraite du champ Acct-Session-Id.
Acct-Session-Time additional.fields[].value.string_value La valeur est extraite du champ Acct-Session-Time.
Acct-Status-Type additional.fields[].value.string_value La valeur est extraite du champ Acct-Status-Type.
Acct-Terminate-Cause additional.fields[].value.string_value La valeur est extraite du champ Acct-Terminate-Cause.
ACSVersion additional.fields[].value.string_value La valeur est extraite du champ ACSVersion.
AD-Domain principal.group.group_display_name La valeur est extraite du champ AD-Domain.
AD-IP-Address principal.ip La valeur est extraite du champ AD-IP-Address.
Called-Station-ID additional.fields[].value.string_value La valeur est extraite du champ Called-Station-ID.
Calling-Station-ID additional.fields[].value.string_value La valeur est extraite du champ Calling-Station-ID.
Class additional.fields[].value.string_value La valeur est extraite du champ Class.
CmdSet (non mappé) Non mappé à l'objet IDM.
ConfigVersionId additional.fields[].value.number_value La valeur est extraite du champ ConfigVersionId et convertie en float.
DestinationIPAddress target.ip, intermediary.ip La valeur est extraite du champ DestinationIPAddress. intermediary.ip est dérivé de Device IP Address.
DestinationPort target.port La valeur est extraite du champ DestinationPort et convertie en nombre entier.
Device IP Address intermediary.ip La valeur est extraite du champ Device IP Address.
Device Port intermediary.port La valeur est extraite du champ Device Port et convertie en nombre entier.
DetailedInfo security_result.summary, security_result.description, security_result.action Si DetailedInfo est défini sur "Authentication succeed" (Authentification réussie), security_result.summary est défini sur "successful login occurred" (Connexion réussie) et security_result.action est défini sur ALLOW (AUTORISER). Si DetailedInfo contient "Nom d'utilisateur ou mot de passe non valides", security_result.summary est "Échec de la connexion" et security_result.action est BLOCK. security_result.description est dérivé de log_header.
Framed-IP-Address principal.ip La valeur est extraite du champ Framed-IP-Address.
Framed-Protocol additional.fields[].value.string_value La valeur est extraite du champ Framed-Protocol.
NAS-IP-Address target.ip La valeur est extraite du champ NAS-IP-Address.
NAS-Port additional.fields[].value.string_value La valeur est extraite du champ NAS-Port.
NAS-Port-Id target.port La valeur est extraite du champ NAS-Port-Id et convertie en nombre entier.
NAS-Port-Type additional.fields[].value.string_value La valeur est extraite du champ NAS-Port-Type.
NetworkDeviceName target.hostname La valeur est extraite du champ NetworkDeviceName.
Protocol additional.fields[].value.string_value La valeur est extraite du champ Protocol.
RadiusPacketType (non mappé) Non mappé à l'objet IDM.
Remote-Address principal.ip, target.ip La valeur est extraite du champ Remote-Address et analysée en tant qu'adresse IP. Il est associé à principal.ip pour les événements d'authentification et à target.ip pour les événements de comptabilité et de diagnostic.
RequestLatency additional.fields[].value.string_value La valeur est extraite du champ RequestLatency.
Response principal.user.userid Si Response contient "User-Name", le nom d'utilisateur est extrait et mappé à principal.user.userid.
SelectedAccessService additional.fields[].value.string_value La valeur est extraite du champ SelectedAccessService.
SelectedAuthenticationIdentityStores security_result.detection_fields[].value La valeur est extraite du champ SelectedAuthenticationIdentityStores.
SelectedAuthorizationProfiles security_result.detection_fields[].value La valeur est extraite du champ SelectedAuthorizationProfiles.
Service-Type additional.fields[].value.string_value La valeur est extraite du champ Service-Type.
Tunnel-Client-Endpoint additional.fields[].value.string_value La valeur est extraite du champ Tunnel-Client-Endpoint et analysée en tant qu'adresse IP.
User target.user.userid La valeur est extraite du champ User.
UserName target.user.userid, principal.mac Si UserName est une adresse MAC, elle est analysée et mise en correspondance avec principal.mac. Sinon, il est mappé sur target.user.userid.
ac-user-agent network.http.user_agent La valeur est extraite du champ ac-user-agent.
cat metadata.description La valeur est extraite du champ cat.
device-mac principal.mac La valeur est extraite du champ device-mac, des deux-points sont ajoutés et la valeur est convertie en minuscules. Si device-mac est "00", il est remplacé par "00:00:00:00:00:00".
device-platform principal.asset.platform_software.platform Si device-platform est défini sur "win", la valeur "WINDOWS" est attribuée à principal.asset.platform_software.platform.
device-platform-version principal.asset.platform_software.platform_version La valeur est extraite du champ device-platform-version.
device-public-mac principal.mac La valeur est extraite du champ device-public-mac, les tirets sont remplacés par des deux-points et la valeur est convertie en minuscules.
device-type principal.asset.hardware.model La valeur est extraite du champ device-type.
device-uid principal.asset.asset_id La valeur est extraite du champ device-uid et précédée de "ASSET ID: ".
device-uid-global principal.asset.product_object_id La valeur est extraite du champ device-uid-global.
hostname principal.hostname La valeur est extraite du champ hostname.
ip:source-ip principal.ip La valeur est extraite du champ ip:source-ip.
kv.ADDomain (non mappé) Non mappé à l'objet IDM.
kv.Airespace-Wlan-Id (non mappé) Non mappé à l'objet IDM.
kv.AuthenticationIdentityStore (non mappé) Non mappé à l'objet IDM.
kv.AVPair (non mappé) Non mappé à l'objet IDM.
kv.CVPN3000/ASA/PIX7.x-DAP-Tunnel-Group-Name (non mappé) Non mappé à l'objet IDM.
kv.CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools (non mappé) Non mappé à l'objet IDM.
kv.ExternalGroups (non mappé) Non mappé à l'objet IDM.
kv.FailureReason (non mappé) Non mappé à l'objet IDM.
kv.IdentityAccessRestricted (non mappé) Non mappé à l'objet IDM.
kv.IdentityGroup (non mappé) Non mappé à l'objet IDM.
kv.NAS-Identifier (non mappé) Non mappé à l'objet IDM.
kv.SelectedShellProfile (non mappé) Non mappé à l'objet IDM.
kv.ServiceSelectionMatchedRule (non mappé) Non mappé à l'objet IDM.
kv.State (non mappé) Non mappé à l'objet IDM.
kv.Step (non mappé) Non mappé à l'objet IDM.
kv.Tunnel-Medium-Type (non mappé) Non mappé à l'objet IDM.
kv.Tunnel-Private-Group-ID (non mappé) Non mappé à l'objet IDM.
kv.Tunnel-Type (non mappé) Non mappé à l'objet IDM.
kv.UseCase (non mappé) Non mappé à l'objet IDM.
kv.UserIdentityGroup (non mappé) Non mappé à l'objet IDM.
kv.VendorSpecific (non mappé) Non mappé à l'objet IDM.
kv.attribute-131 (non mappé) Non mappé à l'objet IDM.
kv.attribute-89 (non mappé) Non mappé à l'objet IDM.
kv.cisco-av-pair (non mappé) Non mappé à l'objet IDM.
kv.cisco-av-pair:CiscoSecure-Group-Id (non mappé) Non mappé à l'objet IDM.
leef_version (non mappé) Non mappé à l'objet IDM.
log_header metadata.description La valeur est extraite du champ log_header.
log_id metadata.product_log_id La valeur est extraite du champ log_id.
log_type metadata.product_event_type La valeur est extraite du champ log_type.
message_severity (non mappé) Non mappé à l'objet IDM.
product metadata.product_name La valeur est extraite du champ product.
product_version metadata.product_version La valeur est extraite du champ product_version.
server_host target.hostname La valeur est extraite du champ server_host.
timestamp metadata.event_timestamp La valeur est extraite des champs timestamp et timezone (après suppression du deux-points). La valeur combinée est analysée en tant que code temporel.
url network.dns.questions[].name La valeur est extraite du champ url.
vendor metadata.vendor_name La valeur est extraite du champ vendor. Défini sur "GENERIC_EVENT" au départ, puis potentiellement écrasé en fonction des champs log_type et analysés. Valeurs possibles : "USER_LOGIN", "USER_UNCATEGORIZED", "NETWORK_DNS", "NETWORK_CONNECTION", "STATUS_UPDATE" ou "STATUS_UNCATEGORIZED". La valeur initiale est "Cisco", mais elle peut être remplacée par le champ vendor. Définie sur "ACS" au départ, puis potentiellement remplacée par le champ product. Défini sur "CISCO_ACS". Défini sur "USERNAME_PASSWORD". Définissez-le sur "TACACS". Définissez la valeur sur "UDP" pour les événements de diagnostic et de comptabilité RADIUS. Définissez sa valeur sur "DNS" pour les événements DNS. Dérivé du champ security_action, qui est défini selon que la connexion a réussi ou non. Définissez la valeur sur "successful login occurred" (connexion réussie) pour les connexions réussies et sur "failed login occurred" (échec de connexion) pour les échecs de connexion. Peut également être défini sur "passed" (réussi) pour certains événements de diagnostic du magasin d'identité. Définissez-le sur "LOW" pour les tentatives de connexion ayant échoué. Construit en ajoutant le préfixe "ASSET ID: " au champ device-uid.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.