Ce document explique comment configurer le plugin Qualys v1.0.0 avec le module Risk Exchange de la plateforme Netskope Cloud Exchange. Ce plugin est utilisé pour récupérer les données sur les actifs de la page Gestion des actifs de cybersécurité > Inventory, les vulnérabilités des actifs de la page Détection de la gestion des vulnérabilités & Response > Vulnerabilities, les données sur les applications Web de la page Analyse des applications Web > Applications, et les conclusions sur les applications Web de la page Analyse des applications Web > Detections. Ce plugin prend également en charge les actions Add/Remove Asset Tag(s), Scan Assets et Add/Remove Web Application Tag(s).
Calcul du score de normalisation Netskope => 1000 - (Qualys Asset/Web Application Risk Score).
Conditions préalables
- 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 modules suivants sont activés sur Qualys :
- Gestion des actifs de cybersécurité (CSAM)
- Analyse des applications web (WAS)
- Gestion, détection et réponse aux vulnérabilités (VMDR)
- Agent Cloud (CA)
- Connectivité avec l'hôte suivant : https://qualysguard.qg3.apps.qualys.com/qglogin/index.html
Support du plugin Qualys
Ce plugin est utilisé pour récupérer les données sur les actifs de la page Gestion des actifs de cybersécurité > Inventory, les vulnérabilités des actifs de la page Détection de la gestion des vulnérabilités & Response > Vulnerabilities, les données sur les applications Web de la page Analyse des applications Web > Applications, et les conclusions sur les applications Web de la page Analyse des applications Web > Detections. Ce plugin prend également en charge les actions Add/Remove Asset Tag(s), Scan Assets et Add/Remove Web Application Tag(s).
Type of Data Pulled |
Actions |
|---|---|
Actifs Applications Web | Add/Remove Asset Tag(s) Scanner les actifs Ajouter/supprimer des balises d'application Web No Action |
Mises en correspondance
La cartographie sera utilisée pour visualiser les actifs ou les applications Web tirés 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. Voici les mappings suggérés à utiliser lors de la configuration du plugin.
Mappages d'extraction pour les actifs
|
Plugin Field |
Expected Datatype |
Suggested Field Name |
Suggested Aggregate Strategy |
Sample Value |
|---|---|---|---|---|
|
ID de l'actif |
String |
ID de l'actif |
Unique (Conservez cette option Ecraser si vous souhaitez fusionner des enregistrements avec des enregistrements provenant du plugin Netskope Risk Exchange) |
1035748148 |
|
ID de l'hôte |
String |
ID de l'hôte |
Overwrite |
572072142 |
|
Numéro de série |
String |
Numéro de série |
Écraser |
VMware-42 12 5b fc 5c fa 1a 6b-8a 84 be 65 a7 02 f6 53 |
|
Score de risque |
Number |
Score de risque |
Overwrite |
N'importe quelle valeur entre 0 et 1000 |
|
Score de risque normalisé de Netskope |
Number |
Score de risque normalisé de Netskope |
Overwrite |
N'importe quelle valeur entre 0 et 1000 |
|
Score de criticité |
Number |
Score de criticité |
Overwrite |
De 1 à 5 |
|
Tags |
List |
Tags |
Overwrite |
Tag1, Tag2, Tag3 |
|
Type d'actif |
String |
Type d'actif |
Overwrite |
HOST |
|
Adresse IP |
String |
Adresse IP |
Overwrite |
10.50.9.73 |
|
DNS Name |
String |
DNS Name |
Overwrite |
ub22-50-9-73 |
|
Nom de l'actif |
String |
Nom de l'actif |
Overwrite |
ub22-50-9-73 |
|
BIOS Asset Tag |
String |
BIOS Asset Tag |
Overwrite |
BiosTag |
|
Utilisateurs |
List |
Utilisateurs |
Overwrite |
root, serviceuser, devuser |
|
Ports ouverts |
List |
Ports ouverts |
Overwrite |
8080, 9090, 10010 |
|
Interfaces réseau Adresse IPv4 |
List |
Interfaces réseau Adresse IPv4 |
Overwrite |
100.65.0.2, 10.50.9.73 |
|
Interfaces réseau Adresse IPv6 |
List |
Interfaces réseau Adresse IPv6 |
Overwrite |
fe80:0:0:0:a0:bded:7c67:d862, fe80:0:0:0:aede:48ff:fe00:1122 |
|
Interfaces réseau Adresse Mac |
List |
Interfaces réseau Adresse Mac |
Overwrite |
00:50:56:92:4f:14, 66:36:c1:6e:7c:30 |
|
domaine |
List |
domaine |
Overwrite |
ec.local |
|
Sous-domaine |
List |
Sous-domaine |
Overwrite |
ec.local |
|
OS |
String |
OS |
Overwrite |
Ubuntu Linux 20.04.6 |
|
QID de vulnérabilité |
String |
QID de vulnérabilité |
Append |
115284 |
|
Identifiant unique de vulnérabilité |
String |
Identifiant unique de vulnérabilité |
Append |
6943986864 |
|
Type de vulnérabilité |
String |
Type de vulnérabilité |
Append |
Potentiel ou confirmé |
|
Gravité de la vulnérabilité |
Number |
Gravité de la vulnérabilité |
Append |
De 1 à 5 |
|
Est SSL |
Number |
Est SSL |
Append |
1 ou 0 |
|
État de la vulnérabilité |
String |
État de la vulnérabilité |
Append |
Actif, New, Réouvert, Corrigé |
|
Score QDS de vulnérabilité |
String |
Score QDS de vulnérabilité |
Append |
Bas, Moyens, Hauts, critiques |
|
Catégorie de vulnérabilité |
String |
Catégorie de vulnérabilité |
Append |
Politique de sécurité |
|
Peut être réparé |
Number |
Peut être réparé |
Append |
Yes or No |
|
Product |
String |
Product |
Append |
openssh |
|
Vendor |
String |
Vendor |
Append |
openbsd |
|
ID CVE |
String |
ID CVE |
Append |
CVE-2024-6387 |
|
Score CVSS de base |
Number |
Score CVSS de base |
Append |
5.5 |
|
Score CVSS temporel |
Number |
Score CVSS temporel |
Append |
4.5 |
Mappings pull pour les applications web
|
Plugin Field |
Expected Datatype |
Suggested Field Name |
Suggested Aggregate Strategy |
Sample Value |
|---|---|---|---|---|
|
ID de l'application Web |
String |
ID de l'application Web |
Unique |
1043082757 |
|
Nom de l'application Web |
String |
Nom de l'application Web |
Overwrite |
Application de gestion des utilisateurs |
|
URL de l'application Web |
String |
URL de l'application Web |
Overwrite |
https://userapp.com |
|
Score de risque |
Number |
Score de risque |
Overwrite |
N'importe quelle valeur entre 0 et 1000 |
|
Score de risque normalisé de Netskope |
Number |
Score de risque normalisé de Netskope |
Overwrite |
N'importe quelle valeur entre 0 et 1000 |
|
Tags |
List |
Tags |
Overwrite |
Tag1, Tag2, Tag3 |
|
Trouver un QID |
String |
Trouver un QID |
Append |
150176 |
|
Type de recherche |
String |
Type de recherche |
Append |
VULNERABILITE, INFORMATIONS GATHERISEES, CONTENU SENSIBLE |
|
Potential |
String |
Potential |
Append |
False |
|
Recherche Score de détection |
Number |
Recherche Score de détection |
Append |
55 |
|
Détermination de la gravité |
Number |
Détermination de la gravité |
Append |
De 1 à 5 |
|
État de la recherche |
String |
État de la recherche |
Append |
Actif, New, Réouvert, Corrigé |
|
Peut être réparé |
String |
Peut être réparé |
Append |
Yes or No |
|
Score CVSS de base |
Number |
Score CVSS de base |
Append |
5.5 |
|
Score CVSS temporel |
Number |
Score CVSS temporel |
Append |
4.5 |
|
Score CVSS3 de base |
Number |
Score CVSS3 de base |
Append |
6.5 |
|
Score CVSS3 temporel |
Number |
Score CVSS3 temporel |
Append |
5.0 |
Note
- Le score de risque normalisé pour les deux entités sera calculé sur la base du champ Score de risque. Calcul du score de normalisation Netskope => 1000 - (Qualys Asset/Web Application Risk Score).
- Les utilisateurs peuvent fusionner les enregistrements d'actifs entre Netskope Tenant et Qualys en conservant le numéro de série comme champ commun et unique entre les deux plugins.
Permissions
- Vous devez avoir un rôle de gestionnaire, avec l'option Autoriser l'utilisateur à disposer de toutes les permissions et l'option Étendue cochée.
- Pour les autorisations au niveau du module, vous pouvez créer un rôle personnalisé avec le module suivant, puis attribuer ce rôle personnalisé à l'utilisateur :
- Vulnerability Management (VM / VMDR): Nécessaire pour télécharger les statuts de détection des hôtes, évaluer les scores de détection Qualys (QDS) et interroger la base de connaissances sur les vulnérabilités.
- Web Application Scanning (WAS): Nécessaire pour rechercher les profils d'applications web configurés, récupérer les résultats d'applications spécifiques et mettre à jour les configurations d'applications web telles que les injections d'en-tête.
- CyberSecurity Asset Management (CSAM) and Asset Management: Nécessaire pour lire ou modifier l'inventaire de l'entreprise, effectuer des requêtes sur l'inventaire global des actifs informatiques et gérer des taxonomies d'étiquettes dynamiques.
- Cloud Agent (CA): Nécessaire pour interagir avec l'architecture de l'agent et lancer des analyses à la demande.
- Tagging: Nécessaire pour créer, ajouter ou supprimer des balises.
Note
Pour plus d'informations sur les autorisations au niveau du module, contactez l'équipe d'assistance Qualys.
Détails de l'API
Liste des API utilisées
| API Endpoint | Method | Use case |
|---|---|---|
| /auth | PUBLIER | Générer un jeton d'accès |
| /rest/2.0/search/am/asset | PUBLIER | Récupérer tous les actifs |
| /qps/rest/3.0/search/was/webapp | PUBLIER | Récupérer toutes les applications web |
| /api/5.0/fo/asset/host/vm/detection/ | PUBLIER | Récupérer l'identifiant de la vulnérabilité de l'actif |
| /qps/rest/3.0/search/was/finding | PUBLIER | Récupérer l'identifiant de recherche de l'application web |
| /api/4.0/fo/knowledge_base/vuln/ | PUBLIER | Obtenir des informations sur la vulnérabilité/la recherche |
| /qps/rest/2.0/search/am/tag | PUBLIER | Fetch all tags |
| /qps/rest/2.0/create/am/tag | PUBLIER | Create tag |
| /qps/rest/2.0/update/am/hostasset | POSt | Ajouter une balise à l'actif |
| /qps/rest/2.0/update/am/hostasset | POSt | Retirer l'étiquette du bien |
| /qps/rest/3.0/update/was/webapp/<web_app_id> | PUBLIER | Ajouter une balise à l'application web |
| /qps/rest/3.0/update/was/webapp/<web_app_id> | PUBLIER | Supprimer la balise de l'application web |
| /qps/rest/1.0/ods/ca/agentasset | PUBLIER | Lancer à la demande Scanner sur l'actif |
Générer un jeton d'accès
Endpoint: POST /auth
Headers
| Key | Value |
|---|---|
| Content-Type | application/x-www-form-urlencoded |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
| Key | Value |
|---|---|
| nom d'utilisateur | <username><nom d'utilisateur> |
| password | <password> |
| jeton | Vrai |
Sample Response
eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuZXRzazNnZSIsImxvZ2luUmVzcG9uc2UiOiJTVUNDRVNTRlVMIiwiaXNzIjoicWFzIiwiaXBBZGRyZXNzIjoiNDkuNDcuMTYuOCIsInBvcnRhbFVzZXJJZCI6NDQyNDI1ODUsInVzZXJ0eXBlIjoiZm8iLCJxd2ViVXNlcklkIjo4NjI3OTY2LCJhdWQiOiJxYXMiLCJjdXN0b21lclV1aWQiOiJhOTQ3OGVlZi05OTA1LWY1ODMtODNkZS0yOTc1MWQ1Njc4ZTIiLCJtb2R1bGVzQWxsb3dlZCI6WyJBU1NFVCBJTlZFTlRPUlkiLCJFQzIiLCJLQlgiLCJSRVBPUlQgQ0VOVEVSIiwiU1dDQSIsIkFETUlOIiwiQ0VSVFZJRVciLCJRV0VCX1ZNIiwiQ09OVElOVU9VUyBNT05JVE9SSU5HIiwiRlJFRSBBR0VOVCIsIlBDIEFHRU5UIiwiUEMgU0NBTk5FUiIsIlNFQ1VSRUNPTkZJRyIsIlVEIiwiVk0iLCJBU1NFVF9NQU5BR0VNRU5UIiwiUFMiLCJDTE9VRFZJRVciLCJHTE9CQUxfQUlfQ01EQl9TWU5DIiwiUE0iLCJQT1JUQUwgVEFHR0lORyIsIlNDQU4gQlkgSE9TVE5BTUUiLCJTRU0iLCJBR0VOVF9Td0NBIiwiQ09OVEFJTkVSX1NFQ1VSSVRZIiwiTURTIiwiUEMiLCJRR1MiLCJTQ0FfQUdFTlQiLCJTTSIsIlVOSUZJRURfREFTSEJPQVJEIiwiVkxBTiIsIlZNIEFHRU5UIiwiSVRBTSIsIlBDSSIsIlFXRUJfUEMiLCJUSFJFQVQgUFJPVEVDVCIsIlZJUlRVQUwgU0NBTk5FUiIsIldBUyIsIkFQSSIsIkNBIiwiQ0VSVF9WSUVXIiwiQ00iLCJDUyIsIlBBU1NJVkVfU0NBTk5FUiIsIlZNIFNDQU5ORVIiXSwiY3VzdG9tZXJJZCI6MjEzNTYzMiwic2Vzc2lvbkV4cGlyYXRpb24iOiI2MCIsInVzZXJVdWlkIjoiODljZmU2NjEtNTIxZi1lYjFkLTgzYzUtMTE4ZjU2YjE1MjgyIiwic3Vic2NyaXB0aW9uVXVpZCI6ImE5NDc4ZWVmLTk5MDUtZjU4My04M2RlLTI5NzUxZDU2NzhlMiIsImV4cCI6MTc2NzA5MzgzOSwiaXNUZ3RFeHBpcmVkIjoidHJ1ZSIsImp3dEV4cGlyeU1pbnV0ZSI6IjI0MCIsInN1YnNjcmlwdGlvbklkIjo4OTg1NjI0LCJ0b2tlblR5cGUiOiJiYXNpYyIsImlhdCI6MTc2NzA3OTQzOSwianRpIjoiVEdUMTk4MDgxMS1FS01KT3l0VktMYkZNUURBcFVQWnNzdEtidUNCTEpXWW1JUXRScUJwcEticFh2c2lpZkhYUllNZWRGaHhTQ213LXFhcy03N2I3YmY4YzVkLXE1bHRqIn0.45_IeJBPMDpwXciCxJby1OUraRkztNs1glbdr7DHjhvN6rCxr9Dq3eewja-uL4ORyDHONEN8ge8mWQU4sqqKCQ
Récupérer tous les actifs
Endpoint: POST <gateway_url>/rest/2.0/search/am/asset
Headers
| Key | Value |
|---|---|
| Accept | application/json |
| Content-Type | application/json |
| Authorization | Bearer <access_token> |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Query Parameters
| Key | Value | Description |
|---|---|---|
| pageSize | 300 | Taille de la réponse de l'API |
| lastSeenAssetId | 1035748148 | Dernier identifiant de bien reçu de la réponse API précédente pour la recherche de la page suivante |
Request Body
{
"filters": [
{
"field": "asset.lastUpdatedDate",
"operator": "GREATER",
"value": "2026-02-03T11:19:44Z"
}
]
}
Sample Response
{
"responseMessage": "Valid API Access",
"count": 1,
"responseCode": "SUCCESS",
"lastSeenAssetId": 1035748148,
"hasMore": 1,
"assetListData": {
"asset": [
{
"assetId": 1035748148,
"assetUUID": "875eb84c-bf37-4dae-b2ee-484ffd4c23e5",
"hostId": 572072142,
"lastModifiedDate": "2026-01-18T15:56:06.000Z",
"agentId": "875eb84c-bf37-4dae-b2ee-484ffd4c23e5",
"createdDate": "2025-12-15T13:29:52.000Z",
"sensorLastUpdatedDate": "2026-01-18T15:56:06.000Z",
"assetType": "HOST",
"address": "10.50.9.73",
"dnsName": "ub22-50-9-73",
"assetName": "ub22-50-9-73",
"netbiosName": null,
"timeZone": "+05:30",
"biosDescription": "Phoenix Technologies LTD 6.00 12/12/2018",
"lastBoot": "2026-01-02T07:47:28.000Z",
"totalMemory": 9906,
"cpuCount": 6,
"lastLoggedOnUser": "root",
"domainRole": null,
"hwUUID": "fc5b1242-fa5c-6b1a-8a84-be65a702f653",
"biosSerialNumber": "VMware-42 12 5b fc 5c fa 1a 6b-8a 84 be 65 a7 02 f6 53",
"biosAssetTag": "No Asset Tag",
"isContainerHost": true,
"operatingSystem": {
"osName": "Ubuntu Linux 22.04.5",
"fullName": "Canonical Ubuntu Jammy Jellyfish (22.04.5 LTS)",
"category": "Linux / Unidentified",
"category1": "Linux",
"category2": "Unidentified",
"productName": "Ubuntu",
"publisher": "Canonical",
"edition": null,
"marketVersion": "Jammy Jellyfish",
"version": "22.04 LTS",
"update": "22.04 LTS 22.04.5 LTS",
"architecture": "x86_64",
"lifecycle": {
"gaDate": "2022-04-21T00:00:00.000Z",
"eolDate": "2027-04-30T00:00:00.000Z",
"eosDate": "2027-04-30T00:00:00.000Z",
"stage": "GA",
"lifeCycleConfidence": "Exact",
"eolSupportStage": "End of Standard Support",
"eosSupportStage": "End of Standard Support",
"detectionScore": 0
},
"taxonomy": {
"id": null,
"name": "Linux / Unidentified",
"category1": "Linux",
"category2": "Unidentified"
},
"productUrl": ",,",
"productFamily": null,
"installDate": "2022-05-13T16:34:48.000Z",
"release": "22.04.5",
"cpeId": null,
"cpe": "cpe:2.3:o:canonical:ubuntu_linux:22.04:*:*:*:lts:*:*:*",
"cpeType": "NIST"
},
"hardware": {
"fullName": "VMware VMware Virtual Platform VMware Virtual Platform",
"category": "Virtualized / Virtual Machine",
"category1": "Virtualized",
"category2": "Virtual Machine",
"manufacturer": "VMware",
"productName": "VMware Virtual Platform",
"model": "VMware Virtual Platform",
"lifecycle": {
"introDate": null,
"gaDate": null,
"eosDate": null,
"obsoleteDate": null,
"stage": "Unknown",
"lifeCycleConfidence": " "
},
"taxonomy": {
"id": null,
"name": "Virtualized / Virtual Machine",
"category1": "Virtualized",
"category2": "Virtual Machine"
},
"productUrl": ",,",
"productFamily": null
},
"userAccountListData": {
"userAccount": [
{
"name": "root"
},
{
"name": "devuser"
}
]
},
"openPortListData": {
"openPort": [
{
"port": 39956,
"description": "",
"protocol": "UDP",
"detectedService": "stagentsvc",
"firstFound": "2026-01-16T14:07:37.000Z",
"lastUpdated": "2026-01-16T14:07:37.000Z",
"authorization": null,
"detectionScore": null,
"discoverySources": "Cloud Agent"
},
{
"port": 50212,
"description": "",
"protocol": "UDP",
"detectedService": "stagentsvc",
"firstFound": "2026-01-16T14:07:37.000Z",
"lastUpdated": "2026-01-16T14:07:37.000Z",
"authorization": null,
"detectionScore": null,
"discoverySources": "Cloud Agent"
}
]
},
"volumeListData": {
"volume": [
{
"name": "/run/lock",
"free": 5242880,
"size": 5242880
}
]
},
"networkInterfaceListData": {
"networkInterface": [
{
"hostname": "ub22-50-9-73",
"addressIpV4": "100.65.0.2",
"addressIpV6": null,
"macAddress": "00-00-00-00-00-00",
"interfaceName": "sta0",
"dnsAddress": "10.0.1.94, 10.0.1.99",
"gatewayAddress": "10.50.0.1",
"manufacturer": "Xerox",
"macVendorIntroDate": 968371200000,
"netmask": null,
"addresses": null
},
{
"hostname": "ub22-50-9-73",
"addressIpV4": "10.50.9.73",
"addressIpV6": null,
"macAddress": "00:50:56:92:4f:14",
"interfaceName": "ens160",
"dnsAddress": "10.0.1.94, 10.0.1.99",
"gatewayAddress": "10.50.0.1",
"manufacturer": "VMware",
"macVendorIntroDate": 946944000000,
"netmask": null,
"addresses": null
},
{
"hostname": "ub22-50-9-73",
"addressIpV4": "192.168.250.1",
"addressIpV6": null,
"macAddress": "8e:bd:6e:0a:b8:14",
"interfaceName": "docker0",
"dnsAddress": "10.0.1.94, 10.0.1.99",
"gatewayAddress": "10.50.0.1",
"manufacturer": null,
"macVendorIntroDate": null,
"netmask": null,
"addresses": null
}
]
},
"softwareListData": {
"software": [
{
"id": 8052815498819100064,
"discoverySources": "Cloud Agent, Cloud Agent",
"fullName": "printer-driver-m2300w 0.51-15build1",
"softwareType": "Others",
"isIgnored": true,
"ignoredReason": "Device Drivers",
"category": "Unknown / Unknown",
"category1": "Unknown",
"category2": "Unknown",
"productName": "Unknown",
"component": null,
"publisher": "Unknown",
"edition": null,
"marketVersion": null,
"version": "0.51-15build1",
"update": "0.51-15build1",
"architecture": null,
"installDate": null,
"installPath": null,
"lastUpdated": "2026-01-17T07:14:32.000Z",
"lastUseDate": null,
"language": null,
"formerlyKnownAs": null,
"isPackage": false,
"isPackageComponent": false,
"packageName": null,
"productUrl": null,
"lifecycle": {
"gaDate": null,
"eolDate": null,
"eosDate": null,
"stage": "Unknown",
"lifeCycleConfidence": null,
"eolSupportStage": null,
"eosSupportStage": null,
"detectionScore": null
},
"supportStageDesc": null,
"license": {
"category": null,
"subcategory": null
},
"authorization": null,
"discoveredPublisher": null,
"discoveredName": "printer-driver-m2300w",
"discoveredVersion": "0.51-15build1",
"authorizationDetectionScore": null,
"cpeId": null,
"cpe": null,
"cpeType": null,
"softwareInstances": null
}
]
},
"softwareComponent": null,
"provider": null,
"cloudProvider": null,
"agent": {
"version": "7.2.3.8",
"configurationProfile": "NetskopeProfile1",
"activations": [
{
"key": "dc679ede-14e6-4847-b785-9c266f4d4082",
"status": "ACTIVE"
}
],
"connectedFrom": "163.116.213.162",
"lastActivity": 1768602133000,
"lastCheckedIn": 1768634073000,
"lastInventory": 1768572511000,
"udcManifestAssigned": false,
"errorStatus": false
},
"sensor": {
"activatedForModules": [
"VM",
"SCA",
"SwCA"
],
"pendingActivationForModules": [],
"lastVMScan": 1768634071000,
"lastComplianceScan": 1768522200000,
"lastFullScan": 1768634071000,
"lastVmScanDateScanner": 0,
"lastVmScanDateAgent": 1768634071000,
"lastPcScanDateScanner": 0,
"lastPcScanDateAgent": 1768522200000,
"firstEasmScanDate": null,
"lastEasmScanDate": null
},
"container": {
"product": "DOCKER",
"version": "28.2.2",
"noOfContainers": 1,
"noOfImages": 20,
"hasSensor": true
},
"inventory": {
"source": "QAGENT",
"created": 1765805392000,
"lastUpdated": 1768634073000
},
"inventoryListData": {
"inventory": [
{
"source": "Cloud Agent",
"created": 1765805391000,
"lastUpdated": 1768634072000
}
]
},
"activity": {
"source": "QAGENT",
"lastScannedDate": 1768634073000
},
"tagList": {
"tag": [
{
"tagId": 82163802,
"tagName": "UbuntuLinux",
"foregroundColor": 0,
"backgroundColor": -16711681,
"businessImpact": null,
"criticalityScore": null
},
{
"tagId": 82539085,
"tagName": "VirtualMachine",
"foregroundColor": 0,
"backgroundColor": 0,
"businessImpact": null,
"criticalityScore": null
}
]
},
"serviceList": {
"service": [
{
"description": null,
"name": "docker.service",
"status": "loaded/active/running"
}
]
},
"lastLocation": {
"city": "Mumbai",
"state": "Maharashtra",
"country": "India",
"name": "Mumbai, Maharashtra - India",
"continent": "Asia",
"postal": "400017"
},
"criticality": {
"default": true,
"score": 2,
"isDefault": true,
"lastUpdated": null
},
"businessInformation": null,
"assignedLocation": null,
"businessAppListData": null,
"riskScore": 327,
"passiveSensor": null,
"domain": null,
"subdomain": null,
"missingSoftware": [],
"whois": null,
"organizationName": null,
"isp": null,
"asn": null,
"easmTags": null,
"hostingCategory1": null,
"customAttributes": null,
"lparId": null,
"processor": {
"description": "Intel(R) Xeon(R) Bronze 3106 CPU @ 1.70GHz",
"speed": 1700,
"numCPUs": 6,
"noOfSocket": 3,
"threadsPerCore": 1,
"coresPerSocket": 2,
"multithreadingStatus": "DISABLED"
}
}
]
}
}
Récupérer toutes les applications web
Endpoint: POST /qps/rest/3.0/search/was/webapp
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Headers
| Key | Value |
|---|---|
| Accept | application/json |
| Content-Type | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
{
"ServiceRequest": {
"preferences": {
"limitResults": 1000,
"startFromOffset": 1,
"verbose": true
},
"filters": {
"Criteria": [
{
"field": "updatedDate",
"operator": "GREATER",
"value": "2026-02-01T12:00:00Z"
}
]
}
}
}
Sample Response
{
"ServiceResponse": {
"lastId": 1043082757,
"data": [
{
"WebApp": {
"updatedDate": "2026-02-26T13:10:24Z",
"id": 1044849387,
"riskScore": 41,
"createdDate": "2025-12-30T09:49:50Z",
"name": "Netskope App",
"tags": {
"count": 4,
"list": [
{
"Tag": {
"id": 84663143,
"name": "WebAppTag1"
}
},
{
"Tag": {
"id": 84664135,
"name": "WebAppTag2"
}
},
]
},
"url": "https://plugin.xo.je",
"owner": {
"id": 44242585
}
}
}
],
"responseCode": "SUCCESS",
"count": 1,
"hasMoreRecords": "true"
}
}
Récupérer l'identifiant de la vulnérabilité de l'actif
Endpoint: POST /api/5.0/fo/asset/host/vm/detection
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Headers
| Key | Value |
|---|---|
| Content-Type | application/x-www-form-urlencoded |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
| Key | Value | Description |
|---|---|---|
| action | list | – |
| ids | Host_id1, host_id2 | ID de l'hôte de l'actif |
| show_qds | 1 | – |
| detection_updated_since | 2026-02-24T12:00:00Z | Filtre temporel |
Sample Response
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KNOWLEDGE_BASE_VULN_LIST_OUTPUT SYSTEM "https://qualysapi.qg3.apps.qualys.com/api/4.0/fo/knowledge_base/vuln/knowledge_base_vuln_list_output.dtd">
<!-- This report was generated with an evaluation version of Qualys //-->
<KNOWLEDGE_BASE_VULN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2026-02-27T05:11:48Z</DATETIME>
<VULN_LIST>
<VULN>
<QID>115284</QID>
<VULN_TYPE>Potential Vulnerability</VULN_TYPE>
<SEVERITY_LEVEL>2</SEVERITY_LEVEL>
<TITLE>
<![CDATA[IP Forwarding Enabled]]>
</TITLE>
<CATEGORY>Local</CATEGORY>
<LAST_SERVICE_MODIFICATION_DATETIME>2026-01-30T16:00:19Z</LAST_SERVICE_MODIFICATION_DATETIME>
<PUBLISHED_DATETIME>2005-09-29T07:00:00Z</PUBLISHED_DATETIME>
<CODE_MODIFIED_DATETIME>2005-09-29T07:00:00Z</CODE_MODIFIED_DATETIME>
<PATCHABLE>0</PATCHABLE>
<SOFTWARE_LIST>
<SOFTWARE>
<PRODUCT>
<![CDATA[None]]>
</PRODUCT>
<VENDOR>
<![CDATA[none]]>
</VENDOR>
</SOFTWARE>
</SOFTWARE_LIST>
<CVE_LIST>
<CVE>
<ID>
<![CDATA[CVE-1999-0511]]>
</ID>
<URL>
<![CDATA[http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0511]]>
</URL>
</CVE>
</CVE_LIST>
<DIAGNOSIS>
<![CDATA[If this machine is not a router or a firewall, then IP forwarding should not be activated.<P>Note: Disabling IP Forward on containers and/or Kubernetes hosts may cause issues and may not be applicable.]]>
</DIAGNOSIS>
<CONSEQUENCE>
<![CDATA[If this machine is not intended to be a router, then it may allow a malicious user to access your internal network.]]>
</CONSEQUENCE>
<SOLUTION>
<![CDATA[Disable IP forwarding by following the appropriate instructions below: <UL><LI>On Windows set the value of the following registry key to zero: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter<LI>On Linux, insert this line in your startup script: "sysctl -w net.ipv4.ip_forward=0"<LI>On Solaris, HP-UX insert this line in your startup script: "ndd -set /dev/ip ip_forwarding 0"<LI>On Mac OS X, insert this line in your startup script: "sysctl -w net.inet.ip.forwarding=0"</UL>]]>
</SOLUTION>
<CVSS>
<BASE>7.5</BASE>
<TEMPORAL>6.0</TEMPORAL>
<VECTOR_STRING>CVSS:2.0/AV:N/AC:L/Au:N/C:P/I:P/A:P/E:U/RL:W/RC:C</VECTOR_STRING>
<ACCESS>
<VECTOR>3</VECTOR>
<COMPLEXITY>1</COMPLEXITY>
</ACCESS>
<IMPACT>
<CONFIDENTIALITY>2</CONFIDENTIALITY>
<INTEGRITY>2</INTEGRITY>
<AVAILABILITY>2</AVAILABILITY>
</IMPACT>
<AUTHENTICATION>1</AUTHENTICATION>
<EXPLOITABILITY>1</EXPLOITABILITY>
<REMEDIATION_LEVEL>3</REMEDIATION_LEVEL>
<REPORT_CONFIDENCE>3</REPORT_CONFIDENCE>
</CVSS>
<PCI_FLAG>1</PCI_FLAG>
<THREAT_INTELLIGENCE>
<THREAT_INTEL id="5">
<![CDATA[Easy_Exploit]]>
</THREAT_INTEL>
<THREAT_INTEL id="8">
<![CDATA[No_Patch]]>
</THREAT_INTEL>
<THREAT_INTEL id="14">
<![CDATA[Unauthenticated_Exploitation]]>
</THREAT_INTEL>
</THREAT_INTELLIGENCE>
<DISCOVERY>
<REMOTE>1</REMOTE>
<AUTH_TYPE_LIST>
<AUTH_TYPE>Unix</AUTH_TYPE>
</AUTH_TYPE_LIST>
</DISCOVERY>
</VULN>
</VULN_LIST>
</RESPONSE>
</KNOWLEDGE_BASE_VULN_LIST_OUTPUT>
<!-- This report was generated with an evaluation version of Qualys //-->
<!-- CONFIDENTIAL AND PROPRIETARY INFORMATION. Qualys provides it's Service "As Is," without any warranty of any kind. Qualys makes no warranty that the information contained in this report is complete or error-free. Copyright 2026, Qualys, Inc. //-->
Récupérer les résultats d'une application web
Endpoint: POST /qps/rest/3.0/search/was/finding
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Headers
| Key | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
{
"ServiceRequest": {
"preferences": {
"limitResults": 1000,
"startFromOffset": 1
},
"filters": {
"Criteria": [
{
"field": "lastDetectedDate",
"operator": "GREATER",
"value": "2026-02-24T10:53:40Z"
},
{
"field": "webApp.id",
"operator": "IN",
"value": "id1,id2,id3"
}
]
}
}
}
Sample Response
{
"ServiceResponse": {
"responseCode": "SUCCESS",
"count": 34,
"data": [
{
"Finding": {
"webApp": {
"name": "Netskope App",
"id": 1044849387,
"url": "https://plugin.xo.je"
},
"potential": "false",
"lastDetectedDate": "2025-12-30T10:53:38Z",
"qid": 150497,
"name": "Progressive scan completely crawled and tested the website",
"lastTestedDate": "2025-12-30T10:53:38Z",
"firstDetectedDate": "2025-12-30T10:53:38Z",
"uniqueId": "06a187a3-ceae-435f-befd-0cd38f158ea8",
"type": "INFORMATION_GATHERED",
"findingType": "QUALYS",
"severity": "1",
"id": 18181479,
"detectionScore": 0
}
},
{
"Finding": {
"timesDetected": 3,
"webApp": {
"name": "Netskope App",
"id": 1044849387,
"url": "https://plugin.xo.je"
},
"status": "ACTIVE",
"potential": "false",
"lastDetectedDate": "2025-12-30T10:53:38Z",
"url": "http://plugin.xo.je/",
"qid": 150263,
"name": "Insecure Transport",
"lastTestedDate": "2025-12-30T10:53:38Z",
"firstDetectedDate": "2025-12-30T09:58:23Z",
"uniqueId": "a916d560-163b-4d13-800c-2c85d152f026",
"type": "VULNERABILITY",
"findingType": "QUALYS",
"isIgnored": "false",
"severity": "3",
"id": 38761268,
"detectionScore": 55
}
}
],
"hasMoreRecords": "false"
}
}
Obtenir des informations sur la vulnérabilité/la recherche
Endpoint: POST /api/4.0/fo/knowledge_base/vuln/
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Headers
| Key | Value |
|---|---|
| Content-Type | application/x-www-form-urlencoded |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
| Key | Value | Description |
|---|---|---|
| action | list | – |
| details | all | – |
| ids | id1,id2 | QID de la vulnérabilité de l'actif ou de la découverte de l'application web |
Sample Response
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KNOWLEDGE_BASE_VULN_LIST_OUTPUT SYSTEM "https://qualysapi.qg3.apps.qualys.com/api/4.0/fo/knowledge_base/vuln/knowledge_base_vuln_list_output.dtd">
<!-- This report was generated with an evaluation version of Qualys //-->
<KNOWLEDGE_BASE_VULN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2026-02-27T05:11:48Z</DATETIME>
<VULN_LIST>
<VULN>
<QID>115284</QID>
<VULN_TYPE>Potential Vulnerability</VULN_TYPE>
<SEVERITY_LEVEL>2</SEVERITY_LEVEL>
<TITLE>
<![CDATA[IP Forwarding Enabled]]>
</TITLE>
<CATEGORY>Local</CATEGORY>
<LAST_SERVICE_MODIFICATION_DATETIME>2026-01-30T16:00:19Z</LAST_SERVICE_MODIFICATION_DATETIME>
<PUBLISHED_DATETIME>2005-09-29T07:00:00Z</PUBLISHED_DATETIME>
<CODE_MODIFIED_DATETIME>2005-09-29T07:00:00Z</CODE_MODIFIED_DATETIME>
<PATCHABLE>0</PATCHABLE>
<SOFTWARE_LIST>
<SOFTWARE>
<PRODUCT>
<![CDATA[None]]>
</PRODUCT>
<VENDOR>
<![CDATA[none]]>
</VENDOR>
</SOFTWARE>
</SOFTWARE_LIST>
<CVE_LIST>
<CVE>
<ID>
<![CDATA[CVE-1999-0511]]>
</ID>
<URL>
<![CDATA[http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0511]]>
</URL>
</CVE>
</CVE_LIST>
<DIAGNOSIS>
<![CDATA[If this machine is not a router or a firewall, then IP forwarding should not be activated.<P>Note: Disabling IP Forward on containers and/or Kubernetes hosts may cause issues and may not be applicable.]]>
</DIAGNOSIS>
<CONSEQUENCE>
<![CDATA[If this machine is not intended to be a router, then it may allow a malicious user to access your internal network.]]>
</CONSEQUENCE>
<SOLUTION>
<![CDATA[Disable IP forwarding by following the appropriate instructions below: <UL><LI>On Windows set the value of the following registry key to zero: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter<LI>On Linux, insert this line in your startup script: "sysctl -w net.ipv4.ip_forward=0"<LI>On Solaris, HP-UX insert this line in your startup script: "ndd -set /dev/ip ip_forwarding 0"<LI>On Mac OS X, insert this line in your startup script: "sysctl -w net.inet.ip.forwarding=0"</UL>]]>
</SOLUTION>
<CVSS>
<BASE>7.5</BASE>
<TEMPORAL>6.0</TEMPORAL>
<VECTOR_STRING>CVSS:2.0/AV:N/AC:L/Au:N/C:P/I:P/A:P/E:U/RL:W/RC:C</VECTOR_STRING>
<ACCESS>
<VECTOR>3</VECTOR>
<COMPLEXITY>1</COMPLEXITY>
</ACCESS>
<IMPACT>
<CONFIDENTIALITY>2</CONFIDENTIALITY>
<INTEGRITY>2</INTEGRITY>
<AVAILABILITY>2</AVAILABILITY>
</IMPACT>
<AUTHENTICATION>1</AUTHENTICATION>
<EXPLOITABILITY>1</EXPLOITABILITY>
<REMEDIATION_LEVEL>3</REMEDIATION_LEVEL>
<REPORT_CONFIDENCE>3</REPORT_CONFIDENCE>
</CVSS>
<PCI_FLAG>1</PCI_FLAG>
<THREAT_INTELLIGENCE>
<THREAT_INTEL id="5">
<![CDATA[Easy_Exploit]]>
</THREAT_INTEL>
<THREAT_INTEL id="8">
<![CDATA[No_Patch]]>
</THREAT_INTEL>
<THREAT_INTEL id="14">
<![CDATA[Unauthenticated_Exploitation]]>
</THREAT_INTEL>
</THREAT_INTELLIGENCE>
<DISCOVERY>
<REMOTE>1</REMOTE>
<AUTH_TYPE_LIST>
<AUTH_TYPE>Unix</AUTH_TYPE>
</AUTH_TYPE_LIST>
</DISCOVERY>
</VULN>
</VULN_LIST>
</RESPONSE>
</KNOWLEDGE_BASE_VULN_LIST_OUTPUT>
<!-- This report was generated with an evaluation version of Qualys //-->
<!-- CONFIDENTIAL AND PROPRIETARY INFORMATION. Qualys provides it's Service "As Is," without any warranty of any kind. Qualys makes no warranty that the information contained in this report is complete or error-free. Copyright 2026, Qualys, Inc. //-->
Fetch all tags
Endpoint: /qps/rest/2.0/search/am/tag?fields=id,name
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Headers
| Key | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
{
"ServiceRequest": {
"preferences": {
"limitResults": 1000,
"startFromOffset": 1
}
}
}
Sample Response
{
"ServiceResponse": {
"data": [
{
"Tag": {
"id": 82262213,
"name": "NetskopeTag1"
}
},
{
"Tag": {
"id": 82262214,
"name": "NetskopeTag2"
}
},
{
"Tag": {
"id": 82262215,
"name": "NetskopeTag3"
}
},
{
"Tag": {
"id": 82262216,
"name": "NetskopeTag4"
}
},
{
"Tag": {
"id": 82262217,
"name": "NetskopeTag5"
}
}
],
"count": 5,
"responseCode": "SUCCESS",
"hasMoreRecords": "true",
"lastId": 82262217
}
}
Create tag
Endpoint: POST /qps/rest/2.0/create/am/tag
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Headers
| Key | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
{
"ServiceRequest": {
"data": {
"Tag": [
{
"name": "NetskopeCloudExchange"
}
]
}
}
}
Ajouter une balise à l'actif
Endpoint: POST /qps/rest/2.0/update/am/hostasset
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Headers
| Key | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Corps de la demande
{
"ServiceRequest": {
"filters": {
"Criteria": [
{
"field": "id",
"operator": "IN",
"value": "1035748148"
}
]
},
"data": {
"HostAsset": {
"tags": {
"add": {
"TagSimple": [
{
"id": "82263926"
}
]
}
}
}
}
}
}
Exemple de réponse
{
"ServiceResponse": {
"responseCode": "SUCCESS",
"count": 1,
"data": [
{
"HostAsset": {
"id": 1035748148
}
}
]
}
}
Retirer l'étiquette du bien
Endpoint: POST /qps/rest/2.0/update/am/hostasset
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Headers
| Key | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
{
"ServiceRequest": {
"filters": {
"Criteria": [
{
"field": "id",
"operator": "IN",
"value": "1035748148"
}
]
},
"data": {
"HostAsset": {
"tags": {
"remove": {
"TagSimple": [
{
"id": "82263926"
}
]
}
}
}
}
}
}
Exemple de réponse
{
"ServiceResponse": {
"responseCode": "SUCCESS",
"count": 1,
"data": [
{
"HostAsset": {
"id": 1035748148
}
}
]
}
}
Ajouter une balise à l'application web
Endpoint: POST /qps/rest/3.0/update/was/webapp/<web_app_id>
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Path Parameters
| Key | Value | Description |
|---|---|---|
| web_app_id | 12345678 | ID de l'application web à laquelle ajouter la balise |
Headers
| Key | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
{
"ServiceRequest": {
"data": {
"WebApp": {
"tags": {
"add": {
"Tag": [
{
"id": "82263926"
}
]
}
}
}
}
}
}
Sample Response
{
"ServiceResponse": {
"count": 1,
"data": [
{
"WebApp": {
"id": 1043082757
}
}
],
"responseCode": "SUCCESS"
}
}
Supprimer la balise de l'application web
Endpoint: POST /qps/rest/3.0/update/was/webapp/<web_app_id>
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Path Parameters
| Key | Value | Description |
|---|---|---|
| web_app_id | 12345678 | ID de l'application web dont il faut supprimer l'étiquette |
Headers
| Key | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
{
"ServiceRequest": {
"data": {
"WebApp": {
"tags": {
"remove": {
"Tag": [
{
"id": "82263926"
}
]
}
}
}
}
}
}
Sample Response
{
"ServiceResponse": {
"count": 1,
"data": [
{
"WebApp": {
"id": 1043082757
}
}
],
"responseCode": "SUCCESS"
}
}
Lancer à la demande Scanner sur l'actif
Endpoint: POST /qps/rest/1.0/ods/ca/agentasset
Authorization: Auth de base (nom d'utilisateur + mot de passe)
Query Parameters
| Key | Value | Description |
|---|---|---|
| scan | Inventory_Scan | Type d'analyse à la demande à lancer. Les valeurs valides sont les suivantes : Inventory_Scan, Vulnerability_Scan, PolicyCompliance_Scan, UDC_Scan, SCA_Scan, SWCA_scan Remarque : vous ne pouvez lancer qu'un seul type d'analyse à la fois. |
| overrideConfigCpu | true or false | Activez cet indicateur pour définir les limites d'étranglement du CPU que l'analyse à la demande utilisera. - La valeur "true" permet d'ignorer les limites d'accélération du processeur définies dans le profil de configuration. - Réglez ce paramètre sur false pour utiliser les valeurs limites d'accélération du processeur définies dans le profil de configuration. Si vous ne fournissez aucune valeur dans l'URL de la requête API, la valeur par défaut - false - est prise en compte. Remarque : par défaut, l'agent Cloud pour Windows utilise une valeur d'étranglement de 80 et l'agent Cloud pour Linux utilise une valeur de 0 (pas d'étranglement). |
Headers
| Key | Value |
|---|---|
| Content-Type | application/json |
| Accept | application/json |
| X-Requested-With | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
| User-Agent | netskope-ce-6.0.1-cre-qualys-v1.0.0 |
Request Body
{
"ServiceRequest": {
"filters": {
"Criteria": {
"field": "id",
"operator": "IN",
"value": "1035771068,1035771069"
}
}
}
}
Sample Response
{
"ServiceResponse": {
"count": 1,
"data": [
{
"SingleModuleResponse": {
"module": "Inventory Scan",
"count": 1,
"responseCode": "SUCCESS",
"assetIds": "[1035771068,1035771069]"
}
}
],
"responseCode": "SUCCESS"
}
}
Matrice de performance
Voici les relevés de performances effectués sur une grande pile Cloud Exchange avec ces spécifications de VM en tirant 500k enregistrements d'actifs/applications Web du plugin Qualys.
| Description | Spécifications |
|---|---|
|
Détails de la pile |
Taille : Grand RAM : 32 GO CPU : 16 cœurs |
|
Temps nécessaire à l'extraction et à la mise à jour des données sur les actifs |
~ 30 minutes |
|
Temps nécessaire pour extraire et mettre à jour les enregistrements des applications web |
~ 30 minutes |
Agent utilisateur
netskope-ce-6.0.1-cre-qualys-v1.0.0
Workflow
- Créez un utilisateur New dans Qualys et obtenez le nom d'utilisateur et le mot de passe.
- Obtenez l'URL de votre serveur API Qualys et l'URL de votre passerelle API.
- Configurez le plugin Qualys.
- Configurez une règle de gestion pour Qualys.
- Configurez les actions d'échange de risques pour Qualys.
- Validez le plugin.
Regardez une vidéo
Cliquer sur « play » pour regarder une vidéo.
Créer un utilisateur dans Qualys
- Dans Qualys, allez à VMDR > Users.

- Cliquez sur New button.

- Indiquez le prénom, le nom, le titre, le téléphone et l'adresse électronique selon vos besoins.

- Accédez à User Role et sélectionnez Manager pour le rôle utilisateur, puis assurez-vous que les options d'interface graphique et d'API sont cochées.

- Cliquez sur Save.
- Accédez à la console d'administration.

- Select l’utilisateur créé et cliquez Edit.

- Dans la section Rôles et étendues, assurez-vous que Allow user full permissions and scope est coché, puis cliquez sur Save.

- Connectez-vous avec l'utilisateur nouvellement créé et définissez un mot de passe New pour ce compte. Copiez le nom d'utilisateur et le mot de passe tels qu'ils seront utilisés lors de la configuration du plugin dans Cloud Exchange.
Note
Pour plus d'informations sur les autorisations au niveau du module, contactez l'équipe d'assistance Qualys.
Obtenez l'URL de votre serveur API et l'URL de votre passerelle API
Consultez cette documentation Qualys ou contactez l’équipe de support Qualys.
Configurer le plugin Qualys
- Dans Cloud Exchange, allez sur Settings > Plugin Store. Cherchez et sélectionnez le plugin Qualys v1.0.0 (CRE) .

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

- Cliquez sur Next et saisissez les paramètres de configuration :
- API Server URL: URL du serveur API de l'instance Qualys. Consultez ce document sur Qualys.
- API Gateway URL: URL de passerelle API de l’instance Qualys. Consultez ce document sur Qualys.
- Username: Le nom d’utilisateur associé au compte Qualys.
- Password: Le mot de passe associé au compte Qualys.
- Pull Asset VulnerabilitiesActiver/Désactiver la récupération des vulnérabilités des ressources. Laissez-le Yes pour activer.

- Cliquez sur Next et sélectionnez l’Entité requise dans le menu déroulant de l’Entité . Fournir les mappages de champs selon les exigences. Vous pouvez créer une entité New en cliquant sur Add New Entity.
Pour créer un champ New , cliquez sur +Add field.
Fournissez l’étiquette de champ, le type de données et la stratégie agrégée selon vos besoins.



De même, les mappages pour les applications Web sont les suivants :

- Cliquez sur Save.

Note
Veuillez vous référer à la section « Mappages » avant de configurer le plugin.
Configurer une règle de gestion de l'échange de risques pour Qualys
- Dans Risk Exchange, allez sur Business Rules et cliquez sur Create New Rule dans le coin supérieur droit.
- Saisissez le nom de la règle. Select l'entité pour les champs qui ont été configurés pour le plugin Qualys, et configurez la requête en fonction de vos besoins.

- Cliquez sur Save.

Configurer une action d'échange de risques pour Qualys
Le plugin Qualys prend en charge les types d'action suivants :
Add/Remove Web Application Tag(s): L'action Add/Remove Web Application Tag(s) peut être utilisée pour attacher/détacher des balises de l'application Web sur Qualys.
Add/Remove Asset Tag(s): L'action Add/Remove Asset Tag(s) peut être utilisée pour attacher/détacher des tags d'un actif sur Qualys.
Scan Assets: L'action Scan Assets peut être utilisée pour effectuer différents types de scans sur les actifs présents dans Qualys.
No ActionAucune action ne sera effectuée pour cette action. Vous pouvez générer des alertes UBA dans Ticket Orchestrator en utilisant cette action et en activant l'option « Générer des alertes » .
Note
Vous pouvez effectuer plusieurs actions sur les enregistrements tirés de Qualys sur le locataire Netskope. Pour effectuer les actions correspondantes sur Netskope, reportez-vous au guide du plugin Netskope Risk Exchange.
Ajouter/supprimer des balises d'application Web
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select la règle métier, la configuration du plugin cible et l'action requises dans leurs listes déroulantes respectives.
- Activez le bouton Exiger une approbation si l’approbation est nécessaire avant d’effectuer une action sur les enregistrements consultés. Notez que si le bouton Exiger l’approbation est activé, vous devez alors approuver manuellement l’exécution de chaque action depuis Risk Exchange > Action Logs dans Cloud Exchange.


- Définissez les paramètres d'action suivants :
- Action Type: Select Add Tag(s) pour étiqueter l'application Web, ou Remove Tag(s) pour désétiqueter l'application Web à partir de la liste déroulante du champ statique.
- Web Application ID: Select Le champ ID de l'application Web de la source ou fournir plusieurs ID d'application Web statiques séparés par des virgules.
- Tag(s): Select champ source pour les balises ou fournir des balises statiques séparées par plusieurs virgules. Notez que « tag1 » et « tag1 » sont considérés comme des tags différents dans Qualys.
- Cliquez sur Save.
Add/Remove Asset Tag(s)
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration..
- Select la règle métier, la configuration du plugin cible et l'action requises dans leurs listes déroulantes respectives.
- Activez le bouton Exiger une approbation si l’approbation est nécessaire avant d’effectuer une action sur les enregistrements consultés. Notez que si le bouton Exiger l’approbation est activé, vous devez alors approuver manuellement l’exécution de chaque action depuis Risk Exchange > Action Logs dans Cloud Exchange.


- Enter these Action Parameters:
- Action Type: Select Add Tag(s) pour étiqueter l'actif, ou Remove Tag(s) pour le désétiqueter dans la liste déroulante du champ Statique.
- Asset ID: Select Champ d'identification de l'actif à partir de la source ou fournir plusieurs ID d'actifs statiques séparés par des virgules.
- Tag(s): Select champ source pour les balises ou fournir des balises statiques séparées par plusieurs virgules. Notez que « tag1 » et « tag1 » sont considérés comme des tags différents dans Qualys.
- Cliquez sur Save.
Scan Assets
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration..
- Select la règle métier, la configuration du plugin cible et l'action requises dans leurs listes déroulantes respectives.
- Activez le bouton Exiger une approbation si l’approbation est nécessaire avant d’effectuer une action sur les enregistrements consultés. Notez que si l'option « Approbation requise » est activée, vous devez approuver manuellement l'exécution de chaque action depuis Risk Exchange > Action Logs dans Cloud Exchange.

- Enter these Action Parameters:
- Asset ID: Select Champ d'identification de l'actif à partir de la source ou fournir plusieurs ID d'actifs statiques séparés par des virgules.
- Scan Type: Type de scan à la demande.
- Override Config CPU: Activez cet indicateur pour définir les limites d'étranglement du CPU que l'analyse à la demande utilisera.
- Cliquez sur Save.
No Action
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select la règle métier, la configuration du plugin cible et l'action requises dans leurs listes déroulantes respectives.
- Activez l'option « Approbation requise » si une approbation est nécessaire avant d'effectuer une action sur les enregistrements extraits.

- Cliquez sur Save.
Valider le plugin Qualys
Valider dans Cloud Exchange
- Dans Risk Exchange, allez sur Records. Select l’Entité sélectionnée lors de la configuration du mappage de champs pour visualiser les enregistrements extraits.


- Pour vérifier les journaux liés aux enregistrements extraits, allez dans Logging et appliquez le filtre avec le nom du plugin.


- Journaux des actions effectuées :
Add/Remove Web Application Tag(s)

Add/Remove Asset Tag(s)

Scan Assets
- Lorsqu'un enregistrement extrait correspond à l'une des règles métier configurées, l'action configurée sera exécutée sur cet enregistrement. Cela est visible à Risk Exchange > Action Logs.

Valider dans Qualys
- Le plugin Qualys récupère les données d’actifs depuis la page Inventaire de gestion des actifs en cybersécurité>, ainsi que les vulnérabilités des actifs depuis la page de détection et réponse > vulnérabilités de gestion des vulnérabilités. Connectez-vous à Qualys et allez sur le Cyber Security Asset Management > Inventory.


- Cliquez sur un actif pour obtenir plus d'informations à son sujet :

- Le plugin Qualys récupère les données des applications Web depuis la page Analyse > applications Web Application et les résultats des applications Web depuis la page Analyse > Détection des applications Web . Connectez-vous à Qualys et allez sur Web Application Scanning > Applications.


- Cliquez sur une application Web pour obtenir plus d'informations sur cette application Web.

Valider l'action Ajouter/Supprimer des balises d'application Web
- Connectez-vous à Qualys et à Web Application Scanning > Applications.

- Cliquez sur une application Web pour obtenir plus d'informations sur cette application Web.

- La même application Web, après avoir effectué l'action Supprimer la balise, ressemblera à ceci :

Valider l'action Ajouter/Supprimer un ou des marqueur(s) d'immobilisation
- Connectez-vous à Qualys et allez sur le Cyber Security Asset management > Inventory.

- Cliquez sur un actif pour obtenir plus d'informations à son sujet.

- Le même asset après avoir effectué l'action Supprimer le tag ressemblera à ceci :

Valider l'action Scan Asset
- Va à Cloud Agent Module à Qualys.


Note
Sur la plateforme Qualys, l'état de certaines analyses seulement est visible. Si vous ne trouvez pas de statut pour une action spécifique, contactez l'équipe de support Qualys.
Dépannage du plugin Qualys
Impossible de configurer le plugin CRE Qualys
Si vous ne parvenez pas à configurer le plugin Qualys, cela peut être dû à l'une des raisons suivantes :
- URL du serveur API, URL de la passerelle API, nom d'utilisateur et mot de passe incorrects.
- Les informations d'identification fournies n'ont pas les permissions suffisantes.
What to do:
- Pour obtenir la clé d'accès ou la clé secrète, suivez les étapes décrites dans la section Configuration sur Qualys .
- Pour accorder les autorisations appropriées au paramètre de configuration, reportez-vous à la section Configuration sur Qualys .
Impossible d'extraire des actifs ou une application Web
Si vous ne parvenez pas à extraire des actifs ou des applications Web du plugin Qualys, cela peut être dû à l'une des raisons suivantes :
- Aucun actif ou application Web n'est présent sur la plateforme Qualys.
- Une erreur s'est produite lors de l'extraction des enregistrements de la plate-forme.
- Le mappage n'est pas ajouté lors de la configuration du plugin dans la page source de l'entité.
Ce qu'il faut faire :
- Vérifiez sur la plateforme Qualys si les actifs/applications web 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 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.
- Pour Asset/Web Application, assurez-vous que le mappage est ajouté sous Asset Entity/Web Application Entity, et que le champ obligatoire est mappé lors de la configuration du plugin.
Impossible d'afficher les détails d'un actif ou d'une application Web sur la page Enregistrements
Si vous n'arrivez pas à afficher les détails de l'application/activité Web dans le tableau des enregistrements, cela peut être dû au fait que les mappings pour tous les champs Qualys ne sont pas fournis lors de la configuration du plugin Qualys.
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 aux mappages suggérés.
Comportement connu
- Pour les champs d’adresse IPv4, IPv6 et MAC de l’interface réseau :
L’API peut fournir des valeurs vides.
API Response
Cloud Exchange Records
- Un champ unique dans la réponse de l'API peut avoir plus d'une valeur, comme les valeurs séparées par des virgules.
API Response
Cloud Exchange Records
Pour maintenir la cohérence des données, ces valeurs sont stockées telles quelles, sans aucun traitement.
Create a Tag API limitation
Lors de la création d'une balise contenant le < or > symbole, qualys ne donne pas d'erreur même si la balise est la même, par exemple si une balise appelée Cloud Exchange existe déjà sur la plateforme Qualys, et que vous essayez de créer la même balise, l'API de Qualys ne donne pas d'erreur mais crée la balise à nouveau.
Cela pourrait causer un problème lors des actions d'ajout/suppression de balises. Lors de la récupération de l'ID du tag, le mauvais ID du tag peut être récupéré puisqu'il y a plusieurs tags avec le même nom existant sur Qualys.

