Ce document explique comment configurer le plugin Chronicle v3.0.0 avec le module Log Shipper de la plateforme Netskope Cloud Exchange. Ce plugin est utilisé pour délivrer des alertes (DLP (Prévention des pertes de données), Malware, Policy, Compromised Credential, Malsite, Quarantaine, Remediation, Security Assessment, Watchlist, UBA, CTEP, Anomaly, Legal Hold) et des événements (Page, Application, Audit, Infrastructure, Network, Incident) données à la plateforme Google Chronicle. Le plugin prend en charge le partage des données au format UDM et JSON. Les clés API requises sont liées aux clients et sont fournies par votre représentant Google Chronicle.
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 locataire Netskope Cloud Exchange avec le plugin Tenant et le plugin Log Shipper déjà configurés.
- Un compte rendu de la Chronique. Obtenez l'URL de la base Chronicle, la clé du compte de service et l'identifiant du client auprès de votre représentant Chronicle avant de procéder.
- Connectivité avec les hôtes suivants (l'un de ces URL régionaux) :
- ÉTATS-UNIS : https://malachiteingestion-pa.googleapis.com/
- UE : https://europe-malachiteingestion-pa.googleapis.com/
- ASIE : https://asia-southeast1-malachiteingestion-pa.googleapis.com/
- Autres URL personnalisées que vous avez.
- Obtenez la clé du compte de service de la Chronique. Contactez l'équipe de Chronicle pour obtenir un compte de service avec la portée suivante : https://www.googleapis.com/auth/malachite-ingestion.
Prise en charge du plugin Google Chronicle
Le plugin Google Chronicle est utilisé pour ingérer toutes les alertes et tous les événements au format UDM et JSON. L'ingestion des données WebTx et Syslog CE Log n'est pas prise en charge.
| Type de données | Support |
|---|---|
| Alertes | Oui (informations d'identification compromises, politique, sites, logiciels malveillants, prévention des pertes de données, évaluation de la sécurité, liste de surveillance, quarantaine, remédiation, UBA, CTEP, anomalie, mise en suspens juridique) |
| Événements | Oui (Page, Application, Audit, Infrastructure, Réseau, Incident) |
| WebTx | Non |
| Journaux Syslog CE | Non |
Détails de l'API
Liste des API utilisées
| Point final de l'API | Méthode | Cas d'utilisation |
|---|---|---|
| /v2/udmevents:batchCreate | PUBLIER | Intégrer les événements UDM |
| /v2/unstructuredlogentries:batchCreate | PUBLIER | Ingérer des logs non structurés |
Ingérer les événements UDM
API Endpoint: <Base URL>/v2/udmevents:batchCreate
Method: POST
Body
{
"customer_id": "c8c65bfa-5f2c-*********9-64bb7b939f2c",
"events": [
{
"metadata": {
"event_timestamp": "2019-10-22T12:00:00.000Z",
"event_type": "USER_LOGIN",
"product_name": "Acme SSO",
"vendor_name": "Acme"
},
"principal": {
"ip": [
"10.1.2.3"
]
},
"target": {
"application": "Acme Connect",
"user": {
"user_display_name": "Mary Jane",
"userid": "mary@altostrat.com"
}
},
"extensions": {
"auth": {
"type": "MACHINE",
"mechanism": [
"NETWORK"
]
}
}
},
]
}
Sample API Response
Status Code: 200 (Success)
Ingérer des logs non structurés
API Endpoint: <Base URL>/v2/unstructuredlogentries:batchCreate
Method: POST
Body
{
"customer_id": "c8c65bfa-5f2c-42d4-9189-64bb7b939f2c",
"log_type": "BIND_DNS",
"labels" : [
{
"key" : "key_name_one",
"value" : "value_one"
},
{
"key" : "key_name_two",
"value" : "value_two"
}
]
"entries": [
{
"log_text": "26-Feb-2019 13:35:02.187 client 10.120.20.32#4238: query: altostrat.com IN A + (203.0.113.102)",
"ts_epoch_microseconds": 1551188102187000
},
{
"log_text": "26-Feb-2019 13:37:04.523 client 10.50.100.33#1116: query: examplepetstore.com IN A + (203.0.113.102)",
},
{
"log_text": "26-Feb-2019 13:39:01.115 client 10.1.2.3#3333: query: www.example.com IN A + (203.0.113.102)"
}
];
}
Sample API Response
Status Code: 200 (Success)
Ce plugin utilise des bibliothèques Python pour s'authentifier auprès de l'API Chronicle Ingestion.
- Bibliothèque : Bibliothèque d'authentification Google pour Python (google-auth).
- Utilisation : La bibliothèque Google Authentication pour Python (google-auth) permet de s'authentifier auprès des API de Google.
Create a New Session with Credentials
SCOPES = ['https://www.googleapis.com/auth/malachite-ingestion']
credentials = (
service_account.Credentials.from_service_account_info(
json.loads(self.configuration["service_account_key"]),
scopes=SCOPES,
)
)
self.http_session = request.AuthorizedSession(credentials)
Chronicle API Request
response = self.http_session.request(
"POST",
url,
headers=headers,
json=payload,)
Matrice de performance
Cette analyse des performances a été réalisée sur une pile de grande taille avec les spécifications de la VM. Ces relevés indiquent qu'il ingérera environ 10 000 événements en 13 secondes sur la plateforme Google Chronicle.
| Description | Specifications |
|---|---|
| Détails de la pile | Taille : Grande RAM : 32 GB CPU : 16 cœurs |
| Alertes/événements intégrés à la plateforme Google Chronicle | ~200K EPM |
Agent utilisateur
netskope-ce-6.0.0-cls-google-chronicle-v3.0.0
Workflow
- Obtenez vos accréditations pour Chronicle.
- Configurer le plugin Chronicle.
- Configurer les règles de gestion de l'expéditeur de journaux pour Chronicle.
- Configurer les correspondances SIEM de Log Shipper pour Chronicle.
- Valider le plugin Chronicle.
Regardez une vidéo
Cliquer sur « play » pour regarder une vidéo.
Configurer le plugin Google Chronicle
- Dans Cloud Exchange, allez sur Settings > Plugin Store. Recherchez et sélectionnez le plugin Google Chronicle v3.0.0 (CLS).

- Ajoutez un nom de configuration de plugin et assurez-vous que le fichier Chronicle Default Mappings est sélectionné. Veillez à conserver le format UDM pour ingérer les données au format UDM, et à le modifier en JSON pour ingérer les données au format JSON.

- Cliquez sur Next et entrez les paramètres de configuration :
- Region: La région Chronicle où le compte client est provisionné.
- Custom Region URL: URL de base de la région personnalisée ; requise uniquement si l’option « Région personnalisée » est sélectionnée.
- Service Account Key: Identifiants du compte de service (fournis par votre équipe Chronicle).
- Customer ID: Identifiant unique, correspondant à votre instance Chronicle.
- Log Source Identifier: Cela sera ajouté comme espace de noms à toutes les données formatées JSON. L’identifiant de source du journal ne doit pas contenir d’espaces blancs.

- Cliquez sur Save. La configuration de votre plugin New sera disponible sur la page Log Shipper > Plugins.

Configurer une règle de gestion de l'expéditeur de logs pour Google Chronicle
- Dans Log Shipper, allez à Business Rules.
- Par défaut, une règle de gestion filtre toutes les alertes et tous les événements. Si vous souhaitez filtrer un type spécifique d'alerte ou d'événement, cliquez sur Create New Rule et configurez une règle de gestion New en ajoutant un nom de règle et le(s) filtre(s) souhaité(s).

Configurer l'envoi de logs par Log Shipper pour Google Chronicle
- Dans Log Shipper, allez à Log Delivery et cliquez sur Add Log Delivery Configuration.
- Select le plugin Source (Netskope CLS), le plugin Destination (Chronicle Demo), une règle métier et cliquez sur Save.
- Après l'ajout de Log Delivery, les données commenceront à être extraites du locataire Netskope, transformées et ingérées dans la plateforme Google Chronicle.

Valider le plugin Google Chronicle
Vous pouvez valider le plugin dans Cloud Exchange et Google Chronicle.
Valider le retrait
Pour valider l'extraction des événements et des alertes du locataire Netskope, allez sur Logging dans Cloud Exchange et recherchez les journaux extraits.


Valider le push
Pour valider le plugin workflow dans Cloud Exchange, allez sur Logging et recherchez les événements et alertes ingérés avec le filtre message contains ingested. Les journaux ingérés s'affichent.



Pour valider le push dans Google Chronicle :
- Fixez l’heure de début (UTC) et l’heure de fin (UTC) selon vos besoins. Et ajouter une requête à la recherche d’alertes/événements ingérés. Cliquez Search.
- Cliquez sur Event Viewer pour voir les détails dans le journal.

Note
Veillez à sélectionner la bonne période lors du filtrage des données ingérées.
- Vous pourrez voir les données ingérées.
Exemple d'événements/alertes ingérés au format UDM :










Exemple d'alertes saisies au format JSON :


Dépannage du plugin Google Chronicle
Impossible de configurer le plugin Google Chronicle
Si vous ne parvenez pas à configurer le plugin Google Chronicle ou si vous obtenez une erreur d'authentification dans les journaux, cela peut être dû à l'une des raisons suivantes :
- Vous avez fourni un identifiant de client incorrect.
- Clé de compte de service incorrecte fournie.
- Format incorrect de la clé de compte de service fourni.
What to do:
- Veillez à indiquer le numéro d'identification du client qui vous a été fourni par votre représentant Chronicle, en fonction de la région sélectionnée.
- Veillez à fournir la clé de compte de service correcte en fonction de la région sélectionnée.
- Veillez à fournir le format correct de la clé de compte de service.
Obtenir une erreur dans les logs liés à l'authentification après avoir configuré le plugin Google Chronicle
Si vous obtenez des erreurs d'authentification dans les journaux, cela peut être dû à l'une des raisons suivantes :
- Clé de compte de service incorrecte fournie.
- Format incorrect de la clé de compte de service fourni.
What to do:
- Veillez à fournir la clé de compte de service correcte en fonction de la région sélectionnée.
- Veillez à fournir le format correct de la clé de compte de service.
Impossible de filtrer les alertes/événements ingérés dans Chronicle
Si vous n'arrivez pas à filtrer les alertes/événements ingérés sur la plateforme Chronicle, vérifiez si vous n'utilisez pas un mauvais filtre ou une mauvaise plage horaire.
What to do:
Les alertes ou événements ingérés peuvent ne pas être immédiatement visibles sur l'interface utilisateur de Chronicle, car l'ingestion et le traitement peuvent prendre un certain temps. Attendez donc un peu, puis reportez-vous à la section Valider le push pour filtrer les alertes/événements. Il est nécessaire d'utiliser la plage de temps correcte basée sur l'heure d'ingestion lors du filtrage des événements ou des alertes.
Impossible d'ingérer des données dans Google Chronicle
Si vous n'arrivez pas à ingérer des données sur la plateforme Google Chronicle et que vous obtenez cette erreur, vérifiez les raisons ci-dessous.
Si vous avez reçu un message d'erreur tel qu'affiché dans l'image ci-dessous lors de l'ingestion de données sur la version 2.0.2 de Google Chronicle, passez à la rubrique Que faire ci-dessous.

What to do:
Pour résoudre cette erreur, assurez-vous d'avoir mis à jour la dernière version du plugin Google Chronicle, comme la 2.2.0.
Le paramètre Format affiche CEF au lieu de UDM après la mise à jour du plugin vers la version 3.0.0
Si vous utilisez Cloud Exchange v6.0.0 et que vous mettez à jour le plugin avec la dernière version (v3.0.0), vous pouvez vérifier le paramètre Format en éditant le plugin.

What to do:
Modifiez le plugin et sélectionnez le format UDM, puis enregistrez le plugin.
Comportements connus
- Les alertes reçues de Cloud Exchange seront classées comme des événements sur Google Chronicle. Vous pouvez le voir dans la capture d'écran ci-dessous :

- Ce plugin ne prend en charge que l'ingestion des alertes/événements énumérés dans la section Champ d'application du plugin.
L'ingestion de ces alertes et événements Netskope n'est pas prise en charge par ce plugin :
Alert Types: périphérique, Content
Event Types: Endpoint, Client Status - Les alertes ou événements ingérés peuvent ne pas être immédiatement visibles sur l'interface utilisateur de Chronicle, car l'ingestion et le traitement peuvent prendre un certain temps. Il a été observé que si nous ingérons un grand nombre de données, cela peut prendre quelques heures pour réfléchir à l'interface utilisateur de la Chronique.





