Notes de mise à jour
1.1.0 (Required minimum CE version for this is 6.0.0)
Added
- Résolution ajoutée pour les journaux d’erreurs.
- Prise en charge ajoutée pour le remplissage dynamique des champs en fonction du protocole de sécurité Kafka sélectionné.
Fixed
- Ingestion fixe pour certains champs au format JSON.
Updated
- Mise à jour des mappages par défaut de Kafka.
1.0.1
Fixed
- Bug fixes.
1.0.0
Added
- Initial release.
Ce document explique comment configurer Kafka v1.1.0 plugin avec le module Log Shipper de la plateforme Netskope Cloud Exchange. Ce plugin est utilisé pour envoyer des alertes Netskope (DLP (Prévention des pertes de données), Malware, Policy, Compromised Credential, Malsite, Quarantine, Remediation, Security Assessment, Watchlist, UBA, CTEP, périphérique, Content), des événements (Page, Application, Audit, Infrastructure, Network, Incident, Endpoint, Client Status) et des données WebTx vers un sujet Kafka. Ce plugin prend en charge l'ingestion aux formats JSON et CEF.
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 locataire Netskope Cloud Exchange avec le plugin AWS Netskope Log Streaming ou Azure Netskope Log Streaming déjà configuré (pour tirer WebTx des plugins Netskope Log Streaming).
- Les paramètres de configuration de votre serveur Kafka.
- Connectivité au serveur Kafka.
Support des plugins Kafka
Ce plugin est utilisé pour envoyer les alertes Netskope (DLP (Prévention des pertes de données), Malware, Policy, Compromised Credential, Malsite, Quarantine, Remediation, Security Assessment, Watchlist, UBA, CTEP, périphérique, Content), les événements (Page, Application, Audit, Infrastructure, Network, Incident, Endpoint, Client Status) et les données WebTx vers un sujet Kafka. Ce plugin prend en charge l’ingestion au format JSON et CEF.
| Type de données | Support |
|---|---|
| Alertes | Oui (informations 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) |
| Événements | Oui (Page, Application, Audit, Infrastructure, Réseau, Incident) |
| WebTx Logs | Oui (via Netskope LogStreaming) |
| Journaux Syslog CE | Non pris en charge |
Note
- CLS WebTX basé sur Google Pub Sub Lite est obsolète. Veuillez vous référer aux annonces EOL/EOS des produits Netskope - Netskope Knowledge Portal
- Pour ingérer les logs WebTX vers vos destinations de livraison de logs comme SIEM, SOAR, XDR, données Lake, utilisez le plugin AWS Netskope Log Streaming ou Azure Netskope Log Streaming.
Détails de l'API
Liste des API utilisées
Ce plugin utilise les bibliothèques kafka-python pour créer des producteurs et des consommateurs kafka.
La bibliothèque kafka-python est un client Python pur pour Apache Kafka qui permet aux développeurs d'interagir avec les clusters Kafka directement à partir d'applications Python. Il prend en charge les opérations Kafka essentielles telles que la production de messages vers des sujets, la consommation de messages à partir de sujets et l'exécution de tâches administratives telles que la création ou la suppression de sujets. La bibliothèque est facile à utiliser et s'intègre bien aux systèmes basés sur Python, ce qui la rend idéale pour créer des pipelines de données en temps réel ou des applications pilotées par les événements. Avec kafka-python, vous pouvez personnaliser les paramètres des groupes de consommateurs, gérer les commits de compensation et configurer les producteurs avec des garanties de livraison, le tout en utilisant du code Python familier.
Créer le consommateur
KafkaProducer(
bootstrap_servers=kafka_broker_address,
value_serializer=lambda x: x.encode("utf-8"),
acks=ACKS,
partitioner=DefaultPartitioner(),
retries=RETRIES,
linger_ms=LINGER_MS,
client_id=self._get_user_agent(),
batch_size=BATCH_SIZE,
compression_type=COMPRESSION_TYPE,
request_timeout_ms=TIMEOUT_MS,
)
Création du producteur
consumer = KafkaConsumer(
bootstrap_servers=kafka_broker_address,
security_protocol=kafka_security_protocol,
ssl_cafile=tmp_ca_file,
ssl_certfile=tmp_cert_file,
ssl_keyfile=tmp_private_key_file,
ssl_password=kafka_ssl_password,
request_timeout_ms=TIMEOUT_MS,
)
Pour lister les sujets présents sur le cluster Kafka
consumer.topics()
Pour envoyer des données
producer.send(
topic=kafka_topic_name,
value=data
if not isinstance(data, dict)
else json.dumps(data),
)
Matrice de performance
Cette analyse des performances est réalisée sur un CE à grande pile avec ces spécifications de VM. Ces relevés sont ajoutés en tenant compte du fait qu'il récupérera environ 10 000 alertes/événements en ~8 secondes dans le CE.
| Description | Spécifications |
|---|---|
| Détails de la pile | Taille : Grande RAM : 32 GB CPU : 16 cœurs |
| Alertes/événements intégrés au SIEM | ~200K EPM |
| WebTx ingéré dans SIEM | ~170K EPM |
Agent utilisateur
netskope-ce-6.1.0-cls-kafka-v1.1.0
Workflow
- Obtenez vos paramètres de configuration Kafka.
- Configurez le plugin Kafka.
- Configurez les règles commerciales de l'expéditeur de journaux pour Kafka.
- Configurez Log Shipper Log Delivery for Kafka.
- Validez le plugin Kafka.
Regardez une vidéo
Cliquer sur « play » pour regarder une vidéo.
Obtenez vos paramètres de configuration Kafka
Les paramètres de configuration suivants sont nécessaires pour configurer le plugin Kafka pour Log Shipper. Contactez l'équipe de configuration du serveur Kafka afin d'obtenir tous les paramètres de configuration.
L'ingestion de tous les événements/alertes et WebTx se fait sur l'Offset Explorer (v3.0.2) ; voici les étapes pour configurer le cluster Kafka sur l'Offset Explorer.
- Ajoutez une connexion New sur Offset Explorer, et fournissez toutes les informations pour le cluster.

- Après une connexion réussie, accédez au dossier Topics sous le cluster connecté.

- Cliquez sur l'icône + pour ajouter un New sujet à votre cluster, et indiquez le nom du sujet, le nombre de partitions et le nombre de réplicas. Une fois terminé, cliquez sur Add.

- Après une ingestion réussie depuis Cloud Exchange, vous pouvez trouver les données ingérées à Clusters > {cluster_name} > Topics > {topic_name} > Data.

Configurer le plugin Kafka
-
Dans Cloud Exchange, allez dans Settings > Plugin Store. Recherchez et sélectionnez le plugin Kafka v1.1.0 (CLS).

-
Ajoutez un nom de configuration de plugin et sélectionnez le mappage souhaité. Si vous souhaitez ingérer vos alertes/événements/webtx au format JSON brut, remplacez le format par JSON.

-
Cliquez sur Next et entrez les paramètres de configuration :
- Kafka Broker Address: DNS/adresse IP/FQDN du courtier Kafka vers lequel les données seront envoyées. Remarque : le plugin n'a besoin que d'un seul courtier capable de répondre à la requête de l'API de métadonnées.
- Kafka Port: Port sur lequel le courtier Kafka configuré est à l’écoute. La valeur doit être un nombre entier compris entre 1 et 65 535.
- Kafka Security Protocol: Select le protocole de sécurité avec lequel l'authentification sera effectuée et les données seront envoyées au cluster Kafka. La sélection de « SSL » nécessitera le remplissage des champs Kafka CA Certificate, Kafka Client Certificate, Kafka Client Private Key et Kafka SSL Private Key Password pour établir une connexion TLS mutuelle.
- Kafka CA Certificate: Certificat d'autorité de certification (CA) Kafka au format PEM, utilisé pour vérifier l'identité du courtier Kafka. Requis uniquement lorsque « SSL » est sélectionné comme protocole de sécurité Kafka.
- Kafka Client Certificate: Certificat client Kafka au format PEM, utilisé par le plugin pour s'authentifier auprès du broker Kafka. Requis uniquement lorsque « SSL » est sélectionné comme protocole de sécurité Kafka.
- Kafka Client Private Key: Clé privée du client Kafka au format PEM, associée au certificat du client Kafka. Requis uniquement lorsque « SSL » est sélectionné comme protocole de sécurité Kafka.
- Kafka SSL Private Key Password: Mot de passe pour la clé privée du client Kafka. Requis uniquement si le fichier PEM de la clé privée a été généré avec une phrase secrète. Requis uniquement lorsque « SSL » est sélectionné comme protocole de sécurité Kafka.
- Kafka Topic Name: Nom du sujet Kafka vers lequel les journaux doivent être envoyés. Remarque : le nom du sujet Kafka ne doit contenir aucun espace et doit déjà exister sur le cluster Kafka configuré. Ce plugin ne prend pas en charge la création de sujets sur Kafka.
- Log Source Identifier: Cette valeur sera ajoutée en tant que préfixe à tous les journaux ingérés.
- Exclude Timestamp Field: Select « Yes » pour ingérer les données sans le préfixe d'horodatage. Cette option ne s'applique qu'aux données au format JSON.
- Exclude Log Source Identifier Field: Select Oui" pour ingérer les données sans le champ Log Source Identifier. Cette option ne s'applique qu'aux données au format JSON.
Tous les paramètres mentionnés ci-dessus sont nécessaires lorsque le protocole de sécurité est SSL. Si le protocole de sécurité est Plaintext, alors Kafka Broker Address, Kafka Port, Topic Name, Exclude Timestamp Field and Exclude Log Source Identifier Field sont requis.

Tous les paramètres ci-dessus sont nécessaires lorsque le protocole de sécurité est SSL. Si le protocole de sécurité est Plaintext, alors Kafka Broker Address, Kafka Port, Topic Name, Exclude Timestamp Field and Exclude Log Source Identifier Field sont requis. -
Cliquer sur Save. La configuration de votre plugin sera disponible sur la page Log Shipper > Plugins.

Configurer une règle de gestion de l'expéditeur de logs pour Kafka
- Accédez aux règles de gestion. Par défaut, une règle de gestion filtre toutes les alertes et tous les événements.
- Si vous souhaitez filtrer un type d'alerte ou d'événement spécifique, cliquer sur Create New Rule et configurer une New règle de gestion en ajoutant le nom de la règle et le filtre.
- Cliquez sur Save.

Configurer Log Shipper Log Delivery pour Kafka
- Allez à Log Shipper > Log Delivery et cliquez sur Add Log Delivery Configuration.
- Pour les alertes et événements, sélectionnez le plugin Source (Netskope CLS plugin), le plugin Destination (Kafka plugin), une règle métier, puis cliquez sur Save.
- Pour l'ingestion de WebTx, sélectionnez le plugin Source (plugin AWS Netskope Log Streaming ou plugin Azure Netskope Log Streaming), le plugin Destination (plugin Kafka), puis cliquez sur Save.

Valider le plugin Kafka
Valider dans Cloud Exchange
Afin de valider le plugin workflow:
- Accédez à la fonction d'enregistrement.
- Recherchez les alertes ingérées à l'aide du filtre "message contains ingested".
- Les journaux ingérés seront filtrés.





Valider dans Kafka
Le plugin Kafka a été conçu pour envoyer les données formatées CEF en les encodant en UTF-8, et les événements JSON en effectuant une sérialisation JSON à l'aide de json.dumps(), et l'encoder en UTF-8.
Il existe de nombreuses façons de valider l'envoi des données au serveur Kafka, mais ici, c'est l'Offset Explorer qui est utilisé pour le faire.
Exemple d'alertes ingérées au format CEF :












Exemples d'événements ingérés au format CEF :








Exemple de Webtx ingéré au format CEF :


Exemple d’alerte ingérée au format JSON :

Exemple d'événement ingéré au format JSON :

Exemple de Webtx ingéré au format JSON :


Exemple de données JSON ingérées avec mappage personnalisé :

Dépannage du plugin Kafka
Le sujet est créé automatiquement dans Kafka lors de l'ingestion des données, même s'il a été supprimé.
What to do:
- Ajoutez un sujet New dans Kafka.
- Mettez à jour le plugin Kafka avec un nom de sujet New et sauvegardez-le.
- Supprimer l'ancien sujet dans Kafka.
En suivant ces étapes, le sujet supprimé ne sera pas recréé dans Kafka, et les données seront ingérées dans le sujet nouvellement ajouté.
Réception du message "Kafka Broker is unreachable or Kafka cluster may be down" (Le courtier Kafka est inaccessible ou le cluster Kafka est peut-être en panne).
Vérifiez l'adresse du courtier Kafka et le port Kafka fournis dans les paramètres de configuration.

Ce problème peut être dû à l'une des raisons suivantes :
- Le serveur Kafka est actuellement en panne.
- L'espace disque du serveur est plein.
What to do:
- Contactez votre service informatique et confirmez la raison de l'erreur parmi celles mentionnées ci-dessus.
- Si Kafka est en panne, le redémarrer fonctionnera.
- Si l'espace disque est plein, effacez les fichiers indésirables et videz l'espace, ou obtenez plus d'espace disque et redémarrez le serveur.

