Recopilar registros de Microsoft Sentinel
Informació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 modelo de datos unificado, incluidos los campos principal, target, security_result y metadata. También gestiona varios tipos de datos y combina las entidades extraídas en la estructura de UDM.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso a Microsoft Sentinel.
Configurar feeds desde Configuración de SIEM > Feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Añadir feed.
- En la página siguiente, haga clic en Configurar un solo feed.
- En el campo Nombre del feed, introduce un nombre para el feed; por ejemplo, Registros de Microsoft Sentinel.
- Selecciona Webhook como Tipo de fuente.
- Seleccione Microsoft Sentinel como Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica los valores de los siguientes parámetros de entrada:
- Delimitador de división: el delimitador que se usa para separar las líneas de registro, como
\n.
- Delimitador de división: el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revise la nueva configuración del feed en la pantalla Finalizar y, a continuación, haga clic en Enviar.
- Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
- Copia y guarda la clave secreta, ya que no podrás volver a verla. Puedes volver a generar una clave secreta, pero si lo haces, la clave secreta anterior quedará obsoleta.
- En la pestaña Detalles, copia la URL del endpoint del feed del campo Información del endpoint. Debe especificar esta URL de endpoint en su aplicación cliente.
- Haz clic en Listo.
Crear una clave de API para la feed de webhook
Ve a la consolaGoogle Cloud > Credenciales.
Haz clic en Crear credenciales y, a continuación, selecciona Clave de API.
Restringe el acceso de la clave de API a la API Chronicle.
Especificar la URL del endpoint
- En tu aplicación cliente, especifica la URL del endpoint HTTPS proporcionada 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 = SECRETRecomendación: Especifica la clave de API como 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 mediante parámetros de consulta con el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Haz los cambios siguientes:
ENDPOINT_URL: URL del endpoint del feed.API_KEY: la clave de API para autenticarte en Google Security Operations.SECRET: la clave secreta que has generado para autenticar el feed.
Configurar una aplicación lógica para incidentes de Microsoft Sentinel
Para configurar Logic App for Microsoft Sentinel Incidents (Aplicación lógica para incidentes de Microsoft Sentinel), sigue estos pasos:
- Inicia sesión en Azure Portal.
- Haz clic en Crear un recurso.
- Busca Logic App.
- Haz clic en Crear para iniciar el proceso de creación.
- Especifique valores para los siguientes parámetros de entrada:
- Suscripción: selecciona la suscripción.
- Grupo de recursos: selecciona el grupo de recursos.
- Nombre: introduce un nombre para la aplicación lógica.
- Región: selecciona la región.
- Espacio de trabajo de Log Analytics: seleccione el espacio de trabajo de Log Analytics.
- Haz clic en Revisar y crear.
- Haz clic en Crear.
- Una vez creada la aplicación lógica, haz clic en Ir al recurso.
- Haz clic en Herramientas de desarrollo > Diseñador de aplicaciones lógicas.
- Haz clic en Añadir un activador.
- Busca Microsoft Sentinel.
- Selecciona Incidente de Microsoft Sentinel como activador.
- Si aún no has creado una conexión con Microsoft Sentinel, tendrás que hacerlo ahora. Haz clic en Crear nuevo y sigue las instrucciones para autenticarte.
- Haz clic en Insertar un paso nuevo.
- Haz clic en Añadir una acción.
- Busca y selecciona HTTP como acción.
- Especifique valores para los siguientes parámetros de entrada:
- URI la URL del endpoint del feed.
- Método: POST
- Encabezados: añade los siguientes encabezados:
- Content-Type: application/json
- X-goog-api-key: la clave de API para autenticarte en Google Security Operations.
- X-Webhook-Access-Key: la clave secreta que has generado para autenticar el feed.
Configurar una 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 de Azure Portal.
- Haz clic en Crear un recurso.
- Busca Logic App.
- Haz clic en Crear para iniciar el proceso de creación.
- Especifique valores para los siguientes parámetros de entrada:
- Suscripción: selecciona la suscripción.
- Grupo de recursos: selecciona el grupo de recursos.
- Nombre: introduce un nombre para la aplicación lógica.
- Región: selecciona la región.
- Espacio de trabajo de Log Analytics: seleccione el espacio de trabajo de Log Analytics.
- Haz clic en Revisar y crear.
- Haz clic en Crear.
- Una vez creada la aplicación lógica, haz clic en Ir al recurso.
- Haz clic en Herramientas de desarrollo > Diseñador de aplicaciones lógicas.
- Haz clic en Añadir un activador.
- Busca Microsoft Sentinel.
- Seleccione Alerta de Microsoft Sentinel como activador.
- Si aún no has creado una conexión con Microsoft Sentinel, tendrás que hacerlo ahora. Haz clic en Crear nuevo y sigue las instrucciones para autenticarte.
- Haz clic en Insertar un paso nuevo.
- Haz clic en Añadir una acción.
- Busca y selecciona HTTP como acción.
- Especifique valores para los siguientes parámetros de entrada:
- URI la URL del endpoint del feed.
- Método: POST
- Encabezados: añade los siguientes encabezados:
- Content-Type: application/json
- X-goog-api-key: la clave de API para autenticarte en Google Security Operations.
- X-Webhook-Access-Key: la clave secreta que has generado para autenticar el feed.
Configurar reglas de automatización en Microsoft Sentinel
Para configurar reglas de automatización en Microsoft Sentinel, siga estos pasos:
- Ve a tu espacio de trabajo de Microsoft Sentinel.
- Haga clic en Configuración > Automatización.
- Haz clic en Crear.
- Selecciona Regla de automatización.
- Especifique valores para los siguientes parámetros de entrada:
- Nombre: introduce un nombre para la regla de automatización.
- Activador: selecciona Cuando se crea un incidente.
- Acciones: selecciona Ejecutar guía > Aplicación lógica creada para incidencias.
- Haz clic en Aplicar.
- Haz clic en Crear.
- Selecciona Regla de automatización.
- Especifique valores para los siguientes parámetros de entrada:
- Nombre: introduce un nombre para la regla de automatización.
- Activador: selecciona Cuando se actualice el incidente.
- Condición: haz clic en Añadir > Condición (Y) > Estado > Cambiado.
- Acciones: selecciona Ejecutar guía > Aplicación lógica creada para incidencias.
- Haz clic en Aplicar.
- Haz clic en Crear.
- Selecciona Regla de automatización.
- Especifique valores para los siguientes parámetros de entrada:
- Nombre: introduce un nombre para la regla de automatización.
- Activador: selecciona Cuando se crea la alerta.
- Acciones: selecciona Ejecutar guía > Aplicación lógica 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 de analizar el JSON. |
AlertLink |
principal.labels.AlertLink |
Asignación directa. |
AlertName |
security_result.rule_name |
Asignación directa. |
AlertSeverity |
security_result.severity |
Asignado directamente y convertido 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 |
Asignación directa. |
Category |
security_result.detection_fields.Category |
Se asigna directamente desde el campo ExtendedProperties después de analizar el JSON. |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity |
Asignación directa. |
CompromisedEntityId |
security_result.detection_fields.CompromisedEntityId |
Se asigna directamente desde el campo ExtendedProperties después de analizar el JSON. |
ConfidenceLevel |
security_result.confidence_details |
Asignación directa. |
ConfidenceScore |
security_result.detection_fields.ConfidenceScore |
Asignación directa. |
cribl_pipe |
additional.fields.cribl_pipe |
Asignación directa. |
Description |
security_result.description |
Asignación directa. |
DestinationDevice |
security_result.detection_fields.DestinationDevice O target.ip |
Se asigna desde el campo ExtendedProperties después de analizar el JSON. Si el valor es una dirección IP válida, se asigna a target.ip. De lo contrario, se asigna como campo de detección. |
DestinationDeviceAddress |
target.ip |
Se asigna desde el campo ExtendedProperties después de analizar el 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 de analizar el JSON. |
DisplayName |
security_result.summary |
Asignación directa. |
EndTime |
about.labels.EndTime |
Asignación directa. |
Entities.Address |
principal.asset.ip |
Se extrae de la matriz Entities después de analizar el JSON. Solo se asignan direcciones IP. |
Entities.HostName |
principal.asset.hostname O principal.asset.ip |
Se extrae de la matriz Entities después de analizar el 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 de la matriz Entities después de analizar el JSON. |
Entities.IoTDevice.DeviceType |
security_result.detection_fields.IoTDeviceType |
Se extrae de la matriz Entities después de analizar el JSON. |
Entities.IoTDevice.DeviceTypeId |
security_result.detection_fields.IoTDeviceTypeId |
Se extrae de la matriz Entities después de analizar el JSON. |
Entities.IoTDevice.Importance |
security_result.detection_fields.IoTDeviceImportance |
Se extrae de la matriz Entities después de analizar el JSON. |
Entities.IoTDevice.IoTSecurityAgentId |
security_result.detection_fields.IoTSecurityAgentId |
Se extrae de la matriz Entities después de analizar el JSON. |
Entities.IoTDevice.Manufacturer |
security_result.detection_fields.IoT Manufacturer |
Se extrae de la matriz Entities después de analizar el JSON. |
Entities.IoTDevice.OperatingSystem |
principal.asset.platform_software.platform_version |
Se extrae de la matriz Entities después de analizar el JSON y se eliminan los espacios finales. |
Entities.IoTDevice.PurdueLayer |
security_result.detection_fields.IoT PurdueLayer |
Se extrae de la matriz Entities después de analizar el JSON. |
Entities.IoTDevice.Sensor |
security_result.detection_fields.IoT Sensor |
Se extrae de la matriz Entities después de analizar el JSON. |
ExtendedProperties.Protocol |
security_result.detection_fields.Protocol |
Se asigna directamente desde el campo ExtendedProperties después de analizar el JSON. |
ExtendedProperties.SensorId |
security_result.detection_fields.SensorId |
Se asigna directamente desde el campo ExtendedProperties después de analizar el JSON. |
ExtendedProperties.SourceDevice |
principal.ip O security_result.detection_fields.SourceDevice |
Se asigna desde el campo ExtendedProperties después de analizar el JSON. Si el valor es una dirección IP válida, se asigna a principal.ip. De lo contrario, se asigna como campo de detección. |
ExtendedProperties.SourceDeviceAddress |
principal.ip |
Se asigna desde el campo ExtendedProperties después de analizar el JSON, solo si es una dirección IP válida. |
IsIncident |
security_result.detection_fields.IsIncident |
Asignado directamente, convertido en cadena. |
ProcessingEndTime |
about.labels.ProcessingEndTime |
Asignación directa. |
ProductComponentName |
principal.resource.attribute.labels.ProductComponentName |
Asignación directa. |
ProductName |
principal.resource.attribute.labels.ProductName |
Asignación directa. |
ProviderName |
principal.resource.attribute.labels.ProviderName |
Asignación directa. |
ResourceId |
principal.resource.product_object_id, target.resource.name |
Asignación directa. |
SourceComputerId |
principal.asset.asset_id |
Asignado directamente, con el prefijo "SourceComputerId:". |
SourceSystem |
security_result.detection_fields.SourceSystem |
Asignación directa. |
StartTime |
about.labels.StartTime |
Asignación directa. |
Status |
security_result.detection_fields.Status |
Asignación directa. |
SystemAlertId |
metadata.product_log_id |
Asignación directa. |
Tactics |
security_result.attack_details.tactics.name |
Se extrae del campo Tactics después de analizar el JSON y eliminar las barras invertidas. |
Techniques |
security_result.attack_details.techniques.id |
Se extrae del campo Techniques después de analizar el JSON y eliminar las barras invertidas. |
TenantId |
additional.fields.TenantId |
Asignación directa. |
TimeGenerated |
about.labels.TimeGenerated |
Asignación directa. |
timestamp |
metadata.event_timestamp, events.timestamp |
Asignación directa. |
VendorName |
metadata.vendor_name |
Asignación directa. |
VendorOriginalId |
additional.fields.VendorOriginalId |
Asignación directa. |
_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 define como "USER_RESOURCE_ACCESS" si están presentes principal, target y ResourceId. De lo contrario, se asigna el valor "GENERIC_EVENT". |
| (Lógica del analizador) | metadata.log_type |
Asigna el valor "MICROSOFT_SENTINEL". |
| (Lógica del analizador) | metadata.product_name |
Asigna el valor "MICROSOFT_SENTINEL". |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.