Application Delivery Management

Intégration avec Microsoft Sentinel

Vous pouvez intégrer NetScaler Console à Microsoft Sentinel pour exporter les analyses suivantes de NetScaler Console vers Microsoft Sentinel :

  • Violations du WAF
  • Violations des robots
  • Informations sur les certificats SSL
  • Aperçu de la passerelle
  • Mesures et événements
  • Journaux d’audit de la console NetScaler

Microsoft Sentinel fournit une collecte de données centralisée qui rassemble des données provenant de diverses sources telles que des applications, des serveurs, etc. En tant qu’administrateur, vous pouvez afficher les données et prendre des décisions après que les informations ou les violations ont été signalées dans Microsoft Sentinel.

Pour une intégration réussie, assurez-vous que vous disposez d’un abonnement Azure actif, puis suivez la procédure sous chaque section :

Configurer l’espace de travail Log Analytics

Un espace de travail d’analyse des journaux est nécessaire pour stocker et analyser les données collectées.

  1. Connectez-vous à Azure.

  2. Cliquez sur Créer une ressource.

    Ressource

  3. Dans la barre de recherche, saisissez espace de travail d’analyse des journaux et cliquez sur Créer sous Espace de travail d’analyse des journaux.

    Espace de travail d'analyse des journaux

  4. Dans la page principale Log Analytics Workspace , cliquez sur Créer.

    Création d'espace de travail

  5. Dans l’espace de travail Créer une analyse de journaux:

    1. Sélectionnez l’abonnement actif et le groupe de ressources.

      Note:

      Vous pouvez également cliquer sur Créer un nouveau pour ajouter un groupe de ressources si vous en avez le privilège.

    2. Précisez un nom de votre choix.

    3. Sélectionnez votre région dans la liste.

    4. Cliquez sur Réviser + Créer.

      Création de l'espace de travail avant l'étape finale

    5. Un message de validation réussie s’affiche. Cliquez sur Créer pour déployer l’espace de travail.

      Création d'espace de travail

    6. Vous pouvez voir le message de déploiement en cours. Après avoir vu le message de déploiement terminé, cliquez sur Accéder à la ressource.

      Ressource de l'espace de travail

      L’espace de travail a été créé avec succès.

Créer une application Microsoft Entra

Vous devez créer une application Entra associée à votre abonnement Azure pour communiquer au nom de Log Analytics Workspace. Après avoir créé l’application, vous devez également accorder l’autorisation avec le rôle Microsoft Sentinel Contributor . L’application fournit également des détails tels que ID client, ID locataireet Secret client. Nous vous recommandons de prendre note de ces détails. Ces détails sont requis lorsque vous créez un abonnement dans NetScaler Console pour terminer le processus d’intégration.

  1. Dans votre portail Azure, saisissez le mot-clé dans la barre de recherche.

  2. Cliquez sur ID Microsoft Entra.

    Application Entrée

  3. Cliquez sur Ajouter et sélectionnez Enregistrement de l’application.

    Enregistrer une application

  4. Spécifiez un nom pour l’application, sélectionnez l’option par défaut sous Types de comptes pris en charge, puis cliquez sur Enregistrer.

    Inscription à l'application

  5. Après avoir enregistré l’application :

    1. Notez ID client et ID locataire.

      Identifiants client et locataire

    2. Créez un identifiant secret pour votre application. Cliquez sur Certificats & secrets et sous Secrets client, cliquez sur Nouveau secret client. Fournissez une description, une validité, puis cliquez sur Ajouter pour créer un ID secret pour votre application.

      ID secret du client

    3. Les détails de votre demande sont affichés. Assurez-vous de noter l’ID affiché sous Valeur immédiatement après la création du secret. Cette valeur est masquée si vous accédez à une autre option de l’interface graphique.

      ID de valeur

Envoyer des données à Microsoft Sentinel à l’aide du connecteur de données Microsoft Entra ID

Les journaux d’identification Microsoft Entra fournissent des informations complètes sur les utilisateurs, les applications et les réseaux accédant à votre locataire Entra. Pour plus d’informations, consultez Envoyer des données à Microsoft Sentinel à l’aide du connecteur de données Microsoft Entra ID.

Configurer le point de terminaison de collecte de données

Vous devez créer un point de terminaison de collecte de données pour obtenir l’URL du point de terminaison. Ceci est requis lorsque vous créez un abonnement dans NetScaler Console.

  1. Dans votre portail Azure, sous Services Azure, sélectionnez Points de terminaison de collecte de données ou saisissez le mot-clé dans la barre de recherche.

    Sélection DCR

  2. Cliquez sur Créer dans la page Points de terminaison de collecte de données .

    DCR crée

  3. Dans Créer un point de terminaison de collecte de données:

    1. Spécifiez un nom de point de terminaison de votre choix

    2. Sélectionnez l’abonnement , le groupe de ressourceset la région **.

    3. Cliquez sur Réviser + Créer.

    4. Après avoir vu le message de validation réussie, cliquez sur Créer.

Vous devez noter l’URL du point de terminaison. Dans la page principale Point de terminaison de collecte de données , sélectionnez le point de terminaison créé, cliquez sur Vue JSONet notez l’ID du point de terminaison.

ID DCR

Créer des tables pour exporter des données

Vous devez créer une table et fournir les informations JSON pour chaque information que vous souhaitez exporter de NetScaler Console vers Microsoft Sentinel. Vous pouvez vous référer aux détails suivants sur les exigences du tableau pour chaque aperçu :

Connaissances Nombre total de tables requises
Informations SSL 3
WAF 1
Bot 1
Informations sur la passerelle 5
Événements 1
Métrique 1
Journaux d’audit 1

Vous pouvez créer un maximum de 10 tables pour chaque règle de collecte de données (DCR). Au-delà de 10 tables, vous devez créer un autre DCR.

  1. Accédez à votre espace de travail dans le portail Azure et cliquez sur Tables sous Paramètres.

  2. Cliquez sur Créer et sélectionnez Nouveau journal personnalisé (basé sur DCR)

    Tableau

  3. Dans Créer un journal personnalisé:

    1. Spécifiez un nom de table. Le nom de la table doit être au format console_insightname. Par exemple : console_ns_sslvserver, console_ns_ssl_certkey. Vous pouvez vous référer à l’étape 4 pour obtenir les noms de table applicables à chaque aperçu.

    2. Fournissez une description pour ajouter plus d’informations sur le nom de la table. Ceci est facultatif.

    3. Créez une nouvelle règle de collecte de données et ajoutez-la.

    4. Sélectionnez le point de terminaison de collecte de données dans la liste.

      Paramètres du tableau

    5. Cliquez sur Suivant.

  4. Dans l’onglet Schéma et transformation , vous devez télécharger les exemples de journaux JSON pour l’analyse que vous souhaitez exporter. Vous pouvez utiliser l’exemple JSON suivant pour chaque aperçu et créer un fichier JSON à télécharger :

    Connaissances JSON Nom de la table à utiliser
    SSL (1) {"id": "3eb05733-c326-493c-9aa0-f7db3a6b4277", "ns_ip_address": "10.106.186.141", "name": "zeta_192_168_110_250", "vsvr_ip_address": "", "vsvr_port": -1, "vsvr_type": "", "state": "", "partition_name": "", "display_name": "10.106.186.141", "poll_time": 1716539986, "managed": "f", "ssl2": "f", "ssl3": "t", "tls10": "t", "tls11": "t", "tls12": "t", "dh": "f", "ersa": "t", "sslprofile": "", "tls13": "f", "dhkeyexpsizelimit": "DÉSACTIVÉ", "pushenctriggertimeout": 1, "sessionticket": "", "includesubdomains": "f", "sessionticketkeyrefresh": "", "ssllogprofile": "", "serverauth": "", "ssltriggertimeout": 100, "ersacount": 0, "strictcachecks": "NON", "dhfile": "", "sessreuse": "ACTIVÉ", "redirectportrewrite": "DÉSACTIVÉ", "skipclientcertpolicycheck": "", "tls13sessionticketsperauthcontext": 1, "cipherredirect": "DÉSACTIVÉ", "dropreqwithnohostheader": "NON", "sessionticketlifetime": -1, "maxage": 0, "pushenctrigger": "Toujours", "strictsigdigestcheck": "f", "sslredirect": "DÉSACTIVÉ", "sessionkeylifetime": -1, "alpnprotocol": "", "clientauthuseboundcachain": "", "sesstimeout": 120, "clientcert": "", "snihttphostmatch": "CERT", "preload": "NON", "prevsessionkeylifetime": -1, "sessionticketkeydata": "", "encrypttriggerpktcount": 45, "cleartextport": "", "ssliocspcheck": "", "hsts": "f", "sslinterception": "", "commonname": "", "sslireneg": "", "ocspstapling": "DÉSACTIVÉ", "quantumsize": 8192, "insertionencoding": "Unicode", "sslimaxsessperserver": -1, "cipherurl": "", "pushflag": 0, "zerorttearlydata": "DÉSACTIVÉ", "allowextendedmastersecret": "", "dhekeyexchangewithpsk": "NON", "clientauth": "DÉSACTIVÉ", "denysslreneg": "NON SÉCURISÉ", "sendclosenotify": "OUI", "dhcount": 0, "snienable": "DÉSACTIVÉ", "table_name": "ns_sslvserver"} console_ns_sslvserver
    SSL (2) {"id": "a6673ab2-0b59-47b9-b530-bc30fb2b937c", "certificat_ssl": "/nsconfig/ssl/ca-cert.pem", "clé_ssl": "/nsconfig/ssl/ca-key.pem", "nom_paire_de_clés_cert": "athul-ca", "format_cert": "PEM", "expiration_jours": 281, "adresse_ip_ns": "10.106.186.141", "état": "Valide", "nom_périphérique": "10.106.186.141", "chemin_emplacement_fichier": "", "données_certificat": "", "données_clé": "", "heure_sondage": 1717434335, "vérification_aucun_domaine": "f", "version": 3, "numéro_de_série": "7B34B6A6A1A79E0FF168242D7BCFF78F04C9EE66", "algorithme_de_signature": "sha256WithRSAEncryption", "émetteur": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "début_valide": "12 mars 08:51:11 2024 GMT", "destinataire_valide": "12 mars 08:51:11 2025 GMT", "sujet": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "algorithme_de_clé_publique": "rsaEncryption", "taille_de_clé_publique": 4096, "nombre_d'entités_liées": 0, "nom_de_partition": "", "nom_d'affichage": "10.106.186.141", "nom d'hôte" : "athulsadc", "nom de clé" : "", "nom de sous-domaine" : "", "géré par" : "", "dn de certificat" : "", "nom de clé de certificat de lien" : "", "nom de table" : "ns_ssl_certkey" console_ns_ssl_certkey
    WAF [{"ip_address": "10.106.185.156", "ctnsappname": "vserver_1", "severity": 2, "violation_type": 19, "violation_type_desc": "URL de démarrage", "block_flags": 1, "transformed_flags": 0, "not_blocked_flags": 0, "country_code": "-NA-", "region_code": "-NA-", "city": "-NA-", "latitude": 200.0, "longitude": 200.0, "signature_category": "", "attack_category": 2, "attack_category_desc": "Authentification et gestion des sessions interrompues", "total_attacks": 1, "rpt_sample_time": 1704783773, "source_ip_address": 174766492, "attack_time": 1704783538, "profile_name": "appfw_cs_lb_prof", "session_id": "", "http_req_url": "https://10.106.192.54/csrf_ffc/ffc.html?field10=asfasd", "violation_name": "-NA-", "violation_value": "-NA-", "violation_location": 4, "violation_threat_index": 5, "app_threat_index": 5, "http_method": 0, "violation_action": 3, "violation_action_desc": "Bloqué", "severity_type": 2, "severity_type_desc": "Moyen", "iprep_score": 0, "iprep_category": 0, "counter_value": 0, "appname": "vserver_1_10.106.185.156_lb", "violation_category": 12, "violation_category_desc": "URL de démarrage", "source_ipv6_address": "", "true_client_ip": "\\N", "backend_vserver": "", "backend_appname": "", "transactionId": "0", "table_name": "af_threat_exporter_data_l2"}] console_af_threat_exporter_data_l2
    Bot {"ip_address": "10.106.186.122", "ctnsappname": "secure_gateway", "bot_type": "2", "bot_type_desc": "Bad", "action_type": "6", "action_type_desc": "Log", "country_code": "0.0", "region_code": "0.0", "city": "0.0", "bot_severity": "0", "bot_severity_desc": "Critical", "latitude": "0", "longitude": "0", "bot_detection_mechanism": "6", "bot_detection_mechanism_desc": "BlackList", "bot_category": "0", "bot_category_desc": "Uncategorized", "source_ip_address": "174758625", "bot_signature_category": "Custom Policy Expression", "appname": "secure_gateway_10.106.186.122_lb", "backend_vserver": "", "backend_appname": "", "total_attacks": "2", "rpt_sample_time": "1718783216", "table_name": "af_bot_attack_details_l2"} console_af_bot_attack_details_l2
    Gateway Insight (1) {"adc_ip_address": "10.106.186.141", "auth_server": "", "client_ip": 174766732, "epa_method_type": 0, "error_count": 14, "error_details": "Informations d'identification non valides", "error_type": 1, "gateway_name": "vpn_vserver_142_6", "req_url": "", "resource": "", "rpt_sample_time": 1713505215, "sso_method_type": 0, "sta_ip": "", "table_name": "af_vpn_error_details", "username": "John"} détails_de_l’erreur_console_af_vpn
    Gateway Insight (2) {"adc_ip_address": "10.102.71.166", "display_name": "10.102.71.166", "gateway_name": "firsthop", "ip_address": "10.102.71.168", "rpt_sample_time": "1718812158", "state": "Up", "table_name": "ns_vpnvserver"} console_ns_vpnvserver
    Gateway Insight (3) {"adc_ip_address": "10.106.186.141", "gateway_name": "vpn_vserver_141_7", "rpt_sample_time": 1702011308, "sessions": 1, "table_name": "af_vpn_session_details", "users": 1} détails_de_session_console_af_vpn
    Gateway Insight (4) {"active_sessions": 59, "active_users": 1, "adc_ip_address": "10.106.186.136", "gateway_name": "vpnathul2", "rpt_sample_time": 1698919848, "table_name": "af_vpn_active_session_1"} console_af_vpn_active_session_1
    Gateway Insight (5) {"adc_ip_address": "10.106.186.136", "entity_type": 3, "gateway_name": "vpnathul2", "hits": 3, "rpt_sample_time": 1698052438, "table_name": "af_vpn_error_reports"} rapports_d’erreur_console_af_vpn
    Événements {"rpt_sample_time": -1, "category": "HealthMonitoring", "entity": "10.106.186.148:HealthMonitoring:Utilisation du disque système", "counter_threshold_value": "", "id": "0f2607cf-f97d-4f71-9162-11e580262e93", "timestamp": 1712927472, "message": "Utilisation du disque élevée : 63,24 %", "severity": "Critique", "user_name": "", "device_entity_type": "", "device_type": "", "counter_actual_value": "", "cmd_auth_status": "", "source": "10.106.186.148", "history": "Heure de mise à jour : ven. 12 avr. 2024 06:32:49 UTC, gravité précédente = Critique, nouvelle gravité = Critique, source = 10.106.186.148\nHeure de mise à jour = ven. 12 avr. 2024 06:27:46 UTC, gravité précédente = Critique, nouvelle gravité = Critique, source = 10.106.186.148\nHeure de mise à jour = ven. 12 avr. 2024 06:22:44 UTC, gravité précédente = Critique, nouvelle gravité = Critique, source = 10.106.186.148\nHeure de mise à jour = ven. 12 avr. 2024 06:17:41 UTC, gravité précédente = Critique, nouvelle gravité = Critique, source = 10.106.186.148\nHeure de mise à jour = Ven. 12 avr. 2024 06:12:38 UTC, gravité précédente = Critique, nouvelle gravité = Critique, source = 10.106.186.148\nHeure de mise à jour = Ven. 12 avr. 2024 06:07:36 U", "config_cmd": "", "failureobj": "Utilisation du disque système", "operation_type": "undefined", "device_entity_name": "", "cmd_exec_status": "", "device_family": "", "source_event_id": -1, "source_system_ip": "10.106.186.148", "trap_id": 35, "table_name": "event"} console_event
    Métrique {"mémoire_libre": 28830060544.0, "disque_utilisé": 81248694272.0, "disque_libre": 29632114688.0, "type_nœud": "", "mémoire_totale": 34355544064.0, "utilisation_cpu": 0.49, "total_disque": 120522616832.0, "utilisation_disque": 73.28, "id_nœud": "", "id": "1be15a09-d078-469c-868a-bfbfcffe5ef1", "capacité_totale_disque": 0.0, "taille_page": 4096.0, "utilisation_mémoire": 16.08, "nom_table": "mps_health"} console_mps_health
    Journaux d’audit {"system_gmt_time":1721868291, "source":"XXXX", "severity":"INFO", "module":"DEVICECONFIG", "event_type":"CMD_EXECUTED", "message":"Exemple de message", "instance_ip":"XXXX", "app_name":""} console_syslog_messages

    Après avoir téléchargé le JSON, vous pouvez afficher les détails suivants :

    Détails JSON

    Cliquez sur Éditeur de transformation, saisissez la requête suivante applicable à l’analyse appropriée, puis cliquez sur Exécuter pour accepter les données à partir de l’heure d’interrogation dans la console NetScaler.

    • SSL - source | étendre TimeGenerated = todatetime(poll_time) | projet-renommer sslvserver_id = id

    • WAF et Bot - source | extend TimeGenerated = todatetime(rpt_sample_time)

    • Gateway Insight - source | étendre TimeGenerated = todatetime(rpt_sample_time)

      Table de course

  5. Cliquez sur Suivant et cliquez sur Créer pour terminer.

  6. Accédez à Règles de collecte de données, cliquez sur le DCR que vous avez créé.

  7. Sous Configuration, cliquez sur Sources de données pour afficher la table créée.

    Source du tableau

    La règle de collecte de données (DCR) nécessite l’accès au rôle Éditeur de métriques de surveillance .

    1. Accédez à votre DCR auquel vous pouvez accéder depuis votre portail Azure sous Récents.

    2. Cliquez sur Contrôle d’accès (IAM) depuis votre page DCR et cliquez sur Ajouter une attribution de rôle.

      Attribution des rôles

    3. Dans la barre de recherche, saisissez le mot-clé monitor pour sélectionner Monitoring Metrics Publisher et cliquez sur Suivant.

    4. Dans l’onglet Membres , cliquez sur Sélectionner les membres et sélectionnez l’application Entra que vous avez créée.

    5. Cliquez sur Réviser + attribuer.

      Vous devez noter l’ID des règles de collecte de données. Accédez à la page Règles de collecte de données, sélectionnez votre DCR et cliquez sur la vue JSON pour noter l’ID.

      ID DCR

Créer un abonnement dans la console NetScaler

Vous avez maintenant tout prêt. L’étape finale consiste à configurer la console NetScaler en créant un abonnement et en ajoutant les détails requis. Pour créer un abonnement dans NetScaler Console, vous avez besoin des détails suivants que vous avez notés :

  • URL du point de terminaison
  • ID des règles de collecte de données
  • ID du locataire
  • ID client
  • Secret client
  1. Connectez-vous à la console NetScaler.

  2. Accédez à Paramètres > Intégration d’observabilité.

  3. Dans la page Intégrations , cliquez sur Ajouter.

  4. Dans la page Créer un abonnement , spécifiez les détails suivants :

    1. Spécifiez un nom de votre choix dans le champ Nom de l’abonnement.

    2. Sélectionnez NetScaler Console comme Source et cliquez sur Suivant.

    3. Sélectionnez Microsoft Sentinel et cliquez sur Configurer. Dans la page Configurer le point de terminaison , saisissez tous les détails et cliquez sur Soumettre.

    4. Cliquez sur Suivant.

  5. Cliquez sur Ajouter des insights et dans l’onglet Sélectionner une fonctionnalité , en fonction des tables que vous avez ajoutées dans Microsoft Azure, sélectionnez les fonctionnalités que vous souhaitez exporter et cliquez sur Ajouter la sélection, puis cliquez sur Suivant.

  6. Dans l’onglet Sélectionner l’instance , vous pouvez choisir Sélectionner toutes les instances ou Sélection personnalisée, puis cliquer sur Suivant.

    • Sélectionner toutes les instances - Exporte les données vers Microsoft Sentinel à partir de toutes les instances NetScaler.

    • Sélection personnalisée - Vous permet de sélectionner les instances NetScaler dans la liste. Si vous sélectionnez des instances spécifiques dans la liste, les données sont exportées vers Microsoft Sentinel uniquement à partir des instances NetScaler sélectionnées.

  7. Cliquez sur Soumettre.

Afficher les journaux dans Microsoft Azure

Après avoir tout configuré, nous vous recommandons d’attendre 30 minutes pour afficher les détails dans Microsoft Azure.

  1. Dans votre portail Azure, accédez à votre Espace de travail Log Analytics.

  2. Cliquez sur Journaux, indiquez le nom de la table et cliquez sur Exécuter pour afficher les résultats.

    Afficher les journaux

Vous pouvez également dépanner et utiliser les journaux pour vérifier les configurations. Par exemple, utilisez l’option Interroger maintenant dans l’interface graphique de la console NetScaler pour l’aperçu configuré et :

  1. Connectez-vous à votre console NetScaler à l’aide d’un client SSH.
  2. Tapez shell pour entrer en mode bash.
  3. Utilisez la commande suivante pour afficher les journaux :

    queue -f /var/mps/log/nbs/nbs_api.log

Les exemples suivants vous aident à analyser les erreurs possibles pour le dépannage :

  1. Journaux invalides

    Ce journal indique que vous avez fourni un ID client non valide pour l’abonnement Microsoft Sentinel dans la console NetScaler (Paramètres > Intégrations d’observabilité).

    Solution de contournement : Assurez-vous d’avoir copié le bon ID client et modifiez l’abonnement en fournissant le bon ID client. Pour plus d’informations, voir Créer une application Microsoft Entra.

  2. clé SSL invalide

    Ce journal indique que vous n’avez pas configuré la table ssl_certkey requise dans votre Microsoft Azure.

    Solution de contournement : Configurez une table pour ssl_certkey dans Microsoft Azure. Pour plus d’informations, voir Créer des tables pour exporter des données.

Intégration avec Microsoft Sentinel