Ce document explique comment configurer l'intégration d'AWS GuardDuty avec le module Cloud Threat Exchange de la plateforme Netskope Cloud Exchange. Ce plugin récupère les URL (IPv4 et domaine) et le hachage (SHA256) de la plateforme AWS GuardDuty. Ce plugin ne permet pas d'envoyer des indicateurs à AWS GuardDuty.
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).
- A Netskope Cloud Exchange tenant with the Tenant plugin and Threat Exchange plugin already configured.
- Un abonnement à Netskope Threat prevention pour le partage de fichiers malveillants par hachage.
- Accès à votre ID de clé d'accès AWS (clé publique), à votre clé d'accès secrète AWS (clé privée), à votre jeton de session AWS (facultatif, uniquement pour les utilisateurs temporaires), à votre nom de région et à votre ID de détecteur (ID de détecteur unique).
Support du plugin AWS GuardDuty
| Types d'indicateurs prédéfinis | URL (IPv4 et domaine), SHA256 |
| Types d'indicateurs partagés | Aucun |
Mises en correspondance
Cartographie de la gravité
| Sévérité de Netskope | AWS GuardDuty Severity |
|---|---|
| <1 | Inconnu |
| 1.0 – 3.9 | Faible |
| 4.0 – 6.9 | Moyen |
| 7.0 – 8.9 | Haut |
| 9.0 – 10.0 | Critique |
Mappings for Pull (champs Netskope - champs AWS GuardDuty)
| Champ de l'indicateur Netskope Cloud Exchange | AWS GuardDuty Field |
|---|---|
| value |
EbsVolumeScanDetails Mapping NetworkConnectionAction Mapping Service.Action.NetworkConnectionAction.RemoteIpDetails.IpAddressV4 PortProbeAction Mapping Service.Action.PortProbeAction.PortProbeDetails.RemoteIpDetails.IpAddressV4 DnsRequestAction Mapping Service.Action.DnsRequestAction.Domain |
| type |
EbsVolumeScanDetails Mapping NetworkConnectionAction Mapping
URL DnsRequestAction Mapping URL |
| firstSeen |
EbsVolumeScanDetails Mapping NetworkConnectionAction Mapping Service.Action.EventFirstSeen PortProbeAction Mapping Service.Action.EventFirstSeen DnsRequestAction Mapping Service.Action.EventFirstSeen |
| lastSeen |
EbsVolumeScanDetails Mapping NetworkConnectionAction Mapping PortProbeAction Mapping Service.Action.EventLastSeen DnsRequestAction Mapping Service.Action.EventLastSeen |
| sévérité |
EbsVolumeScanDetails Mapping NetworkConnectionAction Mapping Sévérité PortProbeAction Mapping Sévérité DnsRequestAction Mapping Sévérité |
| tags |
EbsVolumeScanDetails Mapping GuardDuty-private si PrivateIpAddress est présent dans NetworkInterfaces NetworkConnectionAction.Blocked=<value> + GuardDuty-public si PublicIp est présent dans NetworkInterfaces + GuardDuty-private si PrivateIpAddress est présent dans NetworkInterfaces PortProbeAction Mapping DnsRequestAction Mapping |
| commentaires |
EbsVolumeScanDetails Mapping Chemin d'accès:Service.EbsVolumeScanDetails.ScanDetections.ThreatDetectedByName.ThreatNames.FilePaths.Chemind'accès,Description:Description
PortProbeAction Mapping DnsRequestAction Mapping |
Permissions
Vous trouverez ci-dessous les permissions nécessaires à l'utilisateur IAM pour le plugin workflow.
- GetFindings
- ListFindings
Détails de l'API
Liste des API utilisées
Ce plugin utilise la bibliothèque python (Boto3 v1.34.44) pour obtenir les résultats de la plateforme AWS GuardDuty.
Bibliothèque : Le SDK AWS pour python (Boto3 v1.34.44)
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) et Amazon Simple Storage Service.
Création d'un objet client GuardDuty
guardduty_client = boto3.Session(
aws_access_key_id=self.aws_public_key,
aws_secret_access_key=self.aws_private_key,
region_name=self.configuration["region_name"].strip()
config=Config(proxies=self.proxy, user_agent=self.useragent),
).client("guardduty")
Liste des résultats
findings = guardduty_client.list_findings(
DetectorId=detection_id,
MaxResults=1,
SortCriteria={"AttributeName": "updatedAt", "OrderBy": "ASC"},
)
Liste des résultats avec pagination
paginator = guardduty_client.get_paginator("list_findings")
page_iterator = paginator.paginate(
DetectorId=self.configuration["aws_detector_id"].strip(),
FindingCriteria={
"Criterion": {
"updatedAt": {
"Gte": int(checkpoint.timestamp() * 1000),
}
}
},
SortCriteria={"AttributeName": "updatedAt", "OrderBy": "ASC"},
)
Obtenir des résultats
guardduty_client.get_findings(
DetectorId=detection_id,
FindingIds=finding_ids,
)
Matrice de performance
Ce plugin a été testé en récupérant 288 résultats de la plateforme AWS GuardDuty. Il faut environ 15 secondes pour récupérer et stocker les indicateurs de ces résultats dans Netskope CE.
|
Détails de la pile | Taille : Grand
RAM : 32 GO CPU : 16 cœurs |
|
Indicateurs extraits de AWS GuardDuty |
~ 1K per minute |
| Indicateurs partagés avec AWS GuardDuty |
NA |
Agent utilisateur
- netskope-ce-5.0.0-cte-aws-guardduty-v1.1.0
Workflow
- Obtenez vos identifiants AWS GuardDuty.
- Configurez le plugin AWS GuardDuty.
- Configurez le partage entre Netskope et AWS GuardDuty.
- Validate the AWS GuardDuty Plugin.
Cliquer sur « play » pour regarder une vidéo.
Créer une politique pour AWS GuardDuty
- Allez sur IAM Services dans la console AWS.
- Cliquez sur Create policies.
- Select Le service de garde dans les services.

- Select GetFindings et ListFindings.
- Cliquez sur Next.
- Ajoutez un nom de police.

- Cliquez sur Create Policy.

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.
Remarque : veillez à 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 AWS S3 Source Bucket.
Créer une politique IAM
Cette politique contient les autorisations requises pour la création d'un certificat d'autorité de certification privé (y compris les autorisations pour la création d'une ancre de confiance et d'un profil) et l'utilisation des rôles IAM Anywhere.
- Accédez au générateur de politiques et cliquez sur Add Statement pour générer une politique.
- 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 Add Statement.
- 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 Add Statement.
- 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 Add Statement.
- 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.
- Accédez à la console AWS et sélectionnez IAM parmi All Services. Cliquez sur Policies dans le panneau de gauche, puis sur Create Policy.

- Copiez la politique dans l'onglet JSON, puis cliquez sur Next: Tags et sur Next: Review.
- Entrez un nom, comme Netskope-ce-rolesAnywhere-policy, et cliquez sur Save Changes.

Créer une autorité de certification privée
- Connectez-vous à la console AWS.
- Cherche Certificate Manager.

- Cliquez sur AWS Private CA.
- Cliquez Create a private CA.

- Select General-purpose pour Mode Options.
- Select Root pour CA type options.

- Saisissez l'organisation (O).

- Select RSA 2048 pour Key algorithm options.

- Add tags if any (optional).
- Activez la case à cocher dans la section CA permissions options.
- Activez la case à cocher dans la section Pricing.
- Cliquez sur Create pour créer le certificat CA.

- À partir de Actions, sélectionnez Install.

- Cliquez Confirm and Install.

Créer un ancrage de confiance
- Recherchez le service IAM et accédez à Roles sous Gestion des accès. Faites défiler vers le bas jusqu'à Rôles Anywhere et sélectionnez Manage.

- Cliquez Create a Trust anchor.

- Enter the Trust anchor name, like netskope-ce-trust-anchor.

- Select AWS Certificate Manager Private CA (créé dans les étapes précédentes) en tant que Certificate authority (CA) source
- Ajoutez des étiquettes si nécessaire.
- Cliquez Create a trust anchor.

- Cliquez sur le Trust Anchor créé et copiez le Trust Anchor ARN.

Créer un rôle IAM
- Accédez aux services IAM dans la console AWS.
- Click Role under Access management.
- Cliquez Create Role.

- Pour le type d’entité de confiance, sélectionnez Custom Trust Policy.

- Accédez au générateur de politiques.
- Remplacez la politique de confiance personnalisée par la politique de confiance ci-dessous ; cette politique contient les autorisations d'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 de compartiment créée précédemment.

- Cliquez sur Next.
- Donnez un nom de rôle, comme Netskope-ce-roleAnywhere, et ajoutez une description pour le rôle.
- Cliquez Create role.

- Notez la Role ARN car elle sera requise dans le paramètre de configuration Plugin : Role ARN pour la méthode d’authentification AWS IAM Roles Anywhere.

Créer un profil
- Select Roles under Access management.
- Faites défiler vers le bas jusqu'à Roles Anywhere et cliquez sur Manage.

- Développez le Setup steps.
- Cliquez sur Step 2: Configure roles.
- Cliquez Configure a profile.

- Entrez un nom de profil, comme Netskope-ce-profile.
- Select le rôle créé dans la section Create IAM Role : Netskope-ce-roleAnywhere.

- Supprimez le Inline Policy.
- Cliquez Create profile.

- Cliquez sur le Profile créé et copiez le Profile ARN.

Demander un certificat privé
- Allez sur AWS Certificate Manager > Request certificate.
- Select Request a private certificate.

- Cliquez sur Next.
- Select l'autorité de certification créée dans les étapes précédentes.

- Indiquez un nom de domaine dans le champ Fully qualified domain name, comme Netskope-ce.com.
- Select RSA 2048 pour le Key algorithm.

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

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

- Cliquez Export.

- Saisissez le passphrase. 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 Generate PEM Encoding.

- Téléchargez tous les Certificates car ils ne seront plus visibles. Pour New certificats, il faudra l’exporter à nouveau.
Pour plus d’informations, rendez-vous sur AWS IAM Role Anywhere
Déployé sur AWS Configuration
Créer un rôle
- Allez sur IAM services dans la console AWS.
- Cliquez Create role.

- Select le AWS Service.
- Pour le cas d'utilisation, sélectionnez EC2.
- Cliquez Next.

- Select la politique de permission créée dans votre Bucket Policy.
- Cliquez Next.

- Saisissez un nom de rôle, comme Netskope-ce-instance-role, et ajoutez une description.
- Cliquez Create Role.
Note: Pour cette configuration, l’instance Netskope et le bucket S3 doivent être dans la même région.
Attribuer un rôle à une instance EC2
- Ouvrez la console de votre instance EC2.
- Click Instances under Instances.

- Allez à Action > Security > Modify IAM Role.

- Select le rôle que vous avez créé précédemment (comme Netskope-ce-instance-role).
- Cliquez Update IAM Role.

Configurer le plugin AWS GuardDuty
- Connectez-vous à votre instance CE et allez sur Settings > Plugins.
- Recherchez et sélectionnez la boîte du plugin AWS GuardDuty pour configurer le plugin.

- Entrez ces valeurs :
- Nom de la configuration : Nom unique de la configuration.
- Intervalle de synchronisation : Laissez la valeur par défaut.
- Critères de vieillissement : Durée d'expiration du plugin en jours. (Valeur par défaut : 90)
- Ignorer la réputation : Définissez une valeur pour remplacer la réputation des indicateurs reçus de cette configuration.
- Activer la validation SSL : Activez la validation du certificat SSL.
- Utiliser le proxy du système : Activez cette option si le proxy est nécessaire pour la communication.

- Cliquez sur Next.
- Entrez ces valeurs :
- Méthode d'authentification : Select la méthode à utiliser pour l'authentification (déployé sur AWS/AWS IAM Roles Anywhere)
- Private Key (Clé privée) : Clé privée pour le décryptage du certificat privé de l'autorité de certification AWS. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- Organisme de certification : Organisme de certification pour le certificat de l'autorité de certification publique/privée d'AWS. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- Password Phrase : Phrase de mot de passe pour décrypter le certificat CA. Requis pour le type d'authentification AWS IAM Roles Anywhere.
- Profil ARN : ARN du profil AWS pour l'authentification du client AWS. Requis pour le type d'authentification AWS IAM Roles Anywhere .
- ARN de rôle : 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.
- Nom de la région : Région dans laquelle le service GuardDuty fonctionne. Assurez-vous que le nom de la région correspond à celui de l'ARN du profil et de l'ARN de l'ancre de confiance.
- ID du détecteur : L'identifiant unique du détecteur.
- Initial Range (in days) : Nombre de jours pour extraire les données pour l'exécution initiale.


- Cliquez sur Save.

Ajouter une règle de gestion pour AWS GuardDuty
Pour partager les indicateurs extraits de AWS GuardDuty avec Netskope CE, vous devez disposer d'une règle de gestion qui filtre les indicateurs que vous souhaitez partager. Pour configurer une règle de gestion, suivez les étapes ci-dessous :
- Allez à Threat Exchange > Business Rule et cliquez sur Create New Rule.
- Ajoutez le filtre selon vos besoins dans la règle.

Configurer le partage pour Netskope et AWS GuardDuty
- Allez sur Threat Exchange et sélectionnez Sharing. La page Partage affiche les relations existantes pour chaque configuration de partage sous forme de grille, comme indiqué ci-dessous. La page Partage comporte également des entrées permettant de configurer le partage de New d'un plugin à l'autre.
- Cliquez Add Sharing Configuration, et dans la liste déroulante Configuration de la source, sélectionnez AWS GuardDuty.
- Select une règle métier, puis sélectionnez Netskope pour la configuration de destination. Les configurations de partage sont unidirectionnelles. Les données obtenues d’un plugin sont partagées avec un autre plugin.

- Select a Cible. Chaque plugin aura une cible ou une destination différente pour l'IoC.
- Pour ajouter une liste de hachage de fichiers, saisissez un nom de liste, une taille de liste et un hachage de fichier par défaut. Le nom de la liste doit exister dans votre interface utilisateur Netskope à Settings > Policies > Profiles. Pour plus d'informations sur la création d'un profil de fichier pour les hachages, consultez la section « Ajout d'un profil de fichier ».
- Cliquez sur Save.

L'ajout d'une configuration de partage New sur le sondage source actif permet de partager les IoC existants de la configuration source avec la configuration de destination. Chaque fois qu'une configuration de partage New est créée, tous les IoC actifs seront également pris en compte pour le partage s'ils correspondent à la combinaison source/destination.
Note
Les plugins qui n'ont pas d'API pour ingérer des données ne peuvent pas recevoir de données sur les menaces. C'est le cas du plugin installé API Source, qui fournit un bac associé à un point de terminaison API pour que des systèmes tiers distants puissent envoyer des données. Une fois qu'une politique de partage a été ajoutée, elle prend effet.
Après la création d'une configuration de partage, le tableau de partage indique la règle invoquée, le système source qui fournit les correspondances potentielles d'informations de référence, le système de destination qui recevra les informations de référence correspondantes et la cible applicable à cette règle. Plusieurs configurations de partage peuvent être mises en place pour permettre le mappage de certains IoC à plusieurs cibles, même sur le système de destination.
Modifier, tester ou supprimer une configuration de partage
Chaque configuration prend en charge 3 actions :
- Modifiez la règle en cliquant sur l'icône en forme de crayon.
- Testez la règle en cliquant sur l'icône de synchronisation. Il s'agit de tester le nombre d'images de contrôle qui seront effectivement envoyées au système de destination en fonction du délai et de la règle.
- Supprimez la règle en cliquant sur l'icône de la poubelle.
Validate the AWS Guardduty Plugin
Valider le retrait
Les données extraites seront répertoriées sur la page IoCs de la menace. Vous pouvez filtrer les IoCs extraits de la plateforme en utilisant le filtre: sources.source Like "<plugin name>". Vous pouvez également filtrer les logs de CE avec le nom du plugin.

Sur la plateforme AWS GuardDuty, les indicateurs sont tirés de GuardDuty > Findings.

Valider le push
Pour valider le push dans Cloud Exchange, allez sur Threat Exchange > Logging et filtrez les logs partagés pour Netskope.


Pour vérifier à partir du locataire Netskope :
- Connectez-vous à votre locataire Netskope.
- Cliquez sur Policies.
- Cliquez sur File (pour Sha256).
- Saisissez le nom de fichier que vous avez utilisé lors de la configuration du partage.

- Pour les URL : (IPv4 et domaine).
- Cliquez sur Web > URL Lists.
- Cliquez sur la liste d'URL qui a été utilisée lors de la configuration du partage.

Dépannage
Si vous rencontrez un problème lors de la configuration du plugin avec Deployed on AWS
Vérifiez le rôle IAM attaché à votre machine EC2.



