Recopilar registros de Microsoft Defender for Identity
En este documento se explica cómo ingerir los registros de Microsoft Defender for Identity en Google Security Operations mediante Azure Storage. El analizador procesa los registros JSON o los registros con formato CEF si falla el análisis JSON. Extrae campos, realiza transformaciones de datos, como conversiones, cambios de nombre y combinaciones de cadenas, y los asigna al modelo de datos unificado (UDM). Además, gestiona varios formatos de registro y enriquece los datos con contexto adicional, como etiquetas y detalles de autenticación.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps
- inquilino de Azure activo
- Acceso con privilegios a Azure y rol de seguridad administrativa
Configurar una cuenta de Azure Storage
- En la consola de Azure, busca Cuentas de almacenamiento.
- Haz clic en Crear.
- Especifique los valores de 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: seleccione el tipo de rendimiento (se recomienda Estándar).
- Redundancia: selecciona el tipo de redundancia (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 Información general de la cuenta de almacenamiento, seleccione el submenú Claves de acceso en Seguridad y redes.
- Haz clic en Mostrar junto a clave1 o clave2.
- 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 Información general de la cuenta de almacenamiento, seleccione el submenú Endpoints (Endpoints) en Settings (Configuración).
- Haz clic en Copiar en el portapapeles para copiar la URL del endpoint del servicio Blob. Por ejemplo,
https://<storageaccountname>.blob.core.windows.net
. - Guarda la URL del endpoint en una ubicación segura para consultarla más adelante.
- Ve a Resumen > Vista JSON.
- Copia y guarda el ID de recurso de Storage.
Configurar la exportación de registros de Microsoft Defender for Identity
- Inicia sesión en el portal de Defender con una cuenta con privilegios.
- Ve a Ajustes.
- Selecciona la pestaña Microsoft Defender XDR.
- Selecciona API de streaming en la sección general y haz clic en Añadir.
- Selecciona Reenviar eventos a Azure Storage.
- Proporcione los siguientes detalles de configuración:
- Nombre: introduce un nombre único y descriptivo.
- Selecciona Reenviar eventos a Azure Storage.
- ID de recurso de la cuenta de almacenamiento: introduce el ID de recurso de Azure Storage que has copiado anteriormente.
- Tipos de eventos: selecciona Alertas y comportamientos y Dispositivos.
- Haz clic en Enviar.
Configurar feeds
Hay dos puntos de entrada diferentes para configurar feeds en la plataforma Google SecOps:
- Configuración de SIEM > Feeds > Añadir nuevo feed
- Centro de contenido > Paquetes de contenido > Empezar
Cómo configurar el feed de Microsoft Defender for Identity
- Haz clic en el paquete Microsoft Defender.
Especifique los siguientes valores:
- Tipo de fuente: Microsoft Azure Blob Storage V2.
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-<logname>
)
Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras.
Opciones avanzadas
- Nombre del feed: un valor rellenado automáticamente que identifica el feed.
- Espacio de nombres del recurso: espacio de nombres asociado al feed.
- Etiquetas de ingestión: etiquetas aplicadas a todos los eventos de este feed.
Haga clic en Crear feed.
Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros en esta familia de productos, consulta el artículo Configurar feeds por producto.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
category |
metadata.log_type |
El campo de registro sin procesar category se asigna a metadata.log_type . |
properties.AccountDisplayName |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AccountName |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AccountUpn |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.ActionType |
metadata.product_event_type |
El campo de registro sin procesar properties.ActionType se asigna a metadata.product_event_type . |
properties.AdditionalFields.ACTOR.ACCOUNT |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.ACTOR.DEVICE |
principal.asset.asset_id |
El analizador extrae el valor de properties.AdditionalFields.ACTOR.DEVICE y añade ASSET ID: al principio. |
properties.AdditionalFields.ACTOR.ENTITY_USER |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.Count |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.DestinationComputerDnsName |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.DestinationComputerObjectGuid |
target.asset.product_object_id |
El primer elemento del array properties.AdditionalFields.DestinationComputerObjectGuid se asigna a target.asset.product_object_id . Los elementos posteriores se asignan a additional.fields con claves como DestinationComputerObjectGuid_1 , DestinationComputerObjectGuid_2 , etc. |
properties.AdditionalFields.DestinationComputerOperatingSystem |
target.asset.platform_software.platform_version |
El primer elemento del array properties.AdditionalFields.DestinationComputerOperatingSystem se asigna a target.asset.platform_software.platform_version . Los elementos posteriores se asignan a additional.fields con claves como DestinationComputerOperatingSystem_1 , DestinationComputerOperatingSystem_2 , etc. |
properties.AdditionalFields.DestinationComputerOperatingSystemType |
target.asset.platform_software.platform |
Si el valor es windows , el campo de UDM se define como WINDOWS . |
properties.AdditionalFields.DestinationComputerOperatingSystemVersion |
target.platform_version |
El primer elemento del array properties.AdditionalFields.DestinationComputerOperatingSystemVersion se asigna a target.platform_version . Los elementos posteriores se asignan a additional.fields con claves como DestinationComputerOperatingSystemVersion1 , DestinationComputerOperatingSystemVersion2 , etc. |
properties.AdditionalFields.FROM.DEVICE |
principal.asset.asset_id |
El analizador extrae el valor de properties.AdditionalFields.FROM.DEVICE y añade ASSET ID: al principio. |
properties.AdditionalFields.KerberosDelegationType |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.SourceAccountId |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.SourceAccountSid |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.SourceComputerObjectGuid |
principal.asset.product_object_id |
El campo de registro sin procesar properties.AdditionalFields.SourceComputerObjectGuid se asigna a principal.asset.product_object_id . |
properties.AdditionalFields.SourceComputerOperatingSystem |
principal.asset.platform_software.platform_version |
El campo de registro sin procesar properties.AdditionalFields.SourceComputerOperatingSystem se asigna a principal.asset.platform_software.platform_version . |
properties.AdditionalFields.SourceComputerOperatingSystemType |
principal.asset.platform_software.platform_version |
Si el valor es windows , el campo de UDM se define como WINDOWS . |
properties.AdditionalFields.SourceComputerOperatingSystemVersion |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.Spns |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.TARGET_OBJECT.ENTITY_USER |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.AdditionalFields.TARGET_OBJECT.USER |
target.user.userid |
El primer elemento del array properties.AdditionalFields.TARGET_OBJECT.USER se asigna a target.user.userid . Los elementos posteriores se asignan a additional.fields con claves como TARGET_OBJECT.USER_1 , TARGET_OBJECT.USER_2 , etc. |
properties.AdditionalFields.TO.DEVICE |
target.asset.asset_id |
El primer elemento del array properties.AdditionalFields.TO.DEVICE se asigna a target.asset.asset_id con ASSET ID: delante. Los elementos posteriores se asignan a additional.fields con claves como TODEVICE1 , TODEVICE2 , etc. |
properties.AuthenticationDetails |
extensions.auth.auth_details |
El analizador quita las llaves, los corchetes y las comillas dobles del valor y añade AuthenticationDetails: al principio. |
properties.DeliveryAction |
additional.fields |
Asignado con la clave DeliveryAction . |
properties.DeliveryLocation |
additional.fields |
Asignado con la clave DeliveryLocation . |
properties.DestinationDeviceName |
target.hostname , target.asset.hostname |
El campo de registro sin procesar properties.DestinationDeviceName se asigna a target.hostname y target.asset.hostname . |
properties.DestinationIPAddress |
target.ip , target.asset.ip |
El campo de registro sin procesar properties.DestinationIPAddress se asigna a target.ip y target.asset.ip . |
properties.DestinationPort |
target.port |
El campo de registro sin procesar properties.DestinationPort se asigna a target.port . |
properties.DeviceName |
principal.hostname , principal.asset.hostname |
El campo de registro sin procesar properties.DeviceName se asigna a principal.hostname y principal.asset.hostname . |
properties.EmailClusterId |
additional.fields |
Asignado con la clave EmailClusterId . |
properties.EmailDirection |
network.direction |
Si el valor es Inbound , el campo de UDM se define como INBOUND . Si el valor es Outbound , el campo de UDM se define como OUTBOUND . De lo contrario, se le asigna el valor UNKNOWN_DIRECTION . |
properties.EmailLanguage |
additional.fields |
Asignado con la clave EmailLanguage . |
properties.InitiatingProcessAccountDomain |
principal.administrative_domain |
El campo de registro sin procesar properties.InitiatingProcessAccountDomain se asigna a principal.administrative_domain . |
properties.InitiatingProcessAccountSid |
principal.user.windows_sid |
El campo de registro sin procesar properties.InitiatingProcessAccountSid se asigna a principal.user.windows_sid . |
properties.InitiatingProcessCommandLine |
principal.process.command_line |
El campo de registro sin procesar properties.InitiatingProcessCommandLine se asigna a principal.process.command_line . |
properties.InitiatingProcessFileName |
principal.process.file.full_path |
Se usa en combinación con properties.InitiatingProcessFolderPath para crear la ruta completa. Si properties.InitiatingProcessFolderPath ya contiene el nombre de archivo, se usa directamente. |
properties.InitiatingProcessFolderPath |
principal.process.file.full_path |
Se usa en combinación con properties.InitiatingProcessFileName para crear la ruta completa. |
properties.InitiatingProcessId |
principal.process.pid |
El campo de registro sin procesar properties.InitiatingProcessId se asigna a principal.process.pid . |
properties.InitiatingProcessIntegrityLevel |
about.labels |
Asignado con la clave InitiatingProcessIntegrityLevel . |
properties.InitiatingProcessMD5 |
principal.process.file.md5 |
El campo de registro sin procesar properties.InitiatingProcessMD5 se asigna a principal.process.file.md5 . |
properties.InitiatingProcessParentId |
principal.process.parent_process.pid |
El campo de registro sin procesar properties.InitiatingProcessParentId se asigna a principal.process.parent_process.pid . |
properties.InitiatingProcessParentFileName |
principal.process.parent_process.file.full_path |
El campo de registro sin procesar properties.InitiatingProcessParentFileName se asigna a principal.process.parent_process.file.full_path . |
properties.InitiatingProcessSHA1 |
principal.process.file.sha1 |
El campo de registro sin procesar properties.InitiatingProcessSHA1 se asigna a principal.process.file.sha1 . |
properties.InitiatingProcessSHA256 |
principal.process.file.sha256 |
El campo de registro sin procesar properties.InitiatingProcessSHA256 se asigna a principal.process.file.sha256 . |
properties.InitiatingProcessTokenElevation |
about.labels |
Asignado con la clave InitiatingProcessTokenElevation . |
properties.InternetMessageId |
additional.fields |
El analizador sintáctico elimina los corchetes angulares y asigna el valor a la clave InternetMessageId . |
properties.IPAddress |
principal.ip , principal.asset.ip |
El campo de registro sin procesar properties.IPAddress se asigna a principal.ip y principal.asset.ip . |
properties.LogonType |
extensions.auth.mechanism |
Se usa para obtener el valor de extensions.auth.mechanism . |
properties.Port |
principal.port |
El campo de registro sin procesar properties.Port se asigna a principal.port . |
properties.PreviousRegistryKey |
src.registry.registry_key |
El campo de registro sin procesar properties.PreviousRegistryKey se asigna a src.registry.registry_key . |
properties.PreviousRegistryValueData |
src.registry.registry_value_data |
El campo de registro sin procesar properties.PreviousRegistryValueData se asigna a src.registry.registry_value_data . |
properties.PreviousRegistryValueName |
src.registry.registry_value_name |
El campo de registro sin procesar properties.PreviousRegistryValueName se asigna a src.registry.registry_value_name . |
properties.Query |
principal.user.attribute.labels |
Asignado con la clave LDAP Search Scope . |
properties.RecipientEmailAddress |
Sin asignar | Este campo no está asignado al objeto IDM en el UDM. |
properties.RegistryKey |
target.registry.registry_key |
El campo de registro sin procesar properties.RegistryKey se asigna a target.registry.registry_key . |
properties.RegistryValueData |
target.registry.registry_value_data |
El campo de registro sin procesar properties.RegistryValueData se asigna a target.registry.registry_value_data . |
properties.RegistryValueName |
target.registry.registry_value_name |
El campo de registro sin procesar properties.RegistryValueName se asigna a target.registry.registry_value_name . |
properties.ReportId |
about.labels |
Asignado con la clave ReportId . |
properties.SenderIPv4 |
principal.ip , principal.asset.ip |
El campo de registro sin procesar properties.SenderIPv4 se asigna a principal.ip y principal.asset.ip . |
properties.SenderMailFromAddress |
principal.user.attribute.labels |
Asignado con la clave SenderMailFromAddress . |
properties.SenderMailFromDomain |
principal.user.attribute.labels |
Asignado con la clave SenderMailFromDomain . |
properties.SenderObjectId |
principal.user.product_object_id |
El campo de registro sin procesar properties.SenderObjectId se asigna a principal.user.product_object_id . |
properties.Timestamp |
metadata.event_timestamp |
El campo de registro sin procesar properties.Timestamp se asigna a metadata.event_timestamp . |
tenantId |
observer.cloud.project.id |
El campo de registro sin procesar tenantId se asigna a observer.cloud.project.id . |
N/A | extensions.auth.type |
El valor MACHINE lo asigna el analizador. |
N/A | metadata.event_type |
Se deriva de los campos category y properties.ActionType . Puede ser USER_LOGIN , USER_RESOURCE_ACCESS , USER_CHANGE_PASSWORD , REGISTRY_MODIFICATION , REGISTRY_DELETION , REGISTRY_CREATION , GENERIC_EVENT o STATUS_UPDATE . |
N/A | metadata.vendor_name |
El valor Microsoft lo asigna el analizador. |
N/A | metadata.product_name |
El valor Microsoft Defender Identity lo asigna el analizador. |
cs1 |
metadata.url_back_to_product |
El campo de registro sin procesar cs1 se asigna a metadata.url_back_to_product . |
externalId |
metadata.product_log_id |
El campo de registro sin procesar externalId se asigna a metadata.product_log_id . |
msg |
metadata.description |
El campo de registro sin procesar msg se asigna a metadata.description . |
rule_name |
security_result.rule_name |
El campo de registro sin procesar rule_name se asigna a security_result.rule_name . |
severity |
security_result.severity |
El campo de registro sin procesar severity se asigna a security_result.severity . |
shost |
principal.hostname , principal.asset.hostname |
El campo de registro sin procesar shost se asigna a principal.hostname y principal.asset.hostname . |
src |
principal.ip |
El campo de registro sin procesar src se asigna a principal.ip . |
suser |
principal.user.user_display_name |
El campo de registro sin procesar suser se asigna a principal.user.user_display_name . |
time |
metadata.event_timestamp |
El campo de registro sin procesar time se asigna a metadata.event_timestamp . |
userid |
principal.user.userid |
El campo de registro sin procesar userid se asigna a principal.user.userid . |
N/A | security_result.action |
Se deriva del campo properties.ActionType . Puede ser ALLOW o BLOCK . |
N/A | security_result.summary |
Se deriva del campo category o del campo properties.ActionType . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.