Recopila registros de IOC de Recorded Future
En este documento, se explica cómo transferir registros de IOC de Recorded Future a Google Security Operations a través de una API. El analizador transforma los datos en formato JSON en un modelo de datos unificado (UDM). Extrae detalles de los IOC, los asigna a campos de UDM, categoriza las amenazas según su gravedad y enriquece los datos con marcas de tiempo e información del proveedor.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Acceso privilegiado a una cuenta de Enterprise de Recorded Future
Cómo adquirir el token de la API de Recorded Future
- Accede a Recorded Future.
- Haz clic en tu avatar en la esquina superior derecha y selecciona Configuración del usuario.
- En el menú de navegación, haz clic en Acceso a la API.
- Haz clic en Generate New API Token.
- 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 una ubicación segura. El token de API no se volverá a mostrar.
Configura feeds
- Ve a Configuración de SIEM > Feeds.
- Haz clic en + Agregar feed nuevo.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
Recorded Future IOC). - Selecciona API de terceros como el Tipo de origen.
- Selecciona el tipo de registro Recorded Future.
- Haz clic en Siguiente.
- Especifica valores para los siguientes parámetros de entrada:
- Encabezado HTTP de autenticación
X-RFToken:<your-api_key>- Asegúrate de reemplazar
<your-api_key>por la clave real que copiaste en el paso anterior.
- Espacio de nombres del recurso: Es el espacio de nombres del recurso.
- Etiquetas de transmisión: Es la etiqueta que se aplica a los eventos de este feed.
- Encabezado HTTP de autenticación
- Haz clic en Siguiente.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz 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 "Valor" es un nombre de dominio, se asigna a este campo. |
| Valor | ioc.domain_and_ports.domain | Si el campo "Valor" es un nombre de dominio, se asigna a este campo. |
| Valor | ioc.ip_and_ports.ip_address | Si el campo "Valor" 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 "IOC de Recorded Future" 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 se establece en "DOMAIN_NAME" si el campo "Value" es un nombre de dominio y en "IP_ADDRESS" si es una dirección IP. | |
| entity.metadata.interval.end_time | El valor "253402300799" (que representa el valor máximo de la marca de tiempo) 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 según el 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 según el 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 "IOC de Recorded Future" se asigna a este campo. | |
| entity.metadata.vendor_name | El valor "RECORDED_FUTURE_IOC" se asigna a este campo. |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.