Recopila registros de acceso al servidor de AWS S3

Compatible con:

En este documento, se explica cómo recopilar registros de acceso al servidor de AWS S3 configurando un feed de Google Security Operations. El analizador extrae campos con patrones de Grok, controla la posible entrada de JSON y asigna los campos extraídos al UDM. Realiza transformaciones de datos, conversiones de tipos y lógica condicional en función de la presencia y los valores de campos específicos para garantizar una representación precisa del UDM.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Acceso privilegiado a AWS

Cómo configurar el registro de acceso al servidor de AWS S3

Las Operaciones de seguridad de Google admiten la recopilación de registros con Amazon S3 a través de Amazon SQS.

  1. Accede a la consola de administración de AWS.
  2. Accede a la consola de Amazon S3.
  3. Ve a Amazon S3 > Buckets.
  4. Selecciona un bucket existente o crea uno nuevo.
  5. Haz clic en Propiedades.
  6. En la sección Registro de acceso al servidor, haz clic en Editar.
  7. Selecciona Habilitar.
  8. En el campo Bucket de destino, ingresa un nombre para el nuevo bucket al que se enviarán los objetos de registro o selecciona un bucket existente como destino.
  1. Haz clic en Guardar cambios.
  2. Para crear la cola de SQS para el bucket de S3, configura una instancia de Amazon SQS con el almacenamiento de S3. Para obtener más información, consulta Cómo configurar un bucket para las notificaciones (tema de SNS o cola de SQS).

Según el servicio y la región, identifica los extremos para la conectividad consultando la siguiente documentación de AWS:

Configura 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 feeds desde Configuración del SIEM > Feeds

Para configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Cómo configurar feeds por producto.

Para configurar un solo feed, sigue estos pasos:

  1. Ve a SIEM Settings > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En la lista Tipo de fuente, selecciona Amazon S3 o Amazon SQS.
  5. En la lista Tipo de registro, selecciona Acceso al servidor de AWS S3.
  6. Haz clic en Siguiente.
  7. Google SecOps admite la recopilación de registros con un ID de clave de acceso y un método secreto. Para crear el ID de clave de acceso y el secreto, consulta Configura la autenticación de la herramienta con AWS.
  8. Según la configuración de acceso al servidor de AWS S3 que creaste, especifica valores para los parámetros de entrada:
    • Si usas Amazon S3, especifica valores para los siguientes campos:
      • Región
      • URI de S3
      • El URI es un
      • Opción de eliminación de la fuente
      • ID de clave de acceso
      • Clave de acceso secreta
    • Si usas Amazon SQS, especifica valores para los siguientes campos:
      • Región
      • Nombre de la fila
      • Número de cuenta
      • ID de clave de acceso a la cola
      • Clave de acceso secreta de la fila
      • Opción de eliminación de la fuente
  9. Haz clic en Siguiente y, luego, haz clic en Enviar.

Configura feeds desde el Centro de contenido

Puedes configurar el feed de transferencia en Google SecOps con Amazon SQS (opción preferida) o Amazon S3.

Especifica valores para los siguientes campos:

  • Región: Es la región en la que se aloja el bucket de S3 o la cola de SQS.
  • Nombre de la cola: Nombre de la cola de SQS desde la que se leerán los datos de registro.
  • Número de cuenta: Es el número de cuenta que posee la cola de SQS.
  • ID de clave de acceso a la cola: ID de clave de acceso a la cuenta de 20 caracteres. Por ejemplo, AKIAOSFOODNN7EXAMPLE
  • Clave de acceso secreta de la fila: Clave de acceso secreta de 40 caracteres. Por ejemplo, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  • Opción de eliminación de la fuente: Opción para borrar archivos y directorios después de transferir los datos.

Opciones avanzadas

  • Nombre del feed: Es un valor completado previamente que identifica el feed.
  • Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
  • Espacio de nombres del recurso: Espacio de nombres asociado al feed.
  • Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
aclRequired target.resource.attribute.labels.key: "aclRequired"
target.resource.attribute.labels.value: Valor de aclRequired
Se asigna directamente desde el campo de registro sin procesar aclRequired.
authenticationtype extensions.auth.auth_details Se asigna directamente desde el campo de registro sin procesar authenticationtype.
bucket target.resource.name Se asigna directamente desde el campo de registro sin procesar bucket.
bucket target.resource.resource_type: "STORAGE_BUCKET" El analizador establece resource_type en "STORAGE_BUCKET" si el campo bucket está presente.
bucketowner target.resource.product_object_id Se asigna directamente desde el campo de registro sin procesar bucketowner.
bytes_sent network.sent_bytes Se asigna directamente desde el campo de registro sin procesar bytes_sent después de convertirlo en un número entero sin signo y reemplazar "-" por "0".
ciphersuite network.application_protocol: "HTTPS" El analizador establece application_protocol en "HTTPS" si el campo ciphersuite está presente.
ciphersuite network.tls.cipher Se asigna directamente desde el campo de registro sin procesar ciphersuite.
errorcode security_result.action_details Se asigna directamente desde el campo de registro sin procesar errorcode.
errorcode security_result.action: "BLOCK" El analizador establece action en "BLOCK" si el campo errorcode contiene "AccessDenied" (no distingue entre mayúsculas y minúsculas).
hostheader target.hostname Se extrae del campo de registro sin procesar hostheader y, posiblemente, se quita el número de puerto.
hostheader target.port Se extrae del campo de registro sin procesar hostheader si hay un número de puerto presente.
hostid target.resource.attribute.labels.key: "ID de solicitud extendido de S3"
target.resource.attribute.labels.value: Valor de hostid
Se asigna directamente desde el campo de registro sin procesar hostid.
http_capture network.http.method El método HTTP se extrae del campo http_capture.
http_capture network.http.version La versión HTTP se extrae del campo http_capture.
http_capture target.url La URL de destino se construye con hostheader y http_request_uri (extraídos de http_capture), con el prefijo “http://” o “https://” según la presencia de ciphersuite.
httpstatus network.http.response_code Se asigna directamente desde el campo de registro sin procesar httpstatus después de convertirlo en un número entero.
object_version_id target.resource.product_object_id Se asigna directamente desde el campo de registro sin procesar object_version_id.
objectsize target.file.size Se asigna directamente desde el campo de registro sin procesar objectsize después de convertirlo en un número entero sin signo y reemplazar "-" por "0".
operation metadata.product_event_type Se asigna directamente desde el campo de registro sin procesar operation.
referrer network.http.referral_url Se asigna directamente desde el campo de registro sin procesar referrer después de quitar las comillas.
remoteip metadata.event_type: "USER_RESOURCE_ACCESS" El analizador establece event_type en "USER_RESOURCE_ACCESS" si el campo remoteip está vacío.
remoteip principal.ip Se asigna directamente desde el campo de registro sin procesar remoteip.
requester target.resource.attribute.labels.key: "ARN del punto de acceso"
target.resource.attribute.labels.value: Valor de requester
Se asigna directamente desde el campo de registro sin procesar requester.
requester_user principal.user.userid Se asigna directamente desde el campo de registro sin procesar requester_user.
requestid network.session_id Se asigna directamente desde el campo de registro sin procesar requestid.
request_time_ms network.session_duration.nanos Se asigna directamente desde el campo de registro sin procesar request_time_ms después de convertirlo en un número entero, reemplazar "-" por "0" y agregar ceros a la izquierda para representar nanosegundos.
signatureversion target.resource.attribute.labels.key: "Signature Version"
target.resource.attribute.labels.value: Valor de signatureversion
Se asigna directamente desde el campo de registro sin procesar signatureversion.
time metadata.event_timestamp Se analizó a partir del campo de registro sin procesar time y se convirtió en una marca de tiempo.
tlsVersion network.tls.version Se asigna directamente desde el campo de registro sin procesar tlsVersion.
useragent network.http.user_agent Se asigna directamente desde el campo de registro sin procesar useragent después de quitar las comillas.
(Lógica del analizador) metadata.event_type: "NETWORK_HTTP" El analizador establece el valor predeterminado de event_type en "NETWORK_HTTP".
(Lógica del analizador) metadata.log_type: "AWS_S3_SERVER_ACCESS" El analizador establece log_type en "AWS_S3_SERVER_ACCESS".
(Lógica del analizador) metadata.product_name: "Acceso al servidor de AWS S3" El analizador establece product_name en "Acceso al servidor de AWS S3".
(Lógica del analizador) metadata.product_version: "HTTP/http_version" El analizador establece el product_version con el http_version extraído.
(Lógica del analizador) metadata.vendor_name: "AMAZON" El analizador establece vendor_name en "AMAZON".
(Lógica del analizador) network.application_protocol: "HTTP" El analizador establece application_protocol en "HTTP" si el campo ciphersuite no está presente.
(Lógica del analizador) timestamp El analizador establece el evento timestamp en la hora actual cuando se procesa el evento.

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