Recoger registros de AWS Control Tower

Disponible en:

En este documento se explica cómo ingerir registros de AWS Control Tower en Google Security Operations. AWS Control Tower permite la monitorización de la gobernanza, el cumplimiento y la seguridad en varias cuentas de AWS. Esta integración le permite analizar los registros de AWS Control Tower para mejorar la visibilidad y la postura de seguridad.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Acceso privilegiado a AWS

Configurar un segmento de Amazon S3

  1. Crea un segmento de Amazon S3 siguiendo esta guía del usuario: Crear un segmento.
  2. Guarda el nombre y la región del bucket para usarlos más adelante.
  3. Crea un usuario siguiendo esta guía: Crear un usuario de gestión de identidades y accesos.
  4. Selecciona el Usuario creado.
  5. Selecciona la pestaña Credenciales de seguridad.
  6. En la sección Claves de acceso, haz clic en Crear clave de acceso.
  7. Selecciona Servicio de terceros como Caso práctico.
  8. Haz clic en Siguiente.
  9. Opcional: añade 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 adelante.
  12. Haz clic en Listo.
  13. Selecciona la pestaña Permisos.
  14. En la sección Políticas de permisos, haz clic en Añadir permisos.
  15. Selecciona Añadir permisos.
  16. Seleccione Adjuntar políticas directamente.
  17. Busca y selecciona las políticas AmazonS3FullAccess y CloudWatchLogsFullAccess.
  18. Haz clic en Siguiente.
  19. Haz clic en Añadir permisos.

Configurar CloudTrail en AWS Control Tower

  1. Inicia sesión en la consola de administración de AWS.
  2. Ve a AWS Control Tower.
  3. En la barra de búsqueda, escribe CloudTrail y selecciónalo en la lista de servicios.
  4. Haz clic en Crear ruta para crear una ruta.

  5. Especifica los ajustes del rastro:

    • Nombre del rastro: proporciona un nombre significativo para el rastro (por ejemplo, ControlTowerTrail).
    • Aplicar el registro a todas las regiones: asegúrate de seleccionar en Aplicar el registro a todas las regiones.
    • Eventos de gestión: asegúrate de que los eventos de lectura/escritura estén definidos como Todos.
    • Opcional: Eventos de datos: habilita los eventos de datos de S3 y Lambda para registrar la actividad de datos detallada.
    • Opcional: Validación de archivos de registro: habilita esta opción para asegurarte de que los archivos de registro no se manipulen una vez almacenados.
  6. En el selector Evento, elige registrar Eventos de gestión y Eventos de datos.

Cómo configurar CloudTrail

  1. Ve a la consola de IAM de AWS.
  2. Haz clic en Roles.
  3. Busca el rol que usa CloudTrail AWSServiceRoleForCloudTrail (el rol se crea automáticamente cuando configuras CloudTrail).
  4. En la pestaña Permisos del rol, haz clic en Adjuntar políticas.
  5. Buscar CloudTrailS3DeliveryPolicy.
  6. Seleccione la casilla situada junto a la política CloudTrailS3DeliveryPolicy.
  7. Haz clic en Adjuntar política.
  8. Ve a la consola CloudTrail de AWS.
  9. En la sección Ubicación de almacenamiento, seleccione S3 como destino de los archivos de registro.
  10. Selecciona el segmento de S3 que has creado antes.
  11. Haz clic en Permitir cuando se te solicite para conceder a CloudTrail permiso para escribir registros en el segmento que hayas elegido.
  12. Revisa la configuración y haz clic en Crear (o en Guardar cambios si estás editando un recorrido).

Configurar feeds

Hay dos puntos de entrada diferentes para configurar feeds en la plataforma Google SecOps:

  • Configuración de SIEM > Feeds > Añadir nuevo feed
  • Centro de contenido > Paquetes de contenido > Empezar

Cómo configurar el feed de AWS Control Tower

  1. Haz clic en el paquete Amazon Cloud Platform.
  2. Busca el tipo de registro AWS Control Tower.
  3. 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.
    • 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 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: un 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.
  4. 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
awsAccountId target.user.group_identifiers Es el ID de la cuenta de AWS asociada al evento.
digestPublicKeyFingerprint target.file.sha1 La huella digital de la clave pública usada para firmar el resumen.
digestPublicKeyFingerprint target.resource.attribute.labels.value La huella digital de la clave pública usada para firmar el resumen.
digestS3Bucket target.resource.name Nombre del segmento de S3 en el que se almacena el resumen.
digestS3Object target.file.full_path Ruta al objeto de resumen en el segmento de S3.
digestSignatureAlgorithm network.tls.cipher Algoritmo usado para firmar el resumen.
digestSignatureAlgorithm target.resource.attribute.labels.value Algoritmo usado para firmar el resumen.
digestStartTime metadata.event_timestamp Hora de inicio del periodo del resumen. Se usa como hora del evento si eventTime no está disponible.
eventCategory security_result.category_details Categoría del evento.
eventID metadata.product_log_id El ID único del evento.
eventName metadata.product_event_type Nombre del evento.
eventName security_result.summary Nombre del evento, que se usa para generar el resumen de resultados de seguridad.
eventSource target.application La fuente del evento.
eventTime metadata.event_timestamp La hora en la que se produjo el evento.
eventType additional.fields.value.string_value El tipo del evento.
logFiles.hashValue about.file.sha256 El hash SHA-256 del archivo de registro.
logFiles.s3Bucket about.resource.name El nombre del segmento de S3 en el que se almacena el archivo de registro.
logFiles.s3Object about.file.full_path Ruta al objeto del archivo de registro en el segmento de S3.
previousDigestHashValue target.file.sha256 El hash SHA-256 del resumen anterior.
recipientAccountId target.resource.attribute.labels.value ID de cuenta de AWS del destinatario del evento.
Records.awsRegion principal.location.name Región de AWS en la que se ha producido el evento.
Records.errorCode security_result.rule_id El código de error, si lo hay, asociado a la solicitud.
Records.errorMessage security_result.description El mensaje de error, si lo hay, asociado a la solicitud.
Records.eventCategory security_result.category_details Categoría del evento.
Records.eventID metadata.product_log_id El ID único del evento.
Records.eventName metadata.product_event_type Nombre del evento.
Records.eventName security_result.summary Nombre del evento, que se usa para generar el resumen de resultados de seguridad.
Records.eventSource target.application La fuente del evento.
Records.eventTime metadata.event_timestamp La hora en la que se produjo el evento.
Records.eventType additional.fields.value.string_value El tipo del evento.
Records.requestID target.resource.attribute.labels.value ID de la solicitud.
Records.requestParameters.groupName target.group.group_display_name El nombre del grupo asociado a la solicitud (si lo hay).
Records.requestParameters.userName src.user.userid Nombre del usuario, si lo hay, asociado a la solicitud.
Records.requestParameters.userName src.user.user_display_name Nombre del usuario, si lo hay, asociado a la solicitud.
Records.responseElements.ConsoleLogin security_action El resultado del intento de inicio de sesión en la consola.
Records.responseElements.ConsoleLogin security_result.summary El resultado del intento de inicio de sesión en la consola, que se usa para generar el resumen de resultados de seguridad.
Records.sourceIPAddress principal.hostname La dirección IP de la entidad de seguridad. Se usa como nombre de host si no es una IP válida.
Records.sourceIPAddress principal.ip La dirección IP de la entidad de seguridad.
Records.tlsDetails.cipherSuite network.tls.cipher El conjunto de cifrado que se usa en la conexión TLS.
Records.tlsDetails.tlsVersion network.tls.version Versión de TLS utilizada en la conexión.
Records.userAgent network.http.user_agent User-agent de la solicitud.
Records.userIdentity.accessKeyId additional.fields.value.string_value ID de la clave de acceso usada en la solicitud.
Records.userIdentity.accountId principal.user.group_identifiers El ID de cuenta de AWS del usuario.
Records.userIdentity.arn principal.user.attribute.labels.value El ARN del usuario.
Records.userIdentity.arn target.user.userid El ARN del usuario. Se usa como ID de usuario si no está disponible el nombre de usuario.
Records.userIdentity.principalId principal.user.product_object_id ID principal del usuario.
Records.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels.value Indica si se ha usado la MFA en la solicitud.
Records.userIdentity.sessionContext.sessionIssuer.userName principal.user.userid Nombre de usuario del usuario que emitió la sesión.
Records.userIdentity.type principal.resource.type El tipo de identidad que se ha usado en la solicitud.
Records.userIdentity.userName target.user.userid Nombre de usuario del usuario actual.
- extensions.auth.mechanism Se ha definido como "REMOTE".
- metadata.event_type Se asigna el valor "STATUS_UPDATE", "USER_RESOURCE_ACCESS", "USER_LOGIN" o "GENERIC_EVENT" en función del valor de eventName.
- metadata.log_type Asigna el valor "AWS_CONTROL_TOWER".
- metadata.product_name Selecciona "AWS Control Tower".
- metadata.vendor_name Selecciona "AWS".
- principal.asset.attribute.cloud.environment Asigna el valor "AMAZON_WEB_SERVICES".
- security_result.action Asigna el valor "ALLOW" o "BLOCK" en función del código de error.
- security_result.severity Se ha definido como "INFORMATIONAL".

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.