Recopila registros de Amazon CloudFront
En este documento, se describe cómo puedes recopilar registros de Amazon CloudFront configurando un feed de Google Security Operations.
Para obtener más información, consulta la descripción general de la transferencia de datos a Google Security Operations.
Una etiqueta de transferencia identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de transferencia AWS_CLOUDFRONT
.
Antes de comenzar
Asegúrate de que se haya creado el bucket de Amazon S3. Para obtener más información, consulta Crea tu primer bucket de S3.
Configura Amazon CloudFront
- Accede a la consola de administración de AWS.
- Accede a la consola de Amazon S3 y crea el bucket de Amazon S3.
- Haz clic en Activado para habilitar el registro.
- En el campo Bucket for logs, especifica el nombre del bucket de Amazon S3.
- En el campo Prefijo de registro, especifica un prefijo opcional.
- Después de que los archivos de registro se almacenen en el bucket de Amazon S3, crea una cola de SQS y adjúntala al bucket de Amazon S3.
Identifica los extremos para la conectividad
Verifica las políticas de usuario de Identity and Access Management y de claves de KMS necesarias para S3, SQS y KMS.
Según el servicio y la región, identifica los extremos para la conectividad consultando la siguiente documentación de AWS:
- Para obtener información sobre las fuentes de registro, consulta Cuotas y extremos de AWS Identity and Access Management.
- Para obtener información sobre las fuentes de registro de S3, consulta Cuotas y extremos de Amazon Simple Storage Service.
- Para obtener información sobre las fuentes de registro de SQS, consulta Cuotas y extremos de Amazon Simple Queue Service.
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:
- Ve a SIEM Settings > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- Ingresa un nombre único para el Nombre del feed.
- Selecciona Amazon S3 o Amazon SQS como el Tipo de fuente.
- Selecciona AWS CloudFront como el Tipo de registro.
- Haz clic en Siguiente.
- Google SecOps admite la recopilación de registros con el método de ID de clave de acceso y secreto. Para crear un ID de clave de acceso y una clave secreta, consulta Configura la autenticación de la herramienta con AWS.
- Según la configuración de Amazon CloudFront que creaste, especifica valores para los siguientes campos:
- 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
- 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
- Si usas Amazon S3, especifica valores para los siguientes campos:
- Haz clic en Siguiente y, luego, en Enviar.
Para enviar los registros de Amazon CloudFront al bucket de Amazon S3, consulta Cómo configurar y usar los registros estándar (registros de acceso).
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.
Para obtener más información sobre los feeds de Google Security Operations, consulta la documentación de los feeds de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de feed, consulta Configuración de feeds por tipo. Si tienes problemas para crear feeds, comunícate con el equipo de asistencia de Operaciones de seguridad de Google.
Referencia de la asignación de campos
Este analizador extrae campos de los registros de AWS CloudFront en formato SYSLOG o JSON, y los normaliza en el UDM. Utiliza patrones de Grok para analizar cadenas de mensajes, controla varias transformaciones de datos (p.ej., conversiones de tipos, cambio de nombre) y enriquece los datos con contexto adicional, como el análisis del agente de usuario y la identificación del protocolo de la aplicación.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
c-ip |
principal.ip |
Se asigna directamente. También se asigna a principal.asset.ip . |
c-port |
principal.port |
Se asigna directamente. |
cs(Cookie) |
additional.fields[].key : "cookie"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si cs(Cookie) está presente y agent no contiene "://". |
cs(Host) |
principal.hostname |
Se asigna directamente. También se asigna a principal.asset.hostname . Se usa para construir el target.url si no hay otros campos de URL disponibles. |
cs(Referer) |
network.http.referral_url |
Se asigna directamente. |
cs(User-Agent) |
network.http.user_agent |
Se asigna directamente. También se asigna a network.http.parsed_user_agent y se analiza en sus componentes si no contiene "://". |
cs-bytes |
network.sent_bytes |
Se asigna directamente. Se convirtió en un número entero sin signo. |
cs-method |
network.http.method |
Se asigna directamente. |
cs-protocol |
network.application_protocol |
Se asigna después de convertir a mayúsculas. Si el valor no se reconoce como un protocolo de aplicación estándar y cs-protocol-version contiene "HTTP", network.application_protocol se establece en "HTTP". |
dport |
target.port |
Se asigna directamente. Se convirtió en un número entero. |
edge_location |
principal.location.name |
Se asigna directamente. |
fle-encrypted-fields |
additional.fields[].key : "fle-encrypted-fields"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
fle-status |
additional.fields[].key : "fle-status"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
host |
principal.hostname , principal.asset.hostname |
Se asigna directamente. |
id |
principal.asset_id |
Se asigna directamente con el prefijo "id: ". |
ip |
target.ip , target.asset.ip |
Se asigna directamente. |
log_id |
metadata.product_log_id |
Se asigna directamente. |
resource |
additional.fields[].key : "resource"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
result_type |
additional.fields[].key : "result_type"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
sc-bytes |
network.received_bytes |
Se asigna directamente. Se convirtió en un número entero sin signo. |
sc-content-len |
additional.fields[].key : "sc-content-len"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
sc-content-type |
additional.fields[].key : "sc-content-type"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
sc-status |
network.http.response_code |
Se asigna directamente. Se convirtió en un número entero. |
ssl-cipher |
network.tls.cipher |
Se asigna directamente. |
ssl-protocol |
network.tls.version |
Se asigna directamente. |
timestamp |
metadata.event_timestamp |
Se analizan y se asignan si están disponibles. Se admiten diferentes formatos. |
ts |
metadata.event_timestamp |
Se analizan y se asignan si están disponibles. Se espera el formato ISO8601. |
url |
target.url |
Se asigna directamente. |
url_back_to_product |
metadata.url_back_to_product |
Se asigna directamente. |
x-edge-detailed-result-type |
additional.fields[].key : "x-edge-detailed-result-type"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
x-edge-location |
additional.fields[].key : "x-edge-location"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
x-edge-request-id |
additional.fields[].key : "x-edge-request-id"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
x-edge-response-result-type |
additional.fields[].key : "x-edge-response-result-type"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
x-edge-result-type |
additional.fields[].key : "x-edge-result-type"additional.fields[].value.string_value : Se asigna directamente. |
Se asigna de forma condicional si está presente. |
x-forwarded-for |
target.ip , target.asset.ip |
Se asigna directamente. Si hay varias IPs (separadas por comas), se dividen y se combinan en los campos correspondientes del UDM. |
x-host-header |
target.hostname , target.asset.hostname |
Se asigna directamente. Se establece en "NETWORK_HTTP" si están presentes ip o x-forwarded-for y http_verb . De lo contrario, se establece como "GENERIC_EVENT". Se codifica como "AWS_CLOUDFRONT". Se codifica como "AWS CloudFront". Se codifica de forma rígida como "AMAZON". Es la hora de transferencia de la entrada de registro a Google Security Operations. |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.