Recoger registros de AWS Aurora
En este documento se explica cómo ingerir registros de AWS Aurora en Google Security Operations. AWS Aurora es un servicio de base de datos relacional gestionado que ofrece alto rendimiento, escalabilidad y disponibilidad. En esta integración, configurarás AWS Aurora para que reenvíe los registros a Google SecOps para analizarlos, monitorizarlos y detectar amenazas.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps
- Acceso privilegiado a AWS
- El clúster de base de datos de AWS Aurora está configurado y en funcionamiento.
Configurar un segmento de Amazon S3
- Crea un segmento de Amazon S3 siguiendo esta guía del usuario: Crear un segmento.
- Guarda el nombre y la región del bucket para usarlos más adelante.
- Crea un usuario siguiendo esta guía: Crear un usuario de gestión de identidades y accesos.
- Selecciona el usuario creado.
- Selecciona la pestaña Credenciales de seguridad.
- En la sección Claves de acceso, haz clic en Crear clave de acceso.
- Selecciona Servicio de terceros como Caso práctico.
- Haz clic en Siguiente.
- Opcional: añade una etiqueta de descripción.
- Haz clic en Crear clave de acceso.
- Haz clic en Descargar archivo CSV para guardar la clave de acceso y la clave de acceso secreta para usarlas más adelante.
- Haz clic en Listo.
- Selecciona la pestaña Permisos.
- En la sección Políticas de permisos, haz clic en Añadir permisos.
- Selecciona Añadir permisos.
- Seleccione Adjuntar políticas directamente.
- Busca y selecciona las políticas AmazonS3FullAccess y CloudWatchLogsFullAccess.
- Haz clic en Siguiente.
- Haz clic en Añadir permisos.
Configurar la monitorización mejorada
- Inicia sesión en la consola de administración de AWS.
- En la barra de búsqueda, escribe RDS y selecciona RDS en la lista de servicios.
- En el panel de control de RDS, selecciona Bases de datos en el panel de navegación.
- Selecciona el clúster de Aurora que quieras monitorizar.
- En la sección Registros y monitorización, haga clic en Modificar.
- Ve a la sección Monitorización y habilita Monitorización mejorada.
- Asigna el rol de monitorización al rol de gestión de identidades y accesos adecuado que tenga permisos para publicar en CloudWatch Logs o S3.
- Guarda los cambios y aplícalos al clúster de Aurora.
Cómo configurar los registros de auditoría de AWS Aurora
- En el panel de control de RDS, selecciona Bases de datos y haz clic en tu clúster de Aurora.
- En la sección Registros y monitorización, haz clic en Modificar.
- En la sección Opciones de la base de datos, comprueba que esté seleccionada la opción Habilitar registros de auditoría.
- En Destino, elija S3 y especifique el contenedor de S3 en el que se almacenarán los registros.
- Haz clic en Guardar cambios para aplicar la configuración.
Opcional: Configuración de registros de AWS Aurora con CloudWatch
Para obtener más funciones de monitorización, puedes configurar CloudWatch Logs para capturar los registros de Aurora.
- En el panel de control de RDS, selecciona tu clúster de Aurora.
- En la sección Registros y monitorización, comprueba que la integración de CloudWatch Logs esté habilitada.
- Ve a CloudWatch Logs y crea un grupo de registros para almacenar los registros de Aurora.
- En la pantalla Grupos de registros, elige el nombre del nuevo Grupo de registros.
- Seleccione Acciones > Exportar datos a Amazon S3.
En la pantalla Exportar datos a Amazon S3, en Definir exportación de datos, indica el periodo de los datos que quieres exportar con Desde y Hasta.
Elegir contenedor de S3 y selecciona la cuenta asociada al contenedor de Amazon S3.
En Nombre del segmento de S3, seleccione un segmento de Amazon S3.
En Prefijo de segmento de S3, introduce la cadena generada aleatoriamente que has especificado en la política del segmento.
Elige Exportar para exportar los datos de registro a Amazon S3.
Para ver el estado de los datos de registro que ha exportado a Amazon S3, seleccione Acciones > Ver todas las exportaciones a Amazon S3.
Configurar feeds
Hay dos puntos de entrada diferentes para configurar feeds en la plataforma Google SecOps:
- Configuración de SIEM > Feeds > Añadir nuevo
- Centro de contenido > Paquetes de contenido > Empezar
Cómo configurar el feed de AWS Aurora
- Haz clic en el paquete Amazon Cloud Platform.
- Busca el tipo de registro AWS Aurora.
Especifique los valores en los campos siguientes.
- Tipo de fuente: Amazon SQS V2
- Nombre de la cola: el nombre de la cola de SQS de la que se va a leer.
- URI de S3: el URI del segmento.
s3://your-log-bucket-name/
- Sustituye
your-log-bucket-name
por el nombre real de tu segmento de S3.
- Sustituye
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 de 180 días.
ID de clave de acceso a la cola de SQS: una clave de acceso de cuenta que es una cadena alfanumérica de 20 caracteres.
Clave de acceso secreta de la cola de SQS: una clave de acceso de cuenta que es una cadena alfanumérica de 40 caracteres.
Opciones avanzadas
- Nombre del feed: valor rellenado automáticamente que identifica el feed.
- Espacio de nombres del recurso: 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 |
---|---|---|
account |
principal.group.product_object_id |
Se asigna directamente desde el campo account del registro sin procesar. |
column1 |
timestamp_epoch |
Se asigna directamente desde el campo column1 del registro sin procesar. Se usa para derivar metadata.event_timestamp . |
column10 |
Varía | Puede ser principal.process.command_line , object o number , según el formato del registro. |
column11 |
ddl , response o command_line2 |
Puede ser principal.resource.resource_subtype (ddl), security_result.outcomes.value (response) o parte de principal.process.command_line (command_line2) en función del formato del registro. |
column12 |
operation , response o command_line3 |
Puede ser sr.summary (operación), security_result.outcomes.value (respuesta) o parte de principal.process.command_line (command_line3), según el formato del registro. |
column13 |
database o response |
Puede ser target.resource.name (base de datos) o security_result.outcomes.value (respuesta) en función del formato del registro. |
column14 |
object |
Se asigna directamente a principal.resource.product_object_id o target_data.resource.name , según el formato del registro. |
column15 |
command_line |
Asignado directamente a principal.process.command_line . |
column16 |
response |
Asignado directamente a security_result.outcomes.value . |
column2 |
timestamp o timestamp_ms |
Se asigna directamente desde el campo column2 del registro sin procesar. |
column3 |
ip o hostname |
Puede ser principal.ip o principal.resource.name según el formato del registro. |
column4 |
port o userid |
Puede ser principal.port o principal.user.userid según el formato del registro. |
column5 |
userid o ip |
Puede ser principal.user.userid o principal.ip según el formato del registro. |
column6 |
hostname o connection_id |
Puede ser principal.resource.name o network.session_id según el formato del registro. |
column7 |
connection_id o query_id |
Puede ser network.session_id o principal.process.pid según el formato del registro. |
column8 |
operation |
Se asigna directamente a sr.summary o metadata.product_event_type . |
column9 |
query_id o database |
Puede ser principal.process.pid o target_data.resource.name según el formato del registro. |
command_line |
principal.process.command_line |
Se asigna directamente desde el campo command_line extraído. |
connection_id |
network.session_id |
Se asigna directamente desde el campo connection_id extraído. |
database |
target.resource.name |
Se asigna directamente desde el campo database extraído. Se deriva de varios campos, como operation , command_line , has_principal_user y has_principal_machine , mediante la lógica condicional del analizador. Puede ser RESOURCE_DELETION , RESOURCE_CREATION , RESOURCE_READ , RESOURCE_WRITTEN , USER_RESOURCE_ACCESS , USER_UNCATEGORIZED o GENERIC_EVENT . Codificado como "AWS_AURORA". Se asigna desde column8 o se deriva de la lógica del analizador. Codificado como "AURORA". Codificado como "AMAZON". |
has_principal_machine |
has_principal_machine |
Se asigna el valor "true" si principal.ip está presente. De lo contrario, se inicializa con el valor "false". |
has_principal_user |
has_principal_user |
Se asigna el valor "true" si principal.user.userid está presente. De lo contrario, se inicializa con el valor "false". |
hostname |
principal.resource.name |
Se asigna directamente desde el campo hostname extraído. |
ip |
principal.ip |
Se asigna directamente desde el campo ip extraído. |
logevent.id |
security_result.detection_fields.value |
Anidado en target.logEvents.logEvents , asignado con la clave "id". |
logevent.message |
security_result.detection_fields.value |
Anidado en target.logEvents.logEvents , asignado con la clave "message". Se usa para extraer principal.ip , time_unix , operation y user . |
logevent.timestamp |
security_result.detection_fields.value |
Anidado en target.logEvents.logEvents , asignado con la clave "timestamp". |
object |
target_data.resource.name o principal.resource.product_object_id |
Se asigna directamente desde el campo object extraído. |
operation |
sr.summary |
Se asigna directamente desde el campo operation extraído. |
port |
principal.port |
Se asigna directamente desde el campo port extraído. |
query_id |
principal.process.pid |
Se asigna directamente desde el campo query_id extraído. |
response |
security_result.outcomes.value |
Se asigna directamente desde el campo response extraído. |
service |
principal.application |
Se asigna directamente desde el campo service del registro sin procesar. |
src_ip |
principal.ip |
Extraído de logevent.message dentro de la estructura anidada target.logEvents.logEvents . |
target.logEvents.logGroup |
target.resource.attribute.labels.value |
Asignado con la clave "logGroup". |
target.logEvents.logStream |
target.resource.attribute.labels.value |
Asignado con la clave "logStream". |
target.logEvents.messageType |
target.resource.attribute.labels.value |
Asignado con la clave "messageType". |
target.logEvents.owner |
target.resource.attribute.labels.value |
Asignado con la clave "owner". |
timestamp_epoch |
metadata.event_timestamp |
Se ha convertido a metadata.event_timestamp con el filtro date . |
user |
principal.user.userid |
Extraído de logevent.message dentro de la estructura anidada target.logEvents.logEvents . |
userid |
principal.user.userid |
Se asigna directamente desde el campo userid extraído. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.