Recopila registros de Microsoft Sentinel
Descripción general
Este analizador extrae campos de los registros JSON de Microsoft Sentinel, realiza transformaciones como la extracción de direcciones IP y la manipulación de cadenas, y asigna los datos extraídos al UDM, incluidos los campos principal, objetivo, security_result y metadatos. También controla varios tipos de datos y combina las entidades extraídas en la estructura del UDM.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso a Microsoft Sentinel
Configura feeds
Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:
- Configuración de SIEM > Feeds
- Centro de contenido > Paquetes de contenido
Configura feeds en Configuración del SIEM > Feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración del SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de Microsoft Sentinel.
- Selecciona Webhook como el Tipo de origen.
- Selecciona Microsoft Sentinel 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
.
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
- Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
- Copia y almacena la clave secreta, ya que no podrás volver a verla. Puedes volver a generar una clave secreta nueva, pero la regeneración de la clave secreta hace que la 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.
Configura feeds desde el Centro de contenido
Especifica valores para los siguientes campos:
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
\n
.
Opciones avanzadas
- Nombre del feed: Es un valor completado previamente que identifica el feed.
- Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
- Espacio de nombres del activo: Es el espacio de nombres asociado con el feed.
Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
Copia y almacena la clave secreta, ya que no podrás volver a verla. Puedes volver a generar una clave secreta nueva, pero la regeneración de la clave secreta hace que la 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.
Crea una clave de API para el feed del webhook
Ve a Google Cloud consola > 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 con 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 búsqueda 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 autenticarse en Google Security Operations.SECRET
: Es la clave secreta que generaste para autenticar el feed.
Configura la aplicación lógica para los incidentes de Microsoft Sentinel
Para configurar Logic App for Microsoft Sentinel Incidents, sigue estos pasos:
- Accede al portal de Azure.
- Haz clic en Crear un recurso.
- Busca Logic App.
- Haz clic en Crear para iniciar el proceso de creación.
- Especifica valores para los siguientes parámetros de entrada:
- Suscripción: Selecciona la suscripción.
- Grupo de recursos: Selecciona el grupo de recursos.
- Nombre: Ingresa un nombre para la app lógica.
- Región: Selecciona la región.
- Lugar de trabajo de Log Analytics: Selecciona el lugar de trabajo de Log Analytics.
- Haz clic en Revisar + crear.
- Haz clic en Crear.
- Después de crear la aplicación lógica, haz clic en Ir al recurso.
- Haz clic en Herramientas de desarrollo > Diseñador de Logic App.
- Haz clic en Agregar un activador.
- Busca Microsoft Sentinel.
- Selecciona Incidente de Microsoft Sentinel como el activador.
- Si aún no creaste una conexión a Microsoft Sentinel, deberás hacerlo ahora. Haz clic en Crear nuevo y sigue las instrucciones para autenticarte.
- Haz clic en Insertar un paso nuevo.
- Haz clic en Agregar una acción.
- Busca y selecciona HTTP como la acción.
- Especifica valores para los siguientes parámetros de entrada:
- URI: Es la URL del extremo del feed.
- Método: POST
- Encabezados: Agrega los siguientes encabezados:
- Content-Type: application/json
- X-goog-api-key: Es la clave de API para autenticarse en Google Security Operations.
- X-Webhook-Access-Key: Es la clave secreta que generaste para autenticar el feed.
Configura la aplicación lógica para las alertas de Microsoft Sentinel
Para configurar Logic App for Microsoft Sentinel Alerts, sigue estos pasos:
- Ve a la página principal del portal de Azure.
- Haz clic en Crear un recurso.
- Busca Logic App.
- Haz clic en Crear para iniciar el proceso de creación.
- Especifica valores para los siguientes parámetros de entrada:
- Suscripción: Selecciona la suscripción.
- Grupo de recursos: Selecciona el grupo de recursos.
- Nombre: Ingresa un nombre para la app lógica.
- Región: Selecciona la región.
- Lugar de trabajo de Log Analytics: Selecciona el lugar de trabajo de Log Analytics.
- Haz clic en Revisar + crear.
- Haz clic en Crear.
- Después de crear la aplicación lógica, haz clic en Ir al recurso.
- Haz clic en Herramientas de desarrollo > Diseñador de Logic App.
- Haz clic en Agregar un activador.
- Busca Microsoft Sentinel.
- Selecciona Alerta de Microsoft Sentinel como el activador.
- Si aún no creaste una conexión a Microsoft Sentinel, deberás hacerlo ahora. Haz clic en Crear nuevo y sigue las instrucciones para autenticarte.
- Haz clic en Insertar un paso nuevo.
- Haz clic en Agregar una acción.
- Busca y selecciona HTTP como la acción.
- Especifica valores para los siguientes parámetros de entrada:
- URI: Es la URL del extremo del feed.
- Método: POST
- Encabezados: Agrega los siguientes encabezados:
- Content-Type: application/json
- X-goog-api-key: Es la clave de API para autenticarse en Google Security Operations.
- X-Webhook-Access-Key: Es la clave secreta que generaste para autenticar el feed.
Configura reglas de automatización para Microsoft Sentinel
Para configurar las reglas de automatización para Microsoft Sentinel, sigue estos pasos:
- Ve a tu espacio de trabajo de Microsoft Sentinel.
- Haz clic en Configuración > Automatización.
- Haz clic en Crear.
- Selecciona Regla de automatización.
- Especifica valores para los siguientes parámetros de entrada:
- Nombre: Ingresa un nombre para la regla de automatización.
- Activador: Selecciona Cuando se crea un incidente.
- Acciones: Selecciona Ejecutar manual > App de Logic creada para incidentes.
- Haz clic en Aplicar.
- Haz clic en Crear.
- Selecciona Regla de automatización.
- Especifica valores para los siguientes parámetros de entrada:
- Nombre: Ingresa un nombre para la regla de automatización.
- Activador: Selecciona Cuando se actualiza el incidente.
- Condición: Haz clic en Agregar > Condición (Y) > Estado > Cambiado.
- Acciones: Selecciona Ejecutar manual > App de Logic creada para incidentes.
- Haz clic en Aplicar.
- Haz clic en Crear.
- Selecciona Regla de automatización.
- Especifica valores para los siguientes parámetros de entrada:
- Nombre: Ingresa un nombre para la regla de automatización.
- Activador: Selecciona Cuando se crea la alerta.
- Acciones: Selecciona Ejecutar playbook > App de Logic creada para alertas.
- Haz clic en Aplicar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
AlertGenerationStatus |
security_result.detection_fields.AlertGenerationStatus |
Se asigna directamente desde el campo ExtendedProperties después del análisis de JSON. |
AlertLink |
principal.labels.AlertLink |
Se asigna directamente. |
AlertName |
security_result.rule_name |
Se asigna directamente. |
AlertSeverity |
security_result.severity |
Se mapea directamente y se convierte a mayúsculas. Si el valor es HIGH, MEDIUM, LOW, CRITICAL o UNKNOWN_SEVERITY, se asigna a security_result.severity . De lo contrario, se asigna a security_result.severity_details . |
AlertType |
security_result.threat_name |
Se asigna directamente. |
Category |
security_result.detection_fields.Category |
Se asigna directamente desde el campo ExtendedProperties después del análisis de JSON. |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity |
Se asigna directamente. |
CompromisedEntityId |
security_result.detection_fields.CompromisedEntityId |
Se asigna directamente desde el campo ExtendedProperties después del análisis de JSON. |
ConfidenceLevel |
security_result.confidence_details |
Se asigna directamente. |
ConfidenceScore |
security_result.detection_fields.ConfidenceScore |
Se asigna directamente. |
cribl_pipe |
additional.fields.cribl_pipe |
Se asigna directamente. |
Description |
security_result.description |
Se asigna directamente. |
DestinationDevice |
security_result.detection_fields.DestinationDevice O target.ip |
Se asigna desde el campo ExtendedProperties después del análisis de JSON. Si el valor es una dirección IP válida, se asigna a target.ip . De lo contrario, se asigna como un campo de detección. |
DestinationDeviceAddress |
target.ip |
Se asigna desde el campo ExtendedProperties después del análisis de JSON, solo si es una dirección IP válida. |
DeviceId |
security_result.detection_fields.DeviceId |
Se asigna directamente desde el campo ExtendedProperties después del análisis de JSON. |
DisplayName |
security_result.summary |
Se asigna directamente. |
EndTime |
about.labels.EndTime |
Se asigna directamente. |
Entities.Address |
principal.asset.ip |
Se extrae del array Entities después del análisis de JSON. Solo se asignan direcciones IP. |
Entities.HostName |
principal.asset.hostname O principal.asset.ip |
Se extrae del array Entities después del análisis de JSON. Si el valor es una dirección IP válida, se asigna a principal.asset.ip . De lo contrario, se asigna a principal.asset.hostname . |
Entities.IoTDevice.DeviceId |
security_result.detection_fields.IoTDeviceID |
Se extrae del array Entities después del análisis de JSON. |
Entities.IoTDevice.DeviceType |
security_result.detection_fields.IoTDeviceType |
Se extrae del array Entities después del análisis de JSON. |
Entities.IoTDevice.DeviceTypeId |
security_result.detection_fields.IoTDeviceTypeId |
Se extrae del array Entities después del análisis de JSON. |
Entities.IoTDevice.Importance |
security_result.detection_fields.IoTDeviceImportance |
Se extrae del array Entities después del análisis de JSON. |
Entities.IoTDevice.IoTSecurityAgentId |
security_result.detection_fields.IoTSecurityAgentId |
Se extrae del array Entities después del análisis de JSON. |
Entities.IoTDevice.Manufacturer |
security_result.detection_fields.IoT Manufacturer |
Se extrae del array Entities después del análisis de JSON. |
Entities.IoTDevice.OperatingSystem |
principal.asset.platform_software.platform_version |
Se extrae del array Entities después del análisis de JSON y se quitan los espacios finales. |
Entities.IoTDevice.PurdueLayer |
security_result.detection_fields.IoT PurdueLayer |
Se extrae del array Entities después del análisis de JSON. |
Entities.IoTDevice.Sensor |
security_result.detection_fields.IoT Sensor |
Se extrae del array Entities después del análisis de JSON. |
ExtendedProperties.Protocol |
security_result.detection_fields.Protocol |
Se asigna directamente desde el campo ExtendedProperties después del análisis de JSON. |
ExtendedProperties.SensorId |
security_result.detection_fields.SensorId |
Se asigna directamente desde el campo ExtendedProperties después del análisis de JSON. |
ExtendedProperties.SourceDevice |
principal.ip O security_result.detection_fields.SourceDevice |
Se asigna desde el campo ExtendedProperties después del análisis de JSON. Si el valor es una dirección IP válida, se asigna a principal.ip . De lo contrario, se asigna como un campo de detección. |
ExtendedProperties.SourceDeviceAddress |
principal.ip |
Se asigna desde el campo ExtendedProperties después del análisis de JSON, solo si es una dirección IP válida. |
IsIncident |
security_result.detection_fields.IsIncident |
Se asigna directamente y se convierte en una cadena. |
ProcessingEndTime |
about.labels.ProcessingEndTime |
Se asigna directamente. |
ProductComponentName |
principal.resource.attribute.labels.ProductComponentName |
Se asigna directamente. |
ProductName |
principal.resource.attribute.labels.ProductName |
Se asigna directamente. |
ProviderName |
principal.resource.attribute.labels.ProviderName |
Se asigna directamente. |
ResourceId |
principal.resource.product_object_id , target.resource.name |
Se asigna directamente. |
SourceComputerId |
principal.asset.asset_id |
Se asigna directamente y tiene el prefijo "SourceComputerId:". |
SourceSystem |
security_result.detection_fields.SourceSystem |
Se asigna directamente. |
StartTime |
about.labels.StartTime |
Se asigna directamente. |
Status |
security_result.detection_fields.Status |
Se asigna directamente. |
SystemAlertId |
metadata.product_log_id |
Se asigna directamente. |
Tactics |
security_result.attack_details.tactics.name |
Se extrae del campo Tactics después del análisis de JSON y la eliminación de la barra inversa. |
Techniques |
security_result.attack_details.techniques.id |
Se extrae del campo Techniques después del análisis de JSON y la eliminación de la barra inversa. |
TenantId |
additional.fields.TenantId |
Se asigna directamente. |
TimeGenerated |
about.labels.TimeGenerated |
Se asigna directamente. |
timestamp |
metadata.event_timestamp , events.timestamp |
Se asigna directamente. |
VendorName |
metadata.vendor_name |
Se asigna directamente. |
VendorOriginalId |
additional.fields.VendorOriginalId |
Se asigna directamente. |
_time |
metadata.event_timestamp , events.timestamp |
Se analiza como una marca de tiempo con el formato UNIX o UNIX_MS. |
(Lógica del analizador) | metadata.event_type |
Se establece en "USER_RESOURCE_ACCESS" si están presentes la principal, el destino y el ResourceId. De lo contrario, se establece como "GENERIC_EVENT". |
(Lógica del analizador) | metadata.log_type |
Se establece en "MICROSOFT_SENTINEL". |
(Lógica del analizador) | metadata.product_name |
Se establece en "MICROSOFT_SENTINEL". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.