Recoger registros de Azure App Service
En este documento se explica cómo exportar registros de Azure App Service a Google Security Operations mediante una cuenta de almacenamiento de Azure. El analizador transforma los registros sin procesar de Azure App Service con formato JSON en un modelo de datos unificado (UDM) estructurado. Extrae los campos pertinentes de los registros sin procesar, limpia y normaliza los datos, y asigna la información extraída a los campos de UDM correspondientes. Por último, genera un objeto JSON compatible con UDM por cada entrada de registro.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps
- Un cliente de Azure activo
- Acceso privilegiado a Azure
Configurar la 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: selecciona el rendimiento (se recomienda Estándar).
- Redundancia: selecciona la 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 usarla más adelante.
- En la página Resumen 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 usarla más adelante.
Cómo configurar la exportación de registros de Azure App Service
- Inicia sesión en el portal de Azure con tu cuenta con privilegios.
- Vaya a Servicios de aplicaciones y seleccione el servicio de aplicaciones que quiera usar.
- Selecciona Monitorización > Registros del servicio de aplicaciones.
- Activa Application Logging (blob) (Registro de aplicaciones [blob]).
- Selecciona Almacenamiento en Registro de servicios web.
- Selecciona la Suscripción y la Cuenta de almacenamiento.
- Define el Periodo de conservación y la Cuota según tus necesidades.
- Activa Mensajes de error detallados.
- Activa Seguimiento de solicitudes fallidas.
- Haz clic en Guardar.
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 Azure App Service
- Haz clic en el paquete Plataforma de Azure.
- Busca el tipo de registro Azure App Service y haz clic en Añadir nuevo feed.
Especifique los valores de los siguientes campos:
- Tipo de fuente: Microsoft Azure Blob Storage V2.
- URI de Azure: la URL del endpoint del blob.
ENDPOINT_URL/BLOB_NAME
- Sustituye lo siguiente:
ENDPOINT_URL
: URL del endpoint de blob (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: el nombre del blob (por ejemplo,<logname>-logs
)
- Sustituye lo siguiente:
Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras según tus preferencias de ingesta.
Antigüedad máxima del archivo: incluye los archivos modificados en los últimos días. El valor predeterminado es 180 días.
Clave compartida: la clave de acceso a Azure Blob Storage.
Opciones avanzadas
- Nombre del feed: un valor rellenado automáticamente que identifica el feed.
- Espacio de nombres de recursos: 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 |
---|---|---|
AppRoleInstance | read_only_udm.principal.resource.product_object_id | Asignación directa |
AppRoleName | read_only_udm.principal.resource.name | Asignación directa |
AppVersion | read_only_udm.principal.resource.attribute.labels.value | Asignación directa |
Categoría | read_only_udm.metadata.product_event_type | Asignación directa |
CIp | read_only_udm.target.asset.ip | Asignación directa |
CIp | read_only_udm.target.ip | Asignación directa |
ClientCity | read_only_udm.principal.location.city | Asignación directa |
ClientCountryOrRegion | read_only_udm.principal.location.country_or_region | Asignación directa |
ClientIP | read_only_udm.principal.asset.ip | Asignación directa |
ClientIP | read_only_udm.principal.ip | Asignación directa |
ClientStateOrProvince | read_only_udm.principal.location.state | Asignación directa |
ClientType | read_only_udm.additional.fields.value.string_value | Asignación directa |
ComputerName | read_only_udm.principal.asset.hostname | Asignación directa |
ComputerName | read_only_udm.principal.hostname | Asignación directa |
Cookie | read_only_udm.principal.resource.attribute.labels.value | Asignación directa |
CsBytes | read_only_udm.network.sent_bytes | Se ha cambiado el nombre de CsBytes |
CsHost | read_only_udm.additional.fields.value.string_value | Asignación directa |
CsMethod | read_only_udm.network.http.method | Asignación directa |
CsUriQuery | read_only_udm.principal.resource.attribute.labels.value | Asignación directa |
CsUriStem | read_only_udm.additional.fields.value.string_value | Asignación directa |
CsUriStem | read_only_udm.target.url | Asignación directa |
CsUsername | read_only_udm.principal.user.user_display_name | Asignación directa |
EventIpAddress | read_only_udm.principal.asset.ip | Asignación directa |
EventIpAddress | read_only_udm.principal.ip | Asignación directa |
EventPrimaryStampName | read_only_udm.additional.fields.value.string_value | Asignación directa |
EventStampName | read_only_udm.additional.fields.value.string_value | Asignación directa |
EventStampType | read_only_udm.additional.fields.value.string_value | Asignación directa |
Host | read_only_udm.principal.asset.hostname | Asignación directa |
Host | read_only_udm.principal.hostname | Asignación directa |
IKey | read_only_udm.target.resource.attribute.labels.value | Asignación directa |
Instancia | read_only_udm.additional.fields.value.string_value | Asignación directa |
Nombre | read_only_udm.additional.fields.value.string_value | Asignación directa |
Protocolo | read_only_udm.additional.fields.value.string_value | Asignación directa |
Protocolo | read_only_udm.network.application_protocol | Se asigna a HTTP si el protocolo es HTTP/1.1 . |
Referencia | read_only_udm.network.http.referral_url | Asignación directa |
ResourceGUID | read_only_udm.target.resource.product_object_id | Se ha cambiado el nombre de ResourceGUID |
SDKVersion | read_only_udm.additional.fields.value.string_value | Asignación directa |
SDKVersion | read_only_udm.principal.resource.attribute.labels.value | Asignación directa |
SPort | read_only_udm.principal.port | Se ha cambiado el nombre de SPort |
ScBytes | read_only_udm.network.received_bytes | Se ha cambiado el nombre de ScBytes |
ScStatus | read_only_udm.network.http.response_code | Nombre cambiado de ScStatus |
TimeTaken | read_only_udm.additional.fields.value.string_value | Asignación directa |
Tipo | read_only_udm.additional.fields.value.string_value | Asignación directa |
Usuario | read_only_udm.principal.user.userid | Asignación directa |
UserAddress | read_only_udm.principal.asset.ip | Se extrae de UserAddress si es una dirección IP válida. |
UserAddress | read_only_udm.principal.ip | Se extrae de UserAddress si es una dirección IP válida. |
UserAgent | read_only_udm.network.http.user_agent | Asignación directa |
UserDisplayName | read_only_udm.principal.user.user_display_name | Asignación directa |
category | read_only_udm.metadata.product_event_type | Asignación directa |
nivel | read_only_udm.security_result.severity | Se ha cambiado el nombre de level a LEVEL y se han puesto las letras en mayúsculas. |
ubicación | read_only_udm.principal.location.name | Asignación directa |
operationName | read_only_udm.additional.fields.value.string_value | Asignación directa |
record.properties.Protocol | read_only_udm.additional.fields.value.string_value | Asignación directa |
record.properties.Result | read_only_udm.security_result.summary | Asignación directa |
record.time | read_only_udm.metadata.event_timestamp | Analizado como marca de tiempo RFC 3339 |
resourceId | read_only_udm.target.resource.attribute.labels.value | Asignación directa |
resourceId | read_only_udm.target.resource.product_object_id | Se ha cambiado el nombre de resourceId |
read_only_udm.metadata.event_type | Se determina en función de la presencia de principal, destino y protocolo. Se define como NETWORK_HTTP si están presentes el principal, el objetivo y Protocol=HTTP . Se define como NETWORK_CONNECTION si están presentes el principal y el objetivo. Se asigna el valor STATUS_UPDATE si solo está presente el principal. De lo contrario, asigna el valor GENERIC_EVENT . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.