Collecter les journaux Cisco Secure ACS

Compatible avec:

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

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

Un libellé d'ingestion identifie l'analyseur qui normalise les données de journal brutes au format UDM structuré. Les informations présentées dans ce document s'appliquent à l'analyseur avec le libellé d'ingestion CISCO_ACS.

Configurer Cisco Secure ACS

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

    Champ Description
    Nom Nom du transmettant Google Security Operations.
    Description Description du transfert Google Security Operations.
    Adresse IP Adresse IP du transfert Google Security Operations.
    Utiliser les options avancées de syslog Sélectionnez cette option pour activer les options syslog avancées.
    Type de cible Sélectionnez le protocole syslog TCP ou 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 journalisation distantes s'affiche avec la nouvelle configuration de la cible de journalisation distante.

  6. Dans la console Cisco Secure ACS, sélectionnez System administration (Administration système) > Configuration (Configuration) > Log configuration (Configuration des journaux) > Logging categories (Catégories de journalisation) > Per-Instance (Par 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 General (Général), pour certaines catégories de journalisation, la gravité de la journalisation doit être définie par défaut ou comme indiqué par le fournisseur.

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

  9. Cliquez sur l'onglet Cible syslog distante, puis déplacez la cible distante nouvellement créée 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 forwarder Google Security Operations et le syslog pour ingérer les journaux Cisco Secure ACS

  1. Accédez à Paramètres du SIEM > Transferts.
  2. Cliquez sur Ajouter un forwarder.
  3. Dans le champ Nom du transmettant, saisissez un nom unique pour le transmettant.
  4. Cliquez sur Envoyer. Le forwarder 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 cible où se trouve le collecteur et les adresses des données syslog.
    • Port: spécifiez le port cible sur lequel se trouve le collecteur et qui écoute les données syslog.
  9. Cliquez sur Envoyer.

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

Référence de mappage de champ

Cet analyseur gère les journaux Cisco ACS, y compris l'authentification, la facturation, 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 met en correspondance des champs clés avec l'UDM. Il gère différents types de journaux avec une logique spécifique pour les succès/échecs d'authentification, la comptabilité TACACS+ et les événements RADIUS. Il enrichit également l'UDM avec des champs supplémentaires, tels que des informations sur l'appareil et des informations d'authentification.

Tableau 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é sur l'objet IDM.
ConfigVersionId additional.fields[].value.number_value La valeur est extraite du champ ConfigVersionId et convertie en valeur à virgule flottante.
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 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 entier.
DetailedInfo security_result.summary, security_result.description, security_result.action Si DetailedInfo est "Authentication succeed" (Authentification réussie), security_result.summary est "successful login occurred" (Connexion réussie) et security_result.action est ALLOW. Si DetailedInfo contient "Nom d'utilisateur ou mot de passe incorrect spécifié", security_result.summary indique "Échec de la connexion" et security_result.action est "BLOCAGE". 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 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é sur 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 mappé sur principal.ip pour les événements d'authentification et sur 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é sur 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 mappée sur 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 "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 traits d'union 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é sur l'objet IDM.
kv.Airespace-Wlan-Id (non mappé) Non mappé sur l'objet IDM.
kv.AuthenticationIdentityStore (non mappé) Non mappé sur l'objet IDM.
kv.AVPair (non mappé) Non mappé sur l'objet IDM.
kv.CVPN3000/ASA/PIX7.x-DAP-Tunnel-Group-Name (non mappé) Non mappé sur l'objet IDM.
kv.CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools (non mappé) Non mappé sur l'objet IDM.
kv.ExternalGroups (non mappé) Non mappé sur l'objet IDM.
kv.FailureReason (non mappé) Non mappé sur l'objet IDM.
kv.IdentityAccessRestricted (non mappé) Non mappé sur l'objet IDM.
kv.IdentityGroup (non mappé) Non mappé sur l'objet IDM.
kv.NAS-Identifier (non mappé) Non mappé sur l'objet IDM.
kv.SelectedShellProfile (non mappé) Non mappé sur l'objet IDM.
kv.ServiceSelectionMatchedRule (non mappé) Non mappé sur l'objet IDM.
kv.State (non mappé) Non mappé sur l'objet IDM.
kv.Step (non mappé) Non mappé sur l'objet IDM.
kv.Tunnel-Medium-Type (non mappé) Non mappé sur l'objet IDM.
kv.Tunnel-Private-Group-ID (non mappé) Non mappé sur l'objet IDM.
kv.Tunnel-Type (non mappé) Non mappé sur l'objet IDM.
kv.UseCase (non mappé) Non mappé sur l'objet IDM.
kv.UserIdentityGroup (non mappé) Non mappé sur l'objet IDM.
kv.VendorSpecific (non mappé) Non mappé sur l'objet IDM.
kv.attribute-131 (non mappé) Non mappé sur l'objet IDM.
kv.attribute-89 (non mappé) Non mappé sur l'objet IDM.
kv.cisco-av-pair (non mappé) Non mappé sur l'objet IDM.
kv.cisco-av-pair:CiscoSecure-Group-Id (non mappé) Non mappé sur l'objet IDM.
leef_version (non mappé) Non mappé sur 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é sur 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. Initialement défini sur "GENERIC_EVENT", il peut être é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". Initialement défini sur "Cisco", puis potentiellement écrasé par le champ vendor. Initialement défini sur "ACS", puis potentiellement écrasé par le champ product. Définissez-le sur "CISCO_ACS". Définissez-le sur "USERNAME_PASSWORD". Définissez cette valeur sur "TACACS". Définissez-le sur "UDP" pour les événements de comptabilité et de diagnostic RADIUS. Définissez sa valeur sur "DNS" pour les événements DNS. Dérivé du champ security_action, qui est défini en fonction de la réussite ou non de la connexion. Définissez la valeur sur "Connexion réussie" pour les connexions réussies et sur "Connexion échouée" pour les connexions échouées. Peut également être défini sur "passed" (Passé) pour certains événements de diagnostic du magasin d'identités. Définissez la valeur sur "LOW" (FAIBLE) pour les tentatives de connexion ayant échoué. Il est construit en ajoutant "ASSET ID: " au champ device-uid.

Modifications

2023-09-26

  • Amélioration :
  • Initialisation de "hostname" sur "null" et ajout d'une vérification du nom d'hôte non nul avant de définir "metadata.event_type" sur "STATUS_UPDATE".
  • Ajout d'une vérification de l'adresse IP valide dans "kv.DeviceIPAddress" et "kv.Remote-Address" avant le mappage sur les champs UDM.

2022-08-19

  • Amélioration :
  • "User-Name" a été mappé sur "principal.user.userid".
  • Renommé "ip:source-ip" en "source_ip" et mappé sur "principal.ip".
  • "kv.audit-session-id" a été renommé "kv.audit_session_id" et mappé sur "network.session_id".
  • Mappage de "kv.AuthenticationMethod" sur "additional.fields".
  • Mappage de "kv.SelectedAccessService" sur "additional.fields".
  • Mappage de "kv.SelectedAuthorizationProfiles" sur "security_result.detection_fields".
  • Mappage de "kv.SelectedAuthenticationIdentityStores" sur "security_result.detection_fields".
  • Mappage de "kv.device-uid-global" sur "principal.asset.product_object_id".
  • Mappage de "kv.device-uid" sur "principal.asset.asset_id".
  • Mappage de "metadata.event_type" sur "USER_UNCATEGORIZED", où kv.DestinationIPAddress et kv.NAS-IP-Address et kv.NAS-IP-Address et kv.UserName et kv.NetworkDeviceName sont nuls.
  • Prise en charge des journaux au format LEEF.

2022-06-14

  • Amélioration : modification de grok pour analyser les journaux de log_type = "CSCOacs_Passed_Authentications", qui échouaient en raison de plusieurs espaces.
  • Remplacement de la valeur "device-mac" par la valeur fictive "00:00:00:00:00:00" pour le type de journal "CSCOacs_RADIUS_Accounting" en cas de valeur non valide (00).

2022-06-06

  • Amélioration : analyse des journaux de type "CSCOacs_Passed_Authentications" qui ne contiennent ni "DestinationIPAddress" ni "NAS-IP-Address".
  • Modification de metadata.event_type de "USER_UNCATEGORIZED" à "USER_LOGIN" pour les journaux de type "CSCOacs_Passed_Authentications"

2022-05-05

  • Amélioration : les journaux nouvellement ingérés qui ne comportent pas de code de message sont analysés et supprimés.

2022-04-27

  • Amélioration : analyse des journaux avec log_type=CISE_TACACS_Accounting.