Collecter les journaux ThreatConnect IOC à l'aide de l'API v3
Le flux ThreatConnect dans Google Security Operations vous permet d'extraire automatiquement les indicateurs de compromission (IOC) tels que les adresses IP, les domaines, les URL et les hachages de fichiers, ainsi que leur contexte (par exemple, le type de menace, le score de confiance, les tags) depuis votre compte ThreatConnect. L'ingestion de ces IoC enrichit vos données de sécurité dans Google Security Operations, ce qui améliore les capacités de détection et d'investigation des menaces.
Ce document explique comment configurer Google SecOps pour ingérer des IOC à partir de votre instance ThreatConnect à l'aide du connecteur d'API ThreatConnect v3. Cette version du connecteur utilise l'API REST v3 de ThreatConnect. Il s'agit d'une version mise à jour du connecteur existant qui utilise l'API REST v2 de ThreatConnect.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Une instance ThreatConnect active et un compte utilisateur disposant des autorisations suffisantes pour accéder aux indicateurs requis à l'aide de l'API v3. Cela implique généralement des autorisations pour lire les indicateurs et leurs attributs.
- Une instance Google Security Operations
- Autorisations Identity and Access Management suffisantes dans votre projet Google Cloud pour gérer les flux Google SecOps
Étapes de configuration
Pour configurer le flux d'IOC ThreatConnect :
Obtenir les identifiants de l'API ThreatConnect v3
- Connectez-vous à votre instance ThreatConnect.
- Accédez à la section Gestion des utilisateurs de l'API pour créer un utilisateur de l'API ou en utiliser un existant désigné pour votre intégration Google SecOps.
Pour créer un utilisateur de l'API :
- Accédez à Paramètres > Paramètres de l'organisation.
- Accédez à l'onglet Membres sur la page Paramètres de l'organisation.
- Cliquez sur Créer un utilisateur d'API.
Remplissez les champs de la fenêtre Administration des utilisateurs de l'API :
- Prénom : saisissez le prénom de l'utilisateur de l'API.
- Nom : saisissez le nom de famille de l'utilisateur de l'API.
Rôle système : sélectionnez le rôle système Utilisateur de l'API ou Administrateur Exchange.
Rôle dans l'organisation : sélectionnez le rôle de l'utilisateur de l'API dans l'organisation.
Inclure dans les observations et les faux positifs : cochez la case pour autoriser l'inclusion des données fournies par l'utilisateur de l'API dans les décomptes.
Désactivé : cochez la case pour désactiver le compte d'un utilisateur de l'API si l'administrateur souhaite préserver l'intégrité des journaux.
Copiez et stockez de manière sécurisée l'ID d'accès et la clé secrète.
Cliquez sur Enregistrer.
Récupérez l'ID d'accès et la clé secrète de l'utilisateur de l'API concerné, puis passez à l'étape suivante.
Configurer le flux ThreatConnect dans Google Security Operations
- Accédez à Paramètres SIEM> Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple,
ThreatConnect Logs). - Pour Type de source, sélectionnez API tierce.
- Pour Type de journal, sélectionnez ThreatConnect IOC V3.
- Cliquez sur Suivant.
- Saisissez les informations suivantes pour l'API ThreatConnect v3 :
- Access ID (ID d'accès) : saisissez l'ID d'accès ThreatConnect obtenu à l'étape 1.
- Clé secrète : saisissez la clé secrète ThreatConnect obtenue à l'étape 1.
- Nom d'hôte de l'API : nom de domaine complet de votre instance ThreatConnect (par exemple,
<myinstance>.threatconnect.com). - Propriétaires : spécifiez l'organisation, la communauté ou la source ThreatConnect à partir desquelles extraire les indicateurs. Saisissez un propriétaire par ligne. Pour en savoir plus, consultez la présentation des propriétaires.
- TQL : requête TQL requise pour extraire les IoC en fonction de vos exigences d'ingestion (consultez Écrire des requêtes TQL).
- Champs : noms des champs supplémentaires à récupérer, qui ne le sont pas par défaut. Saisissez un champ par ligne (consultez la liste des champs par défaut et supplémentaires).
- Cliquez sur Suivant.
- Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.
Valider l'ingestion
- Après avoir envoyé la configuration, laissez le temps nécessaire pour l'extraction initiale des données.
- Vérifiez l'état du flux dans la liste Flux. L'état doit finir par afficher Terminé ou Actif.
- Vérifiez que les données sont ingérées en interrogeant les journaux sur la page de recherche Google Security Operations :
- Utilisez la requête :
log_type = "THREATCONNECT_IOC_V3"
- Utilisez la requête :
- Examinez les journaux ingérés pour vous assurer que les champs sont analysés comme prévu.
Écrire des requêtes TQL
Dans ThreatConnect, vous pouvez créer des requêtes structurées avec un langage de requête de type SQL appelé ThreatConnect Query Language (TQL) pour effectuer des recherches très ciblées dans vos données. Une requête TQL inclut un nom de paramètre, un opérateur et une valeur ou une liste de valeurs. Vous pouvez combiner plusieurs requêtes avec des parenthèses et une logique AND/OR.
L'exemple de requête TQL suivant recherche les indicateurs réseau à haute fiabilité (adresses IP, hôtes, URL) ajoutés au cours des 30 derniers jours et associés à Cobalt Strike, aux APT ou au hameçonnage. Il filtre également explicitement les faux positifs connus et les données de test internes.
typeName IN ("Address", "Host", "URL") AND confidence > 75 AND dateAdded > "NOW() - 30 DAYS" AND (summary CONTAINS "cobalt" OR tag STARTSWITH "APT" OR tag ENDSWITH "Phish") AND NOT tag = "False_Positive" AND source != "Internal_Testing"
Pour en savoir plus sur TQL, consultez la documentation ThreatConnect TQL.
Liste des champs par défaut et supplémentaires
Cette section détaille les points de données spécifiques récupérés à partir de l'API ThreatConnect, en indiquant s'ils sont inclus par défaut ou s'ils nécessitent une configuration manuelle.
Champs par défaut
Les champs par défaut suivants sont récupérés par l'API par défaut et ne nécessitent aucune configuration supplémentaire :
| # | Champ | Description | Type | Exemple de valeur(s) |
|---|---|---|---|---|
| 1 | active |
Indique si l'indicateur est actif. | Booléen | true, false |
| 2 | activeLocked |
Indique si l'état de l'indicateur actif est verrouillé. | Booléen | true, false |
| 3 | confidence |
Niveau de confiance de l'indicateur | Integer | 1, 2, 3, ... 100 |
| 4 | dateAdded |
Date et heure de création externe de l'indicateur | DateTime | "2023-10-04T12:34:56Z" |
| 5 | id |
ID de l'indicateur | Integer | 1, 2, 3, ... 100 |
| 6 | ip |
Adresse IP associée à l'indicateur d'adresse | Chaîne | "107.180.48.66" |
| 7 | lastModified |
Date et heure de la dernière modification externe de l'indicateur | DateTime | "2023-10-04T12:34:56Z" |
| 8 | legacyLink |
Ancienne URL (fermée) permettant d'accéder aux détails de l'indicateur dans l'application ThreatConnect | URL | "https://app.threatconnect.com/auth/indicators/..." |
| 9 | ownerId |
ID du propriétaire auquel appartient l'indicateur | Integer | 1, 2, 3, ... 100 |
| 10 | ownerName |
Nom du propriétaire auquel appartient l'indicateur | Chaîne | "Demo Community" |
| 11 | privateFlag |
Indique si l'indicateur est privé | Booléen | true, false |
| 12 | rating |
Niveau de menace de l'indicateur | Big Decimal | 1.0, 2.0, 3.0, 4.0 et 5.0 |
| 13 | summary |
Valeur de l'indicateur | en fonction du type d'indicateur. | "type": "Host","summary": "zayla.co" ; "type": "Address","summary": "107.180.48.66" |
| 14 | type |
Type d'indicateur créé | Chaîne | "Address", "Host", "Registry Key" (liste des valeurs acceptées) |
| 15 | webLink |
URL (avec accès limité) permettant d'accéder aux détails de l'indicateur dans l'application ThreatConnect | URL | "https://app.threatconnect.com/#/details/indicators/10/overview" |
Champs supplémentaires
Lorsque vous récupérez des données, vous pouvez utiliser le champ de saisie Champs pour inclure des champs supplémentaires qui ne figurent pas dans la liste des champs par défaut.
Pour inclure un ou plusieurs champs supplémentaires dans la réponse de l'API, renseignez la valeur du champ sur des lignes distinctes dans la zone de saisie Champ lors de la configuration de votre flux.
Par exemple, pour inclure les données des groupes et tags associés dans une réponse d'API, saisissez associatedGroups sur la ligne 1, appuyez sur Enter, puis saisissez tags sur la ligne 2.
Pour en savoir plus sur les attributs d'indicateur, consultez Présentation des indicateurs. Pour en savoir plus sur les champs supplémentaires, consultez Inclure des champs supplémentaires dans les réponses de l'API.
Résoudre les problèmes courants
- Échec de l'authentification : vérifiez l'hôte de l'API, l'ID d'accès et la clé secrète. Assurez-vous que l'utilisateur de l'API dispose des autorisations appropriées pour l'API v3 et qu'il n'est pas bloqué. Vérifiez qu'aucun pare-feu réseau ne bloque l'accès de Google SecOps à votre hôte d'API ThreatConnect.
- Aucune donnée ingérée :
- Vérifiez que les filtres que vous avez définis (par exemple, la confiance, les tags et les types) correspondent aux indicateurs disponibles dans votre instance ThreatConnect.
- Vérifiez les autorisations de l'utilisateur de l'API ThreatConnect.
- Vérifiez l'état du flux le plus récent dans l'interface utilisateur Google SecOps pour les messages d'erreur.
- Limites de débit des API : ThreatConnect peut appliquer des limites de débit aux API. Le connecteur doit gérer les limites de débit standards, mais une récupération excessive peut entraîner des retards. Consultez la documentation de l'API ThreatConnect pour en savoir plus sur les limites.
- Problèmes d'analyse des données : si les journaux sont ingérés, mais pas analysés correctement, comparez le journal brut de Google SecOps avec la sortie JSON attendue de l'API ThreatConnect v3 pour les indicateurs. Contactez l'assistance Google Cloud si vous pensez qu'il s'agit d'un problème lié à l'analyseur.
Migrer depuis le connecteur v2
Si vous utilisiez le flux ThreatConnect précédent basé sur l'API v2, tenez compte des points suivants :
- Principales différences : l'API v3 peut avoir une structure de données différente, des paramètres de filtrage différents ou de nouvelles fonctionnalités. Consultez la documentation de l'API ThreatConnect v3 pour comprendre les modifications apportées aux indicateurs que vous ingérez.
- Configurer le flux v3 : configurez le nouveau flux (comme décrit ci-dessus) à l'aide de vos identifiants d'API v3. Vous pouvez exécuter simultanément les flux v2 et v3 pendant une période de transition.
- Validez les données : comparez les données ingérées par le flux v3 avec celles de l'ancien flux v2 pour vous assurer qu'elles sont complètes et correctes. Notez les modifications ou les améliorations apportées aux champs.
- Désactivez l'ancien flux : une fois que vous êtes sûr que le flux v3 fonctionne comme prévu, vous pouvez désactiver ou supprimer l'ancienne configuration de flux qui utilise l'API v2 pour éviter les doublons de données et réduire les appels d'API.
En savoir plus
Pour en savoir plus sur l'API REST ThreatConnect v3, consultez la documentation ThreatConnect.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.