Recopila registros de alertas de Microsoft Defender for Cloud

Se admite en los siguientes países:

Descripción general

Este analizador extrae datos de alertas de seguridad de los registros con formato JSON de Microsoft Defender for Cloud. Transforma y asigna los campos de registro sin procesar a la UDM de Google SecOps, administrando varios tipos de datos y estructuras anidadas, a la vez que enriquece los datos con contexto y etiquetas adicionales para mejorar el análisis.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a Microsoft Defender for Cloud.

Configura un feed en Google SecOps para transferir los registros de alertas de Microsoft Defender Cloud

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de alertas de Microsoft Defender for Cloud).
  4. Selecciona Webhook como el Tipo de origen.
  5. Selecciona Microsoft Defender for Cloud como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. 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.
  8. Haz clic en Siguiente.
  9. Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
  10. Haz clic en Generate Secret Key para generar una clave secreta que autentique este feed.
  11. 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.
  12. 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.
  13. Haz clic en Listo.

Crea una clave de API para el feed de webhook

  1. Ve a consola de Google Cloud > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales y selecciona Clave de API.

  3. Restringe el acceso de la clave de API a la API de Google Security Operations.

Especifica la URL del extremo

  1. En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona en el feed de webhook.
  2. 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 autenticarse en Google Security Operations.
  • SECRET: Es la clave secreta que generaste para autenticar el feed.

Crea una app de Azure Logic Apps

  1. Accede al portal de Azure (https://portal.azure.com).
  2. Haz clic en Crear un recurso y busca App de lógica.
  3. Haz clic en Crear para iniciar el proceso de implementación.
  4. Configura la app de lógica:
    • Nombre: Proporciona un nombre descriptivo para la app de lógica (por ejemplo, GoogleSecOpsWebhook).
    • Suscripción: Selecciona la suscripción adecuada.
    • Grupo de recursos: Elige un grupo de recursos existente o crea uno nuevo.
    • Ubicación: Elige la ubicación más cercana a tu entorno.
    • Análisis de registros: Habilita esta opción si deseas registrar datos de diagnóstico de la app de lógica.
  5. Haz clic en Revisar + Crear para crear la app de lógica.
  6. Haz clic en Crear para implementar la app de lógica.

Configura la conexión de webhook de Azure Logic Apps

  1. Ve a la app de lógica que creaste en el paso anterior.
  2. Haz clic en Herramientas de desarrollo > Diseño de apps lógicas.
  3. Haz clic en Agregar activador.
  4. Busca Microsoft Defender for Cloud > Cuando se crea o activa una alerta de Microsoft Defender for Cloud como activador.

  5. Haz clic en Crear y sigue las instrucciones para autenticarte.

  6. Haz clic en Insertar un paso nuevo para agregar un paso nuevo al flujo de trabajo.

  7. Haz clic en Agregar una acción.

  8. Busca HTT.

  9. Selecciona HTTP como la acción.

  10. Configura la acción HTTP:

    • URI: Aquí es donde ingresarás la URL del extremo de API de Google SecOps.
    • Método: POST
    • Agrega el encabezado Content-Type: Establece Content-Type como clave de encabezado y application/json como valor de encabezado. Esto le indica a Google SecOps el formato de los datos que se envían.
    • Agrega una clave de API a las consultas: Establece key como la primera clave de consulta y <API_KEY> como el valor de la consulta. API_KEY es el valor de la clave de API generado durante la configuración del feed de Google SecOps.
    • Agrega una clave secreta a las consultas: Establece secret como la segunda clave de consulta y <SECRET_KEY> como el valor de la consulta. SECRET_KEY es la clave secreta generada durante la configuración del feed de Google SecOps.
    • Establece el cuerpo del paso anterior: Haz clic en Ingresar contenido de la solicitud > haz clic en Ingresar los datos de los pasos anteriores (botón con el ícono de un rayo a la izquierda del campo de entrada).
  11. Haz clic en Guardar.

Configura el webhook de alertas de Microsoft Defender for Cloud

  1. Ve a Microsoft Defender for Cloud.
  2. Haz clic en Administración > Automatización de flujos de trabajo.
  3. Haz clic en Agregar automatización de flujo de trabajo.
    • Nombre: Proporciona un nombre descriptivo para la regla de automatización (por ejemplo, ForwardAlertsToGoogleSecOps).
    • Grupo de recursos: Elige un grupo de recursos existente.
    • Tipo de datos de Defender for Cloud: Elige Alerta de seguridad.
    • Gravedad de la alerta: Selecciona Seleccionar todo.
    • Mostrar instancias de la app de lógica de las siguientes suscripciones: Elige la suscripción en la que se creó la app de lógica.
    • Seleccionar app de lógica: Elige la app de lógica que creaste en los pasos anteriores.
  4. Haz clic en Crear para guardar la automatización del flujo de trabajo.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
AlertLink principal.resource.attribute.labels.AlertLink.value Se asignan directamente.
AlertName security_result.rule_name Se asignan directamente.
AlertSeverity security_result.severity Se asigna directamente si el valor es uno de los siguientes: HIGH, MEDIUM, LOW, CRITICAL, UNKNOWN_SEVERITY. De lo contrario, se asigna a security_result.severity_details. El valor se convierte a mayúsculas antes de la comparación.
AlertType security_result.threat_name Se asignan directamente.
CompromisedEntity principal.resource.attribute.labels.CompromisedEntity.value Se asignan directamente.
Description security_result.description Se asignan directamente.
DisplayName security_result.summary Se asignan directamente.
EndTime about.resource.attribute.labels.EndTime.value Se asignan directamente.
Entities[].Location.City principal.location.city Se asignan directamente.
Entities[].Location.CountryName principal.location.country_or_region Se asignan directamente.
ExtendedLinks[].Category about.resource.attribute.labels.extendedLink_Category.value Se asignan directamente.
ExtendedLinks[].Href about.resource.attribute.labels.extendedLink_Href.value Se asignan directamente.
ExtendedLinks[].Label about.resource.attribute.labels.extendedLink_Label.value Se asignan directamente.
ExtendedLinks[].Type about.resource.attribute.labels.extendedLink_Type.value Se asignan directamente.
ExtendedProperties.Account Session Id network.session_id Se asigna directamente después de cambiar el nombre a accountSessionId.
ExtendedProperties.Alert Id metadata.product_log_id Se asigna directamente después de cambiar el nombre a alertId.
ExtendedProperties.Authentication type extensions.auth.auth_details Se asigna directamente después de cambiar el nombre a authenticationType.
ExtendedProperties.Client Application principal.application Se asigna directamente después de cambiar el nombre a clientApplication.
ExtendedProperties.Client Hostname principal.asset.hostname, principal.hostname Se asigna directamente después de cambiar el nombre a clientHostName.
ExtendedProperties.Client IP address principal.asset.ip, principal.ip Se asigna directamente después de cambiar el nombre a clientIpAddress.
ExtendedProperties.Client IP location principal.location.country_or_region Se asigna directamente después de cambiar el nombre a clientIpLocation.
ExtendedProperties.Client Location principal.location.country_or_region Se asigna directamente después de cambiar el nombre a clientLocation.
ExtendedProperties.Client Principal Name principal.user.userid Se asigna directamente después de cambiar el nombre a clientPrincipalName.
ExtendedProperties.Compromised Host principal.asset.hostname, principal.hostname Se asigna directamente después de cambiar el nombre a compromisedHost.
ExtendedProperties.Suspicious Command Line target.process.command_line Se asigna directamente después de cambiar el nombre a suspiciousCommandLine.
ExtendedProperties.Suspicious Process target.process.file.full_path Se asigna directamente después de cambiar el nombre a suspiciousProcess.
ExtendedProperties.Suspicious Process Id target.process.pid Se asigna directamente después de cambiar el nombre a suspiciousProcessId.
ExtendedProperties.User agent network.http.user_agent Se asigna directamente después de cambiar el nombre a userAgent.
ExtendedProperties.User Name principal.user.user_display_name Se asigna directamente después de cambiar el nombre a userName.
ExtendedProperties.resourceType principal.resource.name Se asignan directamente.
IsIncident security_result.detection_fields.IsIncident.value Se asignan directamente. Se convirtió en una cadena.
ProcessingEndTime about.resource.attribute.labels.ProcessingEndTime.value Se asignan directamente.
ProductName metadata.product_name Se asignan directamente.
ResourceId principal.resource.product_object_id Se asignan directamente.
SourceSystem security_result.detection_fields.SourceSystem.value Se asignan directamente.
StartTime about.resource.attribute.labels.StartTime.value Se asignan directamente.
Status security_result.detection_fields.Status.value Se asignan directamente.
SystemAlertId metadata.product_log_id Se asignan directamente.
Tactics security_result.attack_details.tactics.name Se asignan directamente.
TenantId additional.fields.TenantId.string_value Se asignan directamente.
TimeGenerated about.resource.attribute.labels.TimeGenerated.value Se asignan directamente.
VendorName metadata.vendor_name Se asignan directamente.
WorkspaceResourceGroup target.resource.attribute.labels.WorkspaceResourceGroup.value Se asignan directamente.
WorkspaceSubscriptionId target.resource.attribute.labels.WorkspaceSubscriptionId.value Se asignan directamente.
_Internal_WorkspaceResourceId target.resource.product_object_id Se asignan directamente.
properties.alertDisplayName security_result.rule_name Se asignan directamente.
properties.alertType security_result.threat_name Se asignan directamente.
properties.alertUri principal.resource.attribute.labels.AlertUri.value Se asignan directamente.
properties.correlationKey principal.resource.attribute.labels.correlationKey.value Se asignan directamente.
properties.description security_result.description Se asignan directamente.
properties.endTimeUtc additional.fields.EndTime.string_value Se asignan directamente.
properties.entities[].location.city principal.location.city Se asignan directamente.
properties.entities[].location.countryName principal.location.country_or_region Se asignan directamente.
properties.entities[].location.latitude principal.location.region_coordinates.latitude Se asignan directamente. Se convirtió en número de punto flotante.
properties.entities[].location.longitude principal.location.region_coordinates.longitude Se asignan directamente. Se convirtió en número de punto flotante.
properties.extendedProperties.alert_Id metadata.product_log_id Se asignan directamente.
properties.extendedProperties.clientApplication principal.application Se asignan directamente.
properties.extendedProperties.clientIpAddress principal.asset.ip, principal.ip Se asignan directamente. Se analiza como dirección IP.
properties.extendedProperties.clientLocation principal.location.country_or_region Se asignan directamente.
properties.extendedProperties.clientPrincipalName principal.user.userid Se asignan directamente.
properties.extendedProperties.compromisedEntity principal.resource.attribute.labels.CompromisedEntity.value Se asignan directamente.
properties.extendedProperties.resourceType principal.resource.name Se asignan directamente.
properties.IsIncident security_result.detection_fields.isIncident.value Se asignan directamente. Se convirtió en una cadena.
properties.productName metadata.product_name Se asignan directamente.
properties.resourceIdentifiers[].<key> additional.fields.<key>_<index>.string_value Se asignan directamente. Las claves $id y type se adjuntan con el índice del elemento en el array.
properties.severity security_result.severity Se asigna directamente si el valor es uno de los siguientes: HIGH, MEDIUM, LOW, CRITICAL, UNKNOWN_SEVERITY. De lo contrario, se asigna a security_result.severity_details. El valor se convierte a mayúsculas antes de la comparación.
properties.startTimeUtc additional.fields.StartTime.string_value Se asignan directamente.
properties.status security_result.detection_fields.Status.value Se asignan directamente.
properties.timeGeneratedUtc additional.fields.TimeGenerated.string_value Se asignan directamente. Se establece en "MICROSOFT_DEFENDER_CLOUD_ALERTS" si no se proporciona en el registro. Establece el valor en "MICROSOFT_DEFENDER_CLOUD_ALERTS". Establece el valor en "USER_RESOURCE_ACCESS" si el principal o el objetivo están presentes; de lo contrario, establece el valor en "GENERIC_EVENT".

Cambios

2024-07-05

  • Se asignó "isInteractive" a "security_result.detection_fields".

2024-04-02

  • Se asignó "properties.createdDateTime" a "metadata.event_timestamp".
  • Se asignaron "properties.resourceServicePrincipalId" y "resourceServicePrincipalId" a "target.resource.attribute.labels".
  • Se asignaron "properties.authenticationProcessingDetails", "authenticationProcessingDetails" y "properties.networkLocationDetails" a "additional.fields".
  • Se asignó "properties.userAgent" a "network.http.user_agent" y "network.http.parsed_user_agent".
  • Se asignó "properties.authenticationRequirement" a "additional.fields".