Recopila registros de AWS Aurora

Compatible con:

En este documento, se explica cómo transferir registros de AWS Aurora a Google Security Operations. AWS Aurora es un servicio de base de datos relacional administrado que ofrece alto rendimiento, escalabilidad y disponibilidad. En esta integración, configurarás AWS Aurora para que reenvíe registros a Google SecOps para el análisis, la supervisión y la detección de amenazas.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a AWS.
  • Asegúrate de que el clúster de bases de datos de AWS Aurora esté configurado y en ejecución.

Configura el bucket de Amazon S3

  1. Crea un bucket de Amazon S3 siguiendo esta guía del usuario: Cómo crear un bucket
  2. Guarda el Nombre y la Región del bucket para usarlos más adelante.
  3. Crea un usuario siguiendo esta guía: Cómo crear un usuario de IAM.
  4. Selecciona el Usuario creado.
  5. Selecciona la pestaña Credenciales de seguridad.
  6. Haz clic en Crear clave de acceso en la sección Claves de acceso.
  7. Selecciona Servicio de terceros como Caso de uso.
  8. Haz clic en Siguiente.
  9. Opcional: Agrega una etiqueta de descripción.
  10. Haz clic en Crear clave de acceso.
  11. Haz clic en Descargar archivo CSV para guardar la Clave de acceso y la Clave de acceso secreta para usarlas más tarde.
  12. Haz clic en Listo.
  13. Selecciona la pestaña Permisos.
  14. Haz clic en Agregar permisos en la sección Políticas de permisos.
  15. Selecciona Agregar permisos.
  16. Selecciona Adjuntar políticas directamente.
  17. Busca y selecciona las políticas AmazonS3FullAccess y CloudWatchLogsFullAccess.
  18. Haz clic en Siguiente.
  19. Haz clic en Agregar permisos.

Configura la supervisión avanzada

  1. Accede a la consola de administración de AWS.
  2. En la barra de búsqueda, escribe RDS y selecciona RDS en la lista de servicios.
  3. En el panel de RDS, selecciona Bases de datos en el panel de navegación.
  4. Selecciona el clúster de Aurora que deseas supervisar.
  5. En la sección Registros y supervisión, haz clic en Modificar.
  6. Ve a la sección Supervisión y habilita Supervisión mejorada.
  7. Establece el rol de supervisión en el rol de IAM adecuado que tenga permisos para publicar en CloudWatch Logs o S3.
  8. Guarda los cambios y aplícalos a tu clúster de Aurora.

Configura los registros de auditoría de AWS Aurora

  1. En el panel de RDS, selecciona Bases de datos y haz clic en tu clúster de Aurora.
  2. En la sección Registros y supervisión, haz clic en Modificar.
  3. En la sección Database Options, asegúrate de que esté seleccionada la opción Enable Audit Logs.
  4. En Destino, elige S3 y especifica el bucket de S3 en el que se almacenarán los registros.
  5. Haz clic en Guardar cambios para aplicar la configuración.

Opcional: Configuración de registros de AWS Aurora con CloudWatch

Para obtener funciones de supervisión adicionales, puedes configurar Registros de CloudWatch para capturar registros de Aurora.

  1. En el panel de RDS, selecciona tu clúster de Aurora.
  2. En la sección Registros y supervisión, asegúrate de que la integración de Registros de CloudWatch esté habilitada.
  3. Ve a Registros de CloudWatch y crea un nuevo grupo de registros para almacenar los registros de Aurora.
  4. En la pantalla Log Groups, elige el nombre de tu nuevo Log Group.
  5. Selecciona Acciones > Exportar datos a Amazon S3.
  6. En la pantalla Exportar datos a Amazon S3, en Definir la exportación de datos, establece el período para que se exporten los datos con Desde y Hasta.

  7. Elige el bucket de S3 y selecciona la cuenta asociada con el bucket de Amazon S3.

  8. En Nombre del bucket de S3, selecciona un bucket de Amazon S3.

  9. Prefijo de bucket de S3: Ingresa la cadena generada de forma aleatoria que especificaste en la política de bucket.

  10. Elige Exportar para exportar tus datos de registro a Amazon S3.

  11. Para ver el estado de los datos de registro que exportaste a Amazon S3, selecciona Acciones > Ver todas las exportaciones a Amazon S3.

Configura un feed en Google SecOps para transferir registros de AWS Aurora

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de AWS Aurora).
  4. Selecciona Amazon S3 como el Tipo de fuente.
  5. Selecciona AWS Aurora como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. Especifica valores para los siguientes parámetros de entrada:

    • Región: Es la región donde se encuentra el bucket de Amazon S3.
    • URI de S3: Es el URI del bucket.
      • s3://your-log-bucket-name/
        • Reemplaza your-log-bucket-name por el nombre real del bucket.
    • El URI es un: Selecciona Directorio o Directorio que incluye subdirectorios.
    • Opciones de eliminación de fuentes: Selecciona la opción de eliminación según tus preferencias.

    • ID de clave de acceso: Es la clave de acceso del usuario con acceso al bucket de S3.

    • Clave de acceso secreta: Es la clave secreta del usuario con acceso al bucket de S3.

    • Espacio de nombres de recursos: Es el espacio de nombres de recursos.

    • Etiquetas de transferencia: Es la etiqueta que se aplicará a los eventos de este feed.

  8. Haz clic en Siguiente.

  9. Revisa la configuración de tu nuevo feed en la pantalla Finalizar y, luego, haz clic en Enviar.

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 en el registro sin formato.
column1 timestamp_epoch Se asigna directamente desde el campo column1 en el registro sin formato. 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 o response o command_line2 Puede ser principal.resource.resource_subtype (ddl), security_result.outcomes.value (respuesta) o parte de principal.process.command_line (command_line2), según el formato del registro.
column12 operation o 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), según el formato del registro.
column14 object Se asignan directamente a principal.resource.product_object_id o target_data.resource.name según el formato de registro.
column15 command_line Se asignan directamente a principal.process.command_line.
column16 response Se asignan directamente a security_result.outcomes.value.
column2 timestamp o timestamp_ms Se asigna directamente desde el campo column2 en el registro sin formato.
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 asignan 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 derivan de varios campos, como operation, command_line, has_principal_user y has_principal_machine, a través de la lógica condicional en el analizador. Puede ser RESOURCE_DELETION, RESOURCE_CREATION, RESOURCE_READ, RESOURCE_WRITTEN, USER_RESOURCE_ACCESS, USER_UNCATEGORIZED o GENERIC_EVENT. Se codifica de forma fija en "AWS_AURORA". Se asignan desde column8 o se derivan de la lógica del analizador. Se codifica de forma fija en "AURORA". Está codificado de forma fija en “AMAZON”.
has_principal_machine has_principal_machine Se establece como "true" si principal.ip está presente, de lo contrario, se inicializa como "false".
has_principal_user has_principal_user Se establece como "true" si principal.user.userid está presente, de lo contrario, se inicializa como "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 dentro de target.logEvents.logEvents, asignado con la clave "id".
logevent.message security_result.detection_fields.value Anidado dentro de 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 Está anidado en target.logEvents.logEvents y se asigna 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 en el registro sin formato.
src_ip principal.ip Se extrae de logevent.message dentro de la estructura anidada target.logEvents.logEvents.
target.logEvents.logGroup target.resource.attribute.labels.value Se asignó con la clave "logGroup".
target.logEvents.logStream target.resource.attribute.labels.value Se asignó con la clave "logStream".
target.logEvents.messageType target.resource.attribute.labels.value Se asigna con la clave "messageType".
target.logEvents.owner target.resource.attribute.labels.value Se asoció con la clave "owner".
timestamp_epoch metadata.event_timestamp Se convirtió a metadata.event_timestamp con el filtro date.
user principal.user.userid Se extrae de logevent.message dentro de la estructura anidada target.logEvents.logEvents.
userid principal.user.userid Se asigna directamente desde el campo userid extraído.

Cambios

2024-01-12

  • Se asignaron "logEvents.messageType", "logEvents.owner", "logEvents.logGroup" y "logEvents.logStream" a "target.resource.attribute.labels".
  • Se asignaron "logEvents.logEvents.message", "logEvents.logEvents.timestamp" y "logEvents.logEvents.id" a "securit_result.detection_fields".
  • Se agregó un patrón Grok para recuperar la dirección IP de "logEvents.logEvents.message" y se asignó "src_data" a "principal.ip".
  • Se asignó "user" a "principal.user.userid".

2023-11-02

  • Sin embargo, el analizador se creó recientemente.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.