Collecter les journaux SecureAuth Identity Platform
Ce document explique comment ingérer des journaux SecureAuth Identity Platform dans Google Security Operations à l'aide de Bindplane. L'analyseur extrait les champs de différents formats de journaux (SYSLOG, XML, paires clé-valeur) à l'aide des filtres grok et xml. Il mappe ensuite les champs extraits aux attributs UDM (Unified Data Model) correspondants, en enrichissant les données avec le contexte des événements de sécurité et en standardisant la sortie pour une analyse plus approfondie.
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 le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous de disposer d'un accès privilégié à SecureAuth.
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 l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
- Copiez et enregistrez le numéro client de la section Informations sur l'organisation.
Installer l'agent Bindplane
Installation de fenêtres
- Ouvrez l'invite de commandes 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 les 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
Ressources d'installation supplémentaires
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à 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 (par exemple,
nano
,vi
ou le Bloc-notes).
- 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: SECUREAUTH_SSO 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 selon les besoins de votre infrastructure.
Remplacez
<customer_id>
par le numéro client réel.Mettez à jour
/path/to/ingestion-authentication-file.json
en indiquant le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'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 SecureAuth Identity Platform
- Connectez-vous à la console SecureAuth Identity.
- Sélectionnez Journaux.
- Fournissez les informations de configuration suivantes dans la section Options de journal :
- ID d'instance de journal : saisissez l'ID d'instance de journal, le nom de l'application ou le nom du domaine (par exemple,
SecureAuth1
). - Journaux d'audit : cochez la case Syslog.
- Journaux d'erreurs : cochez la case Syslog.
- Serveur Syslog : saisissez l'adresse IP de votre agent Bindplane.
- Port Syslog : saisissez le numéro de port de l'agent Bindplane, par exemple
514
. - Spécification RFC Syslog : sélectionnez RFC 5424.
- ID d'instance de journal : saisissez l'ID d'instance de journal, le nom de l'application ou le nom du domaine (par exemple,
- Cliquez sur Enregistrer.
Table de mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
action_msg | read_only_udm.target.process.command_line | Valeur du champ action_msg |
Appareil | read_only_udm.principal.domain.name | Valeur du champ Appliance |
Appareil | read_only_udm.target.administrative_domain | Valeur du champ Appliance |
BrowserSession | read_only_udm.network.session_id | Valeur du champ BrowserSession |
cat | read_only_udm.metadata.product_event_type | Valeur du champ cat |
Catégorie | read_only_udm.metadata.product_event_type | Valeur du champ Category |
cn1 | security_result.severity | Mappé en fonction de la valeur de cn1 lorsque cn1Label est défini sur "Priority" (Priorité) : 1 = ÉLEVÉE, 2 = MOYENNE, 3 ou 4 = FAIBLE |
Entreprise | read_only_udm.additional.fields.value.string_value | Valeur du champ Company |
cs1 | read_only_udm.network.session_id | Valeur du champ cs1 lorsque cs1Label est défini sur "BrowserSession" |
cs3 | read_only_udm.additional.fields.value.string_value | Valeur du champ cs3 lorsque cs3Label est "CompanyName" |
dst | read_only_udm.target.ip | Valeur du champ dst |
domaine | read_only_udm.principal.domain.name | Valeur du champ domain |
dvc | read_only_udm.intermediary.ip | Valeur du champ dvc |
EventID | read_only_udm.metadata.product_log_id | Valeur du champ EventID |
HostName | read_only_udm.principal.hostname | Valeur du champ HostName lorsque grok ne parvient pas à trouver une correspondance pour l'adresse IP |
HostName | read_only_udm.principal.ip | Valeur du champ HostName lorsque grok correspond à une adresse IP |
ip | read_only_udm.principal.ip | Valeur du champ ip |
Message | read_only_udm.metadata.description | Valeur du champ Message |
Message | security_result.description | Valeur du champ Message |
nat_ip | read_only_udm.principal.nat_ip | Valeur du champ nat_ip |
Priorité | security_result.severity | Mappé en fonction de la valeur de Priority : 1 = ÉLEVÉ, 2 = MOYEN, 3 ou 4 = FAIBLE |
SAMLConsumerURL | read_only_udm.target.url | Valeur du champ SAMLConsumerURL |
sec_msg | security_result.description | Valeur du champ sec_msg |
SecureAuthIdPAppliance | read_only_udm.target.administrative_domain | Valeur du champ SecureAuthIdPAppliance |
SecureAuthIdPApplianceMachineName | read_only_udm.target.hostname | Valeur du champ SecureAuthIdPApplianceMachineName |
SecureAuthIdPDestinationSiteUrl | read_only_udm.target.url | Valeur du champ SecureAuthIdPDestinationSiteUrl |
SecureAuthIdPProductType | read_only_udm.additional.fields.value.string_value | Valeur du champ SecureAuthIdPProductType |
session | read_only_udm.network.session_id | Valeur du champ session |
spid | read_only_udm.target.process.pid | Valeur du champ spid |
src | read_only_udm.principal.ip | Valeur du champ src |
suser | read_only_udm.target.user.userid | Valeur du champ suser |
UserAgent | read_only_udm.network.http.user_agent | Valeur du champ UserAgent |
UserHostAddress | read_only_udm.principal.nat_ip | Valeur du champ UserHostAddress |
UserHostAddress | read_only_udm.target.ip | Valeur du champ UserHostAddress |
UserID | read_only_udm.principal.user.userid | Valeur du champ UserID |
Version | read_only_udm.metadata.product_version | Valeur du champ Version |
read_only_udm.additional.fields.key | Valeur codée en dur : "CompanyName" | |
read_only_udm.additional.fields.key | Valeur codée en dur : "Company" | |
read_only_udm.additional.fields.key | Valeur codée en dur : "SecureAuthIdPProductType" | |
read_only_udm.extensions.auth.type | Valeur codée en dur : "SSO" | |
read_only_udm.metadata.event_type | 'USER_LOGIN' si SecureAuthIdPAuthGuiMode == 0 et auth_result == Success , 'USER_CHANGE_PERMISSIONS' si SecureAuthIdPAuthGuiMode == 0 et auth_result ==WS-Trust success. , 'USER_LOGOUT' si SecureAuthIdPAuthGuiMode == 0 et auth_result == Session Aborted , 'NETWORK_CONNECTION' si UserHostAddress != and `HostName` != , 'STATUS_UPDATE' si ip != or `HostName` != , 'USER_UNCATEGORIZED' si UserHostAddress != and `HostName` == et UserID != ``, sinon 'GENERIC_EVENT' |
|
read_only_udm.metadata.log_type | Valeur codée en dur : "SECUREAUTH_SSO" | |
read_only_udm.metadata.product_name | Valeur codée en dur : "SECUREAUTH_SSO" | |
read_only_udm.metadata.vendor_name | Valeur codée en dur : "SECUREAUTH_SSO" | |
read_only_udm.target.user.email_addresses | Valeur du champ user_email lorsque not_email est défini sur "false" |
|
security_result.severity | 'HIGH' si cn1Label == Priority et cn1 == 1 , 'MEDIUM' si cn1Label == Priority et cn1 == 2 , 'LOW' si cn1Label == Priority et cn1 dans [3 , 4 ], 'HIGH' si Priority == 1 , 'MEDIUM' si Priority == 2 , 'LOW' si Priority dans [3 , 4 ] |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.