Service NetScaler Console

Intégration à Microsoft Sentinel

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

  • Violations du WAF
  • Violations liées aux robots
  • Insights sur les certificats SSL
  • Gateway Insight

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 consulter les données et prendre des décisions une fois que les insights 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 décrite dans chaque section :

Configurer l’espace de travail Log Analytics

Un espace de travail Log Analytics est nécessaire pour stocker et analyser les données collectées.

  1. Connectez-vous à Azure.

  2. Cliquez sur Créer une ressource.

    Resource

  3. Dans la barre de recherche, saisissez Espace de travail Log Analytics et cliquez sur Créer sous Espace de travail Log Analytics.

    Espace de travail Log Analytics

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

    Création d'espaces 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. Indiquez le nom de votre choix.

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

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

      Avant la phase finale de la création d'un espace de travail

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

      Création d'espaces de travail

    6. Vous pouvez voir le message de déploiement en cours. Lorsque le message de fin du déploiement s’affiche, cliquez sur Accéder à la ressource.

      Ressource dans 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 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 informations telles que l’ID client, l’ID du locataireet le secret client. Nous vous recommandons de prendre note de ces informations. Vous en aurez besoin pour créer un abonnement dans NetScaler Console et terminer le processus d’intégration.

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

  2. Cliquez sur Microsoft Entra ID.

    Application Entra

  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.

    Enregistrement de l'application

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

    1. Prenez note de l’ID client et de l’ID du locataire.

      Identifiants du client et du locataire

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

      Identifiant secret du client

    3. Les détails de votre application sont affichés. Assurez-vous de prendre note de l’identifiant 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

Attribuer une autorisation à l’application Entra

Vous devez attribuer à l’application le rôle Microsoft Sentinel Contributor. Pour accorder une autorisation :

  1. Accédez à Microsoft Entra ID dans votre portail Azure.

  2. Cliquez sur Enregistrements d’applications , puis sélectionnez votre application.

    Sélection de l'application

  3. Cliquez sur Contrôle d’accès (IAM), puis sur Ajouter une attribution de rôle.

    Attribution de rôles dans l'application

  4. Dans la barre de recherche, saisissez le mot clé sentinel, sélectionnez Contributeur Microsoft Sentinel et cliquez sur Suivant.

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

  6. Cliquez sur Review + assign.

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. Cela est obligatoire 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 d'une DCR

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

    Création d'une DCR

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

    1. Spécifiez le 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. Lorsque le message de validation s’affiche, cliquez sur Créer.

Vous devez prendre note de l’URL du point de terminaison. Sur la page principale du point de terminaison de collecte de données, sélectionnez le point de terminaison créé, cliquez sur Affichage JSON et notez l’ID du point de terminaison.

IDENTIFIANT DE LA DCR

Créer des tableaux pour l’exportation des données

Vous devez créer un tableau et fournir les informations JSON pour chaque insight que vous souhaitez exporter depuis NetScaler Console vers Microsoft Sentinel. Vous pouvez consulter les informations suivantes concernant les exigences du tableau pour chaque insight :

Aperçu Nombre total de tableaux requis
Insights SSL 3
WAF 1
Bot 1
Gateway insights 5

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

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

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

    Table

  3. Dans Créer un journal personnalisé :

    1. Spécifiez un nom de tableau. 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 des tableaux applicables à chaque insight.

    2. Fournissez une description pour ajouter plus d’informations sur le nom du tableau. Cette étape est facultative.

    3. Créez une 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 les informations que vous souhaitez exporter. Vous pouvez utiliser l’exemple JSON suivant pour chaque insight et créer un fichier JSON à télécharger :

    Aperçu JSON Nom du tableau à 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

    Après avoir chargé le JSON, vous pouvez consulter les informations suivantes :

    Détails JSON

    Cliquez sur Éditeur de transformation, entrez la requête suivante relative à l’insight approprié, puis cliquez sur Exécuter pour accepter les données à partir de l’heure du 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)

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

      Exécution du tableau

  5. Cliquez sur Suivant, puis sur Créer pour terminer.

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

  7. Sous Configuration, cliquez sur Sources de données pour afficher le tableau créé.

    Source du tableau

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

    1. Accédez à votre DCR depuis votre portail Azure sous Récents.

    2. Cliquez sur Contrôle d’accès (IAM) sur la page de la DCR, puis cliquez sur Ajouter une attribution de rôle.

      Attribution de rôle

    3. Dans la barre de recherche, saisissez le mot clé Monitor pour sélectionner Éditeur de mesures de surveillance 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 Review + assign.

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

      IDENTIFIANT DE LA DCR

Créer un abonnement dans NetScaler Console

Tout est prêt à présent. La dernière étape consiste à configurer NetScaler Console en créant un abonnement et en ajoutant les informations requises. Pour créer un abonnement dans NetScaler Console, vous avez besoin des informations suivantes que vous avez notées :

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

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

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

  4. Sur la page Créer un abonnement, indiquez les informations suivantes :

    1. Indiquez le 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. Sur la page Configurer le point de terminaison, entrez tous les détails, puis cliquez sur Soumettre.

    4. Cliquez sur Suivant.

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

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

    • Sélectionnez 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 Envoyer.

Afficher les journaux dans Microsoft Azure

Une fois que vous avez 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 du tableau, puis cliquez sur Exécuter pour afficher les résultats.

    Afficher les journaux

Intégration à Microsoft Sentinel