Ce document explique comment configurer le système v1.1.0 Cybereason plugin avec le module Threat Exchange de la plateforme Netskope Cloud Exchange. Le plugin Cybereason est conçu pour récupérer les IoC (Domain, IPv4, IPv6, MD5, et SHA256) de la page Security Profile > Reputations, et les stocker dans Cloud Exchange. En outre, le plugin prend en charge le partage des IoC (Domain, IPv4, IPv6, MD5 et SHA256) vers la page Cybereason Security Profile > Reputations.
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 abonnement à Secure Web Gateway pour le partage d'URL.
- Un abonnement à Netskope Threat Prevention pour le partage de fichiers malveillants par hachage.
- A Netskope Cloud Exchange tenant with the Tenant plugin and Threat Exchange plugin already configured
- Le nom d'utilisateur et le mot de passe de votre compte Cybereason.
- Connectivité à l’hôte suivant : https://integration.cybereason.net:8443.
Support du plugin Cybereason
Types d'indicateurs prédéfinis | SHA256, MD5, Domaine, IPv4, IPv6 |
Types d'indicateurs partagés | SHA256, MD5, Domaine, IPv4, IPv6 |
Permissions
Pour accéder à ce plugin, vous devez disposer d'un accès administrateur à votre plateforme Cybereason. Contactez l'équipe de Cybereason pour obtenir un accès administrateur.
Mises en correspondance
Cartographie des tractions
| Champs CE de Netskope | Champs Cybereason |
|---|---|
| Value | Value |
| Type | Type |
| Première vue | Ajouté le |
| Dernière visite | Dernière modification |
Cartographie par poussée
| Champs CE de Netskope | Champs de l'interface utilisateur de Cybereason |
|---|---|
| Comment | Description |
| Value | Value |
Permissions
Pour accéder à ce plugin, vous devez disposer d'un accès administrateur à votre plateforme Cybereason. Contactez l'équipe de Cybereason pour obtenir un accès administrateur.
Détails de l'API
Liste des API utilisées
| Point final de l'API | Méthode | Cas d'utilisation |
|---|---|---|
| /login.html | PUBLIER | Pour authentifier le plugin |
| /rest/classification/reputations/list | PUBLIER | Tirer des réputations (IoCs) |
| /rest/classification/upload | PUBLIER | Pousser les réputations (IoCs) |
Pour s'authentifier
API Endpoint: https://<baseurl>/login.html
Method: PUBLIER
Headers
| Clé | Value |
|---|---|
| User-Agent | <User Agent> |
| Content-Type | application/x-www-form-urlencoded |
| Cookie | <Cookie> |
| Accept | application/json |
Payload:
| Clé | Value |
|---|---|
| nom d'utilisateur | <username><nom d'utilisateur> |
| password | <password> |
Sample API Response:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Cybereason</title>
<meta name="viewport" content="width=device-width">
<link rel="shortcut icon" href="favicon.ico">
</head>
<body class="cbr-theme-light">
<app></app>
<script type="text/javascript">
(function () {
var loadScript = function({ uri, async, onLoad, onError, attrs }) {
var isSync = async === undefined ? true : async;
const script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', uri);
script.async = isSync;
if (onLoad) script.onload = onLoad;
if (onError) script.onerror = onError;
if (attrs && attrs.length) attrs.forEach(function (attr) {script.setAttribute(attr.name, attr.val)});
document.body.appendChild(script);
};
var loadCSS = function(uri) {
const head = document.getElementsByTagName('head')[0];
const link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = uri;
link.media = 'all';
head.appendChild(link);
};
var attrs = [{ name: 'data-shell-sdk-url', val: 'rest/uimodules/js/shell-sdk' }];
function loadFallbackGlobalStyles() {
loadScript({ uri: '/externals/cbr-global-styles-1.4.1.js' });
}
function requireGlobalStyles() {
var initRuntimesPromise = window.CbrInfraShell && window.CbrInfraShell.initRuntimesPromise;
if (initRuntimesPromise) {
initRuntimesPromise.then(() => {
require(['@cbr/global-styles']);
}).catch(() => {
loadFallbackGlobalStyles();
})
} else {
loadFallbackGlobalStyles();
}
}
function loadFallback() {
window.__isLoadShellFallback__ = true;
var fallbSrc = '/rest/uimodules/js/shell-sdk/latest/shell.js';
loadScript({ uri: fallbSrc, async: false, onLoad: requireGlobalStyles, onError: loadFallbackGlobalStyles, attrs });
// prevent chaching by adding query param
loadCSS('/public/common.css?23.2.120');
loadCSS('/public/vendors.css?23.2.120');
loadCSS('/public/app.css?23.2.120');
loadScript({ uri: '/public/common.js?23.2.120' });
loadScript({ uri: '/public/vendors.js?23.2.120' });
loadScript({ uri: '/app.js?23.2.120' });
loadScript({ uri: '/externals/pendo.js' });
}
var tenant = window.location.hostname.split('.')[0];
var _shellSdkUri = (window?.localStorage && window?.localStorage.getItem('shell.shellSdkUri')) || '';
var shellSrc = (_shellSdkUri || '/rest/dynamic/v1/ui-infra-shell/public-api/js/shell.js') + '?pVersion=23.2.120&tenantId='+ tenant;
loadScript({ uri: shellSrc, async: false, onLoad: requireGlobalStyles, onError: loadFallback, attrs });
})();
</script>
</body>
</html>
Réputations de tirage (IoCs)
API Endpoint: https://<baseurl>/rest/classification/reputations/list
Method: PUBLIER
Headers:
| Clé | Value |
|---|---|
| User-Agent | <User Agent> |
| Content-Type | application/json |
Sample Payload:
{
"filter": {
"includeExpired": true,
},
"page": 0,
"size": 20
}
Sample API Response
{
"outcome": "success",
"data": {
"reputations": [
{
"key": "2001:0db8:0:0:0:ff00:42:8888",
"reputationType": "IP",
"isBlocking": false,
"maliciousType": "blacklist",
"comment": "",
"expiration": -1,
"owningUser": "gjenkins@netskope.com",
"firstSeen": 1713948991801,
"lastUpdated": 1713948991801,
"additionalKeys": [],
"lookupKeyType": "IPV6"
}
],
"total": 1
}
}
Réputations poussées (IoCs)
API Endpoint: https://<baseurl>/rest/classification/upload
Method: PUBLIER
Headers:
| Clé | Value |
|---|---|
| User-Agent | <User Agent> |
| Cookie | <cookie> |
Payload:
| Clé | Value |
|---|---|
| classification_file | Fichier CSV [Téléchargez le fichier csv des réputations]. |
Matrice de performance
Vous trouverez ci-dessous la lecture des performances réalisée en tirant et en partageant 100 000 indicateurs de/vers Cybereason sur une grande pile CE avec les spécifications ci-dessous.
| Détails de la pile | Taille : Grande RAM : 32 GB CPU : 16 cœurs |
| Indicateurs extraits de Cybereason | ~15K per minute |
| Indicateurs partagés avec Cybereason | ~1K per minute |
Agent utilisateur
netskope-ce-5.0.1-cte-cybereason-v1.1.0
Workflow
- Obtenez les informations sur votre instance Cybereason.
- Configurez le plugin Cybereason.
- Configurez une règle de gestion pour Cybereason.
- Configurez le partage entre Netskope et Cybereason.
- Validez le plugin Cybereason.
Cliquer sur « play » pour regarder une vidéo.
Obtenez vos informations sur Cybereason
Pour configurer le plugin Cybereason, vous aurez besoin de l'URL de base, du nom d'utilisateur et du mot de passe de votre instance Cybereason.
- Nom d'utilisateur : Nom d'utilisateur de votre plateforme Cybereason.
- Mot de passe: Mot de passe de votre plateforme Cybereason.

Configurer le plugin Cybereason
- Dans Cloud Exchange, aller dans Paramètres > Plugins.
- Recherchez et sélectionnez la case du plugin Cybereason .

- Pour les informations de base, entrez ces valeurs :
- Nom de la configuration : Nom unique de la configuration.
- Sync Interval : Intervalle de récupération des données de cette source de plugin.
- Critères de vieillissement : Les indicateurs expirent après une période spécifique.
- Remplacer la réputation : Définissez une valeur pour remplacer la réputation des indicateurs.
- Activer la vérification SSL : Activez cette option si une vérification SSL est requise pour la communication.
- Utiliser le proxy du système : Activez cette option si le proxy est nécessaire pour la communication.

- Cliquez sur Suivant.
- For Configuration Parameters, enter these values:
- Base URL : URL de la console Cybereason à partir de laquelle vous souhaitez récupérer les données.
- Nom d'utilisateur : Nom d'utilisateur API/nom d'utilisateur pour accéder à la plateforme Cybereason.
- Password : Mot de passe API/Mot de passe de la plateforme Cybereason.
- Activer l'interrogation : Activez cette option si vous souhaitez récupérer des données.

- Cliquez sur Enregistrer.

Ajouter une règle de gestion Threat Exchange pour Cybereason
Pour partager les indicateurs avec Cybereason, ajoutez une règle de gestion pour filtrer les données que vous souhaitez partager. Pour ce faire, suivez les étapes suivantes.
- Allez sur Threat Exchange > Business rule.
- Cliquez sur Créer une règle New .
- Ajoutez un nom de règle et créez des filtres en fonction de vos besoins, comme ceux présentés ci-dessous.


- Cliquer sur Enregistrer.
Configurer le partage de Threat Exchange pour Cybereason
Configurez le partage afin de partager les IoC avec Cybereason.
- Dans Threat Exchange, allez dans Partage.
- Cliquez sur Ajouter la configuration du partage.

- Cliquez sur le menu déroulant Source Configuration et choisissez Netskope (ou tout autre plugin source à partir duquel vous souhaitez partager des IoC).
- Cliquez sur la liste déroulante Business Rule et sélectionnez la Business Rule créée précédemment.
- Cliquez sur le menu déroulant Configuration de la destination et sélectionnez Cybereason.
- Pour partager les IoC, cliquez sur le menu déroulant Cible et choisissez Partager les indicateurs.

- Pour partager des URL, cliquez sur le menu déroulant Cible et choisissez Ajouter à la liste des URL. Saisissez le nom de la liste d’URL depuis votre locataire Netskope et créez une liste New . Select le type de liste d’URL, puis saisi une taille de liste et l’URL par défaut.

- Pour partager les hachages, cliquez sur la liste déroulante Cible et choisissez Ajouter à la liste des hachages de fichiers. Saisissez le nom de la liste (profil de fichier) de votre compte Netskope, puis indiquez sa taille.

- Cliquer sur Enregistrer.
Valider le plugin Cybereason
Valider le retrait
- Les indicateurs de Cybereason sont tirés de cette page : Security Profile > Reputation.
Notez que les indicateurs dont la description est "created from Netskope" ne seront pas extraits.
- Les indicateurs stockés dans Cloud Exchange peuvent être vérifiés à partir de la page Threat Exchange > Threat IoCs.
- Recherchez les IoC de Cybereason en filtrant les indicateurs de Cyberereason.
Exemple : Ajoutez une requête sur la page Menace des IoCs comme « sources.source Est égal à<plugin configuration name> « ».


- Vous pouvez également vérifier les indicateurs extraits dans Cloud Exchange à partir des journaux disponibles sur la page Logging .

Valider le push
Les IoC partagés vers Netskope/Cybereason peuvent être vérifiés à partir des journaux disponibles sur la page Logging de Cloud Exchange.


Dépannage
Impossible de valider/envoyer les données sur la plateforme Cybereason
Si vous ne pouvez pas consulter les données sur la plateforme Cybereason, cela peut être dû à l'une des raisons suivantes :
- Les URLs avec un format invalide (format non supporté par la plateforme Cybereason), exemple : protocol.subdomain.domainname sont partagées pour lesquelles l'API renvoie un message de succès, mais le lot entier d'IoCs ne sera pas partagé.
- Des IoC non valides (MD5, SHA256) sont partagés.
- Lors de la transmission des données par lots, il peut y avoir une erreur de serveur de la plateforme Cybereason, ce qui fait que la transmission par lots a été ignorée.
Pour résoudre ces problèmes :
- Supprimez les URL au format invalide (format non pris en charge par la plateforme Cybereason) protocol.subdomain.domainname et essayez de partager à nouveau les IoC en utilisant la synchronisation manuelle.
- Vérifiez dans Cloud Exchange, il y aura un journal présent qui IoC est invalide. Supprimez l'IoC en question et essayez de partager les IoC en utilisant la synchronisation manuelle.
- Essayez à nouveau de pousser les données en utilisant la synchronisation manuelle.
Impossible d'extraire les données de la plate-forme Cybereason
Si vous n'arrivez pas à extraire les données sur la plateforme Cybereason, cela peut être dû à l'une des raisons suivantes :
- Aucun COI n'est présent sur la plateforme pour tirer.
- API renvoyant un délai de lecture lors de l'extraction des IoC.
- L'interrogation est réglée sur "Non" dans la configuration du plugin Cybereason.
Pour résoudre ces problèmes :
- Assurez-vous que des COI valides sont présents dans le Cybereason si une extraction est nécessaire. Si des IOC sont présents sur la plate-forme, vérifiez la description des IOC. S'ils sont "créés à partir de Netskope", les IOC ne seront pas extraits car ils sont partagés par le CE lui-même.
- Attendez que l'API règle le problème du délai d'attente.
- Paramétrez l'option "Polling" comme "Oui" dans le plugin Cybereason.
Comportements connus
- Tous les indicateurs seront partagés en tant que liste noire sur la plateforme Cybereason. C'est pourquoi vous verrez l'action dans la plateforme Cybereason comme "Détecter seulement".
- Si l'un des COI non valides est présent dans un lot à partager, l'ensemble du lot sera ignoré.
- Une fois que l'extraction de toutes les pages est terminée, l'extraction recommence à la page 1, car il n'y a pas de champ dans l'API pour mettre en œuvre le mécanisme de point de contrôle.

