Ce document fournira la documentation technique nécessaire à la configuration du plugin Wiz v2.0.0 avec le module Cloud Risk Exchange de la plateforme Netskope Cloud Exchange. Ce plugin récupère les applications et les charges de travail depuis la plateforme Wiz. Ce plugin ne permet pas d'effectuer d'actions sur les applications et les charges de travail.
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).
- Un locataire Netskope Cloud Exchange avec le plugin Tenant et le plugin Risk Exchange déjà configurés.
- Les informations d'identification de la plate-forme Wiz (URL de base, URL du jeton, ID du client, secret du client) pour l'authentification de l'API.
- Connectivité avec les hôtes suivants : https://api.<region> <région>.app.wiz.io.
Support du plugin Wiz
Ce plugin récupère les applications et les charges de travail de la plateforme Wiz.
| Type de données extraites | Actions |
|---|---|
| Applications, charges de travail | No Action |
Mises en correspondance
La cartographie sera utilisée pour visualiser les applications/charges de travail tirées et leurs détails respectifs. 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.
Mappages de traction pour les applications
| Champ du plugin | Type de données attendu | Nom de champ suggéré | Action suggérée sur le terrain |
|---|---|---|---|
| ID de l'application |
String |
ID de l'application Wiz |
Unique |
|
Abonnement ID externe |
String |
Abonnement Wiz ID externe |
Overwrite |
|
ID d'abonnement |
String |
ID d'abonnement Wiz |
Overwrite |
|
Nom de l'application |
String |
Nom de l'application Wiz |
Overwrite |
|
Plate-forme en nuage |
String |
Wiz App Cloud Platform |
Overwrite |
|
URL du fournisseur de services en nuage |
String |
URL du fournisseur de Wiz App Cloud |
Overwrite |
|
Date de création |
Date |
Date de création de l'application Wiz |
Overwrite |
|
Première vue |
Date |
Première vision de l'application Wiz |
Overwrite |
|
Dernière visite |
Date |
Wiz App Last Seen |
Overwrite |
Mappages d'extraction pour les charges de travail
|
Plugin Field |
Expected Datatype |
Suggested Field Name |
Suggested Field Action |
|---|---|---|---|
|
Workload ID |
String |
Wiz Workload ID |
Unique |
|
Nom |
String |
Nom de la charge de travail Wiz |
Overwrite |
|
Type |
String |
Type de charge de travail Wiz |
Overwrite |
|
Adresses IP |
List |
Adresses IP de la charge de travail Wiz |
Overwrite |
|
Region |
String |
Région de charge de travail Wiz |
Overwrite |
|
Plate-forme en nuage |
String |
Wiz Workload Cloud Platform |
Overwrite |
|
URL du fournisseur de services en nuage |
String |
URL du fournisseur Wiz Workload Cloud |
Overwrite |
|
Statut |
String |
État de la charge de travail du Wiz |
Overwrite |
|
Nom de l'abonnement |
String |
Nom de l'abonnement Wiz |
Overwrite |
|
Abonnement ID externe |
String |
Abonnement Wiz ID externe |
Overwrite |
|
ID d'abonnement |
String |
ID d'abonnement Wiz |
Overwrite |
|
OS |
String |
Wiz Workload OS |
Overwrite |
|
Tags |
List |
Wiz Workload Tags |
Overwrite |
|
Nom de la vulnérabilité |
String |
Nom de la vulnérabilité Wiz |
Overwrite |
|
Gravité CVSS |
String |
Wiz Gravité CVSS |
Overwrite |
|
Score de vulnérabilité |
Number |
Score de vulnérabilité Wiz |
Overwrite |
|
Score d'exploitabilité |
Number |
Score d'exploitabilité de Wiz |
Overwrite |
|
Sévérité |
String |
Sévérité du Wiz |
Overwrite |
|
Note d'impact |
Number |
Score d'impact du Wiz |
Overwrite |
|
État de la vulnérabilité |
String |
État de la vulnérabilité de Wiz |
Overwrite |
|
Gravité de l'EPSS |
String |
Sévérité du Wiz EPSS |
Overwrite |
|
Percentile EPSS |
Number |
Percentile Wiz EPSS |
Overwrite |
|
Probabilité EPSS |
Number |
Probabilité du EPSS Wiz |
Overwrite |
|
CNA Score |
Number |
Score Wiz CNA |
Overwrite |
Permissions
Champs d'application requis :
- lire:ressources
- lire:vulnérabilités
Détails de l'API
Liste des API utilisées
|
API Detail |
Method |
Endpoint |
API Scope |
|---|---|---|---|
|
Obtenir un jeton d'authentification |
PUBLIER |
/oauth/token |
Aucun |
|
Recherche d'applications |
PUBLIER |
/graphql |
– |
|
Récupérer les charges de travail |
PUBLIER |
/graphql |
Obtenir un jeton d'authentification
API endpoint: <Token URL>/oauth/token
Method: PUBLIER
Headers
|
Key |
Value |
|---|---|
|
accept |
application/json |
|
content-type |
application/x-www-form-urlencoded |
|
User-Agent |
netskope-ce-6.0.1-cre-wiz-v2.0.0 |
Body:
{
"grant_type": "client_credentials",
"audience": "wiz-api",
"client_id": client_id,
"client_secret": client_secret,
}
Sample API Response
{
"access_token": "eyJraWQiOiJEXC9ZNE1HUWE1UD….",
"refresh_token": "eyJjdHkiOiJKV1QiLCJM8D3lHiLgKNu50A….",
"expires_in": 86400,
"token_type": "Bearer"
}
Recherche d'applications
API endpoint: <Base URL>/graphql
Method: PUBLIER
Headers
|
Key |
Value |
|---|---|
|
Authorization |
Jeton porteur <Bearer Token> |
|
Accept |
application/json |
|
User-Agent |
netskope-ce-6.0.1-cre-wiz-v2.0.0 |
Body(GraphQL Query):
{
"query": "query Table($first: Int, $after: String, \
$filterBy: CloudResourceV2Filters) { cloudResourcesV2( \
first: $first after: $after filterBy: $filterBy ) \
{ nodes { id name type \
cloudAccount { externalId id } \
graphEntity { properties firstSeen \
lastSeen } } pageInfo { hasNextPage \
endCursor } } }",
"variables":{"first":500,"filterBy":{"type":{"equals":["BUCKET"]}}}
}
Sample API Response
{
"data": {
"cloudResourcesV2": {
"nodes": [
{
"id": "3d42d73c-91f2-5a42-9392-5a7efd509ce0",
"name": "ai-agent-demo-ct-logs-984186218765-us-east-2",
"type": "BUCKET",
"cloudAccount": {
"externalId": "984186218765",
"id": "12327889-2de2-581a-9263-24f9d2172a05"
},
"graphEntity": {
"properties": {
"_vertexID": "3d42d73c-91f2-5a42-9392-5a7efd509ce0",
"accessibleFrom.internet": false,
"atRestEncryption": true,
"cloudPlatform": "AWS",
"cloudProviderURL": "https://console.aws.amazon.com/s3/buckets/ai-agent-demo-ct-logs-984186218765-us-east-2?region=us-east-2",
"creationDate": "2026-01-28T12:40:02Z",
"dataRiskScore": 4,
"deploymentCoverage_cloudEvents_deploymentStatus": "NotCovered",
"deploymentCoverage_cloudEvents_isLastSeenInTheLastDay": false,
"deploymentCoverage_cloudEvents_isLastSeenInTheLastWeek": false,
"encrypted": true,
"encryptedAtRest": true,
"encryptionAlgorithms": "AES256",
"encryptionInTransit": false,
"externalId": "ai-agent-demo-ct-logs-984186218765-us-east-2",
"fullResourceName": null,
"hasSensitiveData": true,
"isPublic": false,
"loggingEnabled": false,
"maxExposureLevel": 0,
"name": "ai-agent-demo-ct-logs-984186218765-us-east-2",
"nativeType": "bucket",
"numAddressesOpenForHTTP": 0,
"numAddressesOpenForHTTPS": 0,
"numAddressesOpenForNonStandardPorts": 0,
"numAddressesOpenForRDP": 0,
"numAddressesOpenForSSH": 0,
"numAddressesOpenForWINRM": 0,
"openToAllInternet": false,
"providerUniqueId": "arn:aws:s3:::ai-agent-demo-ct-logs-984186218765-us-east-2",
"publicExposure": "PublicExposureInvalid",
"region": "us-east-2",
"regionLocation": "US",
"regionType": "BucketRegionTypeMultiRegion",
"resourceGroupExternalId": null,
"retentionPeriod": 0,
"sizeBytes": 280836,
"sizeGiB": 0,
"status": "Active",
"subscriptionExternalId": "984186218765",
"tags": {
"Name": "AI Agent Demo CloudTrail Bucket",
"Purpose": "Demo"
},
"updatedAt": "2026-01-29T20:56:09Z",
"versioningEnabled": false,
"webHostingEnabled": false,
"zone": null
},
"firstSeen": "2026-01-28T16:49:05.791776Z",
"lastSeen": "2026-01-29T20:56:07Z"
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "eyJmaWVsZHMiOlt7IkZp….."
}
}
}
}
Récupérer les charges de travail
API endpoint: <Base URL>/graphql
Method: PUBLIER
Headers
|
Key |
Value |
|---|---|
|
Authorization |
Jeton porteur <Bearer Token> |
|
Accept |
application/json |
|
User-Agent |
netskope-ce-6.0.1-cre-wiz-v2.0.0 |
Body(GraphQL Query):
{
"query": "query VulnerabilityFindingsPage($filterBy: VulnerabilityFindingFilters, \
$first: Int, $after: String) \
{ vulnerabilityFindings( filterBy: $filterBy \
first: $first after: $after ) \
{ nodes { id name score \
exploitabilityScore severity impactScore \
status cnaScore \
epssSeverity epssPercentile epssProbability \
CVSSSeverity vulnerableAsset \
{ ... on VulnerableAssetBase { \
id type name \
region cloudProviderURL \
cloudPlatform status \
subscriptionName subscriptionExternalId \
subscriptionId tags } \
... on VulnerableAssetVirtualMachine { \
operatingSystem \
ipAddresses } } } \
pageInfo { hasNextPage endCursor } }}",
"variables":{"first":500,"filterBy":{"updatedAt":{"after":"2026-01-21T09:21:43Z"}}}
}
Sample API Response
{
"data": {
"vulnerabilityFindings": {
"nodes": [
{
"id": "cbd8a235-da44-50d2-b794-8f95148627df",
"name": "CVE-2022-34903",
"score": 6.5,
"exploitabilityScore": 2.2,
"severity": "MEDIUM",
"impactScore": 4.2,
"status": "OPEN",
"epssSeverity": "HIGH",
"epssPercentile": 84.7,
"epssProbability": 2.4,
"cnaScore": 0,
"firstDetectedAt": "2022-12-07T02:29:45.544923Z",
"lastDetectedAt": "2026-01-28T18:50:51Z",
"description": "The package `gnupg2` version `2.0.22-5.amzn2.0.4` was detected in `YUM package manager` on a container image running `Amazon 2 (Karoo)` is vulnerable to `CVE-2022-34903`, which exists in versions `< 2.0.22-5.amzn2.0.5`.\n\nThe vulnerability was found in the [Official Amazon Linux Security Advisories](https://alas.aws.amazon.com/AL2/ALAS-2022-1834.html) with vendor severity: `Medium` ([NVD](https://nvd.nist.gov/vuln/detail/CVE-2022-34903) severity: `Medium`).\n\nThis vulnerability has a known exploit available. Source: [VulnCheck](http://www.openwall.com/lists/oss-security/2022/07/02/1).\n\nThe vulnerability can be remediated by updating the package to version `2.0.22-5.amzn2.0.5` or higher, by adding the following command to the Dockerfile: `RUN yum update gnupg2`.",
"CVEDescription": "GnuPG through 2.3.6, in unusual situations where an attacker possesses any secret-key information from a victim's keyring and other constraints (e.g., use of GPGME) are met, allows signature forgery via injection into the status line.",
"CVSSSeverity": "MEDIUM",
"vulnerableAsset": {
"id": "8b7026d8-6ab4-5519-9e09-2dee699bb572",
"type": "CONTAINER_IMAGE",
"name": "602401143452.dkr.ecr.us-east-1.amazonaws.com/amazon-k8s-cni@3b6db8b6",
"region": "us-east-1",
"cloudProviderURL": null,
"cloudPlatform": "AWS",
"status": "Active",
"subscriptionName": null,
"subscriptionExternalId": "602401143452",
"subscriptionId": "e644fdd8-9970-56a4-b285-44072d60a153",
"tags": {}
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "eyJmaWVsZHMiOlt7IkZpZWx…."
}
}
}
}
Matrice de performance
Ces relevés de performances ont été effectués sur une pile Large Cloud Exchange avec ces spécifications de VM en tirant 500k Applications/Workloads record each from the Wiz plugin.
| Description | Spécifications |
|---|---|
| Détails de la pile | Taille : LargeRAM : 32 GBCPU : 16 cœurs |
| Temps nécessaire pour stocker les enregistrements tirés de la demande. | ~ 25 minutes |
| Temps nécessaire pour stocker les enregistrements de la charge de travail tirés. | ~ 25 minutes |
Agent utilisateur
netskope-ce-6.0.1-cre-wiz-v2.0.0
Workflow
- Obtenez votre numéro de client et votre secret de client.
- Configurez le plugin Wiz.
- Configurez une règle de gestion.
- Configurer les actions.
- Validez le plugin.
Regardez une vidéo
Cliquer sur « play » pour regarder une vidéo.
Obtenez votre identifiant et votre secret client
Contactez l'équipe de support de Wiz pour obtenir l'ID et le secret du client.
Configurer le plugin Wiz
- Dans Cloud Exchange, allez sur Settings > Plugin Store. Recherchez et sélectionnez le plugin Wiz v2.0.0 (CRE).

- Ajoutez un nom de configuration et modifiez l'intervalle de synchronisation si nécessaire.

- Cliquez sur Suivant et entrez les paramètres de configuration :
- API Endpoint URL: URL du point de terminaison de l'API pour la plateforme Wiz en fonction du type de locataire.
Exemple : https://api.<TENANT_DATA_CENTER>.<ENVIRONMENT>. - Token URL: URL de jeton pour la plateforme Wiz basée sur le type de locataire afin de générer le jeton d’authentification.
Exemple : https://auth.app.wiz.io. - Client ID: ID du client de la plate-forme Wiz.
- Client Secret: Client Secret de la plateforme Wiz.
- Wiz Tables: Select les tables Wiz pour récupérer les données. Par défaut, seules les applications sont sélectionnées. Pour mapper des champs sous l'entité Charges de travail, les utilisateurs peuvent sélectionner Charges de travail.
- Initial Range(in days): Nombre de jours pour extraire les données sur les charges de travail pour l'exécution initiale. La valeur doit être comprise entre 0 et 2^62. Notez que cette plage initiale ne s'applique pas aux entités d'application.

- API Endpoint URL: URL du point de terminaison de l'API pour la plateforme Wiz en fonction du type de locataire.
- Cliquez sur Next et sélectionnez l'entité Applications dans la liste déroulante Entité. Fournir la cartographie du terrain selon vos exigences.
Note Si vous ne pouvez pas voir l'onglet Workloads sur la page Entity Sources, cliquez sur le bouton Previous et naviguez jusqu'à la page Configuration Parameters, vérifiez que le champ Wiz Tables contient les Workloads sélectionnés, puis revenez à la page Entity Sources.
- Pour créer un champ New, cliquez sur + Add Field.

- Fournissez l’étiquette de champ, le type de données et la stratégie d’agrégation selon vos besoins, puis cliquez Save.


- De même, mappez les champs de l'entité Workload, si vous souhaitez extraire les Workloads.



Note
- Le champ ID de la demande sera nécessaire pour extraire les demandes.
- Le champ Workload ID sera nécessaire pour extraire les charges de travail.
- Reportez-vous à la section Mappings avant de configurer le plugin.
- Faites défiler vers le haut et cliquez sur Save pour configurer le plugin.

Ajouter une règle de gestion de l'échange de risques pour Wiz
- Dans Risk Exchange, allez à Business Rules et cliquez sur Create New Rule.
- Saisissez le nom de la règle. Select l'entité pour les champs configurés pour le plugin Wiz, et configurez la requête en fonction de vos besoins. L'exemple ci-dessous filtre tous les xyz récupérés à partir du plugin Wiz.

- Cliquez sur Save.

Ajoutez des actions d'échange de risques pour Wiz
CRE Wiz prend en charge le type d'action suivant :
No Action
Aucune action ne sera effectuée pour cette action. Les utilisateurs peuvent générer des alertes UBA dans Ticket Orchestrator en utilisant cette action et en activant l'option Générer des alertes.
Remarque Vous pouvez effectuer les actions sur les applications/charges de travail extraites de Wiz sur le locataire Netskope. Pour effectuer les actions correspondantes sur Netskope, reportez-vous au guide du plugin Netskope Risk Exchange.
Steps to configure the Action
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select la règle de gestion, la configuration et l'action requises dans leurs listes déroulantes respectives.
- Activez la case à cocher Exiger l' approbation si une approbation est nécessaire avant d'effectuer une action sur les enregistrements tirés.
- Cliquez sur Save.


Valider le plugin Wiz
Valider dans Cloud Exchange
Pour valider le tirage :
- Dans Risk Exchange, allez sur Records. Select l'entité qui a été sélectionnée lors de la configuration de la correspondance des champs pour afficher les enregistrements tirés.


- Allez sur Logging et cherchez les logs relatifs à ce plugin.


- Lorsqu’un utilisateur correspond à l’une des règles métier configurées, l’action configurée est effectuée sur l’utilisateur. Cela peut être constaté dans Risk Exchange à Action Logs.

Dépannage du plugin Wiz
Impossible de configurer le plugin Wiz.
Si vous ne parvenez pas à configurer le plugin CRE Wiz, cela peut être dû à l'une des raisons suivantes :
- Fourni un identifiant et/ou un secret client incorrect.
- Les informations d'identification fournies ne disposent pas d'autorisations suffisantes.
- L'URL du jeton ou l'URL de la base fournie n'est pas valide ou est incorrecte.
What to do:
- Pour obtenir l'identifiant et le secret du client, suivez la documentation de Wiz.
- Pour accorder les autorisations appropriées au paramètre de configuration, reportez-vous à la documentation Wiz.
- Assurez-vous que vos informations d'identification sont valides pour l'URL de base et l'URL du jeton.
Impossible d'extraire des applications/charges de travail
Si vous ne parvenez pas à extraire des applications/charges de travail du plugin CRE Wiz, cela peut être dû à l'une des raisons suivantes :
- Aucune application/charge de travail n'est présente sur la plateforme Wiz.
- Une erreur est survenue lors du retrait d'une application de la plate-forme.
- Le mappage n'est pas ajouté lors de la configuration du plugin dans la page source de l'entité.
What to do:
- Vérifiez sur la plateforme Wiz si des applications existent ou non.
- Réception d'une erreur 500 : Le serveur est peut-être en panne, attendez un peu et vérifiez plus tard.
- Réception d'une erreur 403 : Le paramètre de configuration du plugin ne dispose pas d'autorisations suffisantes ou les informations d'identification n'existent plus. Vérifiez l'autorisation de l'ID du client et du secret du client.
- Réception d'une erreur 401 : Les informations d'identification fournies lors de la configuration du plugin n'existent plus. Vérifiez les informations d'identification et modifiez la configuration du plugin avec des informations d'identification valides si nécessaire.
- S'il n'y a pas d'erreur dans les journaux, il se peut que les applications ne soient pas disponibles sur la plate-forme à tirer. Vérifiez les applications disponibles sur Wiz et confirmez-les.
- Pour les applications, assurez-vous que le mappage est ajouté sous l'entité Applications et que le champ obligatoire "Application ID" est mappé lors de la configuration du plugin et pour les charges de travail, assurez-vous que le mappage est ajouté sous l'entité Charges de travail et que le champ obligatoire "Workload ID" est mappé lors de la configuration du plugin.
Impossible d'afficher les détails de la demande/charge de travail sur la page Enregistrements
Si vous ne parvenez pas à visualiser les détails de la demande/charge de travail dans le tableau des enregistrements, cela peut être dû à l'une des raisons mentionnées ci-dessous.
- Le mappage de tous les champs Wiz n'est pas fourni lors de la configuration du plugin CRE Wiz.
- Les applications/charges de travail extraites sont affichées dans une ligne avec des valeurs séparées par des virgules.
What to do:
- Veillez à fournir le mappage nécessaire lors de la configuration du plugin.
- Assurez-vous que les champs créés dans une entité sont conformes à la cartographie.
Impossible de trouver le Workload Entity Source lors de la configuration du plugin
Si vous ne parvenez pas à trouver Workload Entity Source lors de la configuration du plugin, cela peut être dû à une valeur incorrecte dans le champ Wiz Tables des paramètres de configuration.
What to do:
- Accédez aux paramètres de configuration.

- Vérifiez que les charges de travail sont ajoutées dans le champ Wiz Tables.

- Cliquez sur Next puis sur Save.
Erreur lors de l'activation du plugin après la mise à jour du plugin
Si l'utilisateur a mis à jour Wiz v2.0.0 à partir d'une version antérieure du plugin et a utilisé Skip lors de la mise à jour du plugin, il est possible qu'il observe l'erreur suivante :
01/29/2026 10:21:11 AM - error CRE Wiz [CRE Wiz]: Validation error occurred. 'Wiz Tables' is a required configuration parameter.
What to do:
- Dans Risk Exchange, allez à Plugins.
- Modifiez la configuration du plugin Wiz que vous souhaitez activer.
- Cliquez sur Next et accédez à la page Paramètres de configuration.
- Click Save to store the values of Wiz Tables and Initial Range (in days) fields.
- Activez maintenant le plugin.

