Recoger registros de Aqua Security
Información general
Este analizador extrae campos de los registros de Aqua Security y los transforma en el modelo de datos unificado (UDM). Analiza el campo message
como JSON, extrae el usuario, la IP de origen y otros campos relevantes, los asigna a campos de UDM y clasifica los eventos en función del campo action
, lo que enriquece los datos con contexto de seguridad, como nombres de reglas, descripciones y detalles de CVE.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso privilegiado a la consola de gestión de Aqua Security.
Configurar feeds
Para configurar un feed, sigue estos pasos:
- 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, introduce un nombre para el feed (por ejemplo, Registros de Aqua Security).
- Selecciona Webhook como Tipo de fuente.
- Selecciona Aqua Security como Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica los valores de los siguientes parámetros de entrada:
- Delimitador de división: el delimitador que se usa para separar las líneas de registro, como
\n
. - Espacio de nombres de recursos: el espacio de nombres de recursos.
- Etiquetas de ingestión: la etiqueta aplicada a los eventos de este feed.
- Delimitador de división: el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revise la configuración del feed en la pantalla Finalizar y, a continuación, haga clic en Enviar.
- Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
- Copia y guarda la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes volver a generar una clave secreta, pero esta acción hará que la clave secreta anterior quede obsoleta.
- En la pestaña Detalles, copia la URL del endpoint del feed del campo Información del endpoint. Debes especificar esta URL de endpoint en tu aplicación cliente.
- Haz clic en Listo.
Crear una clave de API para la feed de webhook
Ve a la Google Cloud consola > Credenciales.
Haz clic en Crear credenciales y, a continuación, selecciona Clave de API.
Restringe el acceso de la clave de API a la API Chronicle.
Especificar la URL del endpoint
- En tu aplicación cliente, especifica la URL del endpoint HTTPS proporcionada en el feed de webhook.
Para habilitar la autenticación, especifica la clave de API y la clave secreta como parte del encabezado personalizado con el siguiente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recomendación: Especifica la clave de API como 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 mediante parámetros de consulta con el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Haz los cambios siguientes:
ENDPOINT_URL
: URL del endpoint del feed.API_KEY
: la clave de API para autenticarte en Google SecOps.SECRET
: la clave secreta que has generado para autenticar el feed.
Crear un webhook en Aqua Security para Google SecOps
- Inicia sesión en la consola de Aqua Security.
- Ve a Ajustes > Webhook de resultados de análisis de imágenes.
- Marca la casilla Habilitar el envío de resultados de análisis de imágenes.
- Introduce
<ENDPOINT_URL>
, seguido de<API_KEY>
y<SECRET>
. - Haz clic en Guardar.
Tabla de asignación de UDM
Campo de registro (ascendente) | Asignación de UDM | Lógica |
---|---|---|
jsonPayload.action | metadata.event_type | Se asigna en función del valor de "jsonPayload.action". Consulta el código del analizador para ver las asignaciones específicas. |
jsonPayload.action | security_result.summary | Asignación directa. |
jsonPayload.adjective | target.file.full_path | Se asigna directamente si "jsonPayload.container" está vacío. |
jsonPayload.category | target.asset.category | Asignación directa. |
jsonPayload.cfappname | target.application | Asignación directa. |
jsonPayload.cfspace | principal.user.userid | Se asigna directamente si 'jsonPayload.user' está vacío. |
jsonPayload.command | principal.ip | Se ha extraído con el patrón grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.command | principal.user.userid | Se ha extraído con el patrón grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.container | target.asset.product_object_id | Asignación directa. |
jsonPayload.data | security_result.detection_fields | Se analizan como pares clave-valor y se asignan a campos concretos de "security_result.detection_fields". |
jsonPayload.description | security_result.description | Se asigna directamente si "jsonPayload.reason" está vacío. |
jsonPayload.host | principal.hostname | Asignación directa. |
jsonPayload.hostgroup | target.group.group_display_name | Asignación directa. |
jsonPayload.hostid | target.asset_id | Se ha asignado como "ID de host: %{jsonPayload.hostid}". |
jsonPayload.hostip | target.ip | Asignación directa. |
jsonPayload.image | target.file.full_path | Asignación directa. |
jsonPayload.level | security_result.action | Se asigna el valor "ALLOW" si 'jsonPayload.level' es "success". |
jsonPayload.reason | security_result.description | Asignación directa. |
jsonPayload.rule | security_result.rule_name | Asignación directa. |
jsonPayload.user | principal.user.userid | Asignación directa. |
jsonPayload.vm_location | target.asset.location.name | Asignación directa. |
jsonPayload.vm_name | target.resource.name | Asignación directa. |
resource.labels.instance_id | target.resource.id | Asignación directa. |
resource.labels.project_id | target.asset.attribute.cloud.project.id | Asignación directa. |
resource.labels.zone | target.asset.attribute.cloud.availability_zone | Asignación directa. |
timestamp | metadata.event_timestamp | Se asigna directamente después de convertirlo al formato ISO 8601. |
extensions.auth.type | Se asigna el valor "SSO" si 'jsonPayload.description' contiene "SAML". De lo contrario, se asigna el valor "AUTHTYPE_UNSPECIFIED" si 'jsonPayload.action' es "login" o "Login". | |
metadata.log_type | Se ha definido como "AQUA_SECURITY". | |
metadata.product_name | Se ha definido como "AQUA_SECURITY". | |
metadata.vendor_name | Se ha definido como "AQUA_SECURITY". | |
target.asset.attribute.cloud.environment | Se ha definido como "GOOGLE_CLOUD_PLATFORM". | |
target.resource.type | Asigna el valor "VIRTUAL_MACHINE". |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.