Ce document explique comment configurer le plugin AWS Log Streaming v1.0.0 avec le module Log Shipper de la plateforme Netskope Cloud Exchange. Ce plugin est utilisé pour récupérer les alertes (DLP (Prévention des pertes de données), Malware, Policy, Compromised Credential, Malsite, Quarantine, Remediation, Security Assessment, Watchlist, UBA, CTEP, périphérique et Content), les événements (Page, Application, Audit, Infrastructure, Network, Incident, Endpoint et Client Status) et les journaux WebTx d'un AWS SQS queue-enabled S3 Bucket sur le site Netskope.
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) avec le service AWS Netskope Log Streaming activé.
- Un locataire Netskope Cloud Exchange avec le plugin Tenant et le plugin Log Shipper déjà configurés.
- Un locataire Netskope Cloud Exchange avec un plugin tiers (comme Syslog) déjà configuré.
- Amazon SQS Queue doit être activé sur le seau S3 avec les permissions suivantes pour l'utilisateur IAM. Assurez-vous que votre utilisateur dispose d'un accès administrateur pour le compte AWS.
- GetObject (Lecture)
- GetObjectAttributes (Lecture)
- GetQueueAttributes (Lecture)
- GetQueueUrl (Lecture)
- ReceiveMessage (Lecture)
- DeleteMessage (Écriture)
- Connectivité à un hôte ayant accès à AWS S3 Bucket.
Support du plugin AWS LogStreaming
Ce plugin est utilisé pour récupérer les alertes (DLP (Prévention des pertes de données), Malware, Policy, Compromised Credential, Malsite, Quarantine, Remediation, Security Assessment, Watchlist, UBA, CTEP, périphérique et Content), les événements (Page, Application, Audit, Infrastructure, Network, Incident, Endpoint et Client Status) et les logs WebTx d'un AWS SQS queue-enabled S3 Bucket sur le site Netskope.
| Type de données | Support |
|---|---|
| Événements | Oui (Page, Application, Audit, Infrastructure, Réseau, Incident, Point final et Statut du client) |
| Alertes | Oui (DLP (Prévention des pertes de données), Malware, Policy, Compromised Credential, Malsite, Quarantine, Remediation, Security Assessment, Watchlist, UBA, CTEP, périphérique et Content) |
| WebTx | Oui |
| Journal de bord CE | Non |
Permissions
- Autorisations pour l'utilisateur IAM d'envoyer des événements, des alertes et des données WebTx dans les buckets Amazon S3.
- GetObject (Lecture)
- GetObjectAttributes (Lecture)
- Permissions Amazon SQS Queue à l'utilisateur IAM pour envoyer des données d'alertes à Queue.
- GetQueueAttributes (Lecture)
- GetQueueUrl (Lecture)
- ReceiveMessage (Lecture)
- DeleteMessage (Écriture)
Détails de l'API
Liste des API utilisées
Ce plugin utilise des bibliothèques Python pour lire les messages AWS SQS et télécharger ensuite les données du seau AWS S3 à partir de l'objet fichier reçu des messages SQS.
Bibliothèque : Le SDK AWS pour Python (Boto3)
Utilisation : Le SDK AWS pour Python (Boto3) pour créer, configurer et gérer les services AWS, tels que Amazon Elastic Compute Cloud (Amazon EC2), Amazon Simple Queue Service et Amazon Simple Storage Service (Amazon S3). Le SDK fournit une API orientée objet ainsi qu'un accès de bas niveau aux services AWS.
Creating S3 the Client
s3_client = boto3.client(
"s3",
aws_access_key_id=self.aws_public_key,
aws_secret_access_key=self.aws_private_key,
aws_session_token=self.aws_session_token,
region_name=self.region_name,
config=Config(proxies=self.proxy, user_agent=self.useragent),
)
Creating SQS the Client
s3_client = boto3.client(
"sqs",
aws_access_key_id=self.aws_public_key,
aws_secret_access_key=self.aws_private_key,
aws_session_token=self.aws_session_token,
region_name=self.region_name,
config=Config(proxies=self.proxy, user_agent=self.useragent),
)
To get the SQS Queue URL
response = sqs_client.get_queue_url(QueueName=str(queue_name))
To receive messages from the SQS Queue
response = sqs_client.receive_message(
QueueUrl=queue_url,
MaxNumberOfMessages=1,
WaitTimeSeconds=2,
MessageAttributeNames=["All"],
)
Matrice de performance
Ces performances sont celles d'un CE à grande pile testé avec ces spécifications de VM. Ces relevés sont complétés par les considérations suivantes sur les données :
- 50 Mo compressés ~500 Mo non compressés (~500k) Alertes/événements en ~3,3 minutes
- 50 Mo compressés ~500 Mo non compressés (~500k) Journaux WebTx en ~2,5 minutes
| Description | Spécifications |
|---|---|
| Détails de la pile | Taille : Grande RAM : 32 GB CPU : 16 cœurs |
| Alertes - Les événements sont tirés et intégrés dans un système SIEM tiers. | ~150K EPM |
| WebTx pull et ingested to third-party SIEM | ~200K EPM |
Agent utilisateur
APN/1.1 (ahq9d89xj9gspapczzdb59goq)
Workflow
- Générer les informations d'identification pour les méthodes d'authentification de AWS Netskope LogStreaming
- Configurer le plugin CLS AWS Netskope LogStreaming
- Ajouter des règles de gestion
- Add a SIEM Mapping
- Valider le plugin
Regardez une vidéo
Cliquez sur "play" pour regarder une vidéo :
Configurer la file d'attente avec les Amazon S3 Buckets
Pour configurer le plugin, vous devez configurer une file d'attente avec un seau Amazon S3 :
- Connectez-vous à votre compte AWS et allez sur Amazon S3 > Buckets pour trouver vos buckets configurés.

- À partir de là, créez des notifications d'événements pour ingérer les données du dossier spécifié dans le seau S3 vers la file d'attente SQS configurée.
- Et à partir de Amazon SQS > Queues, vous pouvez trouver vos files d'attente configurées.

Créer une politique de journalisation AWS Netskope
- Dans l’onglet JSON, saisissez cette politique. Cliquez Next:Tags, puis cliquez Next:Review.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectAttributes"
],
"Resource": [
"arn:aws:s3:::*/*",
"arn:aws:s3:*:932414340604:accesspoint/*"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"sqs:DeleteMessage",
"sqs:GetQueueUrl",
"sqs:ReceiveMessage",
"sqs:GetQueueAttributes"
],
"Resource": "*"
}
]
}Note
Veillez à mettre à jour l'identifiant de votre compte AWS dans le modèle de politique ci-dessus.
- Attachez cette politique à l'utilisateur. Allez sur IAM > Users et sélectionnez l'utilisateur pour lequel vous voulez attacher une politique. Cliquez sur Add permissions et cliquez sur l'option Add permissions:

- Select Attach policies directly sous Options de permissions, puis recherchez et sélectionnez la politique créée à l'étape précédente pour la file d'attente source.

Méthodes d'authentification des plugins
Configuration de IAM Role Anywhere
Conditions préalables
Le service AWS Certificate Manager doit être activé pour authentifier le plugin à l'aide de la méthode d'authentification AWS IAM Roles Anywhere.
Assurez-vous de créer l'autorité de certification privée, l'ancre de confiance et le profil dans la même région que celle où se trouve votre file d'attente AWS SQS.
Créer une politique
Cette politique contient les autorisations requises pour créer un certificat d'autorité de certification privé (y compris les autorisations pour créer l'ancre de confiance et le profil) et pour utiliser les rôles IAM Anywhere.
- Allez sur Policy Generator et sélectionnez IAM Policy comme type de police. Saisissez les détails de l'ajout de la déclaration, puis générez la police.
- Select Type de politique : Politique IAM
- Effet : Autoriser
- Service AWS : Autorité de certification privée AWS
- Actions :
- Créer une autorité de certification
- DescribeCertificateAuthority
- Obtenir un certificat
- Obtenir un certificat d'autorité
- Obtenir l'autorité de certification (GetCertificateAuthorityCsr)
- ImportCertificateAuthorityCertificate
- Délivrer un certificat
- Liste des autorités de certification
- ARN : *
- Cliquez sur Add Statement.

- Faites défiler l'écran vers le haut pour ajouter une autre déclaration.
- Select Type de politique : Politique IAM
- Effet : Autoriser
- Service AWS : Gestion des identités et des accès (IAM) d'AWS
- Actions :
- Politique de rattachement des rôles
- Créer une clé d'accès
- Créer un rôle
- Supprimer un rôle
- PassRole
- ARN : *
- Cliquez sur Add Statement.

- Faites défiler l'écran vers le haut pour ajouter une autre déclaration.
- Select Type de politique : Politique IAM
- Effet : Autoriser
- Service AWS : Gestionnaire de certificats AWS
- Actions :
- Décrire le certificat
- Certificat d'exportation
- Obtenir un certificat
- Liste des certificats
- ListTagsForCertificate
- Demande de certificat
- ARN : *
- Cliquez sur Add Statement.
- Faites défiler l'écran vers le haut pour ajouter une autre déclaration.
- Select Type de politique : Politique IAM
- Effet : Autoriser
- Service AWS : Gestion des identités et des accès AWS Rôles en tout lieu
- Actions :
- Créer un profil
- CreateTrustAnchor
- Obtenir un profil
- GetTrustAnchor
- Liste des profils
- ListTrustAnchors
- ARN : *
- Cliquez sur Add Statement.

- Cliquez sur Generate Policy.

- Copiez la politique car elle sera utilisée dans l'étape suivante pour créer la politique nécessaire à la création des certificats de l'AC privée.
- Allez sur AWS Console et sélectionnez IAM depuis All Services. Cliquez sur Policies dans le panneau de gauche, puis cliquez sur Create Policy.

Créer une autorité de certification privée
- Add tags if any (optional).
- Cochez la case dans la section CA permissions options.
- Cochez la case dans la section Pricing.
- Cliquez sur Create pour créer le certificat CA.


Créer un ancrage de confiance
- Cherchez le service IAM , allez dans Roles sous Gestion d’accès, puis faites défiler jusqu’à Rôles n’importe où et sélectionnez Manage.

- Select AWS Certificate Manager Private CA (créé dans les étapes précédentes) en tant que source d'autorité de certification (CA). Select le certificat créé à l'étape précédente dans l'autorité de certification privée AWS.

Créer un rôle IAM
- Allez sur IAM services dans la console AWS.
- Cliquez sur Roles sous la rubrique Gestion de l'accès
- Cliquez sur Create Role.

- Remplacez la politique de confiance personnalisée par cette politique de confiance. Cette politique contient les autorisations pour l'utilisation du service Rôles n'importe où :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"rolesanywhere.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole",
"sts:TagSession",
"sts:SetSourceIdentity"
]
}
]
}
- Cliquez sur Next.
- Dans les stratégies d'autorisation, sélectionnez la stratégie créée précédemment dans Créer une stratégie de file d'attente SQS.

- Notez l’ARN du rôle car il sera requis dans le paramètre de configuration du plugin Role ARN pour la méthode d’authentification AWS IAM Roles Anywhere.

Créer un profil
- Allez sur IAM services dans la console AWS.
- Select Roles dans le cadre de la gestion de l'accès.
- Faites défiler vers le bas jusqu'à Rôles Anywhere et cliquez sur Manage.

- Développez les étapes de la configuration.
- Cliquez sur Step 2: Configure roles.
- Cliquez sur Configure a profile.

- Indiquez un nom de domaine dans le champ Fully qualified domain name, comme Netskope-ce-verified-access.com.
- Select RSA 2048 comme algorithme clé.

- Ajoutez des étiquettes si nécessaire.
- Confirmez les autorisations de renouvellement du certificat.
- Cliquez sur Request.

- Allez sur List certificates dans le volet de navigation d'AWS Certificate Manager.
- Select le certificat créé précédemment.

- Saisissez une phrase d'authentification. Notez la phrase d'authentification car elle sera nécessaire pour la configuration du plugin AWS S3 à l'aide de la méthode d'authentification AWS IAM Roles Anywhere.
- Cliquez sur Generate PEM Encoding.

- Téléchargez tous les certificats car ils ne seront plus visibles. Pour les certificats New, vous devrez les exporter à nouveau.

- L’organisme du certificat, Certificate Private Key, sera nécessaire pour la configuration du plugin AWS Verified Access en utilisant la méthode d’authentification AWS IAM Roles Anywhere . Pour plus d’informations, rendez-vous sur AWS IAM Role Anywhere.
Déployé sur AWS Authentification
Créer un rôle
- Cliquez sur Next.
- Saisissez un nom de rôle (comme Netskope-ce-instance-role) et une description.
- Cliquez sur Create Role.


Attribuer un rôle à une instance EC2
- Select the Role that you created above in Create a Role. (netskope-ce-instance-role).
- Cliquez sur Add IAM Role ou Modify IAM Role. Notez que l'instance EC2 et la file d'attente doivent se trouver dans la même région.

Attribuer un rôle à une instance de K8s
- Ouvrez votre rôle créé pour ServiceAccount lors de la création de l'instance K8s.
- Attachez la politique créée dans Créer une politique de file d'attente SQS.
Configurer le plugin AWS LogStreaming
- Dans Cloud Exchange, accédez à Settings > Plugins.
- Recherchez et sélectionnez le plugin AWS Netskope LogStreaming v1.0.0 (CLS).

- Saisissez un nom de configuration et définissez l'intervalle d'extraction en fonction de vos besoins.

- Cliquez sur Next et entrez les paramètres de configuration :
- Authentication Method: Select la méthode à utiliser pour l'authentification du client AWS.
- Private Key: Clé privée pour décrypter le certificat privé de l'autorité de certification AWS. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- Certificate Body: Organisme de certification pour le certificat d'autorité de certification public/privé AWS. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- Password Phrase: Phrase du mot de passe pour décrypter le certificat de l'autorité de certification. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- Profile ARN: ARN du profil AWS pour l'authentification du client AWS. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- Role ARN: ARN du rôle AWS pour l'authentification du client AWS. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- Trust Anchor ARN: ARN de l'Ancre de confiance AWS pour l'authentification du client AWS. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- AWS Region Name: Nom de la région AWS dans laquelle le compartiment S3 avec file d'attente SQS activée est configuré. Assurez-vous que le nom de la région correspond à celui de la région dans l'ARN du profil et l'ARN de l'ancre de confiance si vous avez sélectionné la méthode d'authentification AWS IAM Roles Anywhere.
- AWS SQS Queue Name: Nom de file d’attente AWS SQS avec lequel le bucket S3 est configuré. Pour plus de détails, rendez-vous sur AWS > SQS > QueueName. Assurez-vous que la file d’attente fournie est préconfigurée sur votre instance AWS. Une file d’attente New ne sera pas créée si la file d’attente fournie n’existe pas.
Note
Le nom de la région AWS et le nom de la file d'attente AWS SQS sont les seuls champs obligatoires pour la méthode d'authentification Déployé sur AWS.


- Cliquez sur Save. La configuration de votre plugin sera disponible à l'adresse Log Shipper > Plugins.

Note
Nous avons configuré le plugin SYSLOG with Splunk pour ingérer les données extraites du plugin AWS Netskope LogStreaming.
Configurer une règle de gestion de l'expéditeur de logs pour AWS LogStreaming
- 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 le nom de la règle et le filtre.

Configurer les correspondances SIEM de Log Shipper pour AWS LogStreaming
- Allez à SIEM Mappings et cliquez sur Add SIEM Mapping.
- Select le plugin Source (CLS AWS Netskope LogStreaming), un plugin Destination et une règle métier, puis cliquez sur Save.
- Une fois le mappage SIEM ajouté, les données commenceront à être extraites du locataire AWS Netskope LogStreaming, transformées et ingérées dans la plateforme SIEM tierce.


Validez le plugin AWS LogStreaming
Valider le retrait
Pour valider l'extraction des indicateurs du locataire Netskope, allez sur Logging dans Cloud Exchange et recherchez les journaux extraits avec le filtre message contains pulled.




Valider le push
Pour valider le plugin workflow dans Cloud Exchange, allez sur Logging et recherchez les événements/alertes ingérés avec le filtre message contains ingested, ou vous pouvez également utiliser le nom du plugin de destination comme filtre.







Dépannage du plugin AWS LogStreaming
Problèmes lors de la récupération d'alertes/événements ou de données WebTx à partir de la file d'attente configurée

Si vous avez configuré avec succès le plugin AWS Netskope LogStreaming et la plateforme SIEM tierce et que vous obtenez toujours une erreur après avoir configuré le mappage SIEM pour le plugin, cela peut être dû à l'une des raisons suivantes :
- Vous n'avez pas accès à la file d'attente configurée.
- Les autorisations accordées à l'utilisateur IAM sont insuffisantes.
- Toutes les alertes/événements/données webtx sont consommées et il n'y a plus rien à retirer de la file d'attente.

- La file d'attente fournie dans le plugin peut ne pas être activée dans le panier S3.
What to do:
- Vérifiez que la file d'attente est disponible sur le service AWS SQS.
- Vérifiez que l'utilisateur IAM a fourni les autorisations suffisantes. Pour connaître les autorisations minimales, vous pouvez consulter la rubrique Autorisations.
- Vérifiez que vous avez des données à consommer dans la file d'attente, pour cela vous devez aller à Amazon SQS > Queues.

- Pour vérifier la file d'attente activée dans le compartiment S3, suivez les étapes mentionnées dans Configurer la file d'attente avec les compartiments Amazon S3.
Problèmes lors de la configuration du plugin New
Si vous créez un plugin New avec AWS IAM Roles Anywhere et que vous obtenez une erreur de ce type :


What to do:
Après avoir développé le journal, vous verrez qu'au moins un des ARN de l'ancre de confiance, de l'ARN du rôle et de l'ARN du profil a un ID de compte différent. Vous devez donc vérifier que les paramètres fournis sont générés à partir du même compte et ont la même région.
Les données sont ignorées lors de l'extraction par le plugin AWS Netskope LogStreaming Plugin
Il se peut que vous soyez confronté à ce problème pour l'une des raisons suivantes :
- Fichier non valide ou fichier contenant des données non valides
- Pour les alertes/événements, les champs alert_type et record_type sont obligatoires et pour WebTx, le champ x-cs-timestamp est obligatoire. Si les données ne contiennent pas les champs suivants, elles seront ignorées.
What to doVérifiez que votre fichier est valide et contient des données valides. Vérifiez également que les données contiennent les champs obligatoires. Pour les alertes/événements, alert_type et record_type sont des champs obligatoires ; pour WebTx, x-cs-timestamp est le champ obligatoire.
Comportements connus
- Si RBACv3 est activé dans votre locataire Netskope, vous ne pourrez pas utiliser les services Netskope LogStreaming.
- Si vous redémarrez Netskope Cloud Exchange ou, pour une raison quelconque, votre Netskope Cloud Exchange redémarre automatiquement alors que le plugin AWS NLS est en cours d'exécution, il se peut que la tâche d'extraction soit bloquée. Pour remédier à ce problème, vous pouvez reconfigurer le mappage SIEM pour recommencer le tirage.





































