Recolha registos de acesso ao servidor do AWS S3

Compatível com:

Este documento explica como recolher registos de acesso ao servidor do AWS S3 configurando um feed do Google Security Operations. O analisador extrai campos através de padrões grok, processa potenciais entradas JSON e mapeia os campos extraídos para o UDM. Executa transformações de dados, conversões de tipos e lógica condicional com base na presença e nos valores de campos específicos para garantir uma representação precisa do UDM.

Antes de começar

Certifique-se de que cumpre os seguintes pré-requisitos:

  • Instância do Google SecOps
  • Acesso privilegiado ao AWS

Como configurar o registo de acesso ao servidor AWS S3

O Google SecOps suporta a recolha de registos através do Amazon SQS com o Amazon S3.

  1. Inicie sessão na consola de gestão da AWS.
  2. Aceda à consola do Amazon S3.
  3. Aceda a Amazon S3 > Buckets.
  4. Selecione um contentor existente ou crie um novo.
  5. Clique em Propriedades.
  6. Na secção Registo de acesso ao servidor, clique em Editar.
  7. Selecione Ativar.
  8. No campo Bucket de destino, introduza um nome para o novo bucket para o qual enviar os objetos de registo ou selecione um bucket existente como destino.
  1. Clique em Guardar alterações.
  2. Para criar a fila SQS para o contentor S3, configure uma instância do Amazon SQS com o armazenamento S3. Para mais informações, consulte o artigo Configurar um contentor para notificações (tópico do SNS ou fila do SQS).

Com base no serviço e na região, identifique os pontos finais para a conetividade consultando a seguinte documentação da AWS:

Configure feeds

Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:

  • Definições do SIEM > Feeds > Adicionar novo
  • Content Hub > Pacotes de conteúdo > Começar

Como configurar o feed de acesso ao serviço AWS S3

  1. Clique no pacote Amazon Cloud Platform.
  2. Localize o tipo de registo Acesso ao serviço AWS S3.
  3. O Google SecOps suporta a recolha de registos através de um ID da chave de acesso e de um método secreto. Para criar o ID da chave de acesso e o segredo, consulte o artigo Configure a autenticação de ferramentas com a AWS.
  4. Especifique os valores nos seguintes campos.

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

    • Idade máxima do ficheiro: inclua ficheiros modificados no último número de dias. A predefinição é 180 dias.

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

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

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Espaço de nomes do recurso: espaço de nomes associado ao feed.
    • Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
  5. Clique em Criar feed.

Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
aclRequired target.resource.attribute.labels.key: "aclRequired"
target.resource.attribute.labels.value: Valor de aclRequired
Mapeado diretamente a partir do campo de registo não processado aclRequired.
authenticationtype extensions.auth.auth_details Mapeado diretamente a partir do campo de registo não processado authenticationtype.
bucket target.resource.name Mapeado diretamente a partir do campo de registo não processado bucket.
bucket target.resource.resource_type: "STORAGE_BUCKET" O analisador define o resource_type como "STORAGE_BUCKET" se o campo bucket estiver presente.
bucketowner target.resource.product_object_id Mapeado diretamente a partir do campo de registo não processado bucketowner.
bytes_sent network.sent_bytes Mapeado diretamente a partir do campo de registo não processado bytes_sent após a conversão para um número inteiro não assinado e a substituição de "-" por "0".
ciphersuite network.application_protocol: "HTTPS" O analisador define o application_protocol como "HTTPS" se o campo ciphersuite estiver presente.
ciphersuite network.tls.cipher Mapeado diretamente a partir do campo de registo não processado ciphersuite.
errorcode security_result.action_details Mapeado diretamente a partir do campo de registo não processado errorcode.
errorcode security_result.action: "BLOCK" O analisador define o elemento action como "BLOCK" se o campo errorcode contiver "AccessDenied" (não é sensível a maiúsculas e minúsculas).
hostheader target.hostname Extraído do campo de registo não processado hostheader, removendo potencialmente o número da porta.
hostheader target.port Extraído do campo de registo não processado hostheader se estiver presente um número de porta.
hostid target.resource.attribute.labels.key: "ID do pedido alargado do S3"
target.resource.attribute.labels.value: valor de hostid
Mapeado diretamente a partir do campo de registo não processado hostid.
http_capture network.http.method O método HTTP é extraído do campo http_capture.
http_capture network.http.version A versão HTTP é extraída do campo http_capture.
http_capture target.url O URL de destino é construído com hostheader e http_request_uri (extraídos de http_capture), com o prefixo "http://" ou "https://" com base na presença de ciphersuite.
httpstatus network.http.response_code Mapeado diretamente a partir do campo de registo não processado httpstatus após a conversão para um número inteiro.
object_version_id target.resource.product_object_id Mapeado diretamente a partir do campo de registo não processado object_version_id.
objectsize target.file.size Mapeado diretamente a partir do campo de registo não processado objectsize após a conversão para um número inteiro não assinado e a substituição de "-" por "0".
operation metadata.product_event_type Mapeado diretamente a partir do campo de registo não processado operation.
referrer network.http.referral_url Mapeado diretamente a partir do campo de registo não processado referrer após a remoção das aspas.
remoteip metadata.event_type: "USER_RESOURCE_ACCESS" O analisador define o event_type como "USER_RESOURCE_ACCESS" se o campo remoteip estiver vazio.
remoteip principal.ip Mapeado diretamente a partir do campo de registo não processado remoteip.
requester target.resource.attribute.labels.key: "Access Point ARN"
target.resource.attribute.labels.value: valor de requester
Mapeado diretamente a partir do campo de registo não processado requester.
requester_user principal.user.userid Mapeado diretamente a partir do campo de registo não processado requester_user.
requestid network.session_id Mapeado diretamente a partir do campo de registo não processado requestid.
request_time_ms network.session_duration.nanos Mapeado diretamente a partir do campo de registo não processado request_time_ms após a conversão para um número inteiro, a substituição de "-" por "0" e o preenchimento com zeros para representar nanosegundos.
signatureversion target.resource.attribute.labels.key: "Signature Version"
target.resource.attribute.labels.value: valor de signatureversion
Mapeado diretamente a partir do campo de registo não processado signatureversion.
time metadata.event_timestamp Analisado a partir do campo de registo não processado time e convertido numa data/hora.
tlsVersion network.tls.version Mapeado diretamente a partir do campo de registo não processado tlsVersion.
useragent network.http.user_agent Mapeado diretamente a partir do campo de registo não processado useragent após a remoção das aspas.
(Lógica do analisador) metadata.event_type: "NETWORK_HTTP" O analisador define o event_type predefinido como "NETWORK_HTTP".
(Lógica do analisador) metadata.log_type: "AWS_S3_SERVER_ACCESS" O analisador define o log_type como "AWS_S3_SERVER_ACCESS".
(Lógica do analisador) metadata.product_name: "AWS S3 Server Access" O analisador define o product_name como "Acesso ao servidor AWS S3".
(Lógica do analisador) metadata.product_version: "HTTP/http_version" O analisador define o product_version através do http_version extraído.
(Lógica do analisador) metadata.vendor_name: "AMAZON" O analisador define o vendor_name como "AMAZON".
(Lógica do analisador) network.application_protocol: "HTTP" O analisador define o application_protocol como "HTTP" se o campo ciphersuite não estiver presente.
(Lógica do analisador) timestamp O analisador define o timestamp do evento para a hora atual quando o evento é processado.

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