Coletar registros do AWS CloudWatch

Compatível com:

Este documento explica como transferir os registros do AWS CloudWatch para o Google Security Operations. O AWS CloudWatch é um serviço de monitoramento e observabilidade que coleta dados operacionais na forma de registros, métricas e eventos. Essa integração permite enviar esses registros ao Google SecOps para análise e monitoramento.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se você tem acesso privilegiado à AWS.

Criar um bucket do Amazon S3

É recomendável usar um bucket criado especificamente para os registros do CloudWatch.

  1. Abra o console do Amazon S3.
  2. Se necessário, você pode mudar a região.
    • Na barra de navegação, selecione a região onde os CloudWatch Logs estão armazenados.
  3. Clique em Criar bucket.
    • Nome do bucket: insira um nome significativo.
    • Região: selecione a região onde os dados do CloudWatch Logs estão armazenados.
    • Clique em Criar.

Criar um usuário do IAM com acesso total ao Amazon S3 e aos registros do CloudWatch

  1. Abra o console do IAM.
  2. Clique em Usuários > Adicionar usuário.
  3. Digite um nome de usuário (por exemplo, CWExport).
  4. Selecione Acesso programático e Acesso ao console de gerenciamento da AWS.
  5. Selecione Senha gerada automaticamente ou Senha personalizada.
  6. Clique em Next: Permissions.
  7. Escolha Anexar políticas atuais diretamente.
  8. Pesquise e selecione as políticas AmazonS3FullAccess e CloudWatchLogsFullAccess para o usuário.
  9. Clique em Avançar: tags.
  10. Clique em PRÓXIMO: REVISAR.
  11. Clique em Criar usuário.

Configurar permissões no bucket do Amazon S3

  1. No console do Amazon S3, escolha o bucket que você criou anteriormente.
  2. Clique em Permissões > Política de bucket.
  3. No Editor de políticas de bucket, adicione a seguinte 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. Mude e atualize as seguintes variáveis json:

    • Mude cw-exported-logs para o nome do seu bucket do S3.
    • Mude random-string para uma string de caracteres gerada aleatoriamente.
    • Especifique o endpoint regional correto para Principal.
  5. Clique em Salvar para definir a política que você acabou de adicionar como a política de acesso no seu bucket.

Configurar a exportação do CloudWatch

  1. Faça login como o usuário do IAM que você criou anteriormente.
  2. Abra o console do CloudWatch.
  3. No menu de navegação, selecione Grupos de registro.
  4. Selecione o nome de um grupo de registros ou crie um novo.
  5. Escolha Ações > Exportar dados para o Amazon S3.
  6. Na tela Export data to Amazon S3, localize Define data export.
  7. Defina o período de exportação dos dados usando De e Até.
  1. Escolher bucket do S3: selecione a conta associada ao bucket do Amazon S3.
  2. Nome do bucket do S3: selecione um bucket do Amazon S3.
  3. Prefixo do bucket do S3: insira a string gerada aleatoriamente que você especificou na política do bucket.
  4. Escolha Export para exportar os dados de registro para o Amazon S3.
  5. Para conferir o status dos dados de registro exportados para o Amazon S3, selecione Ações > Conferir todas as exportações para o Amazon S3.

Configurar um feed no Google SecOps para ingerir registros do AWS CloudWatch

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed (por exemplo, AWS CloudWatch Logs).
  4. Selecione Amazon S3 como o Tipo de origem.
  5. Selecione AWS CloudWatch como o Tipo de registro.
  6. Clique em Próxima.
  7. Especifique valores para os seguintes parâmetros de entrada:

    • Região: a região em que o bucket do Amazon S3 está localizado.
    • URI do S3: o URI do bucket.
      • s3://your-log-bucket-name/
        • Substitua your-log-bucket-name pelo nome real do bucket.
    • O URI é: selecione Diretório ou Diretório que inclui subdiretórios.
    • Opções de exclusão da origem: selecione a opção de exclusão de acordo com sua preferência.

    • ID da chave de acesso: a chave de acesso do usuário com acesso ao bucket do S3.

    • Chave de acesso secreta: a chave secreta do usuário com acesso ao bucket do S3.

    • Namespace de recursos: o namespace de recursos.

    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos desse feed.

  8. Clique em Próxima.

  9. Revise a configuração do novo feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
account principal.user.userid O valor de account do registro bruto é mapeado para o campo principal.user.userid.
account_id principal.user.userid O valor de account_id do registro bruto é mapeado para o campo principal.user.userid.
AlertId metadata.product_log_id O valor de AlertId do registro bruto é mapeado para o campo metadata.product_log_id.
arrivalTimestamp metadata.event_timestamp O valor de arrivalTimestamp do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp.
attemptsMade additional.fields O valor de attemptsMade do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "Attempts Made".
awsAccountId principal.asset_id O valor de awsAccountId do registro bruto é precedido por "ID da conta da AWS: " e mapeado para o campo principal.asset_id.
billed_duration additional.fields O valor de billed_duration do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "billed_duration".
BytesIn network.received_bytes O valor de BytesIn do registro bruto é convertido em um número inteiro sem sinal e mapeado para o campo network.received_bytes.
cipher network.tls.cipher O valor de cipher do registro bruto é mapeado para o campo network.tls.cipher.
Ciphers network.tls.client.supported_ciphers O valor de Ciphers do registro bruto é dividido por vírgulas, e cada valor é adicionado à matriz network.tls.client.supported_ciphers.
cloudwatchLog security_result.description O valor de cloudwatchLog do registro bruto é mapeado para o campo security_result.description.
CloudAccountId metadata.product_deployment_id O valor de CloudAccountId do registro bruto é mapeado para o campo metadata.product_deployment_id.
CloudType target.resource.attribute.cloud.environment O valor de CloudType do registro bruto determina o valor de target.resource.attribute.cloud.environment. Se CloudType for "gcp", o valor será "GOOGLE_CLOUD_PLATFORM". Se CloudType for "aws", o valor será "AMAZON_WEB_SERVICES". Se CloudType for "azure", o valor será "MICROSOFT_AZURE".
Context.Execution.Id target.resource.attribute.labels O valor de Context.Execution.Id do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Context Id".
Context.Execution.Name target.resource.attribute.labels O valor de Context.Execution.Name do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Nome do contexto".
Context.Execution.RoleArn target.resource.product_object_id O valor de Context.Execution.RoleArn do registro bruto é mapeado para o campo target.resource.product_object_id.
descr metadata.description O valor de descr do registro bruto, após a remoção de espaços em branco extras, é mapeado para o campo metadata.description, a menos que seja "-". Se descr estiver vazio, o valor de log será usado.
destination.name target.location.country_or_region O valor de destination.name do registro bruto é mapeado para o campo target.location.country_or_region.
destination.properties.prefix target.resource.attribute.labels O valor de destination.properties.prefix do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Prefixo de propriedades de destino".
detail.additionalEventData.configRuleArn security_result.rule_id O valor de detail.additionalEventData.configRuleArn do registro bruto é mapeado para o campo security_result.rule_id.
detail.additionalEventData.configRuleName security_result.rule_name O valor de detail.additionalEventData.configRuleName do registro bruto é mapeado para o campo security_result.rule_name.
detail.additionalEventData.managedRuleIdentifier additional.fields O valor de detail.additionalEventData.managedRuleIdentifier do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "managedRuleIdentifier".
detail.additionalEventData.notificationJobType additional.fields O valor de detail.additionalEventData.notificationJobType do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "notificationJobType".
detail.awsAccountId principal.asset_id O valor de detail.awsAccountId do registro bruto é precedido por "ID da conta da AWS: " e mapeado para o campo principal.asset_id.
detail.awsRegion principal.location.name O valor de detail.awsRegion do registro bruto é mapeado para o campo principal.location.name.
detail.configRuleArn security_result.rule_id O valor de detail.configRuleArn do registro bruto é mapeado para o campo security_result.rule_id.
detail.configRuleName security_result.rule_name O valor de detail.configRuleName do registro bruto é mapeado para o campo security_result.rule_name.
detail.configurationItem.awsAccountId principal.user.userid O valor de detail.configurationItem.awsAccountId do registro bruto é mapeado para o campo principal.user.userid.
detail.configurationItem.awsRegion target.location.country_or_region O valor de detail.configurationItem.awsRegion do registro bruto é mapeado para o campo target.location.country_or_region.
detail.configurationItem.configuration.complianceType security_result.summary O valor de detail.configurationItem.configuration.complianceType do registro bruto é mapeado para o campo security_result.summary.
detail.configurationItem.configuration.targetResourceId target.resource.attribute.labels O valor de detail.configurationItem.configuration.targetResourceId do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "configurationItem configuration targetResourceId".
detail.configurationItem.configuration.targetResourceType target.resource.attribute.labels O valor de detail.configurationItem.configuration.targetResourceType do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "configurationItem configuration targetResourceType".
detail.configurationItem.configurationItemCaptureTime _target.asset.attribute.creation_time O valor de detail.configurationItem.configurationItemCaptureTime do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo _target.asset.attribute.creation_time.
detail.configurationItem.configurationItemStatus target.resource.attribute.labels O valor de detail.configurationItem.configurationItemStatus do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "configurationItem configurationItemStatus".
detail.configurationItem.configurationStateId target.resource.attribute.labels O valor de detail.configurationItem.configurationStateId do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "configurationItem configurationStateId".
detail.configurationItem.resourceId target.resource.id O valor de detail.configurationItem.resourceId do registro bruto é mapeado para o campo target.resource.id.
detail.configurationItem.resourceType target.resource.resource_subtype O valor de detail.configurationItem.resourceType do registro bruto é mapeado para o campo target.resource.resource_subtype.
detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn security_result.rule_id O valor de detail.configurationItemDiff.changedProperties.Configuration.configRuleList.1.updatedValue.configRuleArn do registro bruto é mapeado para o campo security_result.rule_id.
detail.eventCategory security_result.category_details O valor de detail.eventCategory do registro bruto é mapeado para o campo security_result.category_details.
detail.eventID metadata.product_log_id O valor de detail.eventID do registro bruto é mapeado para o campo metadata.product_log_id.
detail.eventName additional.fields O valor de detail.eventName do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Nome do evento".
detail.eventSource target.application O valor de detail.eventSource do registro bruto é mapeado para o campo target.application.
detail.eventType additional.fields O valor de detail.eventType do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Tipo de evento".
detail.eventVersion metadata.product_version O valor de detail.eventVersion do registro bruto é mapeado para o campo metadata.product_version.
detail.managementEvent additional.fields O valor de detail.managementEvent do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "detail managementEvent".
detail.messageType target.resource.attribute.labels O valor de detail.messageType do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Tipo de mensagem".
detail.newEvaluationResult.complianceType security_result.summary O valor de detail.newEvaluationResult.complianceType do registro bruto é mapeado para o campo security_result.summary.
detail.newEvaluationResult.configRuleInvokedTime additional.fields O valor de detail.newEvaluationResult.configRuleInvokedTime do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_configRuleInvokedTime".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName additional.fields O valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_configRuleName".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId additional.fields O valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_resourceId".
detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType additional.fields O valor de detail.newEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_resourceType".
detail.newEvaluationResult.resultRecordedTime additional.fields O valor de detail.newEvaluationResult.resultRecordedTime do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "newEvaluationResult_resultRecordedTime".
detail.oldEvaluationResult.configRuleInvokedTime additional.fields O valor de detail.oldEvaluationResult.configRuleInvokedTime do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_configRuleInvokedTime".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName additional.fields O valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.configRuleName do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_configRuleName".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId additional.fields O valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_resourceId".
detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType additional.fields O valor de detail.oldEvaluationResult.evaluationResultIdentifier.evaluationResultQualifier.resourceType do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_resourceType".
detail.oldEvaluationResult.resultRecordedTime additional.fields O valor de detail.oldEvaluationResult.resultRecordedTime do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "oldEvaluationResult_resultRecordedTime".
detail.readOnly additional.fields O valor de detail.readOnly do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "detail readOnly".
detail.recipientAccountId target.resource.attribute.labels O valor de detail.recipientAccountId do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Recipient Account Id".
detail.recordVersion metadata.product_version O valor de detail.recordVersion do registro bruto é mapeado para o campo metadata.product_version.
detail.requestID target.resource.attribute.labels O valor de detail.requestID do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "ID de solicitação de detalhes".
detail.resourceType target.resource.resource_subtype O valor de detail.resourceType do registro bruto é mapeado para o campo target.resource.resource_subtype.
detail.s3Bucket about.resource.name O valor de detail.s3Bucket do registro bruto é mapeado para o campo about.resource.name.
detail.s3ObjectKey target.resource.attribute.labels O valor de detail.s3ObjectKey do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "s3ObjectKey".
detail.userAgent network.http.user_agent O valor de detail.userAgent do registro bruto é mapeado para o campo network.http.user_agent.
detail.userIdentity.accessKeyId target.user.userid O valor de detail.userIdentity.accessKeyId do registro bruto é mapeado para o campo target.user.userid.
detail.userIdentity.accountId metadata.product_deployment_id O valor de detail.userIdentity.accountId do registro bruto é mapeado para o campo metadata.product_deployment_id.
detail.userIdentity.arn target.user.userid O valor de detail.userIdentity.arn do registro bruto é mapeado para o campo target.user.userid.
detail.userIdentity.principalId principal.user.product_object_id O valor de detail.userIdentity.principalId do registro bruto é mapeado para o campo principal.user.product_object_id.
detail.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels O valor de detail.userIdentity.sessionContext.attributes.mfaAuthenticated do registro bruto é adicionado como um par de chave-valor ao principal.user.attribute.labels com a chave "mfaAuthenticated".
detail.userIdentity.sessionContext.sessionIssuer.userName target.user.user_display_name O valor de detail.userIdentity.sessionContext.sessionIssuer.userName do registro bruto é mapeado para o campo target.user.user_display_name.
detail.userIdentity.type principal.resource.type O valor de detail.userIdentity.type do registro bruto é mapeado para o campo principal.resource.type.
detail-type metadata.product_event_type O valor de detail-type do registro bruto é mapeado para o campo metadata.product_event_type.
device principal.asset.product_object_id O valor de device do registro bruto é mapeado para o campo principal.asset.product_object_id.
digestPublicKeyFingerprint target.file.sha1 O valor de digestPublicKeyFingerprint do registro bruto é mapeado para o campo target.file.sha1.
digestS3Bucket principal.resource.name O valor de digestS3Bucket do registro bruto é mapeado para o campo principal.resource.name.
digestS3Object principal.asset.asset_id O valor de digestS3Object do registro bruto é precedido por "S3 Object: " e mapeado para o campo principal.asset.asset_id.
digestSignatureAlgorithm network.tls.cipher O valor de digestSignatureAlgorithm do registro bruto é mapeado para o campo network.tls.cipher.
digestStartTime metadata.event_timestamp O valor de digestStartTime do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp.
dimensions.VolumeId additional.fields O valor de dimensions.VolumeId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "VolumeId".
duration additional.fields O valor de duration do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "duration".
errorCode security_result.rule_name O valor de errorCode do registro bruto é mapeado para o campo security_result.rule_name.
errorMessage security_result.summary O valor de errorMessage do registro bruto é mapeado para o campo security_result.summary.
executionId principal.process.pid O valor de executionId do registro bruto é mapeado para o campo principal.process.pid.
host principal.hostname, principal.ip O valor de host do registro bruto, com hifens substituídos por pontos, é analisado como um endereço IP e mapeado para o campo principal.ip, se bem-sucedido. Caso contrário, ele será mapeado para o campo principal.hostname.
http_verb network.http.method O valor de http_verb do registro bruto é convertido para maiúsculas e mapeado para o campo network.http.method.
kubernetes.container_hash additional.fields O valor de kubernetes.container_hash do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "container_hash".
kubernetes.container_image additional.fields O valor de kubernetes.container_image do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "container_image".
kubernetes.container_name additional.fields O valor de kubernetes.container_name do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "container_name".
kubernetes.docker_id principal.asset_id O valor de kubernetes.docker_id do registro bruto é precedido por "id: " e mapeado para o campo principal.asset_id.
kubernetes.host principal.hostname, principal.ip O valor de kubernetes.host do registro bruto, com hifens substituídos por pontos, é analisado como um endereço IP e mapeado para o campo principal.ip, se bem-sucedido. Caso contrário, ele será mapeado para o campo principal.hostname.
kubernetes.namespace principal.namespace O valor de kubernetes.namespace do registro bruto é mapeado para o campo principal.namespace.
kubernetes.namespace_name principal.namespace O valor de kubernetes.namespace_name do registro bruto é mapeado para o campo principal.namespace.
kubernetes.pod_id principal.asset.asset_id O valor de kubernetes.pod_id do registro bruto é precedido por "pod_id: " e mapeado para o campo principal.asset.asset_id.
kubernetes.pod_name additional.fields O valor de kubernetes.pod_name do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "pod name".
lambdaArn principal.hostname O valor de lambdaArn do registro bruto é mapeado para o campo principal.hostname.
level security_result.severity O valor de level do registro bruto determina o valor de security_result.severity. Se level for "Info", o valor será "INFORMATIONAL". Se level for "Erro", o valor será "ERROR". Se level for "Warning", o valor será "MEDIUM".
log metadata.description O valor de log do registro bruto é mapeado para o campo metadata.description se descr estiver vazio.
logFiles about Para cada elemento na matriz logFiles do registro bruto, um objeto about é criado com file.full_path definido como s3Object, asset.hostname definido como s3Bucket e file.sha256 definido como hashValue.
log_processed.cause security_result.summary O valor de log_processed.cause do registro bruto é mapeado para o campo security_result.summary.
log_processed.ids intermediary.hostname Para cada elemento na matriz log_processed.ids do registro bruto, um objeto intermediary é criado com hostname definido como o valor do elemento.
log_processed.level security_result.severity O valor de log_processed.level do registro bruto é mapeado para o campo security_result.severity.
log_processed.msg metadata.description O valor de log_processed.msg do registro bruto é mapeado para o campo metadata.description.
log_processed.ts metadata.event_timestamp O valor de log_processed.ts do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp.
log_type metadata.log_type O valor de log_type do registro bruto é mapeado para o campo metadata.log_type. Este é um campo personalizado adicionado para fornecer contexto.
logevent.message security_result.description O valor de logevent.message do registro bruto é mapeado para o campo security_result.description. Ele também é analisado usando grok para extrair outros campos.
logGroup security_result.about.resource.name O valor de logGroup do registro bruto é mapeado para o campo security_result.about.resource.name.
logStream security_result.about.resource.attribute.labels O valor de logStream do registro bruto é adicionado como um par de chave-valor ao security_result.about.resource.attribute.labels com a chave "logStream".
memory_used additional.fields O valor de memory_used do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "memory_used".
metric_name additional.fields O valor de metric_name do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "metric_name".
metric_stream_name additional.fields O valor de metric_stream_name do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "metric_stream_name".
namespace principal.namespace O valor de namespace do registro bruto é mapeado para o campo principal.namespace.
owner principal.user.userid O valor de owner do registro bruto é mapeado para o campo principal.user.userid.
parameters additional.fields O valor de parameters do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Parâmetros".
Path principal.process.file.full_path O valor de Path do registro bruto é mapeado para o campo principal.process.file.full_path.
pid principal.process.pid O valor de pid do registro bruto é mapeado para o campo principal.process.pid.
PolicyName security_result.rule_name O valor de PolicyName do registro bruto é mapeado para o campo security_result.rule_name.
prin_host principal.hostname O valor de prin_host do registro bruto é mapeado para o campo principal.hostname.
principal_hostname principal.hostname O valor de principal_hostname do registro bruto é mapeado para o campo principal.hostname.
process principal.application O valor de process do registro bruto é mapeado para o campo principal.application.
rawData additional.fields O valor de rawData do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Dados brutos".
Recommendation security_result.detection_fields O valor de Recommendation do registro bruto é adicionado como um par de chave-valor ao security_result.detection_fields com a chave "Recommendation".
referral_url network.http.referral_url O valor de referral_url do registro bruto é mapeado para o campo network.http.referral_url.
region principal.location.name O valor de region do registro bruto é mapeado para o campo principal.location.name.
resp_code network.http.response_code O valor de resp_code do registro bruto é convertido em um número inteiro e mapeado para o campo network.http.response_code.
resource_url network.http.referral_url O valor de resource_url do registro bruto é mapeado para o campo network.http.referral_url.
ResourceType target.resource.resource_subtype O valor de ResourceType do registro bruto é mapeado para o campo target.resource.resource_subtype.
response_body additional.fields O valor de response_body do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "Corpo da resposta".
Role target.resource.product_object_id O valor de Role do registro bruto é mapeado para o campo target.resource.product_object_id.
s3_bucket_path target.file.full_path O valor de s3_bucket_path do registro bruto é mapeado para o campo target.file.full_path.
sec_result.category security_result.category O valor de sec_result.category é derivado da lógica do analisador. Se descr contiver "a autenticação é necessária", o valor será "AUTH_VIOLATION".
sec_result.description security_result.description O valor de sec_result.description é derivado da lógica do analisador. Ele é definido como o valor de cloudwatchLog, se presente.
sec_result.severity security_result.severity O valor de sec_result.severity é derivado da lógica do analisador. Ele é definido com base no valor de severity ou level.
sec_result.summary security_result.summary O valor de sec_result.summary é derivado da lógica do analisador. Ele é definido como o valor de log_processed.cause ou errorMessage, se presente.
security_result security_result O objeto security_result é construído com base em vários campos e na lógica do analisador.
serverId additional.fields O valor de serverId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "server_id".
severity security_result.severity O valor de severity do registro bruto, convertido em maiúsculas e normalizado, é mapeado para o campo security_result.severity.
Source principal.hostname O valor de Source do registro bruto é mapeado para o campo principal.hostname.
source principal.hostname O valor de source do registro bruto é mapeado para o campo principal.hostname.
SourceIP principal.ip O valor de SourceIP do registro bruto é mapeado para o campo principal.ip.
src_port principal.port Se src_port for "80", ele será convertido em um número inteiro e mapeado para o campo principal.port, e network.application_protocol será definido como "HTTP".
stream additional.fields O valor de stream do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "stream".
subscriptionFilters security_result.about.resource.attribute.labels Para cada elemento na matriz subscriptionFilters do registro bruto, um par de chave-valor é adicionado ao security_result.about.resource.attribute.labels com a chave "subscriptionFilter" e o valor da matriz.
support_contact target.resource.attribute.labels O valor de support_contact do registro bruto é adicionado como um par de chave-valor ao target.resource.attribute.labels com a chave "Contato de suporte".
t_ip target.ip O valor de t_ip do registro bruto, após a remoção de hifens, é analisado como um endereço IP e mapeado para o campo target.ip, se bem-sucedido.
time metadata.event_timestamp O valor de time do registro bruto é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp.
timestamp metadata.event_timestamp O valor de timestamp do registro bruto é convertido em um carimbo de data/hora usando vários formatos e mapeado para o campo metadata.event_timestamp.
tls network.tls.version O valor de tls do registro bruto é mapeado para o campo network.tls.version.
transferDetails.serverId additional.fields O valor de transferDetails.serverId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "server_id".
transferDetails.sessionId network.session_id O valor de transferDetails.sessionId do registro bruto é mapeado para o campo network.session_id.
transferDetails.username principal.user.user_display_name O valor de transferDetails.username do registro bruto é mapeado para o campo principal.user.user_display_name.
ts metadata.event_timestamp O valor de ts do registro bruto, combinado com o fuso horário, se disponível, é convertido em um carimbo de data/hora e mapeado para o campo metadata.event_timestamp.
type metadata.product_event_type O valor de type do registro bruto é mapeado para o campo metadata.product_event_type.
unit additional.fields O valor de unit do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "unit".
url target.url O valor de url do registro bruto é mapeado para o campo target.url.
url_back_to_product metadata.url_back_to_product O valor de url_back_to_product do registro bruto é mapeado para o campo metadata.url_back_to_product.
User principal.user.userid O valor de User do registro bruto é mapeado para o campo principal.user.userid.
user target.user.userid, metadata.event_type, extensions.auth.mechanism Se user estiver presente, metadata.event_type será definido como "USER_LOGIN", extensions.auth.mechanism será definido como "NETWORK" e o valor de user será mapeado para target.user.userid.
value.count additional.fields O valor de value.count do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "count".
value.max additional.fields O valor de value.max do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "max".
value.min additional.fields O valor de value.min do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "min".
value.sum additional.fields O valor de value.sum do registro bruto é convertido em uma string e adicionado como um par de chave-valor ao additional.fields com a chave "sum".
workflowId additional.fields O valor de workflowId do registro bruto é adicionado como um par de chave-valor ao additional.fields com a chave "workflowId".

Alterações

2024-02-12

  • Melhoria:
  • Carimbo de data/hora mapeado para UNIX_MS.

2023-09-02

  • Melhoria:
  • Um "bloco kv" foi adicionado para analisar registros no formato de chave-valor.
  • "SourceIP" foi mapeado para "principal.ip".
  • "prin_host" foi mapeado para "principal.hostname".
  • "User" foi associado a "principal.user.userid".
  • "Ciphers" foi mapeado para "network.tls.client.supported_ciphers".
  • "executionId" foi mapeado para "principal.process.pid".
  • Mapeamos "transferDetails.sessionId" para "network.session_id".
  • "transferDetails.username" foi associado a "principal.user.user_display_name".
  • Mapeados "transferDetails.serverId", "workflowId", "details.input.initialFileLocation.etag", "details.input.initialFileLocation.backingStore", "details.input.initialFileLocation.bucket", "details.input.initialFileLocation.key",
  • "Mode", "Kex" para "additional.fields".
  • "BytesIn" foi mapeado para "network.received_bytes".
  • "Role" foi mapeado para "target.resource.product_object_id".

2023-08-18

  • Melhoria:
  • Adicionamos um padrão Grok para analisar os registros brutos não analisados.

2023-07-07

  • Melhoria:
  • Adição de suporte a registros JSON relacionados a "logEvents".

2022-12-17

  • "CloudType" foi mapeado para "target.resource.attribute.cloud.environment".
  • Mapeamos "AlertId" para "metadata.product_log_id".
  • "ResourceType" foi mapeado para "target.resource.resource_subtype".
  • "ResourceRegion" foi mapeado para "target.location.country_or_region".
  • A "Recomendação" foi mapeada para "security_result.detection_fields".
  • "PolicyName" e "detail.additionalEventData.configRuleName" foram associados a "security_result.rule_name".
  • "detail-type" foi associado a "metadata.product_event_type".
  • Mapeamos "region","detail.awsRegion" para "principal.location.name".
  • "detail.eventSource" foi associado a "target.application".
  • "detail.requestID" foi associado a "target.resource.attribute.labels".
  • "detail.userAgent" foi associado a "network.http.user_agent".
  • "detail.eventVersion" foi mapeado para "metadata.product_version".
  • "detail.userIdentity.accountId" foi associado a "metadata.product_deployment_id".
  • "detail.userIdentity.accessKeyId" foi associado a "target.user.userid".
  • Mapeamos "detail.userIdentity.type" para "principal.resource.type".
  • "detail.userIdentity.principalId" foi associado a "principal.user.product_object_id".
  • Mapeamos "detail.user.arn" para "target.user.userid".
  • Mapeamos "detail.user.sessionContext.sessionIssuer.userName" para "target.user.user_display_name".
  • "detail.user.mfaAuthenticated" foi associado a "principal.user.attribute.labels".
  • "detail.recipientAccountId" foi associado a "target.resource.attribute.labels".
  • Mapeou "detail.managementEvent", "detail.eventType", "detail.readOnly", "detail.eventName", "detail.additionalEventData.notificationJobType", "detail.additionalEventData.managedRuleIdentifier", "duration", "billed_duration", "memory_used" para "additional.fields".
  • "detail.eventCategory" foi associado a "security_result.category_details".
  • "detail.eventID" foi associado a "metadata.product_log_id".
  • "detail.additionalEventData.configRuleArn" foi associado a "security_result.rule_id".
  • "level" foi mapeado para "security_result.severity".
  • "src_port" foi mapeado para "principal.port".
  • "request_id" foi mapeado para "target.resource.attribute.labels".
  • "url" foi mapeado para "target.url".

2022-09-03

  • Melhoria:
  • O grok foi adicionado para analisar os registros recém-ingeridos.
  • "package" foi associado a "event.idm.read_only_udm.principal.process.command_line".
  • Mapeamos "session_id" para "event.idm.read_only_udm.network.session_id".
  • "Network_dir" foi mapeado para "event.idm.read_only_udm.network.direction".
  • "Port" foi mapeado para "event.idm.read_only_udm.target.port".
  • O mapeamento de "digestPublicKeyFingerprint" foi alterado de "additional.fields" para "event.idm.read_only_udm.target.file.sha1".
  • Foram adicionados outros níveis de registro, como "AUDIT", "TRACE", "DEBUG", "NOTICE" e "ERROR" para o mapeamento de gravidade.
  • O valor em "target.ip" foi duplicado para "principal.ip" para definir event_type como "STATUS_UPDATE", reduzindo a porcentagem genérica.
  • Foram adicionadas condições para "event_type" "USER_UNCATEGORIZED", "NETWORK_HTTP", "NETWORK_CONNECTION" e "STATUS_UPADTE" para reduzir a porcentagem genérica.

2022-08-11

  • Correção de bug: "digestS3Bucket" foi remapeado para "principal.resource.name".
  • "kubernetes.pod_name" foi remapeado para "additional.fields".

2022-05-27

  • Melhoria:
  • O valor armazenado em metadata.product_name foi modificado para "AWS CloudWatch" e metadata.vendor_name para "AMAZON".

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.