Collecter les journaux NetScaler

Compatible avec:

Ce document explique comment collecter les journaux NetScaler à l'aide d'un transfert Google Security Operations.

Pour en savoir plus, consultez la section Présentation de l'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 de ce document s'appliquent à l'analyseur avec le libellé d'ingestion CITRIX_NETSCALER.

Configurer NetScaler VPX

Pour configurer NetScaler VPX afin qu'il envoie des journaux au transpondeur Google Security Operations, procédez comme suit:

Vérifier la configuration du nom d'hôte

  1. Connectez-vous à l'interface Web NetScaler à l'aide d'identifiants administrateur.
  2. Sélectionnez Configuration > Paramètres.
  3. Cliquez sur Nom d'hôte, adresse IP DNS et fuseau horaire.
  4. Si le champ Host name (Nom d'hôte) est vide, saisissez le nom d'hôte. N'incluez pas d'espaces. Si ce champ est déjà configuré, aucune action n'est requise de votre part.
  5. Dans le champ DNS IP address (Adresse IP du DNS), vérifiez si l'adresse IP du DNS local est spécifiée.
  6. Dans le champ Fuseau horaire, saisissez votre fuseau horaire.

Créer un serveur d'audit

  1. Dans l'interface Web NetScaler, sélectionnez Configuration > Système > Audit > Syslog > Serveurs.
  2. Spécifiez les informations syslog dans les champs suivants :
    • Nom
    • Type de serveur
    • Adresse IP
    • Port
  3. Sélectionnez Niveaux de journalisation comme Personnalisé.
  4. Cochez toutes les cases, sauf le niveau DEBUG dans la configuration.
  5. Dans la liste Log facility (Service de journalisation), sélectionnez LOCAL0.
  6. Dans la liste Format de date, sélectionnez MMDDAAAA.
  7. Sélectionnez Fuseau horaire comme GMT.
  8. Décochez les cases suivantes :
    • Journalisation TCP
    • Journalisation des LCA
    • Messages de journal configurables par l'utilisateur
    • Journalisation AppFlow
    • Journalisation NAT à grande échelle
    • Journalisation des messages de l'ALG
    • Journalisation des abonnés
    • DNS
    • Interception SSL
    • Filtrage des URL
    • Journalisation de l'inspection du contenu
  9. Cliquez sur OK pour créer le serveur d'audit.

Lier la stratégie d'audit créée au serveur

  1. Dans l'interface Web NetScaler, sélectionnez Configuration > Système > Audit > Syslog.
  2. Cliquez sur l'onglet Règles.
  3. Dans le champ Nom, saisissez un nom pour la stratégie.
  4. Dans la liste Serveur, sélectionnez la stratégie de la section précédente.
  5. Cliquez sur Créer.
  6. Effectuez un clic droit sur la stratégie d'audit créée, puis sélectionnez Action > Liaisons globales.
  7. Cliquez sur Ajouter une liaison.
  8. Dans la fenêtre Liaison de règles, procédez comme suit :
    1. Dans le champ Select policy (Sélectionner une règle), saisissez la règle d'audit créée.
    2. Dans le volet Binding details (Détails de la liaison), dans le champ Priority (Priorité), saisissez 120, car il s'agit de la priorité par défaut.
    3. Cliquez sur Bind (Lier).

Configurer NetScaler SDX

Pour configurer le NetScaler SDX afin qu'il envoie des journaux au forwarder Google Security Operations, procédez comme suit:

Vérifier la configuration du nom d'hôte pour NetScaler SDX

  1. Connectez-vous à l'interface Web NetScaler à l'aide d'identifiants administrateur.
  2. Dans l'interface Web NetScaler, sélectionnez System > System settings (Système > Paramètres système).
  3. Si le champ Host name (Nom d'hôte) est vide, saisissez le nom d'hôte. N'incluez pas d'espaces. Si ce champ est déjà configuré, aucune action n'est requise de votre part.
  4. Dans le champ Fuseau horaire, sélectionnez UTC ou GMT.

Configurer le serveur syslog

  1. Dans l'interface Web NetScaler, sélectionnez System > Notifications > Syslog servers (Système > Notifications > Serveurs Syslog).
  2. Dans le volet Détails, cliquez sur Ajouter.
  3. Dans la fenêtre Create syslog server (Créer un serveur syslog), spécifiez les valeurs des paramètres de serveur syslog suivants :
    1. Dans le champ Nom, saisissez un nom.
    2. Dans le champ Adresse IP, saisissez l'adresse IP du forwarder Google Security Operations.
    3. Dans le champ Port, saisissez le numéro de port.
    4. Sélectionnez Niveaux de journalisation comme Personnalisé.
    5. Sélectionnez tous les niveaux de journalisation, à l'exception de Debug (Débogage).
  4. Cliquez sur Créer.

Configurer les paramètres syslog

  1. Dans l'interface Web NetScaler, sélectionnez System > Notifications > Syslog servers (Système > Notifications > Serveurs Syslog).
  2. Dans le volet Détails, cliquez sur Paramètres Syslog.
  3. Sur la page Configurer les paramètres syslog, sélectionnez Date format (Format de date) sur MMDDYYYY et Time zone (Fuseau horaire) sur GMT.
  4. Cliquez sur OK.

Configurer le transmetteur Google Security Operations pour ingérer les journaux NetScaler

  1. Sélectionnez Paramètres du SIEM > Transferts.
  2. Cliquez sur Ajouter un forwarder.
  3. Dans le champ Nom du forwarder, saisissez un nom unique pour le forwarder.
  4. Cliquez sur Envoyer, puis sur Confirmer. 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 unique pour le collecteur.
  6. Sélectionnez Citrix NetScaler comme Type de journal.
  7. Dans le champ Type de collecteur, sélectionnez Syslog.
  8. Configurez les paramètres d'entrée obligatoires suivants :
    • Protocole: spécifiez le protocole de connexion utilisé par le collecteur pour écouter les données syslog.
    • Address (Adresse) : spécifiez l'adresse IP ou le nom d'hôte cible où se trouve le collecteur et où il écoute les 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 Gérer les configurations de transfert via l'interface utilisateur de Google Security Operations.

Si vous rencontrez des problèmes lors de la création de transmetteurs, contactez l'assistance Google Security Operations.

Référence du mappage de champs

Cet analyseur traite les journaux SYSLOG Citrix Netscaler au format clé-valeur, extrait les données au format JSON du champ message et enrichit l'UDM avec des informations provenant d'autres champs tels que host.hostname et user_agent.original après les avoir nettoyées. Il gère les cas où le message principal est vide en revenant au message de journal d'origine.

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
ID de transaction AAA security_result.detection_fields[].value Valeur extraite du champ "AAA trans id".
Accès security_result.action_details Si "Accès" est défini sur "Autorisé", définissez security_result.action sur ALLOW. Si "Accès" est défini sur "Refusé", définissez security_result.action sur "BLOCK" (BLOQUER).
applicationName principal.application Valeur extraite du champ "applicationName".
Browser_type network.http.user_agent Valeur extraite du champ "Browser_type".
ClientIP principal.ip, principal.asset.ip Valeur extraite du champ "ClientIP".
ClientPort principal.port Valeur extraite du champ "ClientPort".
client_cookie additional.fields[].value.string_value Valeur extraite du champ "client_cookie".
Commande target.process.command_line Valeur extraite du champ "Commande".
connectionId security_result.detection_fields[].value Valeur extraite du champ "connectionId".
Destination target.ip, target.asset.ip Valeur extraite du champ "Destination".
Destination target.ip, target.asset.ip Valeur extraite du champ "Destination".
device_serial_number target.asset_id target.asset_id est défini sur "device_serial_number:".
Durée network.session_duration.seconds La durée est convertie en secondes et mappée.
Heure de fin security_result.detection_fields[].value Valeur extraite du champ "Heure de fin".
Failure_reason metadata.description Valeur extraite du champ "Failure_reason".
flags additional.fields[].value.string_value Valeur extraite du champ "flags".
Groupe(s) target.group.group_display_name Valeur extraite du champ "Groupe(s)".
Motif metadata.description Valeur extraite du champ "Motif".
Remote_ip target.ip, target.asset.ip Valeur extraite du champ "Remote_ip".
ServerIP target.ip, target.asset.ip Valeur extraite du champ "ServerIP".
ServerPort target.port Valeur extraite du champ "ServerPort".
session_guid metadata.product_log_id Valeur extraite du champ "session_guid".
SessionId network.session_id Valeur extraite du champ "SessionId".
Source principal.ip, principal.asset.ip Valeur extraite du champ "Source".
Heure de début security_result.detection_fields[].value Valeur extraite du champ "Heure de début".
startTime security_result.detection_fields[].value Valeur extraite du champ "startTime".
État security_result.description Valeur extraite du champ "État".
Total_bytes_recv network.received_bytes Valeur extraite du champ "Total_bytes_recv".
Total_bytes_send network.sent_bytes Valeur extraite du champ "Total_bytes_send".
Total_bytes_wire_recv security_result.detection_fields[].value Valeur extraite du champ "Total_bytes_wire_recv".
Total_bytes_wire_send security_result.detection_fields[].value Valeur extraite du champ "Total_bytes_wire_send".
Utilisateur principal.user.userid Valeur extraite du champ "Utilisateur".
VserverServiceIP target.ip, target.asset.ip Valeur extraite du champ "VserverServiceIP".
VserverServicePort target.port Valeur extraite du champ "VserverServicePort". Code codé en dur sur "CITRIX". Code codé en dur sur "NETSCALER". Code dur "CITRIX_NETSCALER". Déterminé par l'analyseur en fonction de "product_event_type". Exemples: NETWORK_CONNECTION, USER_LOGIN, USER_LOGOUT, USER_STATS, STATUS_UPDATE, USER_UNCATEGORIZED, GENERIC_EVENT. Valeur extraite du préfixe du journal (par exemple, CONN_DELINK, CONN_TERMINATE, OTHERCONN_DELINK, etc.). Brève description de l'événement, parfois dérivée d'autres champs tels que "Reason" (Motif) ou "Failure_reason" (Motif d'échec). Calculé à partir des champs de date et d'heure de l'entrée de journal. L'analyseur gère différents formats et fuseaux horaires. Extrait du champ "nom d'utilisateur:nom de domaine", en prenant la partie située après le deux-points. Codé en dur sur TCP pour les événements avec "TCP" dans metadata.product_event_type. Définissez la valeur sur ALLOW pour les connexions et les commandes réussies, et sur BLOCK pour les connexions et l'accès aux ressources bloqués. Dérivé de champs tels que "État", "Failure_reason" et "Accès". Défini sur USERNAME_PASSWORD lorsque le nom d'utilisateur et le mot de passe sont utilisés pour l'authentification (inféré à partir de certains messages de journal). Définissez la valeur sur "VPN" pour les événements de connexion/déconnexion liés au VPN. Analysé à partir du champ network.http.user_agent à l'aide d'une bibliothèque d'analyse de l'user-agent.

Modifications

2024-05-21

  • Modification d'un format Grok pour analyser les journaux abandonnés.

2024-05-20

  • Ajout d'un nouveau format Grok pour analyser les journaux non analysés.

2024-05-08

  • Mise à jour du mappage des informations de durée de "security_results" vers "network.session_duration" .

2024-04-29

  • Ajout d'une vérification conditionnelle pour "Browser_type" et mappage sur "network.http.parsed_user_agent".
  • Ajout d'une vérification conditionnelle pour "userId" et "user_email".
  • Mappage de "Navigateur" sur "network.http.parsed_user_agent".

2024-02-23

  • Mise à jour du format Grok pour analyser le nom d'hôte comme prévu dans le champ UDM.

2024-01-25

  • Ajout de modèles Grok pour analyser les journaux où "message_type" est "Message", "NONHTTP_RESOURCEACCESS_DENIED", "UDPFLOWSTAT" et "EXTRACTED_GROUPS".
  • Ajout de la possibilité d'analyser les journaux où "feature" est "GUI" et "EVENT".
  • Mappage de "principal_port" sur "principal.port".
  • Mappage de "ClientIP" sur "principal.asset.ip".
  • Mappage de "principal_ip" sur "principal.ip" et "principal.asset.ip".
  • Mappage de "target_ip" sur "target.ip" et "target.asset.ip".
  • Mappage de "port_cible" sur "port.cible".
  • Mappage de "description" sur "metadata.description".
  • Mappage de "type", "aaa_trans_id", "pcb_trans_id", "pcb_state", "pcb_label", "trans_id", "authPolicyLen", "login_attempts", "PromptLen", "partitionLen", "cmdPolicyLen" et "ssh_pubkey_len" sur "security_result.detection_fields".
  • Mappage de "principal_hostname" sur "principal.hostname" et "principal.asset.hostname".
  • "hostname" a été mappé sur "intermediary.asset.hostname".
  • "hostname" a été mappé sur "observer.asset.hostname".
  • Mappage de "cip", "ServerIP", "VIP", "VserverServiceIP" et "Remote_ip" sur "target.asset.ip".
  • Lorsque "message_type" est défini sur "Message", "User" est mappé sur "principal.user.userid".
  • Lorsque "principal_ip" et "target_ip" sont présents, définissez "metadata.event_type" sur "NETWORK_CONNECTION".
  • Lorsque "Client_ip" et "target_ip" sont présents, définissez "metadata.event_type" sur "NETWORK_CONNECTION".
  • Lorsque "message_type" est "NONHTTP_RESOURCEACCESS_DENIED" et "UDPFLOWSTAT", définissez "metadata.event_type" sur "USER_STATS".
  • Lorsque "message_type" est défini sur "Message" et que "User" est présent, définissez "metadata.event_type" sur "USER_UNCATEGORIZED".
  • Lorsque "principal_ip" est présent, définissez "metadata.event_type" sur "STATUS_UPDATE".

2023-11-26

  • Enhancement-
  • Ajout de modèles Grok pour analyser les journaux où "message_type" est "Message".

2023-07-21

  • Amélioration : mise à jour de l'analyseur pour analyser correctement les journaux contenant la fonctionnalité "CLI".

2022-09-26

  • Amélioration : migration des analyseurs personnalisés vers l'analyseur par défaut.

2022-06-09

  • Amélioration : ajout des mises en correspondance demandées :
  • Correspondance de "startTime", "endTime" et "Duration" avec "security_result.detection_fields".
  • Mise à jour de l'analyseur pour analyser les journaux contenant message_type : "CHANNEL_UPDATE", "NETWORK_UPDATE", "AAATM Message".

2022-05-09

  • Correction de bug : mise à jour de l'analyseur pour analyser correctement les journaux contenant le message_type "TCPCONNSTAT".
  • Modification du grok pour inclure le nom de domaine complet dans "principal.administrative_domain".
  • Analyse des journaux qui échouent lors des tests de l'API Validation.

2022-04-27

  • Amélioration : ajout des mises en correspondance demandées
  • Champ "intermediary.hostname" mappé
  • Journaux d'échec de l'API analysée