Mapper et modéliser les entités
Les entités sont des objets représentant des points d'intérêt extraits des alertes, tels que les indicateurs de compromission (IoC) et les artefacts. Elles aident les analystes de sécurité en :
- Suivi automatique de l'historique.
- Regrouper les alertes sans intervention humaine.
- Rechercher les activités malveillantes en fonction des relations entre les entités.
- Faciliter la lecture des cas et la création de playbooks fluides.
Google Security Operations utilise un système automatisé (ontologie) pour extraire les principaux objets d'intérêt des alertes brutes afin de créer des entités. Chaque entité est représentée par un objet qui peut suivre son propre historique pour référence ultérieure.
Configurer l'ontologie des entités
Pour configurer l'ontologie, vous devez mapper et modéliser vos données. Cela implique de sélectionner une représentation visuelle pour les alertes et de définir les entités à extraire. Google SecOps fournit des règles d'ontologie préconfigurées pour les produits SIEM les plus populaires.
Le meilleur moment pour personnaliser l'ontologie est une fois qu'un connecteur extrait des données dans Google SecOps. Le processus comporte deux étapes principales :
- Modélisation : choisissez la représentation visuelle (modèle/famille visuelle) de vos données.
- Mappage : mappez les champs pour prendre en charge le modèle sélectionné et extraire les entités.
Entités acceptées
Les entités suivantes sont acceptées :
| Type d'entité | Description | Format attendu | Exemples |
|---|---|---|---|
| Adresse | Adresse IPv4. | Dépend du type d'adresse stockée. | Adresses IP, par exemple 192.168.1.1 |
| Application | Une application logicielle. | Chaîne de texte. | nmap, Microsoft Word. |
| Cluster | Groupe de ressources de calcul. | Chaîne de texte. | Nom du cluster Kubernetes, nom du cluster ou ID du cluster. |
| Conteneur | Instance de conteneur. | Chaîne de texte. | ID ou nom du conteneur Docker. |
| Carte de crédit | Un numéro de carte de crédit. | Chaîne masquée ou tokenisée. | Les données doivent être masquées ou tokenisées pour éviter de stocker des données PCI sensibles. |
| CVE | Identifiant des failles et des risques courants. | CVE-YYYY-NNNNN |
CVE-2023-12345 |
| Base de données | Instance ou système de base de données. | Chaîne de texte. | Nom de la base de données ou identifiant de la connexion. |
| Déploiement | Un déploiement logiciel. | Chaîne de texte. | Identifiant de déploiement. |
| URL de destination | URL (Uniform Resource Locator). | Chaîne d'URL standard. | https://example.com/path |
| Domaine | Nom de domaine du réseau. | Chaîne de domaine standard. | example.com |
| Objet de l'e-mail | Objet d'un e-mail. | Chaîne de texte. | Objet d'un e-mail. |
| Hachage de fichier | Hachage cryptographique d'un fichier. | Chaîne hexadécimale. | Hachage MD5, SHA-1 ou SHA256. |
| Nom de fichier | Nom d'un fichier. | Chaîne de texte. | malware.exe |
| Entité générique | Type d'entité flexible pour les données ne correspondant à aucune autre catégorie. | Cela dépend des données stockées. | N/A |
| Nom d'hôte | Libellé attribué à un appareil sur un réseau. | Chaîne de nom d'hôte standard. | workstation-01, server.example.com |
| Ensemble d'adresses IP | Collection ou groupe d'adresses IP. | Non défini explicitement (par exemple, chaîne séparée par des virgules, tableau JSON, référence à une liste). | Plages, notations CIDR ou listes. Pour obtenir un exemple, consultez Créer une liste d'adresses IP approuvées. |
| Adresse MAC | Adresse Media Access Control. | Six groupes de deux chiffres hexadécimaux, séparés par des tirets ou des deux-points. | 00-1B-44-11-3A-B7, 00:1B:44:11:3A:B7 |
| Numéro de téléphone | Un numéro de téléphone | Variable (E.164 est la norme). | +18005550100 |
| POD | Groupe d'un ou plusieurs conteneurs dans Kubernetes, souvent avec un stockage/réseau partagé. | Nom de la chaîne. | Nom du POD Kubernetes. |
| Processus | Instance d'un programme informatique en cours d'exécution. | ID (PID) ou nom du processus. | 1234, chrome.exe |
| Service | Service logiciel s'exécutant sur un système. | Chaîne du nom du service. | sshd, apache2 |
| Acteur malveillant | Un individu ou un groupe qui représente une menace. | Nom ou code de la chaîne. | APT28, FIN7 |
| Campagne de menaces | Série d'activités de menace associées. | Nom ou code de la campagne. | Nom ou code de la campagne. |
| Signature de menace | Modèle ou indicateur d'une menace connue. | ID ou nom de la signature de la règle. | ID de règle court, nom de règle YARA-L. |
| USB | Un périphérique de bus série universel. | Nom de l'appareil, numéro de série ou autres attributs. | Identifiant du périphérique USB. |
| Nom d'utilisateur | Identifiant d'un compte utilisateur. | Noms d'utilisateur ou adresses e-mail simples. | jdoe, jdoe@example.com |
Cas d'utilisation : mapper et modéliser de nouvelles données d'e-mails ingérés
Ce cas d'utilisation montre comment mapper et modéliser de nouvelles données d'un e-mail ingéré :
- Accédez à Hub de contenu > Cas d'utilisation.
- Exécutez le scénario de test Zero to Hero. Pour savoir comment procéder, consultez Exécuter des cas d'utilisation.
- Dans l'onglet Demandes, sélectionnez la demande Mail dans la file d'attente des demandes, puis sélectionnez l'onglet Événements.
- À côté de l'alerte, cliquez sur Paramètres Configuration des événements pour ouvrir la page Configuration des événements.
-
Dans la liste hiérarchique, cliquez sur Mail. Cela garantit que votre configuration fonctionnera automatiquement pour chaque élément de données provenant de ce produit (boîte de réception).
-
Attribuez la famille visuelle qui représente le mieux les données. Dans ce cas d'utilisation, vous pouvez ignorer cette étape, car
MailRelayOrTAPa déjà été sélectionné. - Passez à Mappage et mappez les champs d'entité suivants. Double-cliquez sur chaque entité, puis sélectionnez le champ de données brutes correspondant dans le champ extrait. Vous pouvez fournir des champs alternatifs à partir desquels extraire les informations :
SourceUserNameDestinationUserNameDestinationURLEmailSubject- Cliquez sur Propriétés brutes de l'événement pour afficher les champs d'origine de l'e-mail.
Extraire des expressions régulières
Google SecOps n'est pas compatible avec les groupes d'expressions régulières. Pour extraire du texte du champ d'événement à l'aide de modèles d'expressions régulières, utilisez lookahead et lookbehind dans la logique de la fonction d'extraction.
Dans l'exemple suivant, le champ "event" affiche un grand bloc de texte :
Suspicious activity on A16_WWJ - Potential Account Takeover (33120)
Pour extraire uniquement le texte Suspicious activity on A16_WWJ, procédez comme suit :
- Saisissez l'expression régulière suivante dans le champ de valeur Fonction d'extraction :
Suspicious activity on A16_WWJ(?=.*) - Dans le champ Fonction de transformation, sélectionnez To_String.
Pour extraire uniquement le texte après Suspicious activity on A16_WWJ :
- Saisissez l'expression régulière suivante dans le champ de valeur Fonction d'extraction :
(?<=Suspicious activity on A16_WWJ).* - Dans le champ Fonction de transformation, sélectionnez To_String.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.