Recoger registros de actividad de Microsoft Graph
Información general
Este analizador extrae campos de los registros de actividad de Microsoft Graph y los transforma en el modelo de datos unificado (UDM). Inicializa los campos de UDM, analiza la carga útil, extrae las marcas de tiempo, asigna varias propiedades a los campos de UDM, gestiona las direcciones IP y los puertos, y clasifica el tipo de evento en función de la presencia de información principal y de red.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso con privilegios a Microsoft Entra ID y a las cuentas de almacenamiento de Azure.
Configurar una cuenta de almacenamiento de Azure
- En la consola de Azure, busca cuentas de almacenamiento.
- Haz clic en Crear.
- Especifique valores para los siguientes parámetros de entrada:
- Suscripción: selecciona la suscripción.
- Grupo de recursos: selecciona el grupo de recursos.
- Región: selecciona la región.
- Rendimiento: selecciona el nivel de rendimiento que quieras (se recomienda el estándar).
- Redundancia: selecciona el nivel de redundancia que quieras (se recomienda GRS o LRS).
- Nombre de la cuenta de almacenamiento: escribe un nombre para la nueva cuenta de almacenamiento.
- Haz clic en Revisar y crear.
- Revisa el resumen de la cuenta y haz clic en Crear.
- En la página Resumen de la cuenta de almacenamiento, seleccione el submenú Claves de acceso en Seguridad y redes.
- Haz clic en Mostrar junto a tecla1 o tecla2.
- Haz clic en Copiar en el portapapeles para copiar la clave.
- Guarda la clave en un lugar seguro para consultarla en el futuro.
- En la página Resumen de la cuenta de almacenamiento, seleccione el submenú Endpoints (Endpoints) en Settings (Configuración).
- Haga clic en Copiar en el portapapeles para copiar la URL del endpoint del servicio Blob (por ejemplo, https://
.blob.core.windows.net ). - Guarda la URL del endpoint en una ubicación segura para consultarla más adelante.
Configurar la exportación de registros de actividad de Microsoft Graph a una cuenta de almacenamiento
- En la consola de Azure, busca Entra ID.
- Selecciona Monitorización > Ajustes de diagnóstico.
- Haga clic en + Añadir ajuste de diagnóstico.
- Asigna un nombre único al ajuste (por ejemplo, ms-graph-activity).
- Selecciona la categoría MicrosoftGraphActivityLog que quieras exportar a Google SecOps.
- En Detalles del destino, selecciona Archivar en una cuenta de almacenamiento.
- Selecciona tu suscripción y la cuenta de almacenamiento que has creado en el paso anterior.
- Haz clic en Guardar.
Cómo configurar los registros de actividad de Microsoft Graph
- 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, escriba un nombre para el feed; por ejemplo, Registros de actividad de Microsoft Graph.
- Selecciona Microsoft Azure Blob Storage V2 como Tipo de fuente.
- Selecciona Registros de actividad de Microsoft Graph como Tipo de registro.
- Haz clic en Siguiente.
Especifique los valores de los siguientes parámetros de entrada:
URI de Azure: la URL del endpoint del blob.
ENDPOINT_URL/BLOB_NAME
Haz los cambios siguientes:
ENDPOINT_URL
: URL del endpoint de blob (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: el nombre del blob (por ejemplo, insights-logs-)
Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras.
- Antigüedad máxima del archivo: archivos modificados en los últimos días. El valor predeterminado es de 180 días.
- Clave compartida: la clave de acceso a Azure Blob Storage.
Haz clic en Siguiente.
Revise la configuración de la nueva fuente en la pantalla Finalizar y, a continuación, haga clic en Enviar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
callerIpAddress |
principal.asset.ip |
El campo de registro sin procesar callerIpAddress se copia en el campo de UDM. |
callerIpAddress |
principal.ip |
El campo de registro sin procesar callerIpAddress se copia en el campo de UDM. |
category |
security_result.category_details |
El campo de registro sin procesar category se copia en el campo de UDM. |
correlationId |
security_result.detection_fields.value |
El campo de registro sin procesar correlationId se copia en el campo de UDM, donde la clave es correlationId . |
Level |
security_result.detection_fields.value |
El campo de registro sin procesar Level se convierte en una cadena y se copia en el campo de UDM, donde la clave es Level . |
operationName |
metadata.product_event_type |
El campo de registro sin procesar operationName se copia en el campo de UDM. |
operationVersion |
additional.fields.value.string_value |
El campo de registro sin procesar operationVersion se copia en el campo de UDM, donde la clave es operationVersion . |
properties.apiVersion |
metadata.product_version |
El campo de registro sin procesar properties.apiVersion se copia en el campo de UDM. |
properties.appId |
target.resource.product_object_id |
El campo de registro sin procesar properties.appId se copia en el campo de UDM. |
properties.atContent |
additional.fields.value.string_value |
El campo de registro sin procesar properties.atContent se copia en el campo de UDM, donde la clave es atContent . |
properties.clientAuthMethod |
extensions.auth.auth_details |
En función del valor de properties.clientAuthMethod , el campo UDM se define como "Cliente público" (0), "ID de cliente/Secreto de cliente" (1) o "Certificado de cliente" (2). |
properties.clientRequestId |
additional.fields.value.string_value |
El campo de registro sin procesar properties.clientRequestId se copia en el campo de UDM, donde la clave es clientRequestId . |
properties.durationMs |
network.session_duration.seconds |
El campo de registro sin procesar properties.durationMs se convierte de milisegundos a segundos y se copia en el campo de UDM. |
properties.identityProvider |
security_result.detection_fields.value |
El campo de registro sin procesar properties.identityProvider se copia en el campo de UDM, donde la clave es identityProvider . |
properties.ipAddress |
principal.asset.ip |
La dirección IP del campo de registro sin procesar properties.ipAddress se extrae y se copia en el campo de UDM. |
properties.ipAddress |
principal.ip |
La dirección IP del campo de registro sin procesar properties.ipAddress se extrae y se copia en el campo de UDM. |
properties.location |
principal.location.name |
El campo de registro sin procesar properties.location se copia en el campo de UDM. |
properties.operationId |
security_result.detection_fields.value |
El campo de registro sin procesar properties.operationId se copia en el campo de UDM, donde la clave es operationId . |
properties.requestMethod |
network.http.method |
El campo de registro sin procesar properties.requestMethod se copia en el campo de UDM. |
properties.requestId |
metadata.product_log_id |
El campo de registro sin procesar properties.requestId se copia en el campo de UDM. |
properties.responseSizeBytes |
network.received_bytes |
El campo de registro sin procesar properties.responseSizeBytes se convierte en un número entero sin signo y se copia en el campo de UDM. |
properties.responseStatusCode |
network.http.response_code |
El campo de registro sin procesar properties.responseStatusCode se convierte en un número entero y se copia en el campo de UDM. |
properties.roles |
additional.fields.value.string_value |
El campo de registro sin procesar properties.roles se copia en el campo de UDM, donde la clave es roles . |
properties.scopes |
additional.fields.value.string_value |
El campo de registro sin procesar properties.scopes se copia en el campo de UDM, donde la clave es Scopes . |
properties.servicePrincipalId |
principal.user.userid |
El campo de registro sin procesar properties.servicePrincipalId se copia en el campo de UDM si properties.userId está vacío. |
properties.signInActivityId |
network.session_id |
El campo de registro sin procesar properties.signInActivityId se copia en el campo de UDM. |
properties.tenantId |
metadata.product_deployment_id |
El campo de registro sin procesar properties.tenantId se copia en el campo de UDM. |
properties.tokenIssuedAt |
additional.fields.value.string_value |
El campo de registro sin procesar properties.tokenIssuedAt se copia en el campo de UDM, donde la clave es tokenIssuedAt . |
properties.userAgent |
network.http.user_agent |
El campo de registro sin procesar properties.userAgent se copia en el campo de UDM. |
properties.userId |
principal.user.userid |
El campo de registro sin procesar properties.userId se copia en el campo de UDM. |
properties.wids |
security_result.detection_fields.value |
El campo de registro sin procesar properties.wids se copia en el campo de UDM, donde la clave es wids . |
resourceId |
target.resource.attribute.labels.value |
El campo de registro sin procesar resourceId se copia en el campo de UDM, donde la clave es Resource ID . |
resultSignature |
additional.fields.value.string_value |
El campo de registro sin procesar resultSignature se copia en el campo de UDM, donde la clave es resultSignature . |
time |
metadata.event_timestamp |
El campo de registro sin procesar time se analiza y se convierte en una marca de tiempo, que se copia en el campo de UDM. El campo UDM event.idm.read_only_udm.metadata.event_type se define como "NETWORK_HTTP" si has_principal es true y network.http no está vacío, "STATUS_UPDATE" si has_principal es true y network.http está vacío, o "GENERIC_EVENT" en los demás casos. El campo UDM tiene el valor "Microsoft Graph". El campo UDM tiene el valor "Microsoft". |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.