Service NetScaler Console

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 WAF
  • Violations de bot
  • Informations sur les certificats SSL
  • Informations sur la passerelle
  • Journaux d’audit de NetScaler Console

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 une fois que les informations ou les violations sont signalées dans Microsoft Sentinel.

Pour une intégration réussie, assurez-vous de disposer d’un abonnement Azure actif, puis suivez la procédure décrite dans chaque section :

Configurer l’espace de travail Log Analytics

Un espace de travail Log Analytics est requis 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, tapez log analytics workspace et cliquez sur Créer sous Espace de travail Log Analytics.

    Espace de travail Log Analytics

  4. Dans la page principale de l’Espace de travail Log Analytics, cliquez sur Créer.

    Création de l'espace de travail

  5. Dans Créer un espace de travail Log Analytics :

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

      Remarque :

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

    2. Spécifiez un nom de votre choix.

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

    4. Cliquez sur Vérifier + créer.

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

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

      Création de l'espace de travail

    6. Vous pouvez voir le message de déploiement en cours. Une fois que vous voyez le message de déploiement terminé, cliquez sur Accéder à la ressource.

      Ressource de l'espace de travail

      L’espace de travail est 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 l’espace de travail Log Analytics. Après avoir créé l’application, vous devez également accorder l’autorisation avec le rôle Contributeur Microsoft Sentinel. L’application fournit également des détails tels que l’ID client, l’ID de locataire et le Secret client. Nous vous recommandons de noter 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, tapez le mot-clé dans la barre de recherche.

  2. Cliquez sur Microsoft Entra ID.

    Application Entra

  3. Cliquez sur Ajouter et sélectionnez Inscription d’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 Inscrire.

    Inscription de l'application

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

    1. Notez l’ID client et l’ID de locataire.

      ID client et locataire

    2. Créez un ID secret pour votre application. Cliquez sur Certificats et 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 client

    3. Les détails sont affichés pour votre application. 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 naviguez vers 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 Microsoft Entra ID 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 tapez 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.

    Création DCR

  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 ressources et la Région.

    3. Cliquez sur Vérifier + créer.

    4. Une fois que vous voyez le message de validation réussie, cliquez sur Créer.

Vous devez noter l’URL du point de terminaison. Dans la page principale du Point de terminaison de collecte de données, sélectionnez le point de terminaison créé, cliquez sur Vue JSON et 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 concernant les exigences de table pour chaque information :

Informations Nombre total de tables requises
Informations SSL 3
WAF 1
Bot 1
Informations sur la passerelle 5

Pour chaque espace de travail, vous pouvez créer un maximum de 10 tables. Au-delà de 10 tables, vous devez créer un autre espace de travail.

  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).

    Table

  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 information.

    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 de la table

    5. Cliquez sur Suivant.

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

    Informations JSON Nom de 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": "DISABLED", "pushenctriggertimeout": 1, "sessionticket": "", "includesubdomains": "f", "sessionticketkeyrefresh": "", "ssllogprofile": "", "serverauth": "", "ssltriggertimeout": 100, "ersacount": 0, "strictcachecks": "NO", "dhfile": "", "sessreuse": "ENABLED", "redirectportrewrite": "DISABLED", "skipclientcertpolicycheck": "", "tls13sessionticketsperauthcontext": 1, "cipherredirect": "DISABLED", "dropreqwithnohostheader": "NO", "sessionticketlifetime": -1, "maxage": 0, "pushenctrigger": "Always", "strictsigdigestcheck": "f", "sslredirect": "DISABLED", "sessionkeylifetime": -1, "alpnprotocol": "", "clientauthuseboundcachain": "", "sesstimeout": 120, "clientcert": "", "snihttphostmatch": "CERT", "preload": "NO", "prevsessionkeylifetime": -1, "sessionticketkeydata": "", "encrypttriggerpktcount": 45, "cleartextport": "", "ssliocspcheck": "", "hsts": "f", "sslinterception": "", "commonname": "", "sslireneg": "", "ocspstapling": "DISABLED", "quantumsize": 8192, "insertionencoding": "Unicode", "sslimaxsessperserver": -1, "cipherurl": "", "pushflag": 0, "zerorttearlydata": "DISABLED", "allowextendedmastersecret": "", "dhekeyexchangewithpsk": "NO", "clientauth": "DISABLED", "denysslreneg": "NONSECURE", "sendclosenotify": "YES", "dhcount": 0, "snienable": "DISABLED", "table_name": "ns_sslvserver"} console_ns_sslvserver
    SSL (2) {"id": "a6673ab2-0b59-47b9-b530-bc30fb2b937c", "ssl_certificate": "/nsconfig/ssl/ca-cert.pem", "ssl_key": "/nsconfig/ssl/ca-key.pem", "certkeypair_name": "athul-ca", "cert_format": "PEM", "days_to_expiry": 281, "ns_ip_address": "10.106.186.141", "status": "Valid", "device_name": "10.106.186.141", "file_location_path": "", "certificate_data": "", "key_data": "", "poll_time": 1717434335, "no_domain_check": "f", "version": 3, "serial_number": "7B34B6A6A1A79E0FF168242D7BCFF78F04C9EE66", "signature_algorithm": "sha256WithRSAEncryption", "issuer": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "valid_from": "Mar 12 08:51:11 2024 GMT", "valid_to": "Mar 12 08:51:11 2025 GMT", "subject": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "public_key_algorithm": "rsaEncryption", "public_key_size": 4096, "no_of_bound_entities": 0, "partition_name": "", "display_name": "10.106.186.141", "hostname": "athulsadc", "key_name": "", "subjaltname": "", "managed_by": "", "certificate_dn": "", "linkcertkeyname": "", "table_name": "ns_ssl_certkey"} console_ns_ssl_certkey
    SSL (3) {"id": "2baffd1a-7ed6-4035-91e8-ad3a3125bff4", "certkeypair_name": "cert1", "ns_ip_address": "10.106.186.127", "poll_time": 1715671567, "partition_name": "", "display_name": "10.106.186.127", "hostname": "", "entity_name": "secure_gateway", "entity_type": "sslvserver", "table_name": "ns_sslcertkey_binding"} console_ns_sslcertkey_binding
    WAF [{"ip_address": "10.106.185.156", "ctnsappname": "vserver_1", "severity": 2, "violation_type": 19, "violation_type_desc": "Start URL", "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": "Broken Authentication and Session Management", "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": "Blocked", "severity_type": 2, "severity_type_desc": "Medium", "iprep_score": 0, "iprep_category": 0, "counter_value": 0, "appname": "vserver_1_10.106.185.156_lb", "violation_category": 12, "violation_category_desc": "Start URL", "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": "Invalid credentials passed", "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"} console_af_vpn_error_details
    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} console_af_vpn_session_details
    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"} console_af_vpn_error_reports
    Journaux d’audit {"system_gmt_time":1721868291, "source":"X.X.X.X", "severity":"INFO", "module":"DEVICECONFIG", "event_type":"CMD_EXECUTED", "message":"Sample Mesage", "instance_ip":"X.X.X.X", "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, entrez la requête suivante applicable à l’information appropriée, puis cliquez sur Exécuter pour accepter les données à partir de l’heure de sondage dans NetScaler Console.

    • SSL - source | extend TimeGenerated = todatetime(poll_time) | project-rename sslvserver_id = id
    • WAF et Bot - source | extend TimeGenerated = todatetime(rpt_sample_time)
    • Informations sur la passerelle - source | extend TimeGenerated = todatetime(rpt_sample_time)

      Exécution de la table

  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 de la table

    Le DCR (règle de collecte de données) nécessite un 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 de rôle

    3. Dans la barre de recherche, tapez le mot-clé monitor pour sélectionner Éditeur de métriques de surveillance et cliquez sur Suivant.

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

    5. Cliquez sur Vérifier + attribuer.

      Vous devez noter l’ID des règles de collecte de données. Accédez à la page des 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 NetScaler Console

Vous avez maintenant tout ce qu’il faut. La dernière étape consiste à configurer NetScaler Console 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 de locataire
  • ID client
  • Secret client
  1. Connectez-vous à NetScaler Console.

  2. Accédez à Paramètres > Intégration de l’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, entrez tous les détails et cliquez sur Soumettre.

    4. Cliquez sur Suivant.

  5. Cliquez sur Ajouter des informations et dans l’onglet Sélectionner la 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 depuis 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

Intégration avec Microsoft Sentinel