Collecter les journaux Aruba ClearPass
Ce document explique comment collecter les journaux Aruba ClearPass à l'aide de Bindplane. L'analyseur tente de nettoyer et de structurer les journaux entrants en supprimant les champs superflus et en standardisant le format des messages. Ensuite, selon que le journal suit le format CEF ou une structure différente, le code utilise une combinaison de modèles grok, d'extractions clé-valeur et de logique conditionnelle pour mapper les champs pertinents sur le modèle de données unifié (UDM), puis catégoriser chaque événement en fonction d'un type d'événement de sécurité spécifique.
Avant de commencer
- Assurez-vous de disposer d'une instance Google Security Operations.
- Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec
systemd
. - Si vous exécutez l'application derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous de disposer d'un accès privilégié à un appareil Aruba ClearPass.
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.
Obtenir le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.
Installer l'agent Bindplane
Installation de Windows
- Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec des droits root ou sudo.
Exécutez la commande suivante :
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Autres ressources d'installation
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour qu'il ingère les journaux Syslog et les envoie à Google SecOps
Accédez au fichier de configuration:
- Recherchez le fichier
config.yaml
. En règle générale, il se trouve dans le répertoire/etc/bindplane-agent/
sous Linux ou dans le répertoire d'installation sous Windows. - Ouvrez le fichier à l'aide d'un éditeur de texte (
nano
,vi
ou Bloc-notes, par exemple).
- Recherchez le fichier
Modifiez le fichier
config.yaml
comme suit :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: '/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 ingestion_labels: log_type: CLEARPASS raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.
Remplacez
<customer_id>
par le numéro client réel.Remplacez
/path/to/ingestion-authentication-file.json
par le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification d'ingestion Google SecOps.
Redémarrez l'agent Bindplane pour appliquer les modifications
Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante:
sudo systemctl restart bindplane-agent
Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurer le serveur syslog Aruba ClearPass
- Connectez-vous à la console du gestionnaire de règles ClearPass.
- Sélectionnez Administration > Serveurs externes > Cibles Syslog.
- Cliquez sur Ajouter.
- Dans la fenêtre Ajouter une cible syslog qui s'affiche, spécifiez les informations suivantes :
- Adresse de l'hôte: saisissez l'adresse IP de Bindplane.
- Port du serveur: saisissez le numéro de port Bindplane.
- Protocole: sélectionnez UDP (vous pouvez également sélectionner TCP, en fonction de votre configuration Bindplane).
- Cliquez sur Enregistrer.
Configurer des filtres d'exportation syslog
- Accédez à Administration > Serveurs externes > Filtres d'exportation Syslog.
- Cliquez sur Ajouter.
- Dans la fenêtre Ajouter des filtres Syslog qui s'affiche, spécifiez les éléments suivants dans l'onglet Général :
- Nom: saisissez le nom du filtre d'exportation syslog en fonction du tableau de la section Éléments du modèle d'exportation.
- Modèle d'exportation: sélectionnez le modèle d'exportation approprié en fonction du tableau dans Éléments du modèle d'exportation.
- Type de format d'événement à exporter: sélectionnez Standard.
- Serveurs Syslog: sélectionnez l'adresse IP de Bindplane.
- Dans la liste Modèle d'exportation, lorsque vous sélectionnez les modèles d'exportation Session ou Informations, l'onglet Filtres et colonnes est activé. Procédez comme suit :
- Cliquez sur l'onglet Filtres et colonnes.
- Filtre de données: assurez-vous que la valeur par défaut Toutes les requêtes est sélectionnée.
- Sélection de colonnes: sélectionnez le groupe de champs prédéfini en fonction du tableau dans Exporter les éléments du modèle.
- Colonnes sélectionnées: vérifiez que les champs renseignés automatiquement correspondent au tableau dans Exporter les éléments du modèle.
- Cliquez sur l'onglet Résumé.
- Cliquez sur Enregistrer.
- Dans la liste Modèle d'exportation, lorsque vous sélectionnez les modèles d'exportation Événements système et Enregistrements d'audit, l'onglet Filtres et colonnes n'est pas activé. Accédez à l'onglet Résumé, puis cliquez sur Enregistrer.
- Répétez la procédure pour ajouter des filtres d'exportation syslog pour tous les modèles d'exportation Session, Insight, Enregistrements d'audit et Événements système en fonction des informations du tableau de la section Récapitulatif des éléments du modèle d'exportation.
Exporter les éléments du modèle
Le tableau suivant décrit les éléments que vous devez configurer pour chaque modèle d'exportation. Les champs par défaut listés dans "Colonnes sélectionnées" sont compatibles avec l'analyse des événements. Assurez-vous que tous les champs mentionnés dans le tableau sous "Colonnes sélectionnées (par défaut)" sont présents et dans le même ordre. Veillez à créer des modèles de filtres d'exportation syslog exactement comme indiqué dans le tableau, y compris le nom du filtre, qui est sensible à la casse.
Nom du filtre d'exportation Syslog (sensible à la casse) | Modèle d'exportation | Groupes de champs prédéfinis | Colonnes sélectionnées (par défaut) |
---|---|---|---|
ACPPM_radauth | Journaux d'insight | Authentifications Radius | Auth.Username Auth.Host-MAC-Address Auth.Protocol Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_radfailedauth | Journaux d'insight | Authentifications Radius échouées | Auth.Username Auth.Host-MAC-Address Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_radacct | Journaux d'insight | Traçabilité RADIUS | Radius.Username Radius.Calling-Station-Id Radius.Framed-IP-Address Radius.NAS-IP-Address Radius.Start-Time Radius.End-Time Radius.Duration Radius.Input-bytes Radius.Output-bytes |
ACPPM_tacauth | Journaux d'insight | Authentification tacacs | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service tacacs.Auth-Source tacacs.Roles tacacs.Enforcement-Profiles tacacs.Privilege-Level |
ACPPM_tacfailedauth | Journaux d'insight | Échec de l'authentification tacacs | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_webauth | Journaux d'insight | WEBAUTH | Auth.Username Auth.Host-MAC-Address Auth.Host-IP-Address Auth.Protocol Auth.System-Posture-Token CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_webfailedauth | Journaux d'insight | Authentifications WEBAUTH échouées | Auth.Username Auth.Host-MAC-Address Auth.Host-IP-Address Auth.Protocol Auth.System-Posture-Token CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_appauth | Journaux d'insight | Authentification de l'application | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_failedappauth | Journaux d'insight | Échec de l'authentification de l'application | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_endpoints | Journaux d'insight | Points de terminaison | Endpoint.MAC-Address Endpoint.MAC-Vendor Endpoint.IP-Address Endpoint.Username Endpoint.Device-Category Endpoint.Device-Family Endpoint.Device-Name Endpoint.Conflict Endpoint.Status Endpoint.Added-At Endpoint.Updated-At |
ACPPM_cpguest | Journaux d'insight | Clearpass Guest | Guest.Username Guest.MAC-Address Guest.Visitor-Name Guest.Visitor-Company Guest.Role-Name Guest.Enabled Guest.Created-At Guest.Starts-At Guest.Expires-At |
ACPPM_onbenroll | Journaux d'insight | Inscription d'intégration | OnboardEnrollment.Username OnboardEnrollment.Device-Name OnboardEnrollment.MAC-Address OnboardEnrollment.Device-Product OnboardEnrollment.Device-Version OnboardEnrollment.Added-At OnboardEnrollment.Updated-At |
ACPPM_onbcert | Journaux d'insight | Certificat d'intégration | OnboardCert.Username OnboardCert.Mac-Address OnboardCert.Subject OnboardCert.Issuer OnboardCert.Valid-From OnboardCert.Valid-To OnboardCert.Revoked-At |
ACPPM_onboscp | Journaux d'insight | Intégrer OCSP | OnboardOCSP.Remote-Address OnboardOCSP.Response-Status-Name OnboardOCSP.Timestamp |
ACPPM_cpsysevent | Journaux d'insight | Événements système Clearpass | CppmNode.CPPM-Node CppmSystemEvent.Source CppmSystemEvent.Level CppmSystemEvent.Category CppmSystemEvent.Action CppmSystemEvent.Timestamp |
ACPPM_cpconfaudit | Journaux d'insight | Audit de configuration de Clearpass | CppmConfigAudit.Name CppmConfigAudit.Action CppmConfigAudit.Category CppmConfigAudit.Updated-By CppmConfigAudit.Updated-At |
ACPPM_possummary | Journaux d'insight | Résumé de la stratégie | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Posture-Healthy Endpoint.Posture-Unhealthy |
ACPPM_posfwsummary | Journaux d'insight | Résumé de la stratégie de pare-feu | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Firewall-APT Endpoint.Firewall-Input Endpoint.Firewall-Output |
ACPPM_poavsummary | Journaux d'insight | Résumé de la stratégie antivirus | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Antivirus-APT Endpoint.Antivirus-Input Endpoint.Antivirus-Output |
ACPPM_posassummary | Journaux d'insight | Résumé de la stratégie anti-logiciels espions | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Antispyware-APT Endpoint.Antispyware-Input Endpoint.Antispyware-Output |
ACPPM_posdskencrpsummary | Journaux d'insight | Résumé de la posture DiskEncryption | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.DiskEncryption-APT Endpoint.DiskEncryption-Input Endpoint.DiskEncryption-Output |
ACPPM_loggedusers | Journaux de session | Utilisateurs connectés | Common.Username Common.Service Common.Roles Common.Host-MAC-Address RADIUS.Acct-Framed-IP-Address Common.NAS-IP-Address Common.Request-Timestamp |
ACPPM_failedauth | Journaux de session | Authentifications échouées | Common.Username Common.Service Common.Roles RADIUS.Auth-Source RADIUS.Auth-Method Common.System-Posture-Token Common.Enforcement-Profiles Common.Host-MAC-Address Common.NAS-IP-Address Common.Error-Code Common.Alerts Common.Request-Timestamp |
ACPPM_radacctsession | Journaux de session | Traçabilité RADIUS | RADIUS.Acct-Username RADIUS.Acct-NAS-IP-Address RADIUS.Acct-NAS-Port RADIUS.Acct-NAS-Port-Type RADIUS.Acct-Calling-Station-Id RADIUS.Acct-Framed-IP-Address RADIUS.Acct-Session-Id RADIUS.Acct-Session-Time RADIUS.Acct-Output-Pkts RADIUS.Acct-Input-Pkts RADIUS.Acct-Output-Octets RADIUS.Acct-Input.Octets RADIUS.Acct-Service-Name RADIUS.Acct-Timestamp |
ACPPM_tacadmin | Journaux de session | Administration tacacs+ | Common.Username Common.Service tacacs.Remote-Address tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_tacacct | Journaux de session | Tacacs+ Accounting | Common.Username Common.Service tacacs.Remote-Address tacacs.Acct-Flags tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_webauthsession | Journaux de session | Authentification Web | Common.Username Common.Host-MAC-Address WEBAUTH.Host-IP-Address Common.Roles Common.System-Posture-Token Common.Enforcement-Profiles Common.Request-Timestamp |
ACPPM_guestacc | Journaux de session | Accès invité | Common.Username RADIUS.Auth-Method Common.Host-MAC-Address Common.Roles Common.System-Posture-Token Common.Enforcement-Profiles Common.Request-Timestamp |
ACPPM_auditrecords | Enregistrements d'audit | Non applicable | Non applicable |
ACPPM_systemevents | Événements système | Non applicable | Non applicable |
Tableau de mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
Action | security_result.action | La valeur est mappée à partir du champ "Action" si sa valeur est "ALLOW" ou "BLOCK". |
Auth.Enforcement-Profiles | security_result.detection_fields.value | La valeur est mappée à partir du champ "Auth.Enforcement-Profiles". |
Auth.Host-MAC-Address | principal.mac | La valeur est mappée à partir du champ "Auth.Host-MAC-Address" après avoir été convertie au format d'adresse MAC séparé par deux-points. |
Auth.Login-Status | security_result.detection_fields.value | La valeur est mappée à partir du champ "Auth.Login-Status". |
Auth.NAS-IP-Address | target.ip | La valeur est mappée à partir du champ "Auth.NAS-IP-Address". |
Auth.Protocol | intermediary.application | La valeur est mappée à partir du champ "Auth.Protocol". |
Auth.Service | security_result.detection_fields.value | La valeur est mappée à partir du champ "Auth.Service". |
Auth.Source | principal.hostname | La valeur est mappée à partir du champ "Auth.Source" après suppression des caractères alphanumériques et des espaces de début |
Auth.Username | principal.user.user_display_name | La valeur est mappée à partir du champ "Auth.Username" |
Catégorie | metadata.event_type | Si la valeur est "Connecté", le champ UDM est défini sur "USER_LOGIN". Si la valeur est "Déconnecté", le champ UDM est défini sur "USER_LOGOUT". |
Common.Alerts | security_result.description | La valeur est mappée à partir du champ "Common.Alerts". |
Common.Enforcement-Profiles | security_result.detection_fields.value | La valeur est mappée à partir du champ "Common.Enforcement-Profiles". |
Common.Login-Status | security_result.detection_fields.value | La valeur est mappée à partir du champ "Common.Login-Status". |
Common.NAS-IP-Address | target.ip | La valeur est mappée à partir du champ "Common.NAS-IP-Address". |
Common.Roles | principal.user.group_identifiers | La valeur est mappée à partir du champ "Common.Roles". |
Common.Service | security_result.detection_fields.value | La valeur est mappée à partir du champ "Common.Service" |
Common.Username | principal.user.userid | La valeur est mappée à partir du champ "Common.Username" |
Composant | intermediary.application | La valeur est mappée à partir du champ "Composant" |
Description | metadata.description | La valeur est mappée à partir du champ "Description" après avoir remplacé les caractères de nouvelle ligne par le symbole de pipe. Si le champ "Description" contient "User", "Address" et "Role", il est analysé en tant que paires clé-valeur et mappé sur les champs UDM correspondants. Si le champ "Description" contient "Connexion impossible avec", le nom d'hôte cible est extrait et mappé sur "target.hostname". |
EntityName | principal.hostname | La valeur est mappée à partir du champ "EntityName" |
InterIP | target.ip | La valeur est mappée à partir du champ "InterIP" |
Niveau | security_result.severity | Si la valeur est "ERROR" ou "FATAL", le champ UDM est défini sur "HIGH". Si la valeur est "WARN", le champ UDM est défini sur "MEDIUM". Si la valeur est "INFO" ou "DEBUG", le champ UDM est défini sur "LOW". |
LogNumber | metadata.product_log_id | La valeur est mappée à partir du champ "LogNumber" |
RADIUS.Acct-Framed-IP-Address | principal.ip | La valeur est mappée à partir du champ "RADIUS.Acct-Framed-IP-Address". |
Horodatage | metadata.event_timestamp | La valeur est mappée à partir du champ "Code temporel" après avoir été convertie au format UTC et analysée en tant que code temporel. |
Utilisateur | principal.user.userid | La valeur est mappée à partir du champ "Utilisateur" |
agent_ip | principal.ip, principal.asset.ip | La valeur est mappée à partir du champ "agent_ip". |
communauté | additional.fields.value.string_value | La valeur est mappée à partir du champ "communauté". |
descr | metadata.description | La valeur est mappée à partir du champ "descr". |
entreprise | additional.fields.value.string_value | La valeur est mappée à partir du champ "entreprise". |
eventDescription | metadata.description | La valeur est mappée à partir du champ "eventDescription" après suppression des guillemets. |
generic_num | additional.fields.value.string_value | La valeur est mappée à partir du champ "generic_num" |
prin_mac | principal.mac | La valeur est mappée à partir du champ "prin_mac" après sa conversion au format d'adresse MAC séparé par deux-points |
prin_port | principal.port | La valeur est mappée à partir du champ "prin_port" et convertie en entier |
specificTrap_name | additional.fields.value.string_value | La valeur est mappée à partir du champ "specificTrap_name". |
specificTrap_num | additional.fields.value.string_value | La valeur est mappée à partir du champ "specificTrap_num". |
uptime | additional.fields.value.string_value | La valeur est mappée à partir du champ "durée de disponibilité". |
version | metadata.product_version | La valeur est mappée à partir du champ "version". |
extensions.auth.type | La valeur est définie sur "SSO". | |
metadata.event_type | La valeur est déterminée en fonction de divers champs de journal et de la logique de l'analyseur. Pour en savoir plus, consultez le code de l'analyseur. | |
metadata.log_type | La valeur est définie sur "CLEARPASS". | |
metadata.product_name | La valeur est définie sur "ClearPass". | |
metadata.vendor_name | La valeur est définie sur "ArubaNetworks". |
Modifications
2024-09-12
Amélioration :
- Possibilité d'analyser le nouveau format des journaux SYSLOG et JSON.
2024-08-08
Amélioration :
- Mappage de
Acct-NAS-IP-Address
surprincipal.ip
. - Mappage de
Acct-Username
surprincipal.user.userid
. - Mappage de
Acct-Calling-Station-Id
surprincipal.user.product_object_id
.
2024-05-05
Amélioration :
- Gestion de l'analyse des journaux au format SYSLOG.
- Mappage de
prin_port
surprincipal.port
. - Mappage de
agent_ip
surprincipal.ip
etprincipal.asset.ip
. - Mappage de
descr
eteventDescription
surmetadata.description
. - Mappage de
version
surmetadata.product_version
. specificTrap_name
,uptime
,enterprise
,generic_num
,specificTrap_num
etcommunity
ont été mappés suradditional.fields
.
2024-01-11
Amélioration :
- Mappage de
Common.NAS-IP-Address
surtarget.ip
. Common.Service
,Common.Enforcement-Profiles
etCommon.Login-Status
ont été mappés sursecurity_result.detection_fields
.
2022-08-18
Amélioration :
- Gérer les journaux abandonnés au format CEF et les journaux non analysés pour améliorer le taux d'analyse.
- Mappage de
metadata.event_type
surSTATUS_UPDATE
lorsqueprincipal.hostname/principal.ip
n'est pas nul, sinon mappage surGENERIC_EVENT
.
2022-07-08
Amélioration :
- Mise à jour de la mise en correspondance de
_target_user_groupid
detarget.user.groupid
àtarget.user.group_identifiers
. - Mappage modifié pour
Common.Roles
deprincipal.user.groupid
àprincipal.user.group_identifiers
.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.