Recoger registros de Azure Firewall
En este documento se explica cómo exportar registros de Azure Firewall a Google Security Operations mediante una cuenta de almacenamiento de Azure. El analizador primero intenta procesar la entrada como JSON y extrae los datos del campo Registros. Si el campo Record está vacío, el analizador usa una serie de patrones Grok e instrucciones condicionales para extraer los campos relevantes del mensaje, gestionando diferentes formatos y variaciones en los registros de Azure Firewall.
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 cortafuegos de Azure
- Inicia sesión en el portal de Azure con tu cuenta con privilegios.
- Ve a Cortafuegos y selecciona el cortafuegos que quieras.
- Selecciona Monitorización > Servicios de diagnóstico.
- Haga clic en + Añadir ajuste de diagnóstico.
- Escribe un nombre descriptivo para el ajuste de diagnóstico.
- Selecciona allLogs.
- Seleccione la casilla Archivar en una cuenta de almacenamiento como destino.
- Especifica la Suscripción y la Cuenta de almacenamiento.
- 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 del cortafuegos de Azure
- Haz clic en el paquete Plataforma de Azure.
- Busca el tipo de registro Azure Firewall 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: clave compartida (una cadena aleatoria de 512 bits codificada en base 64) que se usa para acceder a los recursos de Azure.
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.
Asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
@timestamp | metadata.event_timestamp | Convierte el campo de registro sin procesar @timestamp al formato UDM. |
category | security_result.rule_type | Asigna el campo de registro sin procesar category a UDM. |
operationName | metadata.product_event_type | Asigna el campo de registro sin procesar operationName a UDM. |
properties.Action | security_result.action | Asigna el campo de registro sin procesar properties.Action a UDM, convirtiendo ALLOW en ALLOW , DENY en BLOCK y cualquier otro valor en UNKNOWN_ACTION . |
properties.DestinationIp | target.ip | Asigna el campo de registro sin procesar properties.DestinationIp a UDM. |
properties.DestinationPort | target.port | Asigna el campo de registro sin procesar properties.DestinationPort a UDM. |
properties.DnssecOkBit | additional.fields.value.bool_value | Asigna el campo de registro sin procesar properties.DnssecOkBit a UDM. |
properties.EDNS0BufferSize | additional.fields.value.number_value | Asigna el campo de registro sin procesar properties.EDNS0BufferSize a UDM. |
properties.ErrorMessage | additional.fields.value.string_value | Asigna el campo de registro sin procesar properties.ErrorMessage a UDM. |
properties.ErrorNumber | additional.fields.value.number_value | Asigna el campo de registro sin procesar properties.ErrorNumber a UDM. |
properties.Policy | security_result.detection_fields.value | Asigna el campo de registro sin procesar properties.Policy a UDM. |
properties.Protocol | network.ip_protocol | Asigna el campo de registro sin procesar properties.Protocol a UDM si no es HTTPS ni HTTP . |
properties.Protocol | network.application_protocol | Asigna el campo de registro sin procesar properties.Protocol a UDM si es HTTPS o HTTP . |
properties.QueryClass | network.dns.questions.class | Asigna el campo de registro sin procesar properties.QueryClass a UDM mediante una tabla de consulta para asignar clases de consulta de DNS. |
properties.QueryId | network.dns.id | Asigna el campo de registro sin procesar properties.QueryId a UDM. |
properties.QueryName | network.dns.questions.name | Asigna el campo de registro sin procesar properties.QueryName a UDM. |
properties.QueryType | network.dns.questions.type | Mapea el campo de registro sin procesar properties.QueryType a UDM mediante una tabla de consulta para mapear los tipos de registros DNS. |
properties.RequestSize | network.sent_bytes | Asigna el campo de registro sin procesar properties.RequestSize a UDM. |
properties.ResponseCode | network.dns.response_code | Mapea el campo de registro sin procesar properties.ResponseCode en UDM mediante una tabla de consulta para mapear códigos de respuesta de DNS. |
properties.ResponseFlags | additional.fields.value.string_value | Asigna el campo de registro sin procesar properties.ResponseFlags a UDM. |
properties.ResponseSize | network.received_bytes | Asigna el campo de registro sin procesar properties.ResponseSize a UDM. |
properties.Rule | security_result.rule_name | Asigna el campo de registro sin procesar properties.Rule a UDM. |
properties.RuleCollection | security_result.detection_fields.value | Asigna el campo de registro sin procesar properties.RuleCollection a UDM. |
properties.RuleCollectionGroup | security_result.detection_fields.value | Asigna el campo de registro sin procesar properties.RuleCollectionGroup a UDM. |
properties.SourceIp | principal.ip | Asigna el campo de registro sin procesar properties.SourceIp a UDM. |
properties.SourcePort | principal.port | Asigna el campo de registro sin procesar properties.SourcePort a UDM. |
properties.msg | security_result.description | Asigna el campo de registro sin procesar properties.msg a UDM después de extraer otros campos de él. |
records.category | security_result.rule_type | Asigna el campo de registro sin procesar records.category a UDM. |
records.operationName | metadata.product_event_type | Asigna el campo de registro sin procesar records.operationName a UDM. |
records.properties.msg | Este campo se usa para extraer varios campos mediante patrones Grok y no tiene una asignación directa a UDM. | |
records.resourceId | metadata.product_log_id | Asigna el campo de registro sin procesar records.resourceId a UDM. |
resourceId | metadata.product_log_id | Asigna el campo de registro sin procesar resourceId a UDM. |
Tiempo | metadata.event_timestamp | Convierte el campo de registro sin procesar time al formato UDM. |
metadata.vendor_name | El analizador rellena este campo con el valor Microsoft Inc. . |
|
metadata.product_name | El analizador rellena este campo con el valor Azure Firewall Application Rule . |
|
metadata.log_type | El analizador rellena este campo con el valor AZURE_FIREWALL . |
|
additional.fields.key | El analizador rellena este campo con la clave del campo adicional. | |
security_result.detection_fields.key | El analizador rellena este campo con la clave del campo de detección. | |
network.application_protocol | El analizador rellena este campo con el valor DNS en los registros DNS. |
|
metadata.event_type | El analizador rellena este campo en función del mensaje de registro. Puede ser NETWORK_CONNECTION , GENERIC_EVENT , STATUS_UPDATE o NETWORK_DNS . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.