Recopila registros de Aqua Security
Descripció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 los campos del UDM y categoriza los eventos según el campo action
, lo que enriquece los datos con contexto de seguridad, como nombres de reglas, descripciones y detalles de CVE.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso privilegiado a la consola de administración de Aqua Security.
Configura feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración del SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de Aqua Security).
- Selecciona Webhook como el Tipo de origen.
- Selecciona Aqua Security como el Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica valores para los siguientes parámetros de entrada:
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
\n
. - Espacio de nombres del recurso: Es el espacio de nombres del recurso.
- Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
- Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
- Copia y almacena la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes regenerar una clave secreta nueva, pero esta acción hace que la clave secreta anterior quede obsoleta.
- En la pestaña Detalles, copia la URL del extremo del feed del campo Información del extremo. Debes especificar esta URL de extremo en tu aplicación cliente.
- Haz clic en Listo.
Crea una clave de API para el feed del webhook
Ve a Google Cloud consola > Credenciales.
Haz clic en Crear credenciales y selecciona Clave de API.
Restringe el acceso a la clave de API a la API de Chronicle.
Especifica la URL del extremo
- En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona 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 un 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 con parámetros de búsqueda en el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Reemplaza lo siguiente:
ENDPOINT_URL
: Es la URL del extremo del feed.API_KEY
: Es la clave de API para autenticarse en Google SecOps.SECRET
: Es la clave secreta que generaste para autenticar el feed.
Cómo crear un webhook en Aqua Security para Google SecOps
- Accede a la consola de Aqua Security.
- Ve a Configuración > Webhook de resultados de análisis de imágenes.
- Marca la casilla de verificación Habilitar el envío de resultados del análisis de imágenes.
- Ingresa
<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 según el valor de "jsonPayload.action". Consulta el código del analizador para obtener asignaciones específicas. |
jsonPayload.action | security_result.summary | Se asigna directamente. |
jsonPayload.adjective | target.file.full_path | Se asigna directamente si "jsonPayload.container" está vacío. |
jsonPayload.category | target.asset.category | Se asigna directamente. |
jsonPayload.cfappname | target.application | Se asigna directamente. |
jsonPayload.cfspace | principal.user.userid | Se asigna directamente si "jsonPayload.user" está vacío. |
jsonPayload.command | principal.ip | Se extrajo con el patrón de Grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.command | principal.user.userid | Se extrajo con el patrón de Grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.container | target.asset.product_object_id | Se asigna directamente. |
jsonPayload.data | security_result.detection_fields | Se analizan como pares clave-valor y se asignan a campos individuales dentro de "security_result.detection_fields". |
jsonPayload.description | security_result.description | Se asigna directamente si "jsonPayload.reason" está vacío. |
jsonPayload.host | principal.hostname | Se asigna directamente. |
jsonPayload.hostgroup | target.group.group_display_name | Se asigna directamente. |
jsonPayload.hostid | target.asset_id | Se asigna como "ID de host: %{jsonPayload.hostid}". |
jsonPayload.hostip | target.ip | Se asigna directamente. |
jsonPayload.image | target.file.full_path | Se asigna directamente. |
jsonPayload.level | security_result.action | Se establece en "ALLOW" si "jsonPayload.level" es "success". |
jsonPayload.reason | security_result.description | Se asigna directamente. |
jsonPayload.rule | security_result.rule_name | Se asigna directamente. |
jsonPayload.user | principal.user.userid | Se asigna directamente. |
jsonPayload.vm_location | target.asset.location.name | Se asigna directamente. |
jsonPayload.vm_name | target.resource.name | Se asigna directamente. |
resource.labels.instance_id | target.resource.id | Se asigna directamente. |
resource.labels.project_id | target.asset.attribute.cloud.project.id | Se asigna directamente. |
resource.labels.zone | target.asset.attribute.cloud.availability_zone | Se asigna directamente. |
timestamp | metadata.event_timestamp | Se asigna directamente después de convertirse al formato ISO8601. |
extensions.auth.type | Se establece en "SSO" si "jsonPayload.description" contiene "SAML". De lo contrario, se establece en "AUTHTYPE_UNSPECIFIED" si "jsonPayload.action" es "login" o "Login". | |
metadata.log_type | Se establece en "AQUA_SECURITY". | |
metadata.product_name | Se establece en "AQUA_SECURITY". | |
metadata.vendor_name | Se establece en "AQUA_SECURITY". | |
target.asset.attribute.cloud.environment | Se debe establecer en "GOOGLE_CLOUD_PLATFORM". | |
target.resource.type | Se establece en "VIRTUAL_MACHINE". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.