Coletar registros do Amazon CloudFront

Compatível com:

Neste documento, descrevemos como coletar registros do Amazon CloudFront configurando um feed do Google Security Operations.

Para mais informações, consulte Visão geral da ingestão de dados no Google Security Operations.

Um rótulo de ingestão identifica o analisador que normaliza dados de registro brutos para o formato UDM estruturado. As informações neste documento se aplicam ao analisador com o rótulo de ingestão AWS_CLOUDFRONT.

Antes de começar

Verifique se o bucket do Amazon S3 foi criado. Para mais informações, consulte Criar seu primeiro bucket do S3.

Configurar o Amazon CloudFront

  1. Faça login no console de Gerenciamento da AWS.
  2. Acesse o console do Amazon S3 e crie o bucket.
  3. Clique em Ativado para ativar a geração de registros.
  4. No campo Bucket para registros, especifique o nome do bucket do Amazon S3.
  5. No campo Prefixo do registro, especifique um prefixo opcional.
  6. Depois que os arquivos de registros forem armazenados no bucket do Amazon S3, crie uma fila do SQS e anexe-a ao bucket do Amazon S3.

Identificar os endpoints para conectividade

Verifique as políticas de usuário do Identity and Access Management e de chaves do KMS necessárias para S3, SQS e KMS.

Com base no serviço e na região, identifique os endpoints de conectividade consultando a seguinte documentação da AWS:

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds > Adicionar novo
  • Central de conteúdo > Pacotes de conteúdo > Começar

Como configurar o feed do AWS CloudFront

  1. Clique no pacote Amazon Cloud Platform.
  2. Localize o tipo de registro AWS CloudFront.
  3. Especifique os valores nos campos a seguir.

    • Tipo de origem: Amazon SQS V2
    • Nome da fila: o nome da fila do SQS de onde ler.
    • URI do S3: o URI do bucket.
      • s3://your-log-bucket-name/
        • Substitua your-log-bucket-name pelo nome real do seu bucket do S3.
    • Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.

    • Idade máxima do arquivo: inclui arquivos modificados no último número de dias. O padrão é de 180 dias.

    • ID da chave de acesso à fila do SQS: uma chave de acesso à conta que é uma string alfanumérica de 20 caracteres.

    • Chave de acesso secreta da fila do SQS: uma chave de acesso da conta que é uma string alfanumérica de 40 caracteres.

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Namespace do recurso: namespace associado ao feed.
    • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
  4. Clique em Criar feed.

Para mais informações sobre como configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.

Referência de mapeamento de campos

Esse analisador extrai campos dos registros do AWS CloudFront nos formatos SYSLOG ou JSON, normalizando-os para a UDM. Ele usa padrões grok para analisar strings de mensagens, processa várias transformações de dados (por exemplo, conversões de tipo, renomeação) e enriquece os dados com contexto adicional, como análise de user agent e identificação de protocolo de aplicativo.

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
c-ip principal.ip Mapeado diretamente. Também mapeado para principal.asset.ip.
c-port principal.port Mapeado diretamente.
cs(Cookie) additional.fields[].key: "cookie"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente se cs(Cookie) estiver presente e agent não contiver "://".
cs(Host) principal.hostname Mapeado diretamente. Também mapeado para principal.asset.hostname. Usado na construção do target.url se outros campos de URL não estiverem disponíveis.
cs(Referer) network.http.referral_url Mapeado diretamente.
cs(User-Agent) network.http.user_agent Mapeado diretamente. Também mapeado para network.http.parsed_user_agent e analisado em seus componentes se não contiver "://".
cs-bytes network.sent_bytes Mapeado diretamente. Convertido para número inteiro sem sinal.
cs-method network.http.method Mapeado diretamente.
cs-protocol network.application_protocol Mapeado após a conversão para maiúsculas. Se o valor não for reconhecido como um protocolo de aplicativo padrão e cs-protocol-version contiver "HTTP", network.application_protocol será definido como "HTTP".
dport target.port Mapeado diretamente. Convertido em número inteiro.
edge_location principal.location.name Mapeado diretamente.
fle-encrypted-fields additional.fields[].key: "fle-encrypted-fields"
additional.fields[].value.string_value: mapeamento direto.
Mapeado condicionalmente, se presente.
fle-status additional.fields[].key: "fle-status"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
host principal.hostname, principal.asset.hostname Mapeado diretamente.
id principal.asset_id Mapeado diretamente com o prefixo "id: ".
ip target.ip, target.asset.ip Mapeado diretamente.
log_id metadata.product_log_id Mapeado diretamente.
resource additional.fields[].key: "resource"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
result_type additional.fields[].key: "result_type"
additional.fields[].value.string_value: mapeamento direto.
Mapeado condicionalmente, se presente.
sc-bytes network.received_bytes Mapeado diretamente. Convertido para número inteiro sem sinal.
sc-content-len additional.fields[].key: "sc-content-len"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
sc-content-type additional.fields[].key: "sc-content-type"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
sc-status network.http.response_code Mapeado diretamente. Convertido em número inteiro.
ssl-cipher network.tls.cipher Mapeado diretamente.
ssl-protocol network.tls.version Mapeado diretamente.
timestamp metadata.event_timestamp Analisados e mapeados, se disponíveis. Diferentes formatos são aceitos.
ts metadata.event_timestamp Analisados e mapeados, se disponíveis. O formato ISO8601 é esperado.
url target.url Mapeado diretamente.
url_back_to_product metadata.url_back_to_product Mapeado diretamente.
x-edge-detailed-result-type additional.fields[].key: "x-edge-detailed-result-type"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
x-edge-location additional.fields[].key: "x-edge-location"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
x-edge-request-id additional.fields[].key: "x-edge-request-id"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
x-edge-response-result-type additional.fields[].key: "x-edge-response-result-type"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
x-edge-result-type additional.fields[].key: "x-edge-result-type"
additional.fields[].value.string_value: mapeado diretamente.
Mapeado condicionalmente, se presente.
x-forwarded-for target.ip, target.asset.ip Mapeado diretamente. Se houver vários IPs (separados por vírgulas), eles serão divididos e mesclados nos respectivos campos da UDM.
x-host-header target.hostname, target.asset.hostname Mapeado diretamente. Defina como "NETWORK_HTTP" se ip ou x-forwarded-for e http_verb estiverem presentes. Caso contrário, defina como "GENERIC_EVENT". Codificado como "AWS_CLOUDFRONT". Codificado como "AWS CloudFront". Codificado como "AMAZON". O tempo de ingestão da entrada de registro no Google Security Operations.

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