Collecter les journaux Citrix StoreFront
Version de l'analyseur : 1.0
Ce document explique comment ingérer des journaux Citrix StoreFront dans Google Security Operations à l'aide de Bindplane.
Citrix StoreFront est une application Web qui fournit un magasin d'applications d'entreprise pour les applications et bureaux virtuels Citrix. Il authentifie les utilisateurs sur les sites Citrix Virtual Apps and Desktops et regroupe les ressources disponibles sur un seul portail. StoreFront écrit les événements d'authentification, de lancement de session et de service dans le journal des événements Windows sous des sources d'événements précédées du préfixe "Citrix".
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Windows Server 2016 ou version ultérieure avec
systemd - Connectivité réseau entre l'agent BindPlane et Internet
- Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
- Accès administrateur au serveur Windows hébergeant Citrix StoreFront
- Citrix StoreFront 2308 ou version ultérieure installé et configuré
Obtenir les identifiants Google SecOps pour l'agent Bindplane
Pour authentifier l'agent Bindplane auprès de Google SecOps, choisissez l'une des méthodes suivantes :
- Nouveaux déploiements : utilisez l'API Chronicle (option 1).
- Anciens déploiements : continuez à utiliser le fichier d'authentification d'ingestion (option 2) jusqu'à l'arrêt de l'API Ingestion le 20 juillet 2027.
Option 1 : Créer un compte de service pour l'API Chronicle (recommandé)
- Connectez-vous à la consoleGoogle Cloud et sélectionnez le projet Google Cloud associé à votre instance Google SecOps.
- Accédez à IAM et administration > Comptes de service.
- Cliquez sur Créer un compte de service.
- Fournissez les informations de configuration suivantes :
- Nom du compte de service : saisissez un nom pour le compte (par exemple,
bindplane-ingest). - Description du compte de service : saisissez une description (par exemple,
Bindplane agent log ingestion).
- Nom du compte de service : saisissez un nom pour le compte (par exemple,
- Cliquez sur Créer et continuer.
- Dans la section Autoriser ce compte de service à accéder au projet, cliquez sur Sélectionner un rôle, puis sélectionnez Éditeur Chronicle.
- Cliquez sur Continue (Continuer), puis sur Done (OK).
- Cliquez sur le compte de service que vous avez créé, puis accédez à l'onglet Clés.
- Cliquez sur Ajouter une clé > Créer une clé.
- Sélectionnez JSON, puis cliquez sur Créer. Le fichier de clé est téléchargé sur votre ordinateur.
- Enregistrez le fichier de clé sous le nom
ingestion-auth.jsondans le répertoire du collecteur Bindplane (/opt/observiq-otel-collector/ingestion-auth.jsonsous Linux ouC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonsous Windows), ou mettez à jourcreds_file_pathdansconfig.yamlpour qu'il corresponde au chemin d'accès où vous l'enregistrez. - Accédez à IAM et administration > Paramètres, puis copiez le numéro du projet. Vous en aurez besoin pour la configuration de l'exportateur.
Option 2 : Télécharger le fichier d'authentification d'ingestion (ancien)
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres 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 l'agent 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 dans la section Détails de l'organisation.
Installer l'agent BindPlane
Installez l'agent BindPlane sur votre système d'exploitation Windows en suivant les instructions ci-dessous.
Installation de Windows
- 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" /quietAttendez que l'installation se termine.
Vérifiez l'installation en exécutant la commande suivante :
sc query observiq-otel-collector
Le service doit s'afficher comme étant EN COURS D'EXÉCUTION.
Autres ressources d'installation
Pour obtenir des options d'installation et de dépannage supplémentaires, consultez le guide d'installation de l'agent Bindplane.
Configurer l'agent Bindplane pour ingérer les journaux d'événements Windows et les envoyer à Google SecOps
Localiser le fichier de configuration
- Ouvrez l'invite de commande en tant qu'administrateur.
Accédez au répertoire d'installation de l'agent BindPlane et ouvrez le fichier de configuration :
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifiez le fichier de configuration
Remplacez l'intégralité du contenu de
config.yamlpar la configuration suivante :receivers: windowseventlog/storefront_application: channel: Application raw: true start_at: end operators: - type: filter expr: 'record["source_name"] matches "^Citrix"' processors: batch: exporters: chronicle/storefront: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds: '{ "type": "service_account", "project_id": "YOUR_PROJECT_ID", "private_key_id": "YOUR_PRIVATE_KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "YOUR_CLIENT_EMAIL", "client_id": "YOUR_CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "YOUR_CERT_URL" }' customer_id: 'YOUR_CUSTOMER_ID' endpoint: chronicle.googleapis.com log_type: 'CITRIX_STOREFRONT' override_log_type: false raw_log_field: body service: pipelines: logs/storefront: receivers: - windowseventlog/storefront_application processors: - batch exporters: - chronicle/storefront
Paramètres de configuration
Remplacez les espaces réservés suivants par vos valeurs réelles :
Configuration de l'exportateur :
YOUR_PROJECT_ID: ID du projet à partir de votre fichier d'authentification pour l'ingestionYOUR_PRIVATE_KEY_ID: ID de clé privée de votre fichier d'authentification pour l'ingestionYOUR_PRIVATE_KEY: clé privée de votre fichier d'authentification pour l'ingestion (assurez-vous d'échapper correctement les sauts de ligne)YOUR_CLIENT_EMAIL: adresse e-mail du client figurant dans votre fichier d'authentification pour l'ingestionYOUR_CLIENT_ID: ID client de votre fichier d'authentification pour l'ingestionYOUR_CERT_URL: URL du certificat client x509 de votre fichier d'authentification pour l'ingestionYOUR_CUSTOMER_ID: ID client Google SecOps
Remplacez
<LOCATION>par la région de votre instance Google SecOps (par exemple,us,europeouasia-southeast1). L'exportateur ajoute cette valeur en préfixe àchronicle.googleapis.com. Pour obtenir la liste complète, consultez Points de terminaison régionaux.Remplacez
<PROJECT_NUMBER>par le numéro de projet indiqué dans IAM et administration > Paramètres.
Exemple :
exporters: chronicle/storefront: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: chronicle.googleapis.com log_type: 'CITRIX_STOREFRONT' override_log_type: false raw_log_field: body
Ancien exportateur d'API d'ingestion
Si vous utilisez le fichier d'authentification d'ingestion de l'option 2, remplacez le bloc
exporterspar ce qui suit. Définissezcreds_file_pathsur le chemin d'accès au fichier d'authentification de l'ingestion. Si votre instance se trouve en dehors des États-Unis, remplacezmalachiteingestion-pa.googleapis.compar votre point de terminaison régional (par exemple,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/storefront: compression: gzip creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: 'CITRIX_STOREFRONT' override_log_type: false raw_log_field: body
Enregistrez le fichier de configuration.
- Après avoir modifié le fichier, enregistrez-le :
- Cliquez sur Fichier > Enregistrer.
- Fermer le bloc-notes
Redémarrez l'agent Bindplane pour appliquer les modifications.
Pour redémarrer l'agent BindPlane sous Windows :
Choisissez l'une des options suivantes :
- Invite de commande ou PowerShell en tant qu'administrateur :
net stop observiq-otel-collector && net start observiq-otel-collector- Console Services :
- Appuyez sur
Win+R, saisissezservices.msc, puis appuyez sur Entrée. - Localisez observIQ OpenTelemetry Collector.
- Effectuez un clic droit, puis sélectionnez Redémarrer.
- Appuyez sur
Vérifiez que le service est en cours d'exécution :
sc query observiq-otel-collectorRecherchez les erreurs dans les journaux :
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Configurer la journalisation des événements Citrix StoreFront
Par défaut, StoreFront 2311 et les versions ultérieures enregistrent les messages de journal de niveau "Erreur", "Avertissement" et "Info". Pour les versions antérieures (2308 et versions antérieures), seuls les messages de journal de niveau "Erreur" sont enregistrés par défaut.
Activer la journalisation détaillée (facultatif)
Pour augmenter les détails de journalisation à des fins de dépannage :
- Connectez-vous au serveur StoreFront avec des droits d'administrateur local.
- Ouvrez PowerShell en tant qu'administrateur.
Exécutez la commande suivante pour activer la journalisation détaillée pour tous les services :
Set-STFDiagnostics -All -TraceLevel "Verbose" -confirm:$FalseAprès le dépannage, rétablissez le niveau de journalisation par défaut :
Set-STFDiagnostics -All -TraceLevel "Info" -confirm:$False
Vérifier les événements du journal des événements Windows
- Appuyez sur
Win+R, saisissezeventvwr.msc, puis appuyez sur Entrée pour ouvrir l'Observateur d'événements. - Accédez à Journaux des applications et des services > Citrix Delivery Services.
- Vérifiez que les événements sont bien consignés pour l'authentification, les magasins et les sites Receiver pour le Web.
- Accédez à Journaux Windows>Application.
- Filtrez les événements par nom de source commençant par Citrix pour vérifier que des événements au niveau de l'application sont générés.
Configurer la limitation du journal des événements (facultatif)
StoreFront prend en charge la limitation du nombre d'événements du journal des événements pour limiter le nombre d'événements en double. Pour configurer la limitation :
- Accédez aux répertoires de configuration du service StoreFront sur le serveur :
- Service d'authentification :
C:\inetpub\wwwroot\Citrix\Authentication - Magasin :
C:\inetpub\wwwroot\Citrix\<storename> - Site Web du récepteur :
C:\inetpub\wwwroot\Citrix\<storename>\Web
- Service d'authentification :
- Ouvrez le fichier
web.configdans chaque répertoire à l'aide d'un éditeur de texte. Localisez l'élément
loggeret configurez les paramètres de limitation :<logger duplicateInterval="00:01:00" duplicateLimit="10">duplicateInterval: période (heures:minutes:secondes) pendant laquelle les entrées de journal en double sont surveilléesduplicateLimit: nombre d'entrées en double qui doivent être enregistrées dans l'intervalle pour déclencher la limitation du débit
Enregistrez les fichiers de configuration.
Pour en savoir plus, consultez la documentation sur les fichiers journaux Citrix StoreFront.
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
OpcodeValue_label |
additional.fields |
Fusionné |
Opcode_label |
additional.fields |
Fusionné |
ThreadID_label |
additional.fields |
Fusionné |
X-Citrix-Via_label |
additional.fields |
Fusionné |
XCitrixGateway_label |
additional.fields |
Fusionné |
keyword_label |
additional.fields |
Fusionné |
_vulns |
extensions.vulns.vulnerabilities |
Fusionné |
_intermediary |
intermediary |
Fusionné |
_intermediary_controller |
intermediary |
Fusionné |
_intermediary_hypervisor |
intermediary |
Fusionné |
_intermediary_storefront |
intermediary |
Fusionné |
description |
metadata.description |
Mappage direct |
EventTime |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
Machine.CreatedDate |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
Machine.LastDeregisteredDate |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
Machine.ModifiedDate |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
Machine.PoweredOnDate |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
Machine.RegistrationStateChangeDate |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
Session.EndDate |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
Session.StartDate |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
event_date |
metadata.event_timestamp |
Analysé en tant que RFC 3339 |
has_principal |
metadata.event_type |
Mapped: true → NETWORK_CONNECTION, true → STATUS_UPDATE |
EventID |
metadata.product_event_type |
Mappage direct |
RecordNumber |
metadata.product_log_id |
Mappage direct |
Machine.AgentVersion |
metadata.product_version |
Renommé/Mappé |
_network |
network |
Renommé/Mappé |
_principal |
principal |
Renommé/Mappé |
Channel_label |
security_result.about.resource.attribute.labels |
Fusionné |
severity |
security_result.severity |
Mappé : (?i)Info → INFORMATIONAL, (?i)Error → ERROR, (?i)Warning → MEDIUM |
SeverityValue |
security_result.severity_details |
Mappage direct |
Connection.ConnectedViaHostName |
src.hostname |
Mappage direct |
_target |
target |
Renommé/Mappé |
| N/A | extensions.auth.auth_details |
Constante : ACTIVE |
| N/A | extensions.auth.type |
Constante : MACHINE |
| N/A | metadata.event_type |
Constante : GENERIC_EVENT |
| N/A | metadata.product_name |
Constante : Monitor Service OData |
| N/A | metadata.vendor_name |
Constante : Citrix |
| N/A | security_result.severity |
Constante : INFORMATIONAL |
OpcodeValue","X-Citrix-Via","ThreadID","XCitrixGateway","Opcode","Keywords", "OpcodeValue |
additional.fields |
Mappé à partir du journal des modifications |
X-Citrix-Via-VIP |
_target.ip |
Mappé à partir du journal des modifications |
Remoteadresse |
taregt.ip |
Mappé à partir du journal des modifications |
invalid_X-Forwarded-For |
_principal.ip |
Mappé à partir du journal des modifications |
Task |
_target.resource.type |
Mappé à partir du journal des modifications |
Hostname |
_principal.hostname |
Mappé à partir du journal des modifications |
SourceModuleName |
target.resource.name |
Mappé à partir du journal des modifications |
SourceModuleType |
_principal.resource.attribute.labels |
Mappé à partir du journal des modifications |
Machine.AssociatedUserUPNs |
target.group.email_addresses |
Mappé à partir du journal des modifications |
Journal des modifications
Afficher le journal des modifications de cet analyseur
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.