Notes de mise à jour
2.5.0
Added
- Added support for DNS Profile sharing and push retraction. (Min. required CE version: 6.1.0)
- Added logic for skipping tags longer than 30 characters for Private App sharing action.
2.4.0
Added
- Added support for Destination Profile sharing and delete retraction. (Min. required CE version: 6.1.0)
- Added delete retraction for URL List.
- Added resolution for error logs.
Changed
- Updated URL List sharing to share only modified indicators. (Min. required CE version: 6.1.0)
- Updated error log to info log when duplicate file hashes are shared.
- Updated sharing behavior irrespective of selected IOC types in configuration.
2.3.0
Added
- Added configuration option to enable/disable querying Retrohunt API.
Fixed
- Fixed tagging of indicators while sharing.
2.2.0
Added
- Added support for retraction of False Positive if IoC type is File Hash. (Min. required CE version: 5.1.0)
- Added support for port range in Add to Private App Target.
- Added support for severity in URL IoCs.
Changed
- Pull only malicious file hash IoCs using Retrohunt.
- Updated URL List limit to 7 MB from 8 MB.
2.1.3
Changed
- Bug fixes.
2.1.2
Added
- Added support to create indicators from SHA256 and MD5 fields, along with Local SHA256 and Local MD5, from malware alerts.
2.1.1
Changed
- Updated authentication for V1 token.
2.1.0
Added
- Added support for retraction of retracted IoCs. It does not support fetching retracted indicators from the Netskope tenant.
2.0.0
Changed
- The Netskope CTE plugin has been restructured and is now available in the Default repository.
1.0.0
Added
- Initial release.
Ce document explique comment configurer le plugin Threat Exchange v2.5.0 sur la plateforme Cloud Exchange. Ce plugin est utilisé pour récupérer les hachages de fichiers (MD5 et SHA256) et les URL (URL, IPv4, nom d'hôte, domaine et FQDN) à partir des alertes de logiciels malveillants et de sites malveillants disponibles sur le locataire Netskope depuis Skope IT > Alertes.
This plugin also supports sharing File Hashes (MD5 and SHA256) and URLs (URL, IPv4, hostname, domain, and FQDN) indicators to File Hash List (Policies > Profiles > File), URL List (Policies > Profiles > URL Lists), Private App (Settings > Security Cloud Platform > App Definition > Private App), Destination Profiles (Policies > Profiles > Destination), and DNS Profiles (Policies > Profiles > DNS) within Netskope. Consider the maximum size of data that Netskope File Hash List can hold (8 MB), URL List can hold (7 MB), and DNS Profile can hold (16 MB) while configuring the Business Rule.
Conditions préalables
Pour compléter cette configuration, vous avez besoin de :
- Un locataire Netskope (ou plusieurs, par exemple des instances de production et de développement/test).
- Un profil de fichier sur votre locataire Netskope.
- A URL List on your Netskope tenant.
- A Destination Profile on your Netskope tenant.
- A Private App on your Netskope tenant.
- A DNS Profile on your Netskope Tenant
- A Netskope Cloud Exchange tenant with the Tenant plugin and a 3rd-party Threat Exchange plugin (like CrowdStrike) already configured.
- Connectivité à un locataire Netskope autorisé à générer des jetons.
- Need Retrohunt API by File Hash feature enabled in Netskope Tenant
- Need Destination Profile feature enabled in Netskope Tenant
- Need Netskope SWG License for the Destination Profile
Prise en charge du plugin Threat Exchange
This plugin is used to fetch the File hashes (MD5 and SHA256) and URLs (URL, IPv4, hostname, domain, and FQDN) from the Malware and Malsite alerts available on the Netskope Tenant from Skope IT > Alerts. This plugin also supports sharing File Hashes (MD5 and SHA256) and URLs (URL, IPv4, hostname, domain, and FQDN) indicators to File Hash List (Policies > Profiles > File), URL List (Policies > Profiles > URL Lists), Private App (Settings > Security Cloud Platform > App Definition > Private App), Destination Profiles (Policies > Profiles > Destination), and DNS Profiles (Policies > Profiles > DNS) within Netskope. Consider the maximum size of data that Netskope File Hash List can hold (8 MB), URL List can hold (7 MB), and DNS Profile can hold (16 MB) while configuring the Business Rule.
| Types d'indicateurs recherchés (alertes Malware et Malsite) | Types d'indicateurs partagés |
|---|---|
| SHA256 MD5 Domaine IPv4 Local_MD5 Local_SHA256 URL | SHA256 MD5 Domaine IPv4 URL |
IOC Retraction
IOC Retraction (Pull) – IOCs that are false positive(verdict clean) as per retrohunt (retrohunt/ioc/getinfo) endpoint will be marked as retraced in CE if Enable Retrohunt is set to Yes in the plugin configuration.
IOC Retraction (Push) – Retracted indicators present on CE will be deleted from Netskope Tenant during sharing.
| Type de rétraction | Type de rétraction supportée |
|---|---|
| IOC Retraction (Pull) | Oui |
| IOC Retraction (Push) | Oui |
Mises en correspondance
| Champs de Cloud Exchange | Champs Netskope |
|---|---|
| value | Malware local_md5, local_sha256, SHA256 et MD5 Malsite |
| type | Malware MD5, SHA256 Malsite URL |
| commentaires | Malware <Tenant URL> – objet Ex. : https://crest-plugin-support.de.goskope.com – , Nom du logiciel malveillant : amtest, Type de logiciel malveillant : hachage Malsite <Tenant URL> – malsite_category Ex. : https://crest-plugin-support.de.goskope.com – Site malveillant, Site d’hameçonnage, Bot |
| sévérité | Malware retrohunt.severity_updated or retrohunt.severity or severity 1: low 2: medium 3: high Malsite sévérité |
| firstseen, lastseen | horodatage |
Permissions
- Besoin d'un jeton v2 créé à l'aide du rôle Netskope Cloud Exchange.
- Les autorisations requises (niveaux de privilèges) pour chaque plugin sont disponibles dans les champs d'application de l'API REST.
Détails de l'API
Liste des API utilisées
| Point final de l'API | Méthode | Cas d'utilisation |
|---|---|---|
| /api/v2/events/dataexport/alerts/malware | OBTENIR | Pull the Malware alerts from Netskope tenant |
| /api/v2/events/dataexport/alerts/malsite | OBTENIR | Pull the Malsite alerts from Netskope tenant |
| /api/v1/updateFileHashList | PUBLIER | Push the file hashes to Netskope Tenant |
| /api/v2/policy/urllist | OBTENIR | Obtenir des listes d'URL |
| /api/v2/policy/urllist | PUBLIER | Create URL List |
| /api/v2/policy/urllist/{}/append | PATCH | Push the URLs to Netskope |
| /api/v2/policy/urllist/deploy | PUBLIER | Deploy changes to Netskope URL List |
| /api/v2/steering/apps/private | OBTENIR | List Private Apps |
| /api/v2/infrastructure/publishers | OBTENIR | Liste des éditeurs pour les applications privées |
| /api/v2/steering/apps/private | PATCH | Push Private App to Netskope Tenant |
| /api/v2/nsiq/retrohunt/ioc/getinfo | PUBLIER | Gravité des faux positifs et des chasses à l'homme de Fetch |
| /api/v2/policy/urllist/{}/replace | PATCH | Push the URLs to Netskope for delete retraction |
| /api/v2/profiles/destinations | OBTENIR | Get Destination Profiles |
| /api/v2/profiles/destinations | PUBLIER | Create Destination Profile |
| /api/v2/profiles/destinations/{}/values | PUBLIER | Push or Remove Destination Profile Values |
| /api/v2/profiles/destinations/deploy | PUBLIER | Apply Pending Changes for a Destination Profile |
| /api/v2/profiles/dns | OBTENIR | Get DNS Profiles |
| /api/v2/profiles/dns | PUBLIER | Create DNS Profile |
| /api/v2/profiles/dns/{} | PATCH | Update DNS Profile |
| /api/v2/profiles/dns/domaincategories | OBTENIR | Get DNS categories |
| /api/v2/profiles/dns/recordtypes | OBTENIR | Obtenir les types d'enregistrements DNS |
Pull the Malware alerts from Netskope tenant
API Endpoint: https://<tenant-url>/api/v2/events/dataexport/alerts/malware
Method: OBTENIR
Request Headers
| Clé | Value |
|---|---|
| Netskope-API-Token | <netskope_api_rbac3_token> |
| User-Agent | netskope-ce-6.1.0 |
Sample API Response
{
"ok": 1,
"result": [
{
"TSS-scan": "v2",
"_id": "ca2cd2413493f18eeb65b2",
"access_method": "API Connector",
"acked": "false",
"action": "Detection",
"activity": "Introspection Scan",
"alert": "yes",
"alert_name": "VBA.Heur.EmotetDldr.1.3CBCEF4D.Gen:94075",
"alert_type": "Malware",
"app": "Dropbox",
"app_name": "Dropbox",
"app_session_id": 97439093538764,
"appcategory": "Cloud Storage",
"category": "Cloud Storage",
"cci": 81,
"ccl": "high",
"connection_id": 115689096495576,
"count": 1,
"created_date": 1751544554,
"detection_engine": "Netskope Advanced Heuristic Analysis",
"detection_type": "Virus",
"device": "Other",
"dst_country": "US",
"dst_geoip_src": 2,
"dst_latitude": 37.77,
"dst_location": "San Francisco",
"dst_longitude": -122.4,
"dst_region": "California",
"dst_zipcode": "94107",
"dstip": "162.125.8.18",
"file_id": "id:RqCtsmy9paAAAAAAAAP9LA",
"file_name": "testpdv_5e673d7973900c3c1ed399_66b8e7b2e881b711aca1b98d91d5ce3b_1751544269_office_clafier.doc",
"file_path": "/tss-sanity-1751a0b8/testpdv_5e67ccdec797303d7973900c3c1ed399_66b8e7b2e881b711aca1b98d91d5ce3b_1751544269_office_classifier.doc",
"file_size": 156874,
"file_type": "application/ms-word",
"filename": "testpdv_5e67ccde0c3c1ed399_66b8e7b2e881b711aca1b98d91d5ce3b_1751544269_office_classifier.doc",
"incident_id": 1000362732176413775,
"instance": "TEST Netskope MW 1",
"local_md5": "66e881b711aca1b98d91d5ce3b",
"local_sha256": "6712afc5119e5303a6dedcb4b61cf2f1ee525cd2c9d4da31d21",
"malware_id": "6c2e227369044356354b84add6456611",
"malware_name": "VBA.Heur.EtDldr.1.3CBCEF4D.Gen:94075",
"malware_severity": "high",
"malware_type": "Virus",
"md5": "66b8e7b2e8aca1b98d91d5ce3b",
"mime_type": "application/msword",
"modified_date": 1751544429,
"object": "testpdv_5e973900c3c1ed399_66b8e7b2e881b711aca1b98d91d5ce3b_1751544269_office_classifier.doc",
"object_id": "id:RqCtsmyAAAP9LA",
"object_type": "File",
"organization_unit": "",
"policy": "2214472052546912863",
"request_id": 0,
"scan_time": 1751544554,
"scan_type": "ongoing",
"scanner_result": "malicious",
"severity": "high",
"severity_id": 3,
"sha1": "c66724a30cf9a0e0558ec3028d",
"sha256": "6712afc5119e507259dcb4b61cf2f1ee525cd2c9d4da31d21",
"shared_type": "private",
"site": "Dropbox",
"timestamp": 1751544733,
"title": "testpdv_5e67ccd399_66b8e7b2e881b711aca1b98d91d5ce3b_1751544269_office_classifier.doc",
"traffic_type": "CloudApp",
"transaction_id": 1000362732176413775,
"true_filetype": "None",
"tss_license": "True",
"tss_mode": "introspection",
"type": "nspolicy",
"ur_normalized": "ali+nsmtp@netskope.com",
"url": "https://www.dropbox.com/work/tss-sanity-17515441674e95a0b8?preview=testpdv_5e67ccdec797303d7911aca1b98d91d5ce3b_1751544269_office_classifier.doc",
"user": "alitp@netskope.com",
"user_id": "dbmi1Dimthhx2TJyIhxpudwxGmM",
"record_type": "alert",
"file_category": "",
"usr_title": "",
"src_latitude": 0.0,
"managementID": "",
"userCountry": "",
"department": "",
"browser": "",
"userip": "",
"page": "",
"from_user": "",
"appsuite": "",
"os": "",
"shared_with": [],
"sanctioned_instance": "",
"os_version": "",
"company": "",
"usr_udf_supervisorname": "",
"dst_timezone": "",
"user_confidence_index": 0,
"browser_session_id": 0,
"src_geoip_src": 0,
"usr_udf_companyname": "",
"srcip": "",
"usr_udf_supervisorid": "",
"src_zipcode": "",
"hostname": "",
"manager": "",
"usr_udf_businesssegmentlevel1": "",
"protocol": "",
"usr_udf_businesssegmentlevel3": "",
"custom_attr": {},
"usr_status": "",
"usr_udf_businesssegmentlevel2": "",
"usr_udf_businesssegmentlevel4": "",
"src_country": "",
"parent_id": "",
"src_location": "",
"src_region": "",
"device_classification": "",
"instance_id": "",
"malware_profile": "",
"tss_fail_reason": "",
"browser_version": "",
"usr_udf_primarydomain": "",
"usr_udf_employeeid": "",
"src_timezone": "",
"policy_id": "",
"usr_display_name": "",
"managed_app": "",
"tss_scan_failed": "",
"src_time": "",
"fastscan_results": "",
"referer": "",
"ml_detection": "",
"nsdeviceuid": "",
"userPrincipalName": "",
"src_longitude": 0.0,
"page_site": ""
}
],
"wait_time": 5,
"timestamp_hwm": 1751544743
}
Pull the Malsite alerts from Netskope tenant
API Endpoint: https://<tenant-url>/api/v2/events/dataexport/alerts/malsite
Method: OBTENIR
Request Headers
| Clé | Value |
|---|---|
| Netskope-API-Token | <netskope_api_rbac3_token> |
| User-Agent | netskope-ce-6.1.0 |
Sample API Response
{
"ok": 1,
"result": [
{
"_id": "96e20f6e73d2867d1865d",
"access_method": "Client",
"acked": "false",
"action": "block",
"alert": "yes",
"alert_name": "ww25.cleansix.xyz",
"alert_type": "malsite",
"app": "",
"app_session_id": 8130338485448244761,
"appcategory": "Security Risk - Cosed/malicious sites",
"browser_session_id": 5158615776615133890,
"category": "Security Risk - Comised/malicious sites",
"cci": 0,
"ccl": "unknown",
"connection_id": 0,
"count": 1,
"device": "Linux Device",
"device_classification": "not configured",
"dst_country": "US",
"dst_latitude": 27.947519302368164,
"dst_location": "Tampa",
"dst_longitude": -82.45842742919922,
"dst_region": "Florida",
"dst_timezone": "America/New_York",
"dst_zipcode": "N/A",
"dstip": "199.59.243.228",
"dstport": 80,
"hostname": "ip-172-31-29-12",
"incident_id": 374545097297887,
"ja3": "NotAvailable",
"ja3s": "NotAvailable",
"malicious": "yes",
"malsite_category": [
"Malicious Site"
],
"malsite_country": "US",
"malsite_id": "94c0d6c6de81b144a968",
"malsite_ip_host": "199.59.43.228",
"malsite_latitude": 27.9479302368164,
"malsite_longitude": -82.458422919922,
"malsite_region": "Florida",
"managed_app": "no",
"notify_template": "sileblock.html",
"organization_unit": "",
"os": "Linux",
"os_version": "Linux 22.04.4",
"other_categories": [
"Security Risk",
"Security Risk - Compromised/malicious sites"
],
"page": "ww25.cl.xyz/?subid1=20250627-2139f4956fa",
"page_site": "cleansix",
"policy": "MalsiteCategoryTestPolicy",
"policy_id": "21BDBAE80 2025-05-28 11:59:16.009444",
"protocol": "HTTPS/1.1",
"request_id": 3745126345097297887,
"severity": "high",
"severity_level": "med",
"severity_level_id": 1,
"site": "cleansix",
"src_country": "US",
"src_latitude": 39.0469,
"src_location": "Ashburn",
"src_longitude": -77.4903,
"src_region": "Virginia",
"src_time": "Fri Jun 27 07:32:58 2025",
"src_timezone": "America/New_York",
"src_zipcode": "20149",
"srcip": "52.23.214.14",
"telemetry_app": "",
"threat_match_field": "domain",
"threat_match_value": "ww25.cleansix.xyz",
"threat_source_id": 1,
"timestamp": 1751023978,
"traffic_type": "Web",
"transaction_id": 3745097297887,
"type": "malsite",
"ur_normalized": "nijani@crestdatasys.com",
"url": "ww25.clix.xyz/",
"user": "nijlani@crestdatasys.com",
"useragent": "Python/3.10 aiohttp/3.10.5",
"userip": "172.31.29.12",
"record_type": "alert",
"malsite_confidence": 0,
"object": "",
"referer": "",
"sAMAccountName": "",
"malsite_hostility": "",
"fromlogs": "",
"malsite_first_seen": 0,
"custom_attr": {},
"object_type": "",
"conn_duration": 0,
"universal_connector": "",
"dsthost": "",
"malsite_last_seen": 0,
"suppression_end_time": 0,
"co": "",
"malsite_active": "",
"retro_scan_name": "",
"from_user": "",
"aggregated_user": "",
"division": "",
"req_cnt": 0,
"resp_cnt": 0,
"org": "",
"log_file_name": "",
"browser_version": "",
"department": "",
"browser": "",
"dst_geoip_src": 0,
"gateway": "",
"server_bytes": 0,
"malsite_consecutive": "",
"numbytes": 0,
"malsite_reputation": "",
"appsuite": "",
"serial": "",
"client_bytes": 0,
"src_geoip_src": 0,
"suppression_start_time": 0,
"sfwder": ""
}
],
"wait_time": 5,
"timestamp_hwm": 1751023980
}
Push the file hashes to Netskope Tenant
API Endpoint: https://<tenant-url>/api/v1/updateFileHashList
Method: PUBLIER
Body:
{
"name": "<Name of FileHash List>",
"list": "<MD5 and SHA256 values comma separated>",
"token": <Netskope Tenant V1 Token>,
}
Obtenir des listes d'URL
API Endpoint: https://<tenant-url>/api/v2/policy/urllist
Method: OBTENIR
Request Headers
| Clé | Value |
|---|---|
| Netskope-API-Token | <netskope_api_rbac3_token> |
| User-Agent | netskope-ce-6.1.0 |
| X-CE-Installation-Id | <installation_id> |
Parameters
| Clé | Value |
|---|---|
| champ | id,name |
Sample API Response
[
{
"id": 1,
"name": "test"
}
]
Create URL List
API Endpoint: https://<tenant-url>/api/v2/policy/urllist
Method: PUBLIER
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Body
{
"data": {
"type": "exact",
"urls": [
"www.test.com"
]
},
"name": "string"
}
Sample API Response
[
{
"data": {
"type": "exact",
"urls": [
"www.test.com"
]
},
"id": 0,
"modify_by": "Netskope API",
"modify_time": "1997-01-01 00:00:00",
"modify_type": "Created",
"name": "string",
"pending": 0
}
]
Push the URLs to Netskope
API Endpoint: https://<tenant-url>/api/v2/policy/urllist/<urllist_id>/append
Method: PATCH
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Body
{
"data": {
"urls": [
"https://example.com/resource/product-000001"
],
"type": "exact"
}
}
Sample API Response
{
"data": {
"type": "exact",
"urls": [
"https://example.com/resource/product-000001"
]
},
"id": 0,
"modify_by": "Netskope API",
"modify_time": "2025-01-01 00:00:00",
"modify_type": "Edited",
"name": "string",
"pending": 0
}
Deploy changes to Netskope URL List
API Endpoint: https://<tenant-url>/api/v2/policy/urllist/deploy
Method: PUBLIER
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Sample API Response
[
{
"data": {
"type": "exact",
"urls": [
"www.test.com"
]
},
"id": 0,
"modify_by": "Netskope API",
"modify_time": "1997-01-01 00:00:00",
"modify_type": "Created",
"name": "string",
"pending": 0
}
]
List the Private apps from Netskope Tenant
API Endpoint: https://<tenant-url>/api/v2/steering/apps/private
Method: OBTENIR
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Parameters
| Clé | Value |
|---|---|
| champs | app_id,app_name |
Sample API Response
{
"data": {
"private_apps": [
{
"app_id": 51,
"app_name": "[<private_app_name>]",
},
….
]
},
"status": "success",
"total": 2
}
List Publisher for Private Apps
API Endpoint: https://<tenant-url>/api/v2/infrastructure/publishers
Method: OBTENIR
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Parameters
| Clé | Value |
|---|---|
| champs | publisher_id,publisher_name |
Sample API Response
{
"data": {
"publishers": [
{
"publisher_id": 3,
"publisher_name": "<publisher_name>"
},
….
]
},
"status": "success",
"total": 5
}
Push Private App to Netskope Tenant
API Endpoint: https://<tenant-url>/api/v2/steering/apps/private/<app_id>
Method: PATCH
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Body
{
"host": "1.1.1.1,3.2.14.4",
"protocols": [
{
"port": "23",
"type": "TCP"
}
],
"publishers": [
{
"publisher_id": "3",
"publisher_name": "<publisher_name>"
}
],
"tags": [
{
"tag_name": "test"
}
]
}
Sample API Response
{
"data": {
"allow_unauthenticated_cors": false,
"allow_uri_bypass": false,
"app_id": 51,
"app_name": "[<app_name>]",
"app_option": {},
"bypass_uris": [],
"clientless_access": false,
"host": "1.1.1.1,3.2.14.4",
"id": 51,
"is_user_portal_app": false,
"modified_by": "apigw",
"modify_time": "2025-04-01 04:03:31",
"name": "[Risk Exchange Demo]",
"policies": [],
"private_app_protocol": "",
"protocols": [
{
"created_at": "2025-04-01T04:03:31.659Z",
"id": 270,
"port": "23",
"service_id": 3,
"transport": "tcp",
"updated_at": "2025-04-01T04:03:31.659Z"
}
],
"public_host": "",
"reachability": {
"reachable": false
},
"real_host": "",
"service_publisher_assignments": [
{
"primary": null,
"publisher_id": 3,
"publisher_name": "<publisher_name>",
"reachability": null,
"service_id": 51
}
],
"steering_configs": [
"Default tenant config"
],
"supplement_dns_for_osx": false,
"tags": [
{
"tag_id": 153,
"tag_name": "test"
}
],
"trust_self_signed_certs": false,
"uribypass_header_value": "",
"use_publisher_dns": false
},
"status": "success"
}
Gravité des faux positifs et des chasses à l'homme de Fetch
API Endpoint: https://<tenant-url>/api/v2/nsiq/retrohunt/ioc/getinfo
Method: PUBLIER
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Body
{
"hash": [
"e0b060152606988664368bd658cbec4b"
]
}
Sample API Response
{
"status": "OK",
"result": {
"e0b060152606988664368bd658cbec4b": {
"seen": true,
"verdict": "malicious",
"severity": 3,
"md5": "e0b060152606988664368bd658cbec4b",
"sha256": "263689ec92f357b573206c06d27ae957bf17be7ff2b90f917543432b01e3be10",
"malware_name": "Backdoor",
"latest_detection_date": 1750150278,
"verdict_updated": "clean",
"severity_updated": 0
}
}
}
Push the URLs to Netskope for delete retraction
API Endpoint: https://<tenant-url>/api/v2/policy/urllist/<urllist_id>/replace
Method: PATCH
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Body
{
"data": {
"urls": [
"https://example.com/resource/product-000001"
],
"type": "exact"
}
}
Sample API Response
{
"data": {
"type": "exact",
"urls": [
"https://example.com/resource/product-000001"
]
},
"id": 0,
"modify_by": "Netskope API",
"modify_time": "2025-01-01 00:00:00",
"modify_type": "Edited",
"name": "string",
"pending": 1
}
Get Destination Profiles
API Endpoint: https://<tenant-url>/api/v2/profiles/destinations
Method: OBTENIR
Request Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Parameters
| Clé | Value |
|---|---|
| champs | id,name,type,values_count |
| offset | 0 |
| limit | 100 |
Sample API Response
{
"elements": [
{
"id": "dfbd59ab-xxxx-xxxx-xxxx-81b7bc805f47",
"name": "CTE Destination Profile",
"type": "insensitive",
"values_count": 100000
}
],
"total_count": 1
}
Create Destination Profile
API Endpoint: https://<tenant-url>/api/v2/profiles/destinations
Method: PUBLIER
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Body
{
"description": "my destination description",
"name": "CTE Destination Profile",
"type": "insensitive",
"values": [
"example.com/resource/product-000001"
]
}
Sample API Response
{
"id": "dfbd59ab-xxxx-xxxx-xxxx-81b7bc805f47",
"name": "CTE Destination Profile",
"description": "my destination description",
"type": "insensitive",
"values": [
"example.com/resource/product-000001"
],
"values_count": 1,
"status": "applied",
"create_by": "NetskopeCE",
"create_time": "2026-04-01T08:48:50.284153069Z",
"modify_by": "NetskopeCE-Dev",
"modify_time": "2026-04-01T08:48:50.284153069Z",
"label_ids": []
}
Push or Remove Destination Profile Values
API Endpoint: https://<tenant-url>/api/v2/profiles/destinations/<destination-profile-id>/values
Method: PUBLIER
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Body
{
"operation": {
"op": "append",
"values": [
"www.example.com/mypath1",
"www.example.com/mypath2"
]
}
}
OR
{
"operation": {
"op": "remove",
"values": [
"www.example.com/mypath1",
"www.example.com/mypath2"
]
}
}
Sample API Response
{
"id": "dfbd59ab-xxxx-xxxx-xxxx-81b7bc805f47",
"name": "CTE Destination Profile",
"description": "my destination description",
"type": "insensitive",
"values": [
"example.com/resource/product-000001",
"www.example.com/mypath1",
"www.example.com/mypath2"
],
"values_count": 3,
"status": "applied",
"create_by": "NetskopeCE",
"create_time": "2026-04-01T08:43:21.661Z",
"modify_by": "NetskopeCE",
"modify_time": "2026-04-01T08:43:53.825Z",
"label_ids": []
}
Remove for Delete Retraction
{
"id": "dfbd59ab-xxxx-xxxx-xxxx-81b7bc805f47",
"name": "CTE Destination Profile",
"description": "my destination description",
"type": "insensitive",
"values": [
"example.com/resource/product-000001"
],
"values_count": 1,
"status": "applied",
"create_by": "NetskopeCE",
"create_time": "2026-04-01T08:43:21.661Z",
"modify_by": "NetskopeCE",
"modify_time": "2026-04-01T08:50:12.81Z",
"label_ids": []
}
Apply Pending Changes for a Destination Profile
API Endpoint: https://<tenant-url>/api/v2/profiles/destinations/deploy
Method: PUBLIER
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Body
{
"ids": [
"dfbd59ab-xxxx-xxxx-xxxx-81b7bc805f47"
]
}
Sample API Response
{
"applied": [
"dfbd59ab-xxxx-xxxx-xxxx-81b7bc805f47"
]
}
Get DNS Profiles
API Endpoint: https://<tenant-url>/api/v2/profiles/dns
Method: OBTENIR
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Query Parameters
| Clé | Value | Description |
|---|---|---|
| limit | 150 | Pagination limit |
| offset | 0 | Pagination offset |
| champs | id,name | Fields to get in the API response |
| filter | Name eq “<Profile Name> | Used to get a DNS profile details by name |
Sample Response
{
"profiles": [
{
"id": "43b69ef8-47b1-11f1-b64b-86231e291fcc",
"name": "Netskope DNS Profile 1"
},
{
"id": "783e8454-4d26-11f1-a0bb-0e3351bf9dec",
"name": "Netskope DNS Profile 2"
}
],
"total": 2
}
Create DNS Profile
API Endpoint: https://<tenant-url>/api/v2/profiles/dns
Method: PUBLIER
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Request Body
{
"name": "My Profile",
"log_traffic": "Blocked DNS",
"domain_config": {
"security_categories": [
{
"name": "Newly Registered Domain",
"action": "Sinkhole"
}
],
"allow_list": [
{
"record_types": [
"All Record Types"
],
"domain_names": [
"abc.com"
]
}
],
"block_list": [
{
"record_types": [
"All Record Types"
],
"domain_names": [
"xyz.com"
]
}
],
"sinkhole_ip": "1.2.3.4",
"block_all_except_allow_list": false
}
}
Sample Response
{
"applied_time": "2026-05-15 10:41:26",
"create_by": "RBACv3",
"create_time": "Fri, 15 May 2026 10:41:26 GMT",
"custom_config": {
"bypass_original_dns": false,
"enable": false,
"fallback_to_netskope_dns": true,
"server_ip": []
},
"description": "",
"domain_config": {
"allow_list": [
{
"destination_profiles": [],
"domain_names": [
"abc.com"
],
"record_types": [
"All Record Types"
]
}
],
"block_all_except_allow_list": false,
"block_list": [
{
"destination_profiles": [],
"domain_names": [
"xyz.com"
],
"record_types": [
"All Record Types"
]
}
],
"security_categories": [
{
"action": "Sinkhole",
"name": "Newly Registered Domain"
}
],
"sinkhole_ip": "1.2.3.4"
},
"id": "9ffaa12c-504a-11f1-bd75-6ae4e2669381",
"log_traffic": "Blocked DNS",
"modify_by": "RBACv3",
"modify_time": "Fri, 15 May 2026 10:41:26 GMT",
"name": "My Profile",
"status": "Applied",
"tunnel_config": {
"allow_list": [],
"enable": false
}
}
Update DNS Profile
API Endpoint: https://<tenant-url>/api/v2/profiles/dns/{profile_id}
Method: PATCH
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Path Parameter
| Clé | Value |
|---|---|
| profile_id | 173axxxx-xxxx-xxxx-xxxx-xxxxe2669381 |
Request Body
{
"domain_config": {
"security_categories": [
{
"name": "Newly Registered Domain",
"action": "Sinkhole"
}
],
"allow_list": [
{
"record_types": [
"All Record Types"
],
"domain_names": [
"abc.com"
]
}
],
"block_list": [
{
"record_types": [
"All Record Types"
],
"domain_names": [
"xyz.com"
]
}
],
"sinkhole_ip": "1.2.3.4",
"block_all_except_allow_list": false
}
}
Sample Response
{
"applied_time": "2026-05-15 10:41:26",
"create_by": "RBACv3",
"create_time": "Fri, 15 May 2026 10:41:26 GMT",
"custom_config": {
"bypass_original_dns": false,
"enable": false,
"fallback_to_netskope_dns": true,
"server_ip": []
},
"description": "",
"domain_config": {
"allow_list": [
{
"destination_profiles": [],
"domain_names": [
"abc.com"
],
"record_types": [
"All Record Types"
]
}
],
"block_all_except_allow_list": false,
"block_list": [
{
"destination_profiles": [],
"domain_names": [
"xyz.com"
],
"record_types": [
"All Record Types"
]
}
],
"security_categories": [
{
"action": "Sinkhole",
"name": "Newly Registered Domain"
}
],
"sinkhole_ip": "1.2.3.4"
},
"id": "9ffaa12c-504a-11f1-bd75-6ae4e2669381",
"log_traffic": "Blocked DNS",
"modify_by": "RBACv3",
"modify_time": "Fri, 15 May 2026 10:41:26 GMT",
"name": "My Profile",
"status": "Applied",
"tunnel_config": {
"allow_list": [],
"enable": false
}
}
Get DNS Categories
API Endpoint: https://<tenant-url>/api/v2/profiles/dns/domaincategories
Method: OBTENIR
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Query Parameters
| Clé | Value |
|---|---|
| limit | 150 |
| offset | 0 |
| sortby | name |
| sortorder | asc |
Sample Response
{
"domaincategories": [
{
"category_type": "Security",
"id": "575",
"name": "Newly Observed Domain"
},
{
"category_type": "Security",
"id": "574",
"name": "Newly Registered Domain"
},
{
"category_type": "Security",
"id": "583",
"name": "Security Risk - Ad Fraud"
},
{
"category_type": "Security",
"id": "588",
"name": "Security Risk - Attack"
},
{
"category_type": "Security",
"id": "578",
"name": "Security Risk - Botnets"
},
{
"category_type": "Security",
"id": "579",
"name": "Security Risk - Command and Control server"
},
{
"category_type": "Security",
"id": "580",
"name": "Security Risk - Compromised/malicious sites"
},
{
"category_type": "Security",
"id": "589",
"name": "Security Risk - Cryptocurrency Mining"
},
{
"category_type": "Security",
"id": "594",
"name": "Security Risk - DGA"
},
{
"category_type": "Security",
"id": "584",
"name": "Security Risk - Hacking"
}
],
"total": 15
}
Get DNS Record Types
API Endpoint: https://<tenant-url>/api/v2/profiles/dns/recordstypes
Method: OBTENIR
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.1.0 |
| Netskope-API-Token | <netskope_api_rbac3_token> |
| X-CE-Installation-Id | <installation_id> |
Query Parameters
| Clé | Value |
|---|---|
| limit | 150 |
| offset | 0 |
| sortby | name |
| sortorder | asc |
Sample Response
{
"recordtypes": [
{
"id": "13",
"name": "A"
},
{
"id": "62",
"name": "AAAA"
},
{
"id": "83",
"name": "ANY"
},
{
"id": "6",
"name": "All Record Types"
},
{
"id": "76",
"name": "CERT"
},
{
"id": "27",
"name": "CNAME"
},
{
"id": "48",
"name": "MX"
},
{
"id": "20",
"name": "NS"
},
{
"id": "41",
"name": "PTR"
},
{
"id": "34",
"name": "SOA"
}
],
"total": 12
}
Matrice de performance
Cette lecture est effectuée sur une grande pile CE avec ces spécifications en tirant et en poussant 100k IoCs.
| Description | Spécifications |
|---|---|
| Taille de la pile | Grandes dimensions RAM : 32 GB Cœur : 16 |
| Indicateurs extraits du locataire Netskope | ~45k per min |
| Indicators shared to Netskope tenant (URL List) | ~100k per min |
| Indicators shared to Netskope tenant (File Hash List) | ~200k per min |
| Indicators shared to Netskope tenant (Private App) | ~500 per min |
| Indicators shared to Netskope tenant (Destination Profile) | ~120k per min |
| Indicators shared to Netskope tenant (DNS Profile) | ~200k per min |
Note
- Private App has a maximum limit of 500, so users will not be able to share more than 500 IOCs to a single Private App.
- Here the sharing performance is calculated with creating a new Destination profile. If the IoCs are shared in an existing Destination profile, the performance might be affected due to the API behaviour that only allows 10 IoCs in one batch while sharing to an existing Destination profile.
Agent utilisateur
For example: netskope-ce-6.1.0
Workflow
- Create a File profile
- Create a Malware Detection profile
- Configure a Real-Time Protection policy
- Configure a Destination profile
- Configure a DNS Profile
- Configure the Threat Exchange plugin
- Activer la rétractation IoC
- Créer une règle de gestion
- Set up Sharing using the Source Plugin, Business Rule, Destination Plugin, and Target
- Valider le plugin Threat Exchange
Regardez une vidéo
Cliquer sur « play » pour regarder une vidéo.
Créer un profil de fichier
- Saisissez une valeur temporaire dans le champ de texte. Netskope ne permet pas de procéder sans valeur dans ce champ, et nous vous recommandons d'utiliser une chaîne de 64 caractères composée du caractère f, qui aura très peu de chances de correspondre à un format de fichier valide. Par exemple, ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff.

- Cliquez sur Next.
- Saisissez un nom de profil et une description. N'utilisez pas d'espaces dans le nom de votre profil ; remplacez les espaces par des traits de soulignement.

- Cliquez sur Save.
- Pour utiliser ce profil dans une politique, cliquez sur Apply Changes en haut à droite de l'écran.
Créer un profil de détection de logiciels malveillants
- Dans votre locataire Netskope, allez à Policies > Threat Protection > Malware Detection Profile et cliquez sur New Malware Detection Profile.

- Cliquez sur Next.
- Pour cet exemple, créez cette liste en tant que liste de blocage (cliquez sur les options Autoriser). Netskope prend en charge l'inclusion de listes d'autorisation et de blocage dans les profils de détection de logiciels malveillants. Cliquez Next.
- Select le profil de fichier que vous avez créé précédemment.

- Cliquez sur Save Malware Detection Profile.
- Pour utiliser ce profil dans une politique, cliquez sur Apply Changes en haut à droite de l'écran.
Créer une politique de protection en temps réel
- Dans votre locataire Netskope, allez sur Policies > Real-time Protection. La configuration de la politique n'est qu'un exemple. Modifiez-le en fonction de votre organisation.
- Cliquez sur New Policy puis sélectionnez Cloud App Access.

- Pour la source, laissez la valeur par défaut User = Any.
- Cliquez sur Category.
- La fenêtre s'agrandit pour vous permettre de rechercher et de sélectionner l'option All Categories.

- Cliquez en dehors de cette liste pour fermer la boîte de dialogue de recherche.
- Pour les activités et contraintes, cliquez Edit.
- Select Upload et Download.

- Cliquez sur Save.
- For Profile & Action, click the Add Profile dropdown, and select Threat Protection Profile.
- Cliquez dans le champ New Threat Protection Profile (Profil de protection contre les menaces), et une liste des profils disponibles s'affichera.
- Select le profil de détection des logiciels malveillants que vous avez créé précédemment.

- Cliquez sur Save en haut à droite de l'écran.
- Select l'option To the top lorsqu'elle se présente.
- Pour publier cette politique dans le locataire, cliquez sur Apply Changes en haut à droite de l'écran.
Create a Destination Profile
-
Dans votre locataire Netskope, allez dans Policies > Profiles > Destination et cliquez sur New Destination Profile.

-
Indiquez Destination Profile Name et Description et sélectionnez les Match type.

-
Cliquez sur Save.
-
Pour utiliser ce profil dans une politique, cliquez sur View pending changes en haut de l'écran puis cliquez sur Apply changes.
Créer un profil DNS
-
Dans votre locataire Netskope, allez dans Policies > Profiles > DNS et cliquez sur New DNS Profile.

-
Provide the profile name.

-
Cliquez sur Enregistrer.

Configurer le plugin Threat Exchange
-
In Settings, go to the Plugin Store and make sure the Category is selected as CTE.
-
Search for the Netskope Threat Exchange plugin and click on the plugin card to configure.

-
Saisissez les informations de base :
- Configuration Name: Entrez un nom de configuration unique.
- Sharing Sync Interval: Spécifiez le délai entre les synchronisations de partage.
- Tenant: Choisissez le locataire souhaité dans le menu déroulant. Le locataire principal est automatiquement sélectionné par défaut.
- Aging Criteria: Spécifiez les critères de vieillissement de l'indicateur, l'expiration étant fixée par défaut à 90 jours.
- Override Reputation: Attribuez une valeur [1-10] pour remplacer la réputation reçue de cette configuration ; laissez ce champ vide pour le réglage par défaut.
- Tags Aggregate Strategy: Choisissez d'ajouter les balises New au(x) IoC(s) existant(s) ou de les écraser. Ce paramètre de configuration détermine la manière dont les étiquettes sont stockées pour les indicateurs tirés dans le cadre de cette configuration.

-
Cliquez sur Next et saisissez les valeurs des paramètres de configuration :
- Enable Polling: Allows data polling from Netskope.
- Types of Threat Data to Pull: Selected indicator types will be extracted from Netskope malware alerts and stored on Threat Exchange.
- Initial Range (in days): Initial range for threat data to be pulled.
- Enable Tagging: The unshared tag indicators can be tagged using this feature.
- Enable Retrohunt: Activer/désactiver l’interrogation de l’API Retrohunt pour des indicateurs propres. Si c’est réglé sur Oui, le plugin ne retirera pas les indicateurs propres et si la rétraction est activée (Paramètres > Échange de menaces > désactivateur de rétraction d’IOC), les indicateurs propres seront marqués comme rétractés. Si le bouton est réglé sur Non, le plugin réveillera tous les indicateurs. L’API Retrohunt nécessite une licence « Advanced Threat Protection » et le drapeau « Retrohunt API Query » activé sur le locataire Netskope. Pour activer la rétractation du module Threat Exchange, allez dans Settings > Threat Exchange et activez le bouton de rétraction IoC(s).

Note
- It will only retract the IoCs when Enable Retrohunt is set to Yes and the retraction will be based on the verdict_updated field.
- The Enable Retrohut is only for pulling the hashes (SHA256 and MD5).
-
Cliquez sur Save.

Créer une règle de gestion pour les IoC sur les menaces
Ajouter une configuration de partage
Pour ajouter la configuration du partage, un plugin Threat Exchange tiers, comme CrowdStrike, doit être configuré avant de procéder. Pour ajouter une configuration de partage, vous devez disposer d'un plugin (configuration) source et d'un plugin (configuration) de destination.
Le plugin Netskope Threat Exchange prend en charge les trois partages suivants :
- Ajouter à la liste des URL
- Cela remplacera l'ancienne liste d'URL par les URL de New sur Netskope Tenant.
- La capacité maximale de partage est de 7 Mo par demande pour la liste d'URL et, dans l'ensemble, il prend en charge 300 000 URL sur la page de la liste d'URL.
- Si plus de 300000 URLs existent dans toutes les listes d'URLs, le plugin ne sera pas en mesure d'appliquer les changements sur le locataire Netskope comme mentionné dans le dépannage.
- Ajouter à la liste de hachage des fichiers
- Cela remplacera l'ancienne liste de hachages de fichiers par les hachages de New sur Netskope Tenant.
- La capacité maximale de partage est de 8 Mo par demande pour File Hash List.
- Les utilisateurs devront configurer le plugin Netskope Tenant avec un jeton API v1 pour "Ajouter à la liste de hachage des fichiers".
- Ajouter à l'application privée
- Cela remplacera les hôtes (adresses IP/noms d'hôtes) de l'application privée sur le locataire Netskope.
- Vous pouvez également ajouter des balises aux applications privées.
- Add to Destination Profile
- This will append the new URLs in the already created Destination Profile or in the new Destination Profile.
- The maximum sharing capacity depends on the Match Type you have selected:
- The Regex Match Type supports only 1000 URLs per tenant.
- You can create up to 1,000 destination profiles in a tenant.
- A destination profile can have up to 100,000 destinations. Comments are unlimited. However, the maximum size for a destination profile (including comments) is 10 MB.
- A total of up to 300,000 destinations (excluding comments) is supported in a tenant. To increase this limit, a license is required.
- Add to DNS Profile
- This will append the new Domains/FQDNs in the already created DNS Profile or in the new DNS Profile.
- The maximum sharing capacity is 16 MB.
Ajouter à une liste d'URL
- Select comment partager les indicateurs :
- Select le plugin source.
- Select la règle de gestion.
- Select le plugin de destination.
- Select la liste Ajouter à l'URL cible.
- Choisissez le nom de la liste dans le menu déroulant si vous souhaitez ajouter l'URL à une liste déjà créée.
OU
Créez une liste New en donnant un nom au champ Créer une liste New. - Choisissez le format dans lequel vous souhaitez que l'URL soit stockée dans la liste : Exact OU Regex.
- Taille de la liste [La taille maximale de la limite est de 7 Mo].
- Default URL.

Note
The Add to URL List action will append the new URL List in the old URLs on the Netskope tenant.
Ajouter à une liste de hachage de fichiers
- Allez à Threat Exchange > Sharing et cliquez sur Add Sharing Configuration.
- Select comment partager les indicateurs.
- Select le plugin source.
- Select la règle de gestion.
- Select le plugin de destination.
- Select la cible Ajouter à la liste de hachage des fichiers.
- Indiquez le nom de la liste de hachage des fichiers sur Netskope.
- Taille de la liste (la taille maximale de la limite est de 8 Mo).

Note
The Add to File Hash List action will replace the whole File Hash list on the Netskope tenant.
Ajouter à une application privée
- Allez à Threat Exchange > Sharing et cliquez sur Add Sharing Configuration.
- Select comment partager les indicateurs.
- Select le plugin source.
- Select la règle de gestion.
- Select le plugin de destination.
- Select la cible Ajouter à l'application privée.
- Choisissez le Nom de l'application privée dans le menu déroulant si vous souhaitez ajouter le domaine/nom d'hôte à une application déjà créée, ou créer une application privée New.
- Select le protocole.
- Indiquez les ports TCP et UDP séparés par des virgules (pour le protocole sélectionné).
- Select l'éditeur.
- Utiliser ou non les DNS de l'éditeur.
- Hôte par défaut.


Note
The Add to Private action will replace the Hosts (IP addresses/hostnames) of the Private app on the Netskope tenant.
Add to Destination Profile
-
Allez à Threat Exchange > Sharing et cliquez sur Add Sharing Configuration.
-
Select comment partager les indicateurs.
- Select le plugin source.
- Select la règle de gestion.
- Select le plugin de destination.
- Select the Target Add to Destination Profile.
- Choose the Destination Profile Name from the dropdown menu if you wish to add the URL to an already created profile. OR Create a New Destination profile.
- Provide Description for the profile if creating a new profile.
- Select a Match Type for the profile if creating a new profile.
- Select Apply Pending Changes as Yes if you want to always apply the pending changes of the profile before sharing the URL.

-
Cliquez sur Save.
Note
- Both of the Exact Match Types support 100k URLs per Destination Profile and 300k URLs per tenant.
- The Regex Match Type supports only 1000 URLs per tenant.
- Netskope plugins supports the Destination Profile from v2.4.0 with CE v6.1.0
Add to DNS Profile
-
Allez à Threat Exchange > Sharing et cliquez sur Add Sharing Configuration.
-
Select comment partager les indicateurs.
- Select le plugin source.
- Select la règle de gestion.
- Select le plugin de destination.
- Select the Target Add to DNS Profile.
- Set the Action Type to perform on DNS Profile.
- Select an existing DNS Profile.
- Create DNS Profile with the given name. (Only Enter if you have selected ‘Create new profile’ in DNS Profile parameter) Create New Profile should be less than or equal to 255 characters.
- Provide the description to create a DNS Profile with a given description. (Only Enter if you have selected ‘Create new profile’ in DNS Profile parameter) Profile Description should be less than or equal to 255 characters.
- Select one or more Categories along with the action to apply (Block or Sinkhole). The same category cannot be selected with both ‘Block’ and ‘Sinkhole’ actions. Selecting any ‘Sinkhole’ variant requires a value in the ‘Sinkhole IP’ parameter.
- Enter a Sinkhole IP. (Only enter if you have selected a sinkhole category action in the Categories parameter).
- Select one or more Record Types. ‘All Record Types’ cannot be selected together with any other Record Type value.
- Under Block All except Allow list, select ‘Yes’ to block all DNS traffic except domains on this profile’s allowlist; select ‘No’ to allow all traffic except the listed domains.
Block All except Allow list ne peut pas être défini sur Oui avec le type d'action Add to Domain Block list.

-
Cliquez sur Save.
Activer la rétractation de l'IoC
Pour activer la rétractation IoC à partir de Cloud Exchange :
- Cliquez sur Save.
Note
Si les IoC sont initialement tirés dans Cloud Exchange, et que le tirage Retrohunt est activé, les IoC tirés de Netskope seront marqués comme Retracted si l'IOC est retourné comme propre par les API Retrohunt. Une fois que l'IoC est marqué comme rétracté sur la base des API de Retrohunt, l'IoC sera également rétracté à partir de la tierce partie si cette dernière supporte la rétractation par poussée. Si une interface de programmation tierce est partagée avec une liste d'URL ou une liste de hachage de fichiers Netskope et qu'elle est marquée comme rétractée dans Cloud Exchange, elle sera également supprimée du locataire lorsque le prochain partage sera déclenché.
Valider le plugin Threat Exchange
Valider le retrait
Pour valider l'extraction d'Alert de Netskope, allez sur le site Logging dans Cloud Exchange et recherchez les journaux extraits.
You can add a filter like: message Like “pulled”.

Note
- If Enable Retrohunt is selected as yes, then after pulling malware from the tenant, the plugin will check the false positive status using Retrohunt, and if any indicator has verdict_updated: clean it will not be stored in Cloud Exchange and only malicious indicators will be stored. Also the plugin will store the severity of the indicator using the severity_updated field.
- Si vous devez mettre à jour la gravité de l'indicateur dans Cloud Exchange lorsqu'il est mis à jour sur le locataire Netskope, vous devez changer la valeur Reconciliation Criteria de Settings >Threat Exchange à Higher Severity Source Override. La gravité ne sera mise à jour que si elle passe d'une valeur inférieure à une valeur supérieure, mais pas si elle passe d'une valeur supérieure à une valeur inférieure.

Vous pouvez vérifier les indicateurs ignorés en raison de faux positifs en appliquant le message de filtre Like “<configuration_name>” dans Logging.

Après avoir stocké avec succès les indicateurs, lorsque le cycle de rétractation s'exécute, le plugin vérifie à nouveau le champ verdict_updated de Retrohunt. Si l'un des enregistrements stockés est passé d'une valeur malveillante à une valeur propre, l'indicateur sera marqué comme retiré dans Cloud Exchange.
Pour vérifier la rétractation des indicateurs, vous pouvez consulter les journaux à l'aide d'un filtre comme "[Retraction]".

Vous pouvez également vérifier les IoC rétractés à partir de la page Threat IoCs.
Ajoutez un filtre comme sources.source Est égal à "<configuration_name>" && sources.retracted Est égal à true.

Valider les indicateurs stockés
Pour valider l'indicateur stocké dans le Cloud Exchange, rendez-vous à Threat Exchange > Threat IoCs.


Validez la présence d'alertes dans votre locataire Netskope
- Cliquez sur Alerts, cliquez sur Add Filter et sélectionnez Alert Type > Malsite et Malware, puis cliquez sur Apply. Select une option dans le menu déroulant Last x Days dans le coin supérieur droit.

Valider le push
Pour valider le plugin workflow dans Cloud Exchange:
-
Allez à Logging et recherchez les indicateurs partagés avec le message de filtre Like « partagé ».
-
Les journaux partagés seront filtrés.


Validate the Push on the Netskope Tenant
Assurer le push des indicateurs sur le locataire Netskope à partir du plugin 3rd-party.
Validate the Add to URL List Sharing
And as this sharing supports push retraction, you can also validate the logs in the logging section by applying a filter as provided below:

And you can check the same indicators are deleted from the URL list on the Netskope tenant.

Validate the Add to File Hash List Sharing
- Cliquez sur le site File Name > File Hash pour lequel le hachage de fichier MD5 et SHA256 est stocké.

Validate the Add to Private App Sharing
Validate the Add to Destination Profile Sharing
-
Dans votre locataire Netskope, allez sur Policies.

-
Cliquez sur Profiles > Destination.

-
Click on the Profile Name on which the URL is shared.
-
La liste s'affiche ici.

And as this sharing supports push retraction, you can also validate the logs in the logging section by applying a filter as provided below:

And you can check the same indicators are deleted from the Destination Profile on the Netskope tenant.

Validate the Add to DNS Profile Sharing
-
Dans votre locataire Netskope, allez sur Policies.

-
Click Profiles > DNS

-
Open the DNS profile that was used while configuring the sharing.


This action also supports push retraction, which means the IOCs that were already shared to a DNS profile and are marked as retracted yes in Cloud Exchange will get deleted from the DNS profile in the next sharing sync interval.
Exemple :
This is a DNS profile that has domain “cgotdz7us4.co”. This IOCs was pulled from CrowdStrike and shared to this DNS profile via Netskope Threat Exchange plugin.

Now the domain “cgotdz7us4.co” got marked as retracted in CE as it was deleted on CrowdStrike platform.

After the next sharing sync interval of Netskope Threat Exchange plugin it got deleted from the DNS profile. We can track the status for deletion via the Retraction result field. Once the retraction result is CTE Netskope Threat Exchange: retracted, this means it is deleted from the Netskope Tenant.

DNS Profile after IOC was deleted,

Dépannage du plugin Threat Exchange
Erreur lors de la configuration de Netskope Threat Exchange
J'obtiens l'erreur suivante : Le jeton Netskope tenant API V2 n'a pas les autorisations nécessaires configurées. Consultez la liste des points de terminaison pour lesquels le jeton n'a pas de permission. **

Cause: Le jeton V2 fourni n'a pas les autorisations minimales requises pour configurer le locataire dans Cloud Exchange.
What to do:
- Allez sur Logging et recherchez un journal d'avertissement similaire à celui-ci :
TENANT Netskope Tenant (Required) [Netskope Tenant] : Pour Netskope Tenant, a reçu une erreur 403 pour le(s) point(s) d'extrémité suivant(s) - Développez le journal et obtenez la liste des points de terminaison pour lesquels les autorisations sont manquantes.

- Mettez à jour les autorisations du jeton v2 et ajoutez l'autorisation pour la liste de points de terminaison ci-dessus à partir de l'interface utilisateur de Netskope.
La configuration de partage a toujours une taille de liste de 8 MB au lieu de 7MB dans la liste d'ajout d'URL après la mise à jour du plugin.
Depuis la version 2.2.0 du plugin, la taille de la liste est passée de 8 MB à 7MB. Si vous avez configuré le plugin, y compris les configurations de partage, avec des versions antérieures, mettez le plugin à jour avec la dernière version. La configuration a toujours la taille de liste 8, et lors de l'édition de la configuration de partage, une erreur se produit.
What to do:
- Modifiez la configuration et remplacez la taille de la liste par 7 Mo, puis enregistrez la configuration.
- Configurez un partage New en suivant les étapes mentionnées dans Ajouter à la liste des URL.
Réception d'une erreur après l'exécution réussie de l'option Ajouter à la liste d'URL
Si vous avez synchronisé le partage de la liste Add to URL, et que vous voyez cette erreur même après une exécution réussie, et dans le locataire Netskope, il y a une icône d'avertissement qui dit View pending changes (Voir les changements en attente). Ceci est dû au nombre limité d'URL (300000) autorisé sur le site Netskope Tenant mentionné dans cette documentation.


What to do:
Supprimez les URL inutiles de vos listes d'URL, puis cliquez sur Apply Changes.
Les balises non partagées ne sont pas attachées aux IoC qui ne sont pas partagés avec la plateforme tierce.
Il se peut que la fonctionnalité de marquage ne fonctionne pas correctement. Pour résoudre ce problème, vous devez mettre à jour le plugin avec la dernière version, puis les balises non partagées seront attachées aux IoC qui sont ignorés lors du partage avec Netskope Tenant.
What to do:
Mettez à jour le plugin avec Netskope Threat Exchange v2.3.0 ou une version plus récente.
Note
If the IoC is having an invalid host or invalid app tag attached to it, then the unshared tag will not be attached to that IoC.
Some of the IOCs not shared to Destination Profile even if the URLs are valid in Cloud Exchange
You might see only a few URLs shared to the Destination Profile even if the URLs are valid in Cloud Exchange. This might be due to below reasons:
- The URLs do not match the definition for the Match Type.
- The maximum number of valid URLs exceeds on the Netskope Tenant.
What to do:
-
Verify the URL matches the definition for the Match Type provided in the Destination Profile. For more information, refer to the documentation.


-
Verify the available URLs on the Destination Profiles as for both of the Exact Match Types, the maximum supported URLs are 100k per Profile and 300k per tenant. And for Regex Match Type, the maximum supported URLs are 1000 per tenant.
Limites
- Une erreur se produira si la même liste de hachage de fichiers est partagée avec Netskope Tenant à partir de Cloud Exchange. Si une liste de hachages de fichiers contient la même liste de hachages de fichiers qui ont été poussés précédemment, et que Cloud Exchange essaie de la pousser à nouveau, l'API lancera une erreur comme indiqué ici :

- Si vous avez fourni plusieurs ports et plages lors de la configuration de l'ajout au partage privé d'applications, il se peut que les ports multiples soient convertis en une plage conformément aux limitations de l'API, comme indiqué ci-dessous :


Comportements connus
- Starting from version 2.3.0, if the Enable Retrohunt field is selected as Yes, then the plugin will only pull malware data that does not have verdict: clean or verdict_updated: clean. However, during the retraction cycle, only verdict_updated: clean indicators are retracted. If you’ve already used an older version (v2.1.3 or earlier) and pulled indicators, upgrading to v2.3.0 will not retract indicators with only verdict: clean; only those with verdict_updated: clean will be retracted.
- Lors de la mise à jour du plugin, si vous utilisez le bouton "skip", vous ne pourrez pas activer le plugin à partir de la version 2.3.0. Nous avons introduit un champ New Enable Retrohunt et sa valeur ne sera pas conservée si vous utilisez le bouton Skip lors de la mise à jour du plugin. Pour résoudre ce problème, vous devez éditer le plugin et activer/désactiver le champ retrohunt, sauvegarder le plugin, et ensuite vous pourrez activer le plugin.
- Users will not be able to configure the same action with different business rules for DNS Profile and Destination profile.























