Recopila registros de AWS CloudWatch

Compatible con:

En este documento, se explica cómo transferir registros de AWS CloudWatch a Google Security Operations. AWS CloudWatch es un servicio de supervisión y observabilidad que recopila datos operativos en forma de registros, métricas y eventos. Esta integración te permite enviar estos registros a Google SecOps para su análisis y supervisión.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a AWS.

Crea un bucket de Amazon S3

Se recomienda usar un bucket creado específicamente para los registros de CloudWatch.

  1. Abre la consola de Amazon S3.
  2. Si es necesario, puedes cambiar la región.
    • En la barra de navegación, selecciona la región en la que residen tus registros de CloudWatch.
  3. Haga clic en Crear bucket.
    • Nombre del bucket: Ingresa un nombre significativo para el bucket.
    • Región: Selecciona la región en la que residen tus datos de registros de CloudWatch.
    • Haz clic en Crear.

Crea un usuario de IAM con acceso completo a Amazon S3 y CloudWatch Logs

  1. Abre la consola de IAM.
  2. Haz clic en Usuarios > Agregar usuario.
  3. Ingresa un nombre de usuario (por ejemplo, CWExport).
  4. Selecciona Acceso programático y Acceso a la Consola de administración de AWS.
  5. Selecciona Contraseña generada automáticamente o Contraseña personalizada.
  6. Haz clic en Next: Permissions.
  7. Elige Adjuntar las políticas existentes de forma directa.
  8. Busca y selecciona las políticas AmazonS3FullAccess y CloudWatchLogsFullAccess para el usuario.
  9. Haz clic en Siguiente: Etiquetas.
  10. Click Siguiente: Revisar.
  11. Haz clic en Crear usuario.

Configura los permisos en el bucket de Amazon S3

  1. En la consola de Amazon S3, elige el bucket que creaste antes.
  2. Haz clic en Permisos > Política del bucket.
  3. En el Editor de políticas de bucket, agrega la siguiente política.

    {             
      "Version": "2012-10-17",
      "Statement": [
          {
            "Action": "s3:GetBucketAcl",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::cw-exported-logs",
            "Principal": { "Service": "logs.us-east-1.amazonaws.com" }
          },
          {
            "Action": "s3:PutObject" ,
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::my-exported-logs/random-string/*",
            "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } },
            "Principal": { "Service": "logs.us-east-1.amazonaws.com" }
    
          }
    
      ]
    
    }
    
  4. Cambia y actualiza las siguientes variables json:

    • Cambia cw-exported-logs por el nombre de tu bucket de S3.
    • Cambia random-string por una cadena de caracteres generada de forma aleatoria.
    • Asegúrate de especificar el extremo de región correcto para Principal.
  5. Haz clic en Guardar para establecer la política que acabas de agregar como la política de acceso en tu bucket.

Configura la exportación de CloudWatch

  1. Accede con el usuario de IAM que creaste anteriormente.
  2. Abre la consola de CloudWatch.
  3. En el menú de navegación, selecciona Grupos de registros.
  4. Selecciona el nombre de un grupo de registros existente o crea uno nuevo.
  5. Selecciona Actions > Export data to Amazon S3.
  6. En la pantalla Exportar datos a Amazon S3, busca Definir la exportación de datos.
  7. Establece el intervalo de tiempo para los datos que se exportarán con Desde y Hasta.
  1. Elegir bucket de S3: Selecciona la cuenta asociada con el bucket de Amazon S3.
  2. Nombre del bucket de S3: Selecciona un bucket de Amazon S3.
  3. Prefijo de bucket de S3: Ingresa la cadena generada de forma aleatoria que especificaste en la política de bucket.
  4. Elige Exportar para exportar tus datos de registro a Amazon S3.
  5. 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 CloudWatch

  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 CloudWatch).
  4. Selecciona Amazon S3 como el Tipo de fuente.
  5. Selecciona AWS CloudWatch 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 en la que 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.user.userid El valor de account del registro sin procesar se asigna al campo principal.user.userid.
account_id principal.user.userid El valor de account_id del registro sin procesar se asigna al campo principal.user.userid.
AlertId metadata.product_log_id El valor de AlertId del registro sin procesar se asigna al campo metadata.product_log_id.
arrivalTimestamp metadata.event_timestamp El valor de arrivalTimestamp del registro sin procesar se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp.
attemptsMade additional.fields El valor de attemptsMade del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a additional.fields con la clave "Intentos realizados".
awsAccountId principal.asset_id El valor de awsAccountId del registro sin procesar se antepone con “ID de cuenta de AWS:” y se asigna al campo principal.asset_id.
billed_duration additional.fields El valor de billed_duration del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "billed_duration".
BytesIn network.received_bytes El valor de BytesIn del registro sin procesar se convierte en un número entero sin firma y se asigna al campo network.received_bytes.
cipher network.tls.cipher El valor de cipher del registro sin procesar se asigna al campo network.tls.cipher.
Ciphers network.tls.client.supported_ciphers El valor de Ciphers del registro sin procesar se divide por comas y cada valor se agrega al array network.tls.client.supported_ciphers.
cloudwatchLog security_result.description El valor de cloudwatchLog del registro sin procesar se asigna al campo security_result.description.
CloudAccountId metadata.product_deployment_id El valor de CloudAccountId del registro sin procesar se asigna al campo metadata.product_deployment_id.
CloudType target.resource.attribute.cloud.environment El valor de CloudType del registro sin procesar determina el valor de target.resource.attribute.cloud.environment. Si CloudType es "gcp", el valor es "GOOGLE_CLOUD_PLATFORM". Si CloudType es "aws", el valor es "AMAZON_WEB_SERVICES". Si CloudType es “azure”, el valor es “MICROSOFT_AZURE”.
Context.Execution.Id target.resource.attribute.labels El valor de Context.Execution.Id del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "Context Id".
Context.Execution.Name target.resource.attribute.labels El valor de Context.Execution.Name del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "Context Name".
Context.Execution.RoleArn target.resource.product_object_id El valor de Context.Execution.RoleArn del registro sin procesar se asigna al campo target.resource.product_object_id.
descr metadata.description El valor de descr del registro sin procesar, después de quitar los espacios adicionales, se asigna al campo metadata.description, a menos que sea “-”. Si descr está vacío, se usa el valor de log.
destination.name target.location.country_or_region El valor de destination.name del registro sin procesar se asigna al campo target.location.country_or_region.
destination.properties.prefix target.resource.attribute.labels El valor de destination.properties.prefix del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "Prefijo de propiedades de destino".
detail.additionalEventData.configRuleArn security_result.rule_id El valor de detail.additionalEventData.configRuleArn del registro sin procesar se asigna al campo security_result.rule_id.
detail.additionalEventData.configRuleName security_result.rule_name El valor de detail.additionalEventData.configRuleName del registro sin procesar se asigna al campo security_result.rule_name.
detail.additionalEventData.managedRuleIdentifier additional.fields El valor de detail.additionalEventData.managedRuleIdentifier del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "managedRuleIdentifier".
detail.additionalEventData.notificationJobType additional.fields El valor de detail.additionalEventData.notificationJobType del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "notificationJobType".
detail.awsAccountId principal.asset_id El valor de detail.awsAccountId del registro sin procesar se antepone con “ID de cuenta de AWS:” y se asigna al campo principal.asset_id.
detail.awsRegion principal.location.name El valor de detail.awsRegion del registro sin procesar se asigna al campo principal.location.name.
detail.configRuleArn security_result.rule_id El valor de detail.configRuleArn del registro sin procesar se asigna al campo security_result.rule_id.
detail.configRuleName security_result.rule_name El valor de detail.configRuleName del registro sin procesar se asigna al campo security_result.rule_name.
detail.configurationItem.awsAccountId principal.user.userid El valor de detail.configurationItem.awsAccountId del registro sin procesar se asigna al campo principal.user.userid.
detail.configurationItem.awsRegion target.location.country_or_region El valor de detail.configurationItem.awsRegion del registro sin procesar se asigna al campo target.location.country_or_region.
detail.configurationItem.configuration.complianceType security_result.summary El valor de detail.configurationItem.configuration.complianceType del registro sin procesar se asigna al campo security_result.summary.
detail.configurationItem.configuration.targetResourceId target.resource.attribute.labels El valor de detail.configurationItem.configuration.targetResourceId del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "configurationItem configuration targetResourceId".
detail.configurationItem.configuration.targetResourceType target.resource.attribute.labels El valor de detail.configurationItem.configuration.targetResourceType del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "configurationItem configuration targetResourceType".
detail.configurationItem.configurationItemCaptureTime _target.asset.attribute.creation_time El valor de detail.configurationItem.configurationItemCaptureTime del registro sin procesar se convierte en una marca de tiempo y se asigna al campo _target.asset.attribute.creation_time.
detail.configurationItem.configurationItemStatus target.resource.attribute.labels El valor de detail.configurationItem.configurationItemStatus del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "configurationItem configurationItemStatus".
detail.configurationItem.configurationStateId target.resource.attribute.labels El valor de detail.configurationItem.configurationStateId del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a target.resource.attribute.labels con la clave "configurationItem configurationStateId".
detail.configurationItem.resourceId target.resource.id El valor de detail.configurationItem.resourceId del registro sin procesar se asigna al campo target.resource.id.
detail.configurationItem.resourceType target.resource.resource_subtype El valor de detail.configurationItem.resourceType del registro sin procesar se asigna al campo target.resource.resource_subtype.
detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn security_result.rule_id El valor de detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn del registro sin procesar se asigna al campo security_result.rule_id.
detail.eventCategory security_result.category_details El valor de detail.eventCategory del registro sin procesar se asigna al campo security_result.category_details.
detail.eventID metadata.product_log_id El valor de detail.eventID del registro sin procesar se asigna al campo metadata.product_log_id.
detail.eventName additional.fields El valor de detail.eventName del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "Nombre del evento".
detail.eventSource target.application El valor de detail.eventSource del registro sin procesar se asigna al campo target.application.
detail.eventType additional.fields El valor de detail.eventType del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "Tipo de evento".
detail.eventVersion metadata.product_version El valor de detail.eventVersion del registro sin procesar se asigna al campo metadata.product_version.
detail.managementEvent additional.fields El valor de detail.managementEvent del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a additional.fields con la clave "detail managementEvent".
detail.messageType target.resource.attribute.labels El valor de detail.messageType del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "Message Type".
detail.newEvaluationResult.complianceType security_result.summary El valor de detail.newEvaluationResult.complianceType del registro sin procesar se asigna al campo security_result.summary.
detail.newEvaluationResult.configRuleInvokedTime additional.fields El valor de detail.newEvaluationResult.configRuleInvokedTime del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "newEvaluationResult_configRuleInvokedTime".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName additional.fields El valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "newEvaluationResult_configRuleName".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId additional.fields El valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "newEvaluationResult_resourceId".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType additional.fields El valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "newEvaluationResult_resourceType".
detail.newEvaluationResult.resultRecordedTime additional.fields El valor de detail.newEvaluationResult.resultRecordedTime del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "newEvaluationResult_resultRecordedTime".
detail.oldEvaluationResult.configRuleInvokedTime additional.fields El valor de detail.oldEvaluationResult.configRuleInvokedTime del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "oldEvaluationResult_configRuleInvokedTime".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName additional.fields El valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "oldEvaluationResult_configRuleName".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId additional.fields El valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "oldEvaluationResult_resourceId".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType additional.fields El valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "oldEvaluationResult_resourceType".
detail.oldEvaluationResult.resultRecordedTime additional.fields El valor de detail.oldEvaluationResult.resultRecordedTime del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "oldEvaluationResult_resultRecordedTime".
detail.readOnly additional.fields El valor de detail.readOnly del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a additional.fields con la clave "detail readOnly".
detail.recipientAccountId target.resource.attribute.labels El valor de detail.recipientAccountId del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "ID de la cuenta del destinatario".
detail.recordVersion metadata.product_version El valor de detail.recordVersion del registro sin procesar se asigna al campo metadata.product_version.
detail.requestID target.resource.attribute.labels El valor de detail.requestID del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "ID de solicitud de detalles".
detail.resourceType target.resource.resource_subtype El valor de detail.resourceType del registro sin procesar se asigna al campo target.resource.resource_subtype.
detail.s3Bucket about.resource.name El valor de detail.s3Bucket del registro sin procesar se asigna al campo about.resource.name.
detail.s3ObjectKey target.resource.attribute.labels El valor de detail.s3ObjectKey del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "s3ObjectKey".
detail.userAgent network.http.user_agent El valor de detail.userAgent del registro sin procesar se asigna al campo network.http.user_agent.
detail.userIdentity.accessKeyId target.user.userid El valor de detail.userIdentity.accessKeyId del registro sin procesar se asigna al campo target.user.userid.
detail.userIdentity.accountId metadata.product_deployment_id El valor de detail.userIdentity.accountId del registro sin procesar se asigna al campo metadata.product_deployment_id.
detail.userIdentity.arn target.user.userid El valor de detail.userIdentity.arn del registro sin procesar se asigna al campo target.user.userid.
detail.userIdentity.principalId principal.user.product_object_id El valor de detail.userIdentity.principalId del registro sin procesar se asigna al campo principal.user.product_object_id.
detail.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels El valor de detail.userIdentity.sessionContext.attributes.mfaAuthenticated del registro sin procesar se agrega como un par clave-valor a principal.user.attribute.labels con la clave "mfaAuthenticated".
detail.userIdentity.sessionContext.sessionIssuer.userName target.user.user_display_name El valor de detail.userIdentity.sessionContext.sessionIssuer.userName del registro sin procesar se asigna al campo target.user.user_display_name.
detail.userIdentity.type principal.resource.type El valor de detail.userIdentity.type del registro sin procesar se asigna al campo principal.resource.type.
detail-type metadata.product_event_type El valor de detail-type del registro sin procesar se asigna al campo metadata.product_event_type.
device principal.asset.product_object_id El valor de device del registro sin procesar se asigna al campo principal.asset.product_object_id.
digestPublicKeyFingerprint target.file.sha1 El valor de digestPublicKeyFingerprint del registro sin procesar se asigna al campo target.file.sha1.
digestS3Bucket principal.resource.name El valor de digestS3Bucket del registro sin procesar se asigna al campo principal.resource.name.
digestS3Object principal.asset.asset_id El valor de digestS3Object del registro sin procesar se antepone con "S3 Object: " y se asigna al campo principal.asset.asset_id.
digestSignatureAlgorithm network.tls.cipher El valor de digestSignatureAlgorithm del registro sin procesar se asigna al campo network.tls.cipher.
digestStartTime metadata.event_timestamp El valor de digestStartTime del registro sin procesar se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp.
dimensions.VolumeId additional.fields El valor de dimensions.VolumeId del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "VolumeId".
duration additional.fields El valor de duration del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "duration".
errorCode security_result.rule_name El valor de errorCode del registro sin procesar se asigna al campo security_result.rule_name.
errorMessage security_result.summary El valor de errorMessage del registro sin procesar se asigna al campo security_result.summary.
executionId principal.process.pid El valor de executionId del registro sin procesar se asigna al campo principal.process.pid.
host principal.hostname, principal.ip El valor de host del registro sin procesar, con guiones reemplazados por puntos, se analiza como una dirección IP y se asigna al campo principal.ip si se realiza correctamente. De lo contrario, se asigna al campo principal.hostname.
http_verb network.http.method El valor de http_verb del registro sin procesar se convierte en mayúsculas y se asigna al campo network.http.method.
kubernetes.container_hash additional.fields El valor de kubernetes.container_hash del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "container_hash".
kubernetes.container_image additional.fields El valor de kubernetes.container_image del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "container_image".
kubernetes.container_name additional.fields El valor de kubernetes.container_name del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "container_name".
kubernetes.docker_id principal.asset_id El valor de kubernetes.docker_id del registro sin procesar se antepone con "id: " y se asigna al campo principal.asset_id.
kubernetes.host principal.hostname, principal.ip El valor de kubernetes.host del registro sin procesar, con guiones reemplazados por puntos, se analiza como una dirección IP y se asigna al campo principal.ip si se realiza correctamente. De lo contrario, se asigna al campo principal.hostname.
kubernetes.namespace principal.namespace El valor de kubernetes.namespace del registro sin procesar se asigna al campo principal.namespace.
kubernetes.namespace_name principal.namespace El valor de kubernetes.namespace_name del registro sin procesar se asigna al campo principal.namespace.
kubernetes.pod_id principal.asset.asset_id El valor de kubernetes.pod_id del registro sin procesar se antepone con "pod_id: " y se asigna al campo principal.asset.asset_id.
kubernetes.pod_name additional.fields El valor de kubernetes.pod_name del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "nombre del pod".
lambdaArn principal.hostname El valor de lambdaArn del registro sin procesar se asigna al campo principal.hostname.
level security_result.severity El valor de level del registro sin procesar determina el valor de security_result.severity. Si level es "Info", el valor es "INFORMATIONAL". Si level es “Error”, el valor es “ERROR”. Si level es "Advertencia", el valor es "MEDIANO".
log metadata.description El valor de log del registro sin procesar se asigna al campo metadata.description si descr está vacío.
logFiles about Para cada elemento del array logFiles del registro sin procesar, se crea un objeto about con file.full_path establecido en s3Object, asset.hostname establecido en s3Bucket y file.sha256 establecido en hashValue.
log_processed.cause security_result.summary El valor de log_processed.cause del registro sin procesar se asigna al campo security_result.summary.
log_processed.ids intermediary.hostname Para cada elemento del array log_processed.ids del registro sin procesar, se crea un objeto intermediary con hostname establecido en el valor del elemento.
log_processed.level security_result.severity El valor de log_processed.level del registro sin procesar se asigna al campo security_result.severity.
log_processed.msg metadata.description El valor de log_processed.msg del registro sin procesar se asigna al campo metadata.description.
log_processed.ts metadata.event_timestamp El valor de log_processed.ts del registro sin procesar se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp.
log_type metadata.log_type El valor de log_type del registro sin procesar se asigna al campo metadata.log_type. Este es un campo personalizado que se agregó para brindar contexto.
logevent.message security_result.description El valor de logevent.message del registro sin procesar se asigna al campo security_result.description. También se analiza con grok para extraer campos adicionales.
logGroup security_result.about.resource.name El valor de logGroup del registro sin procesar se asigna al campo security_result.about.resource.name.
logStream security_result.about.resource.attribute.labels El valor de logStream del registro sin procesar se agrega como un par clave-valor a security_result.about.resource.attribute.labels con la clave "logStream".
memory_used additional.fields El valor de memory_used del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "memory_used".
metric_name additional.fields El valor de metric_name del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "metric_name".
metric_stream_name additional.fields El valor de metric_stream_name del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "metric_stream_name".
namespace principal.namespace El valor de namespace del registro sin procesar se asigna al campo principal.namespace.
owner principal.user.userid El valor de owner del registro sin procesar se asigna al campo principal.user.userid.
parameters additional.fields El valor de parameters del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "Parameters".
Path principal.process.file.full_path El valor de Path del registro sin procesar se asigna al campo principal.process.file.full_path.
pid principal.process.pid El valor de pid del registro sin procesar se asigna al campo principal.process.pid.
PolicyName security_result.rule_name El valor de PolicyName del registro sin procesar se asigna al campo security_result.rule_name.
prin_host principal.hostname El valor de prin_host del registro sin procesar se asigna al campo principal.hostname.
principal_hostname principal.hostname El valor de principal_hostname del registro sin procesar se asigna al campo principal.hostname.
process principal.application El valor de process del registro sin procesar se asigna al campo principal.application.
rawData additional.fields El valor de rawData del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "Raw Data".
Recommendation security_result.detection_fields El valor de Recommendation del registro sin procesar se agrega como un par clave-valor a security_result.detection_fields con la clave "Recommendation".
referral_url network.http.referral_url El valor de referral_url del registro sin procesar se asigna al campo network.http.referral_url.
region principal.location.name El valor de region del registro sin procesar se asigna al campo principal.location.name.
resp_code network.http.response_code El valor de resp_code del registro sin procesar se convierte en un número entero y se asigna al campo network.http.response_code.
resource_url network.http.referral_url El valor de resource_url del registro sin procesar se asigna al campo network.http.referral_url.
ResourceType target.resource.resource_subtype El valor de ResourceType del registro sin procesar se asigna al campo target.resource.resource_subtype.
response_body additional.fields El valor de response_body del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "Cuerpo de la respuesta".
Role target.resource.product_object_id El valor de Role del registro sin procesar se asigna al campo target.resource.product_object_id.
s3_bucket_path target.file.full_path El valor de s3_bucket_path del registro sin procesar se asigna al campo target.file.full_path.
sec_result.category security_result.category El valor de sec_result.category se deriva de la lógica del analizador. Si descr contiene "se requiere autenticación", el valor es "AUTH_VIOLATION".
sec_result.description security_result.description El valor de sec_result.description se deriva de la lógica del analizador. Se establece en el valor de cloudwatchLog si está presente.
sec_result.severity security_result.severity El valor de sec_result.severity se deriva de la lógica del analizador. Se establece en función del valor de severity o level.
sec_result.summary security_result.summary El valor de sec_result.summary se deriva de la lógica del analizador. Se establece en el valor de log_processed.cause o errorMessage si está presente.
security_result security_result El objeto security_result se construye a partir de varios campos y lógica del analizador.
serverId additional.fields El valor de serverId del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "server_id".
severity security_result.severity El valor de severity del registro sin procesar, convertido a mayúsculas y normalizado, se asigna al campo security_result.severity.
Source principal.hostname El valor de Source del registro sin procesar se asigna al campo principal.hostname.
source principal.hostname El valor de source del registro sin procesar se asigna al campo principal.hostname.
SourceIP principal.ip El valor de SourceIP del registro sin procesar se asigna al campo principal.ip.
src_port principal.port Si src_port es “80”, se convierte en un número entero y se asigna al campo principal.port, y network.application_protocol se establece en “HTTP”.
stream additional.fields El valor de stream del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "stream".
subscriptionFilters security_result.about.resource.attribute.labels Para cada elemento del array subscriptionFilters del registro sin procesar, se agrega un par clave-valor a security_result.about.resource.attribute.labels con la clave "subscriptionFilter" y el valor del array.
support_contact target.resource.attribute.labels El valor de support_contact del registro sin procesar se agrega como un par clave-valor a target.resource.attribute.labels con la clave "Contacto de asistencia".
t_ip target.ip El valor de t_ip del registro sin procesar, después de quitar los guiones, se analiza como una dirección IP y se asigna al campo target.ip si se realiza correctamente.
time metadata.event_timestamp El valor de time del registro sin procesar se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp.
timestamp metadata.event_timestamp El valor de timestamp del registro sin procesar se convierte en una marca de tiempo con varios formatos y se asigna al campo metadata.event_timestamp.
tls network.tls.version El valor de tls del registro sin procesar se asigna al campo network.tls.version.
transferDetails.serverId additional.fields El valor de transferDetails.serverId del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "server_id".
transferDetails.sessionId network.session_id El valor de transferDetails.sessionId del registro sin procesar se asigna al campo network.session_id.
transferDetails.username principal.user.user_display_name El valor de transferDetails.username del registro sin procesar se asigna al campo principal.user.user_display_name.
ts metadata.event_timestamp El valor de ts del registro sin procesar, combinado con la zona horaria si está disponible, se convierte en una marca de tiempo y se asigna al campo metadata.event_timestamp.
type metadata.product_event_type El valor de type del registro sin procesar se asigna al campo metadata.product_event_type.
unit additional.fields El valor de unit del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "unit".
url target.url El valor de url del registro sin procesar se asigna al campo target.url.
url_back_to_product metadata.url_back_to_product El valor de url_back_to_product del registro sin procesar se asigna al campo metadata.url_back_to_product.
User principal.user.userid El valor de User del registro sin procesar se asigna al campo principal.user.userid.
user target.user.userid, metadata.event_type, extensions.auth.mechanism Si user está presente, metadata.event_type se establece en "USER_LOGIN", extensions.auth.mechanism se establece en "NETWORK" y el valor de user se asigna a target.user.userid.
value.count additional.fields El valor de value.count del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a additional.fields con la clave "count".
value.max additional.fields El valor de value.max del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a additional.fields con la clave "max".
value.min additional.fields El valor de value.min del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a additional.fields con la clave "min".
value.sum additional.fields El valor de value.sum del registro sin procesar se convierte en una cadena y se agrega como un par clave-valor a additional.fields con la clave "sum".
workflowId additional.fields El valor de workflowId del registro sin procesar se agrega como un par clave-valor a additional.fields con la clave "workflowId".

Cambios

2024-02-12

  • Mejora:
  • Se asignó la marca de tiempo a UNIX_MS.

2023-09-02

  • Mejora:
  • Se agregó un "bloque kv" para analizar registros de formato de par clave-valor.
  • Se asignó "SourceIP" a "principal.ip".
  • Se asignó "prin_host" a "principal.hostname".
  • Se asignó "User" a "principal.user.userid".
  • Se asignó "Ciphers" a "network.tls.client.supported_ciphers".
  • Se asignó "executionId" a "principal.process.pid".
  • Se asignó "transferDetails.sessionId" a "network.session_id".
  • Se asignó "transferDetails.username" a "principal.user.user_display_name".
  • Se asignaron "transferDetails.serverId", "workflowId", "details.input.initialFileLocation.etag", "details.input.initialFileLocation.backingStore", "details.input.initialFileLocation.bucket", "details.input.initialFileLocation.key",
  • "Mode" y "Kex" a "additional.fields".
  • Se asignó "BytesIn" a "network.received_bytes".
  • Se asignó "Role" a "target.resource.product_object_id".

2023-08-18

  • Mejora:
  • Se agregó un patrón Grok para analizar los registros sin analizar.

2023-07-07

  • Mejora:
  • Se agregó compatibilidad con los registros JSON relacionados con "logEvents".

2022-12-17

  • Se asignó "CloudType" a "target.resource.attribute.cloud.environment".
  • Se asignó "AlertId" a "metadata.product_log_id".
  • Se asignó "ResourceType" a "target.resource.resource_subtype".
  • Se asignó "ResourceRegion" a "target.location.country_or_region".
  • Se asignó "Recommendation" a "security_result.detection_fields".
  • Se asignaron "PolicyName" y "detail.additionalEventData.configRuleName" a "security_result.rule_name".
  • Se asignó "detail-type" a "metadata.product_event_type".
  • Se asignaron "region" y "detail.awsRegion" a "principal.location.name".
  • Se asignó "detail.eventSource" a "target.application".
  • Se asignó "detail.requestID" a "target.resource.attribute.labels".
  • Se asignó "detail.userAgent" a "network.http.user_agent".
  • Se asignó "detail.eventVersion" a "metadata.product_version".
  • Se asignó "detail.userIdentity.accountId" a "metadata.product_deployment_id".
  • Se asignó "detail.userIdentity.accessKeyId" a "target.user.userid".
  • Se asignó "detail.userIdentity.type" a "principal.resource.type".
  • Se asignó "detail.userIdentity.principalId" a "principal.user.product_object_id".
  • Se asignó "detail.user.arn" a "target.user.userid".
  • Se asignó "detail.user.sessionContext.sessionIssuer.userName" a "target.user.user_display_name".
  • Se asignó "detail.user.mfaAuthenticated" a "principal.user.attribute.labels".
  • Se asignó "detail.recipientAccountId" a "target.resource.attribute.labels".
  • Se asignaron "detail.managementEvent", "detail.eventType", "detail.readOnly", "detail.eventName", "detail.additionalEventData.notificationJobType", "detail.additionalEventData.managedRuleIdentifier", "duration", "billed_duration" y "memory_used" a "additional.fields".
  • Se asignó "detail.eventCategory" a "security_result.category_details".
  • Se asignó "detail.eventID" a "metadata.product_log_id".
  • Se asignó "detail.additionalEventData.configRuleArn" a "security_result.rule_id".
  • Se asignó "level" a "security_result.severity".
  • Se asignó "src_port" a "principal.port".
  • Se asignó "request_id" a "target.resource.attribute.labels".
  • Se asignó "url" a "target.url".

2022-09-03

  • Mejora:
  • Se agregó grok para analizar los registros recién transferidos.
  • Se asignó "package" a "event.idm.read_only_udm.principal.process.command_line".
  • Se asignó "session_id" a "event.idm.read_only_udm.network.session_id".
  • Se asignó "network_dir" a "event.idm.read_only_udm.network.direction".
  • Se asignó "port" a "event.idm.read_only_udm.target.port".
  • Se volvió a asignar "digestPublicKeyFingerprint" de "additional.fields" a "event.idm.read_only_udm.target.file.sha1".
  • Se agregaron otros niveles de registro, como "AUDIT", "TRACE", "DEBUG", "NOTICE" y "ERROR" para la asignación de gravedad.
  • Se duplicó el valor de "target.ip" a "principal.ip" para establecer event_type como "STATUS_UPDATE", lo que reduce el porcentaje genérico.
  • Se agregaron condiciones para "event_type" "USER_UNCATEGORIZED", "NETWORK_HTTP", "NETWORK_CONNECTION", "STATUS_UPADTE" para reducir el porcentaje genérico.

2022-08-11

  • Se corrigió el error: Se volvió a asignar "digestS3Bucket" a "principal.resource.name".
  • Se volvió a asignar "kubernetes.pod_name" a "additional.fields".

2022-05-27

  • Mejora:
  • Se modificó el valor almacenado en metadata.product_name a "AWS CloudWatch" y metadata.vendor_name a "AMAZON".

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