Netskope LogoNetskope Logo
  • Services de sécurité
  • Services d’IA
  • Services de miseenréseau
  • Services d'analyse
  • Intégrations
  • getting-started.svgPour commencer
    • Support
    • Communauté
    • Netskope.com
    © 2026 Tous droits réservés. Netskope Inc.
    Accueil
    Netskope Cloud Exchange
    Module Risk Exchange
    Configurer les plugins d'échange de risques tiers
    Plugin Elastic pour la bourse des risques

    Plugin Elastic pour la bourse des risques

    Ce document explique comment configurer le plugin Elastic v1.0.0 pour le module Risk Exchange de la plateforme Netskope Cloud Exchange. Ce plugin est utilisé pour récupérer les utilisateurs disponibles sur la page Security > Explore > Users > All users et leurs scores de risque respectifs disponibles sur la page Security > Explore > Users > User risk de l'instance Elastic configurée. Ce plugin ne permet pas d'effectuer des actions sur les utilisateurs.

    Calcul du score de Risk Exchange => | 100 - Elastic Risk Score | x 10.

    Conditions préalables

    Pour réaliser cette intégration, vous avez besoin de :

    • Un locataire Netskope (ou plusieurs, par exemple des instances de production et de développement/test).
    • A Netskope Cloud Exchange tenant with the Tenant plugin and Risk Exchange plugin already configured.
    • Informations d'identification de l'instance Elastic (nom d'utilisateur, mot de passe, URL de base de l'API pour Elastic Search, clé API)
    • Connectivité à l'hôte suivant : instance élastique.
    Support des plugins Elastic

    Ce plugin récupère les utilisateurs disponibles sur la page Sécurité > Explorer > Utilisateurs > Tous les utilisateurs et leurs scores de risque respectifs disponibles sur la page Sécurité > Explorer > Utilisateurs > Risque de l'utilisateur à partir de l'instance Elastic configurée.

     Type de données extraitesLes utilisateurs et leur score de risque
    Actions soutenuesNo action
    Mises en correspondance

    La cartographie sera utilisée pour afficher les détails des utilisateurs tirés. Les champs mappés lors de la configuration du plugin seront visibles sur la page Enregistrements une fois les données extraites. Vous trouverez ci-dessous la cartographie suggérée qui doit être utilisée lors de la configuration du plugin.

    Cartographie en mode "pull" pour les utilisateurs
    Champ du pluginType de données attenduNom de champ suggéréStratégie suggérée pour les agrégats de terrain
    nom d'utilisateurStringUsernameUnique
    calculated_score_normNumberScoreOverwrite
    calculated_scoreNumberScore calculéOverwrite
    calculated_levelStringNiveau de scoreOverwrite
    Score normalisé de NetskopeNumberScore normaliséOverwrite

    Note that Netskope Normalized Score will be calculated using calculated_score_norm.

    Cartographie des scores

    Le score sera normalisé dans le Cloud Exchange à l'aide de la formule ci-dessous :
    Calcul du score de Risk Exchange => | 100 - Elastic Risk Score | x 10

    Netskope ScoreGamme de scores Netskope
    Critique0-250
    Haut251-500
    Moyen501-750
    Faible751-1000
    Score élastiqueGamme de scores élastiques
    Inconnu20 <
    Faible20 – 40
    Moderate40 – 70
    Haut70 – 90
    Critique> 90 **
    Permissions

    Voici les autorisations nécessaires pour le plugin :

    • Privilèges du cluster > manage_tokens
    • Privilèges de l'index > logs-* et risk-score.*
    • Privilèges > Lire
    • Clé API > Restreindre les privilèges
    Détails de l'API
    Liste des API utilisées
    Point final de l'APIMéthodeChamp d'application du client APICas d'utilisation
    /_security/oauth2/tokenPUBLIERmanage_tokenGet OAuth2 token
    /logs-*/_searchPUBLIERlogs-* => accès en lectureFetch users
    /risk-score.*/_searchPUBLIERscore de risque* => accès en lectureRécupérer les scores
    Obtenir un jeton d'authentification

    API Endpoint: <Base URL>/_security/oauth2/token
    Method: POST
    Headers:

    CléValueDescription
    Content-Typeapplication/json 
    Acceptapplication/json 
    AuthorizationApiKey <Token>Pour l'authentification de base, comme nom d'utilisateur-mot de passe, le jeton doit être encodé en UTF-8.
    Basic <Token>

    Body:

    {
      "grant_type" : "client_credentials"
    }

    Sample API Response:

    {
        "access_token": "gLuKBBjxurcPqq7cZyTj4jL0A****j*******",
        "type": "Bearer",
        "expires_in": 1200,
        "authentication": {
            "username": "test user",
            "roles": [
                "Netskope"
            ],
            "full_name": "Test",
            "email": "",
            "metadata": {},
            "enabled": true,
            "authentication_realm": {
                "name": "native",
                "type": "native"
            },
            "lookup_realm": {
                "name": "native",
                "type": "native"
            },
            "authentication_type": "realm"
        }
    }
    Recherche d'enregistrements

    API Endpoint: <Base URL>/logs-*/_search
    Method: POST
    Headers:

    CléValue
    Content-Typeapplication/json
    Acceptapplication/json
    AuthorizationPorteur <access_token>

    Body:

    {
                "query": {
                    "bool": {
                        "must_not": {"exists": {"field": "host.name"}},
                        "filter": [
                            {"exists": {"field": "user.name"}},
                            {"range": {"@timestamp": {"gte": "2023-01-01T18:08:11.148813Z"}}},
                        ],
                    }
                },
                "sort": [{"@timestamp": "asc"}],
                "_source": True,
                "size": 10000,
            }

    Sample API Response:

    {
        "took": 10,
        "timed_out": false,
        "_shards": {
            "total": 75,
            "successful": 75,
            "skipped": 53,
            "failed": 0
        },
        "hits": {
            "total": {
                "value": 491,
                "relation": "eq"
            },
            "max_score": null,
            "hits": [
                {
                    "_index": "logs-tes",
                    "_id": "wHUW2YEyx7Kaj*****",
                    "_score": null,
                    "_source": {
                        "event": {
                            "kind": "alert",
                            "module": "proofpoint"
                        },
                        "user": {
                            "name": "kamlesh.solanki@crestdatasys.com"
                        },
                        "@timestamp": "2024-01-03T09:00:00.000Z"
                    },
                    "sort": [
                        1704272400000
                    ]
                }
            ]
        }
    }
    Recherche de notes

    API Endpoint: <Base URL>/risk-score.*/_search
    Method: POST
    Headers:

    CléValue
    Content-Typeapplication/json
    Acceptapplication/json
    AuthorizationPorteur <access_token>

    Body:

    {
        "query": {
            "bool": {
                "minimum_should_match": 1,
                "should": [{"match_phrase": {"user.name": "testuser@test.com"}}]
            }
        }
    }

    Sample API Response:

    {
        "took": 0,
        "timed_out": false,
        "_shards": {
            "total": 1,
            "successful": 1,
            "skipped": 0,
            "failed": 0
        },
        "hits": {
            "total": {
                "value": 1,
                "relation": "eq"
            },
            "max_score": 0.9808291,
            "hits": [
                {
                    "_index": "risk-score.risk-score-latest-default",
                    "_id": "X2vS7pclkEYZFSG************",
                    "_score": 0.9808291,
                    "_source": {
                        "@timestamp": "2024-01-23T11:16:33.549Z",
                        "user": {
                            "name": "testuser@test.com",
                            "risk": {
                                "id_field": "user.name",
                                "id_value": "testuser@test.com",
                                "calculated_level": "Low",
                                "calculated_score": 92.29454468696414,
                                "calculated_score_norm": 35.33481802716851,
                                "category_1_score": 89,
                                "category_1_count": 9,
                                "notes": [],
                                "inputs": [
                                    {
                                        "id": "953f2530b0ea1ca14876583df459c8e24a21e9989876876869*****************",
                                        "index": ".internal.alerts-security.alerts-default-000003",
                                        "description": "Alert from Rule: External Alerts [Duplicate]",
                                        "category": "category_1",
                                        "risk_score": 47,
                                        "timestamp": "2024-01-10T09:36:16.888Z"
                                    },
                                    {
                                        "id": "2b1f87b7353ae4f1cebc95fc618a6b4cb3696b5b8383c3f***********",
                                        "index": ".internal.alerts-security.alerts-default-000003",
                                        "description": "Alert from Rule: External Alerts [Duplicate]",
                                        "category": "category_1",
                                        "risk_score": 47,
                                        "timestamp": "2024-01-10T09:36:16.890Z"
                                    },
                                    {
                                        "id": "3b5d3e2b1b0017567b3e2dc6835957a3118486e89fa20***********************",
                                        "index": ".internal.alerts-security.alerts-default-000003",
                                        "description": "Alert from Rule: External Alerts",
                                        "category": "category_1",
                                        "risk_score": 47,
                                        "timestamp": "2024-01-05T11:53:39.960Z"
                                    },
                                    {
                                        "id": "fe788d9601e817f0e7219b56686d9ba4a55d90c5ea4627***************a",
                                        "index": ".internal.alerts-security.alerts-default-000003",
                                        "description": "Alert from Rule: External Alerts",
                                        "category": "category_1",
                                        "risk_score": 47,
                                        "timestamp": "2024-01-05T11:53:39.963Z"
                                    },
                                    {
                                        "id": "7c7f1da36f5fbc904bb109c38d677e061fd4cbc************************************",
                                        "index": ".internal.alerts-security.alerts-default-000003",
                                        "description": "Alert from Rule: External Alerts [Duplicate]",
                                        "category": "category_1",
                                        "risk_score": 47,
                                        "timestamp": "2024-01-05T11:49:27.539Z"
                                    }
                                ]
                            }
                        }
                    }
                }
            ]
        }
    }
    Matrice de performance

    Voici les relevés de performances effectués sur une grande pile CE avec ces spécifications de VM, en tirant des scores de risque utilisateur de 100 000.

    Détails de la pileTaille : Grande
    RAM : 32 GB
    CPU : 16 cœurs
    Temps nécessaire pour stocker les dossiers d'utilisateurs extraits et mis à jour~ 32 minutes
    Agent utilisateur

    netskope-ce-5.1.0-cre-elastic-v1.0.0

    Workflow

    1. Créer des rôles.
    2. Configurer un utilisateur avec un rôle.
    3. Créez une clé API.
    4. Configurez le plugin Elastic.
    5. Ajoutez une règle métier d'échange de risques pour Elastic.
    6. Ajoutez une action d'échange de risque pour Elastic.
    7. Validez le plugin Elastic.

    Cliquer sur « play » pour regarder une vidéo.

     

    Créer des rôles

    1. Connectez-vous à Elastic (Kibana, Elastic Search) et allez sur Management > Stack Management > Security > Roles depuis le panneau de gauche.
    2. Cliquez Create Roles.
    3. Indiquez un nom de rôle et sélectionnez un accès manage_token dans les privilèges du cluster.
    4. Descendez jusqu'à Index privileges et ajoutez logs-* et risk-score.*. dans les index et cliquez sur Créer un rôle.

    Création d'un utilisateur avec le rôle New

    1. Accédez à Users depuis la gestion de la pile. Cliquez sur Create User et fournissez un nom d'utilisateur, une adresse e-mail, un mot de passe, confirmez le mot de passe, puis sélectionnez le rôle précédemment créé dans la liste déroulante Privilèges. Cliquez sur Create User.

    Créer une clé API (pour la méthode d'authentification par clé API)

    1. Accédez à API Keys sous Sécurité dans Gestion de la pile. Cliquez sur Create API Key.
    2. Indiquez un nom et activez le bouton à bascule Restreindre les privilèges. Ajoutez ce dictionnaire dans le descripteur de rôle.
      {
        "role-a": {
          "cluster": [
            "all"
          ],
          "indices": [
            {
              "names": [
                "logs-*",
                "risk-score.*"
              ],
              "privileges": [
                "read"
              ],
              "allow_restricted_indices": false
            }
          ],
          "applications": [],
          "run_as": [],
          "metadata": {},
          "transient_metadata": {
            "enabled": true
          }
        }
      }
    3. Enable Include metadata and add this in it.
      { "application": "Netskope Cloud Exchange" }

    4. Cliquez sur Create API Key.

    Copiez la clé API disponible sur la page et enregistrez-la dans un endroit sûr car elle ne sera visible qu'une seule fois.

    Configurer le plugin Elastic

    1. Dans Cloud Exchange, allez à Settings > Plugins. Cherchez et sélectionnez la boîte de plugin Elastic v1.0.0 (CRE) .
    2. Entrez un nom de configuration et un intervalle de synchronisation...
    3. Cliquez sur Next et entrez ces paramètres de configuration :
      • Base URL : URL de base de l'API de votre instance Elastic.
      • Authentication Method (Méthode d'authentification) : Select le type de méthode d'authentification utilisé pour effectuer l'appel API à l'instance Elastic.
      • Username : Nom d'utilisateur de l'instance Elastic. Requis pour le type d'authentification "Authentification de base (nom d'utilisateur-mot de passe)".
      • Mot de passe : Mot de passe de l'instance Elastic. Requis pour le type d'authentification Basic Authentication (nom d'utilisateur-mot de passe).
      • Clé API : Clé API générée par l'instance Elastic. Requis pour le type d'authentification API Key Authentication. 
      • Plage initiale : Nombre de jours à partir desquels les utilisateurs doivent être extraits pour l'exécution initiale.

    4. Cliquez Next. Select l’Entité depuis le menu déroulant de l’Entité.
      Les champs Entity peuvent être créés depuis la page de l’éditeur de schéma ou en utilisant l’option + Add Field du menu déroulant du champ.
      Fournissez la cartographie du terrain. Pour la cartographie suggérée, consultez la section Cartographies .
    5. Cliquez Save.

    Ajouter une règle métier d'échange de risques pour Elastic

    1. Dans Risk Exchange, allez à Business Rules.
    2. Cliquez sur Create New Rule dans le coin supérieur droit.
    3. Saisissez un nom de règle et configurez la requête en fonction de vos besoins.
    4. Cliquez sur Save.

    Ajouter des actions d'échange de risques pour Elastic

    Le plugin Elastic ne permet pas d'effectuer des actions. Mais l'utilisation de l'option Pas d'action peut générer des alertes dans le module Ticket Orchestrator.
    Vous pouvez effectuer les actions sur les utilisateurs tirés d'Elastic sur le locataire Netskope.
    Pour configurer cette action :

    1. Dans Risk Exchange, allez à Actions.
    2. Cliquez sur Add Action Configuration dans le coin supérieur gauche.
    3. Select une règle de gestion, la configuration de votre plugin et une action (pas d'action) dans les listes déroulantes correspondantes.
    4. Pour générer des alertes dans le module Ticket Orchestrator, activez la case à cocher Générer une alerte, et activez de même l'option Effectuer une action pendant la fenêtre de maintenance si vous souhaitez effectuer une action pendant la fenêtre de maintenance. Veillez à activer le module Ticket Orchestrator.
    5. Activez la case à cocher Require Approval si une approbation est nécessaire avant d'effectuer l'action.
    6. Cliquez sur Save.

    Validez le plugin Elastic

    Valider sur Cloud Exchange

    Pour vérifier que les utilisateurs ont tiré d’Elastic, rendez-vous sur Risk Exchange > Records. Select l’entité utilisée lors de la configuration du plugin Elastic.

    Va sur Logging et cherche des journaux en fonction de la configuration du plugin.

    Valider sur Elastic

    Dans le panneau de gauche, accédez à Security et cliquez sur Explore > Users > All users.

    Les scores des utilisateurs sont extraits de Security > Explore > Users > User risk.

    Ce plugin ne permet pas d'effectuer d'actions.

    Dépannage du plugin Elastic

    Impossible d'extraire des utilisateurs ou des scores d'utilisateurs

    Si vous n'arrivez pas à extraire des utilisateurs ou des scores d'utilisateurs dans Cloud Exchange, cela peut être dû à l'une des raisons suivantes :

    • Les utilisateurs sont disponibles sur la plateforme pour tirer.
    • L'utilisateur est disponible dans la plage initiale donnée dans le plugin.
    • Les scores des utilisateurs ne sont pas repris dans Cloud Exchange.
    • Le mappage n'est pas effectué correctement lors de la configuration du plugin.

    What to do:

    • Si les utilisateurs ne sont pas récupérés à partir du plugin, vérifiez si vous avez des utilisateurs disponibles sur la plateforme Elastic.
    • Si vous avez des utilisateurs disponibles sur Elastic à tirer, vérifiez la date de dernière vue à laquelle les utilisateurs sont disponibles. Vérifiez la plage initiale fournie dans la configuration du plugin. La plage initiale doit être supérieure ou égale à la dernière durée disponible sur l'Elastic afin que les utilisateurs puissent être tirés.
    • Si vous ne parvenez pas à obtenir les scores des utilisateurs après que ceux-ci aient été retirés, vérifiez que les autorisations accordées à votre utilisateur sont correctes et que les scores sont disponibles pour les utilisateurs.
    • Veillez à fournir une cartographie correcte, veillez à cartographier correctement le champ des scores.
    Impossible de configurer le plugin

    Si vous ne parvenez pas à configurer le plugin, cela peut être dû à l'une des raisons suivantes :

    • Les autorisations appropriées sont définies pour les informations d'identification fournies.
    • Les valeurs correctes sont fournies dans les paramètres de configuration.

    What to do:

    • Veillez à fournir les autorisations nécessaires.
    • Veillez à fournir des valeurs correctes dans les paramètres de configuration.
    Impossible d'effectuer une action sur un tiers

    Si vous ne parvenez pas à configurer le plugin, vérifiez que le bouton à bascule "Require Approval" est activé lorsque vous effectuez une action.
    What to do:
    Veillez à désactiver le contrôle d'approbation ou à approuver la demande.

    Dans ce thème
    • Plugin Elastic pour la bourse des risques