Recopila registros de IOC de CrowdStrike
Descripción general
Este analizador extrae datos de CrowdStrike Falcon Intelligence de mensajes con formato JSON. Transforma varios campos de IOC en el formato UDM y controla diferentes tipos de indicadores (dominios, IP, URLs, hashes, etc.) y sus metadatos asociados, incluidas las relaciones, las etiquetas y la información sobre amenazas. El analizador también realiza la validación de datos y la manejo de errores. Prioriza el análisis de JSON, recurre a la coincidencia de grok si es necesario y descarta los mensajes con el formato incorrecto.
Antes de comenzar
- Asegúrate de tener una instancia de Google SecOps.
- Asegúrate de tener acceso a la plataforma de CrowdStrike Falcon Intelligence con los permisos adecuados.
Configura un feed en Google SecOps para transferir los registros de IOC de CrowdStrike
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar nueva.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de IOC de CrowdStrike).
- Selecciona Webhook como el Tipo de origen.
- Selecciona Crowdstrike IOC como el Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica valores para los siguientes parámetros de entrada:
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
\n
. - Espacio de nombres de recursos: Es el espacio de nombres de recursos.
- Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
- Haz clic en Generate Secret Key para generar una clave secreta que autentique este feed.
- Copia y almacena la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes volver a generar una clave secreta nueva, pero esta acción hace que la clave secreta anterior quede obsoleta.
- En la pestaña Detalles, copia la URL del extremo del feed del campo Información del extremo. Debes especificar esta URL de extremo en tu aplicación cliente.
- Haz clic en Listo.
Crea una clave de API para el feed de webhook
Ve a consola de Google Cloud > Credenciales.
Haz clic en Crear credenciales y selecciona Clave de API.
Restringe el acceso de la clave de API a la API de Google Security Operations.
Especifica la URL del extremo
- En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona en el feed de webhook.
Para habilitar la autenticación, especifica la clave de API y la clave secreta como parte del encabezado personalizado en el siguiente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recomendación: Especifica la clave de API como un encabezado en lugar de hacerlo en la URL.
Si tu cliente de webhook no admite encabezados personalizados, puedes especificar la clave de API y la clave secreta con parámetros de consulta en el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Reemplaza lo siguiente:
ENDPOINT_URL
: Es la URL del extremo del feed.API_KEY
: Es la clave de API para autenticar en Google SecOps.SECRET
: Es la clave secreta que generaste para autenticar el feed.
Crea un webhook de CrowdStrike
- Accede a la consola de CrowdStrike Falcon Intelligence.
- Ve a CrowdStrike Store.
- Busca Webhook.
- Activa la integración de webhook.
- Haz clic en Configurar.
- Selecciona Agregar configuración.
- Asegúrate de que solo se envíen IOC al webhook.
- Pega la URL del extremo en el campo Webhook URL de la pantalla Configure Webhook.
- Haz clic en Guardar.
- CrowdStrike ahora envía los eventos generados al feed de Google SecOps especificado.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
_marker |
event.idm.entity.entity.labels.value |
El valor del campo _marker se asigna directamente. |
actors |
event.idm.entity.entity.group.group_display_name |
Si el primer valor de actors contiene "panda", "bear", "kitten", "chollima", "jackal" o "Spider", se asigna y se deriva event.idm.entity.entity.location.country_or_region (China, Rusia, Irán, Corea del Norte, grupos activistas y grupos criminales, respectivamente). Otros valores en actors se agregan como etiquetas con la clave "actor" dentro de event.idm.entity.entity.group.attribute.labels . |
actors |
event.idm.entity.entity.location.country_or_region |
Se deriva en función del primer valor en actors (consulta más arriba). |
deleted |
event.idm.entity.metadata.threat.action |
Si deleted es “false”, la acción es “BLOCK”. Si deleted es "verdadero", la acción es "ALLOW". |
deleted |
event.idm.entity.metadata.threat.action_details |
El valor de deleted se asigna directamente. |
domain_types |
event.idm.entity.metadata.threat.detection_fields.value |
Todos los valores de domain_types se concatenan con comas y se asignan con la clave "domain_types". |
id |
event.idm.entity.metadata.product_entity_id |
El valor de id se asigna directamente. |
indicator |
event.idm.entity.entity.hostname |
Se asigna si type es "domain". |
indicator |
event.idm.entity.entity.file.md5 |
Se asigna si type es "hash_md5" y el valor es un hash MD5 válido. |
indicator |
event.idm.entity.entity.file.sha1 |
Se asigna si type es "hash_sha1" y el valor es un hash SHA1 válido. |
indicator |
event.idm.entity.entity.file.sha256 |
Se asigna si type es "hash_sha256" y el valor es un hash SHA256 válido. |
indicator |
event.idm.entity.entity.ip |
Se asigna si type es “ip_address” y el valor es una dirección IP válida. |
indicator |
event.ioc.ip_and_ports.ip_address |
Se asigna si type es "ip_address" y el valor es una dirección IP válida. |
indicator |
event.idm.entity.entity.url |
Se asigna si type es "url". |
indicator |
event.idm.entity.entity.resource.name |
Se asigna si type es "device_name" o "mutex_name". |
indicator |
event.idm.entity.entity.user.email_addresses |
Se asigna si type es "email_address" y el valor es una dirección de correo electrónico válida. |
indicator |
event.idm.entity.metadata.threat.detection_fields.value |
Se asignan con varias claves según el campo type (p.ej., "campaign_id", "binary_string", etcétera). Si el tipo no se controla de forma específica, se asigna con type como clave. |
indicator |
event.ioc.domain_and_ports.domain |
Se asigna si type no es "ip_address" o "port". |
ip_address_types |
event.idm.entity.metadata.threat.detection_fields.value |
Todos los valores de ip_address_types se concatenan con comas y se asignan con la clave "ip_address_types". |
kill_chains |
event.idm.entity.metadata.threat.category |
La categoría se obtiene en función de los valores de kill_chains . "reconnaissance", "weaponization" o "actionOnObjectives" generan "NETWORK_MALICIOUS". "delivery" o "exploitation" se convierten en "EXPLOIT". "installation" o "c3" generan "SOFTWARE_MALICIOUS". "c2" muestra "NETWORK_COMMAND_AND_CONTROL". Otros valores generan "UNKNOWN_CATEGORY". Se pueden asignar varias categorías. |
kill_chains |
event.idm.entity.metadata.threat.category_details |
Los valores sin procesar de kill_chains se asignan directamente. Se pueden ingresar varios valores. |
labels |
event.idm.entity.metadata.threat.detection_fields |
El campo "name" dentro de cada etiqueta se divide en label_key y label_value por la barra "/". Si label_key es "Malware" o "ThreatType", label_value se asigna a threat_name . De lo contrario, label_key y label_value se asignan como un par clave-valor. "created_on" y "last_valid_on" dentro de cada etiqueta también se asignan como pares clave-valor. |
labels |
event.idm.entity.metadata.threat.threat_name |
Se deriva del campo labels (consulta más arriba). |
last_updated |
event.idm.entity.metadata.threat.detection_fields.value |
El valor de last_updated se asigna con la clave "last_updated". |
malicious_confidence |
event.idm.entity.metadata.threat.confidence |
Si malicious_confidence es “alto”, la confianza es “HIGH_CONFIDENCE”. Si es "baja", la confianza es "LOW_CONFIDENCE". Si es “media”, la confianza es “MEDIUM_CONFIDENCE”. De lo contrario, es "CONFIDENCE_UNKNOWN". |
malicious_confidence |
event.idm.entity.metadata.threat.confidence_details |
El valor de malicious_confidence se asigna directamente. |
malicious_confidence |
event.ioc.confidence_score |
El valor de malicious_confidence se asigna directamente. |
malware_families |
event.idm.entity.metadata.threat.threat_name |
Todos los valores de malware_families se concatenan con comas y se asignan. |
published_date |
event.idm.entity.metadata.creation_timestamp |
El valor de published_date se convierte en una marca de tiempo. |
published_date |
event.idm.entity.metadata.interval.start_time |
El valor de published_date se convierte en una marca de tiempo. |
published_date |
event.ioc.active_timerange.start |
El valor de published_date se convierte en una marca de tiempo. |
relations |
event.idm.entity.metadata.threat.about |
Los campos de cada relación se asignan al objeto about según su type . "created_date", "last_valid_date" y "id" se agregan como etiquetas. |
reports |
event.idm.entity.metadata.threat.about.labels.value |
Todos los valores de reports se concatenan con comas y se asignan con la clave "report_ids". |
threat_types |
event.idm.entity.metadata.threat.threat_name |
Todos los valores de threat_types se concatenan con comas con el threat_name existente derivado de malware_families . |
type |
event.ioc.categorization |
El valor de type se asigna directamente. |
(lógica del analizador) | event.idm.entity.metadata.collected_timestamp |
Se usa el valor de create_time del registro sin procesar. |
(lógica del analizador) | event.idm.entity.metadata.interval.end_time |
Está codificada de forma fija en una marca de tiempo muy lejana (253402300799). |
(lógica del analizador) | event.idm.entity.metadata.product_name |
Se codifica en "Falcon". |
(lógica del analizador) | event.idm.entity.metadata.vendor_name |
Está codificado de forma fija en "CrowdStrike". |
(lógica del analizador) | event.idm.entity.metadata.entity_type |
Se deriva en función del campo type y la presencia de otros campos. Consulta el código del analizador para ver la lógica específica. |
(lógica del analizador) | event.ioc.feed_name |
Se codifica de forma fija en "CrowdStrike Falcon Intelligence". |
(lógica del analizador) | event.timestamp |
Se usa el valor de create_time del registro sin procesar. |
Cambios
2023-08-23
- Se cambió la asignación del campo
malicious_confidence
.
2023-05-04
- Se promovió el analizador
crowdstrike_ioc
a predeterminado.