Collecter les journaux Recorded Future IOC
Ce document explique comment ingérer des journaux Recorded Future d'IOC dans Google Security Operations à l'aide d'une API. L'analyseur transforme les données au format JSON en modèle de données unifié (UDM). Il extrait les détails des IOC, les mappe aux champs UDM, catégorise les menaces en fonction de leur criticité et enrichit les données avec des codes temporels et des informations sur les fournisseurs.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Instance Google SecOps
- Accès privilégié à un compte Recorded Future Enterprise
Obtenir le jeton de l'API Recorded Future
- Connectez-vous à Recorded Future.
- Cliquez sur votre avatar en haut à droite, puis sélectionnez Paramètres utilisateur.
- Dans le menu de navigation, cliquez sur Accès à l'API.
- Cliquez sur Generate New API Token (Générer un jeton d'API).
- Copiez la longue chaîne qui s'affiche (par exemple,
RF-1234567890abcdef...
).- Vous pouvez créer plusieurs clés. Attribuez-leur un nom descriptif, tel que Google SecOps.
- Copiez et enregistrez le jeton dans un emplacement sécurisé. Le jeton API ne s'affiche plus.
Configurer des flux
- Accédez à Paramètres SIEM> Flux.
- Cliquez sur + Ajouter un flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple,
Recorded Future IOC
). - Sélectionnez API tierce comme Type de source.
- Sélectionnez le type de journal Recorded Future.
- Cliquez sur Suivant.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- En-tête HTTP d'authentification
X-RFToken:<your-api_key>
- Veillez à remplacer
<your-api_key>
par la clé que vous avez copiée à l'étape précédente.
- Espace de noms de l'élément : espace de noms de l'élément.
- Libellés d'ingestion : libellé appliqué aux événements de ce flux.
- En-tête HTTP d'authentification
- Cliquez sur Suivant.
- Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
Details.EvidenceDetails.Criticality | ||
Details.EvidenceDetails.CriticalityLabel | ||
Details.EvidenceDetails.EvidenceString | ioc.description | La valeur du champ "EvidenceString" est mappée à ce champ. |
Details.EvidenceDetails.EvidenceString | entity.metadata.threat.description | La valeur du champ "EvidenceString" est mappée à ce champ. |
Details.EvidenceDetails.MitigationString | ||
Details.EvidenceDetails.Rule | ioc.categorization | La valeur du champ "Règle" est mappée à ce champ. |
Details.EvidenceDetails.Rule | entity.metadata.threat.rule_name | La valeur du champ "Règle" est mappée à ce champ. |
Details.EvidenceDetails.Timestamp | ||
Risque | ioc.confidence_score | La valeur du champ "Risque" est convertie en chaîne et mappée à ce champ. |
Risque | entity.metadata.threat.severity_details | La valeur du champ "Risque" est concaténée avec la chaîne "Risque - " et mappée à ce champ. |
Valeur | entity.entity.hostname | Si le champ "Valeur" est un nom de domaine, il est mappé sur ce champ. |
Valeur | ioc.domain_and_ports.domain | Si le champ "Valeur" est un nom de domaine, il est mappé sur ce champ. |
Valeur | ioc.ip_and_ports.ip_address | Si le champ "Valeur" est une adresse IP, il est mappé sur ce champ. |
entity.entity.ip | La valeur du champ "Valeur" est analysée en tant qu'adresse IP et associée à ce champ. | |
ioc.feed_name | La valeur "Recorded Future IOC" est attribuée à ce champ. | |
ioc.raw_severity | La valeur est générée en concaténant le champ "Risk" (Risque) avec le champ "CriticalityLabel" (Libellé de criticité), séparés par un deux-points. | |
entity.metadata.collected_timestamp | La valeur du champ "Details.EvidenceDetails.Timestamp" est analysée en tant que code temporel ISO8601 et mappée à ce champ. | |
entity.metadata.entity_type | La valeur est définie sur "DOMAIN_NAME" si le champ "Value" (Valeur) est un nom de domaine, et sur "IP_ADDRESS" (Adresse IP) s'il s'agit d'une adresse IP. | |
entity.metadata.interval.end_time | La valeur "253402300799" (qui représente la valeur maximale du code temporel) est attribuée à ce champ. | |
entity.metadata.interval.start_time | La valeur du champ "Details.EvidenceDetails.Timestamp" est analysée en tant que code temporel ISO8601 et mappée à ce champ. | |
entity.metadata.threat.category | La valeur est déterminée en fonction du champ "CriticalityLabel" : "Malicious" correspond à "SOFTWARE_MALICIOUS", "Suspicious" correspond à "SOFTWARE_SUSPICIOUS" et toute autre valeur correspond à "UNKNOWN_CATEGORY". | |
entity.metadata.threat.category_details | La valeur est générée en concaténant les chaînes "Criticality - ", "Criticality", ":" et "CriticalityLabel", avec les valeurs correspondantes des données d'entrée. | |
entity.metadata.threat.severity | La valeur est déterminée en fonction du champ "CriticalityLabel" : "Malicious" correspond à "HIGH", "Suspicious" correspond à "MEDIUM" et toute autre valeur correspond à "LOW". | |
entity.metadata.threat.threat_feed_name | La valeur "Recorded Future IOC" est attribuée à ce champ. | |
entity.metadata.vendor_name | La valeur "RECORDED_FUTURE_IOC" est attribuée à ce champ. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.