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 al formato estructurado del UDM. 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.
- Para habilitar el registro, selecciona Activar.
- En el campo Bucket de registros, 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 fila de SQS y adjúntalo al bucket de Amazon S3.
Identifica los extremos para la conectividad
Verifica las políticas de claves de usuario y de KMS de IAM requeridas para S3, SQS y KMS.
Según el servicio y la región, identifica los extremos de conectividad. Para ello, consulta la siguiente documentación de AWS:
- Para obtener información sobre las fuentes de registro, consulta Extremos y cuotas de Identity and Access Management de AWS.
- Para obtener información sobre las fuentes de registro de S3, consulta Extremos y cuotas de Amazon Simple Storage Service.
- Para obtener información sobre las fuentes de registro de SQS, consulta Extremos y cuotas de Amazon Simple Queue Service.
Configura un feed en Google Security Operations para transferir los registros de Amazon CloudFront
- Selecciona Configuración de SIEM > Feeds.
- Haz clic en Agregar nueva.
- Ingresa un nombre único para el Nombre del feed.
- Selecciona Amazon S3 o Amazon SQS como Tipo de fuente.
- Selecciona AWS CloudFront como el Tipo de registro.
- Haz clic en Siguiente.
- Google Security Operations admite la recopilación de registros con el ID de la clave de acceso y el método secreto. Para crear el ID de clave de acceso y el secreto, consulta Cómo configurar la autenticación de herramientas con AWS.
- Según la configuración de Amazon CloudFront que creaste, especifica los valores para los siguientes campos.
- Si usas Amazon S3, especifica valores para los siguientes campos:
- Región
- URI de S3
- Un URI es un
- Opción de eliminación de fuentes
- Si usas Amazon SQS, especifica valores para los siguientes campos:
- Región
- Nombre de la cola
- Número de cuenta
- ID de clave de acceso de la cola
- Coloca en cola la clave de acceso secreta
- Opción de eliminación de fuentes
- 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 Configura y usa registros estándar (registros de acceso).
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 cuando creas 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 la UDM. Usa patrones de grok para analizar cadenas de mensajes, controla varias transformaciones de datos (p.ej., conversiones de tipo, cambio de nombre) y enriquece los datos con contexto adicional, como el análisis del usuario-agente y la identificación del protocolo de la aplicación.
Tabla de asignación de la UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
c-ip |
principal.ip |
Se asignan directamente. También se asigna a principal.asset.ip . |
c-port |
principal.port |
Se asignan directamente. |
cs(Cookie) |
additional.fields[].key : "cookie"additional.fields[].value.string_value : Se asignan directamente. |
Se asigna de forma condicional si cs(Cookie) está presente y agent no contiene "://". |
cs(Host) |
principal.hostname |
Se asignan 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 asignan directamente. |
cs(User-Agent) |
network.http.user_agent |
Se asignan 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 asignan directamente. Se convirtió en un número entero sin signo. |
cs-method |
network.http.method |
Se asignan 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 asignan directamente. Se convirtió en número entero. |
edge_location |
principal.location.name |
Se asignan directamente. |
fle-encrypted-fields |
additional.fields[].key : "fle-encrypted-fields"additional.fields[].value.string_value : Se asignan directamente. |
Se asigna de forma condicional si está presente. |
fle-status |
additional.fields[].key : "fle-status"additional.fields[].value.string_value : Se asignó directamente. |
Se asigna de forma condicional si está presente. |
host |
principal.hostname , principal.asset.hostname |
Se asignan directamente. |
id |
principal.asset_id |
Se asignan directamente con el prefijo "id: ". |
ip |
target.ip , target.asset.ip |
Se asignan directamente. |
log_id |
metadata.product_log_id |
Se asignan directamente. |
resource |
additional.fields[].key : "resource"additional.fields[].value.string_value : Se asignan directamente. |
Se asigna de forma condicional si está presente. |
result_type |
additional.fields[].key : "result_type"additional.fields[].value.string_value : Se asignan directamente. |
Se asigna de forma condicional si está presente. |
sc-bytes |
network.received_bytes |
Se asignan 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 asignan directamente. Se convirtió en número entero. |
ssl-cipher |
network.tls.cipher |
Se asignan directamente. |
ssl-protocol |
network.tls.version |
Se asignan 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 asignan directamente. |
url_back_to_product |
metadata.url_back_to_product |
Se asignan directamente. |
x-edge-detailed-result-type |
additional.fields[].key : "x-edge-detailed-result-type"additional.fields[].value.string_value : Se asignan directamente. |
Se asigna de forma condicional si está presente. |
x-edge-location |
additional.fields[].key : "x-edge-location"additional.fields[].value.string_value : Se asignan 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 asignan 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 asignan directamente. |
Se asigna de forma condicional si está presente. |
x-forwarded-for |
target.ip , target.asset.ip |
Se asignan directamente. Si hay varias IP (separadas por comas), se dividen y se combinan en los campos de la AUA correspondientes. |
x-host-header |
target.hostname , target.asset.hostname |
Se asignan directamente. Se establece en "NETWORK_HTTP" si ip o x-forwarded-for y http_verb están presentes. De lo contrario, configúralo como "GENERIC_EVENT". Está codificado de forma fija en "AWS_CLOUDFRONT". Está codificado de forma fija en "AWS CloudFront". Está codificado de forma fija en “AMAZON”. Es la hora de transferencia de la entrada de registro a Google Security Operations. |