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 en Configuración de 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.
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 a la API de Chronicle con la clave de API.
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 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 de 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.