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 campos de la AUA y clasifica 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 con privilegios a la consola de administración de Aqua Security
Cómo configurar feeds
Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:
- Configuración de SIEM > Feeds
- Centro de contenido > Paquetes de contenido
Configura los feeds desde Configuración de SIEM > Feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la página siguiente, 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 Generate Secret Key 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 volver a generar 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.
Cómo configurar feeds desde el Content Hub
Especifica valores para los siguientes campos:
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
\n
.
Opciones avanzadas
- Nombre del feed: Es un valor prepropagado que identifica el feed.
- Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
- Espacio de nombres del activo: Es el espacio de nombres asociado con el feed.
Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
Haz clic en Generate Secret Key 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 volver a generar 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.
Crea una clave de API para el feed de webhook
Ve a Google Cloud console > Credentials.
Haz clic en Crear credenciales y selecciona Clave de API.
Restringe el acceso de 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.
Habilita la autenticación especificando la clave de API y la clave secreta como parte del encabezado personalizado en 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 consulta 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 autenticar 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 (en orden 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 ver las asignaciones específicas. |
jsonPayload.action | security_result.summary | Se asignan directamente. |
jsonPayload.adjective | target.file.full_path | Se asigna directamente si "jsonPayload.container" está vacío. |
jsonPayload.category | target.asset.category | Se asignan directamente. |
jsonPayload.cfappname | target.application | Se asignan directamente. |
jsonPayload.cfspace | principal.user.userid | Se asigna directamente si "jsonPayload.user" está vacío. |
jsonPayload.command | principal.ip | Se extrae con el patrón de Grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.command | principal.user.userid | Se extrae con el patrón de Grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.container | target.asset.product_object_id | Se asignan 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 asignan directamente. |
jsonPayload.hostgroup | target.group.group_display_name | Se asignan directamente. |
jsonPayload.hostid | target.asset_id | Se asigna como "host id: %{jsonPayload.hostid}". |
jsonPayload.hostip | target.ip | Se asignan directamente. |
jsonPayload.image | target.file.full_path | Se asignan directamente. |
jsonPayload.level | security_result.action | Establece el valor en "ALLOW" si "jsonPayload.level" es "success". |
jsonPayload.reason | security_result.description | Se asignan directamente. |
jsonPayload.rule | security_result.rule_name | Se asignan directamente. |
jsonPayload.user | principal.user.userid | Se asignan directamente. |
jsonPayload.vm_location | target.asset.location.name | Se asignan directamente. |
jsonPayload.vm_name | target.resource.name | Se asignan directamente. |
resource.labels.instance_id | target.resource.id | Se asignan directamente. |
resource.labels.project_id | target.asset.attribute.cloud.project.id | Se asignan directamente. |
resource.labels.zone | target.asset.attribute.cloud.availability_zone | Se asignan directamente. |
timestamp | metadata.event_timestamp | Se asignan directamente después de la conversión 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 | Establece el valor en "AQUA_SECURITY". | |
metadata.product_name | Establece el valor en "AQUA_SECURITY". | |
metadata.vendor_name | Establece el valor en "AQUA_SECURITY". | |
target.asset.attribute.cloud.environment | Establece el valor en "GOOGLE_CLOUD_PLATFORM". | |
target.resource.type | Establece el valor en "VIRTUAL_MACHINE". |
Cambios
2024-10-10
- Mejora:
- Se agregó compatibilidad con los nuevos registros.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.