Recopilar registros de IOC de Recorded Future
En este documento se explica cómo ingerir registros de IOC de Recorded Future en Google Security Operations mediante una API. El analizador transforma los datos en formato JSON en un modelo de datos unificado (UDM). Extrae los detalles de los IOCs, los asigna a los campos de UDM, clasifica las amenazas según su gravedad y enriquece los datos con marcas de tiempo e información del proveedor.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps
- Acceso privilegiado a una cuenta de Enterprise de Recorded Future
Obtener el token de la API de Recorded Future
- Inicia sesión en Recorded Future.
- Haz clic en tu avatar, situado en la esquina superior derecha, y selecciona Configuración de usuario.
- En el menú de navegación, haz clic en Acceso a la API.
- Haz clic en Generar nuevo token de API.
- Copia la cadena larga que aparece (por ejemplo,
RF-1234567890abcdef...
).- Puedes crear más de una clave. Proporciona un nombre descriptivo, como Google SecOps.
- Copia y guarda el token en un lugar seguro. El token de API no se vuelve a mostrar.
Configurar feeds
- Ve a Configuración de SIEM > Feeds.
- Haz clic en + Añadir nuevo feed.
- En el campo Nombre del feed, introduce un nombre para el feed (por ejemplo,
Recorded Future IOC
). - Seleccione API de terceros como Tipo de fuente.
- Seleccione el tipo de registro Recorded Future.
- Haz clic en Siguiente.
- Especifique valores para los siguientes parámetros de entrada:
- Encabezado HTTP de autenticación
X-RFToken:<your-api_key>
- Sustituye
<your-api_key>
por la clave que has copiado en el paso anterior.
- Espacio de nombres de recursos: el espacio de nombres de recursos.
- Etiquetas de ingestión: la etiqueta aplicada a los eventos de este feed.
- Encabezado HTTP de autenticación
- Haz clic en Siguiente.
- Revise la configuración del feed en la pantalla Finalizar y, a continuación, haga clic en Enviar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
Details.EvidenceDetails.Criticality | ||
Details.EvidenceDetails.CriticalityLabel | ||
Details.EvidenceDetails.EvidenceString | ioc.description | El valor del campo "EvidenceString" se asigna a este campo. |
Details.EvidenceDetails.EvidenceString | entity.metadata.threat.description | El valor del campo "EvidenceString" se asigna a este campo. |
Details.EvidenceDetails.MitigationString | ||
Details.EvidenceDetails.Rule | ioc.categorization | El valor del campo "Rule" se asigna a este campo. |
Details.EvidenceDetails.Rule | entity.metadata.threat.rule_name | El valor del campo "Rule" se asigna a este campo. |
Details.EvidenceDetails.Timestamp | ||
Riesgo | ioc.confidence_score | El valor del campo "Riesgo" se convierte en una cadena y se asigna a este campo. |
Riesgo | entity.metadata.threat.severity_details | El valor del campo "Riesgo" se concatena con la cadena "Riesgo - " y se asigna a este campo. |
Valor | entity.entity.hostname | Si el campo "Value" es un nombre de dominio, se asigna a este campo. |
Valor | ioc.domain_and_ports.domain | Si el campo "Value" es un nombre de dominio, se asigna a este campo. |
Valor | ioc.ip_and_ports.ip_address | Si el campo "Value" es una dirección IP, se asigna a este campo. |
entity.entity.ip | El valor del campo "Value" se analiza como una dirección IP y se asigna a este campo. | |
ioc.feed_name | El valor "Recorded Future IOC" se asigna a este campo. | |
ioc.raw_severity | El valor se genera concatenando el campo "Riesgo" con el campo "CriticalityLabel", separados por dos puntos. | |
entity.metadata.collected_timestamp | El valor del campo "Details.EvidenceDetails.Timestamp" se analiza como una marca de tiempo ISO8601 y se asigna a este campo. | |
entity.metadata.entity_type | El valor es "DOMAIN_NAME" si el campo "Value" es un nombre de dominio, y "IP_ADDRESS" si es una dirección IP. | |
entity.metadata.interval.end_time | El valor "253402300799" (que representa el valor de marca de tiempo máximo) se asigna a este campo. | |
entity.metadata.interval.start_time | El valor del campo "Details.EvidenceDetails.Timestamp" se analiza como una marca de tiempo ISO8601 y se asigna a este campo. | |
entity.metadata.threat.category | El valor se determina en función del campo "CriticalityLabel": "Malicious" se asigna a "SOFTWARE_MALICIOUS", "Suspicious" se asigna a "SOFTWARE_SUSPICIOUS" y cualquier otro valor se asigna a "UNKNOWN_CATEGORY". | |
entity.metadata.threat.category_details | El valor se genera concatenando las cadenas "Criticality - ", "Criticality", ":" y "CriticalityLabel" con los valores correspondientes de los datos de entrada. | |
entity.metadata.threat.severity | El valor se determina en función del campo "CriticalityLabel": "Malicious" se asigna a "HIGH", "Suspicious" se asigna a "MEDIUM" y cualquier otro valor se asigna a "LOW". | |
entity.metadata.threat.threat_feed_name | El valor "Recorded Future IOC" se asigna a este campo. | |
entity.metadata.vendor_name | El valor "RECORDED_FUTURE_IOC" se asigna a este campo. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.