Coletar registros de acesso ao servidor do AWS S3

Compatível com:

Neste documento, explicamos como coletar registros de acesso ao servidor do AWS S3 configurando um feed do Google Security Operations. O analisador extrai campos usando padrões grok, processa possíveis entradas JSON e mapeia os campos extraídos para a UDM. Ele realiza transformações de dados, conversões de tipo 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

Verifique se você atende aos seguintes pré-requisitos:

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

Como configurar o registro de acesso ao servidor do AWS S3

O Google SecOps é compatível com a coleta de registros usando o Amazon S3 pelo Amazon SQS.

  1. Faça login no console de Gerenciamento da AWS.
  2. Acesse o console do Amazon S3.
  3. Acesse Amazon S3 > Buckets.
  4. Selecione um bucket ou crie um.
  5. Clique em Properties.
  6. Na seção Registro de acesso ao servidor, clique em Editar.
  7. Selecione Ativar.
  8. No campo Bucket de destino, insira um nome para o novo bucket em que os objetos de registro de eventos serão enviados ou selecione um bucket existente como destino.
  1. Clique em Salvar alterações.
  2. Para criar a fila do SQS para o bucket do S3, configure uma instância do Amazon SQS com o armazenamento do S3. Para mais informações, consulte Configurar um bucket para notificações (tópico do SNS ou fila do SQS).

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
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em Configurações do SIEM > Feeds

Para configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.

Para configurar um único feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. Na lista Tipo de origem, selecione Amazon S3 ou Amazon SQS.
  5. Na lista Tipo de registro, selecione Acesso ao servidor AWS S3.
  6. Clique em Próxima.
  7. O Google SecOps oferece suporte à coleta de registros usando um ID de chave de acesso e um método secreto. Para criar o ID da chave de acesso e o secret, consulte Configurar a autenticação da ferramenta com a AWS.
  8. Com base na configuração de acesso ao servidor do AWS S3 que você criou, especifique valores para os parâmetros de entrada:
    • Se você estiver usando o Amazon S3, especifique valores para os seguintes campos:
      • Região
      • URI do S3
      • URI é um
      • Opção de exclusão da origem
      • ID da chave de acesso
      • Chave de acesso secreta
    • Se você estiver usando o Amazon SQS, especifique valores para os seguintes campos:
      • Região
      • Nome da fila
      • Número da conta
      • ID da chave de acesso à fila
      • Chave de acesso secreta da fila
      • Opção de exclusão da origem
  9. Clique em Próximo e, em seguida, Enviar.

Configurar feeds na Central de conteúdo

É possível configurar o feed de ingestão no Google SecOps usando o Amazon SQS (preferencial) ou o Amazon S3.

Especifique valores para os seguintes campos:

  • Região: região em que o bucket do S3 ou a fila do SQS está hospedada.
  • Nome da fila: nome da fila do SQS de onde os dados de registro são lidos.
  • Número da conta: número da conta proprietária da fila do SQS.
  • ID da chave de acesso à fila: ID da chave de acesso à conta de 20 caracteres. Por exemplo, AKIAOSFOODNN7EXAMPLE.
  • Chave de acesso secreta da fila: chave de acesso secreta de 40 caracteres. Por exemplo, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.
  • Opção de exclusão da origem: opção para excluir arquivos e diretórios após a transferência dos dados.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
aclRequired target.resource.attribute.labels.key: "aclRequired"
target.resource.attribute.labels.value: valor de aclRequired
Mapeado diretamente do campo de registro bruto aclRequired.
authenticationtype extensions.auth.auth_details Mapeado diretamente do campo de registro bruto authenticationtype.
bucket target.resource.name Mapeado diretamente do campo de registro bruto bucket.
bucket target.resource.resource_type: "STORAGE_BUCKET" O analisador define resource_type como "STORAGE_BUCKET" se o campo bucket estiver presente.
bucketowner target.resource.product_object_id Mapeado diretamente do campo de registro bruto bucketowner.
bytes_sent network.sent_bytes Mapeado diretamente do campo de registro bruto bytes_sent depois de convertê-lo em um número inteiro sem sinal e substituir "-" por "0".
ciphersuite network.application_protocol: "HTTPS" O analisador define application_protocol como "HTTPS" se o campo ciphersuite estiver presente.
ciphersuite network.tls.cipher Mapeado diretamente do campo de registro bruto ciphersuite.
errorcode security_result.action_details Mapeado diretamente do campo de registro bruto errorcode.
errorcode security_result.action: "BLOCK" O analisador define action como "BLOCK" se o campo errorcode contiver "AccessDenied" (sem diferenciar maiúsculas e minúsculas).
hostheader target.hostname Extraído do campo de registro bruto hostheader, removendo potencialmente o número da porta.
hostheader target.port Extraído do campo de registro bruto hostheader se um número de porta estiver presente.
hostid target.resource.attribute.labels.key: "ID da solicitação estendida do S3"
target.resource.attribute.labels.value: valor de hostid
Mapeado diretamente do campo de registro bruto 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 é criado usando 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 do campo de registro bruto httpstatus depois de convertido em um número inteiro.
object_version_id target.resource.product_object_id Mapeado diretamente do campo de registro bruto object_version_id.
objectsize target.file.size Mapeado diretamente do campo de registro bruto objectsize depois de convertê-lo em um número inteiro sem sinal e substituir "-" por "0".
operation metadata.product_event_type Mapeado diretamente do campo de registro bruto operation.
referrer network.http.referral_url Mapeado diretamente do campo de registro bruto 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 do campo de registro bruto remoteip.
requester target.resource.attribute.labels.key: "ARN do ponto de acesso"
target.resource.attribute.labels.value: valor de requester
Mapeado diretamente do campo de registro bruto requester.
requester_user principal.user.userid Mapeado diretamente do campo de registro bruto requester_user.
requestid network.session_id Mapeado diretamente do campo de registro bruto requestid.
request_time_ms network.session_duration.nanos Mapeado diretamente do campo de registro bruto request_time_ms após a conversão para um número inteiro, substituindo "-" por "0" e adicionando zeros para representar nanossegundos.
signatureversion target.resource.attribute.labels.key: "Signature Version"
target.resource.attribute.labels.value: Value of signatureversion
Mapeado diretamente do campo de registro bruto signatureversion.
time metadata.event_timestamp Analisado do campo de registro bruto time e convertido em um carimbo de data/hora.
tlsVersion network.tls.version Mapeado diretamente do campo de registro bruto tlsVersion.
useragent network.http.user_agent Mapeado diretamente do campo de registro bruto useragent após a remoção das aspas.
(Lógica do analisador) metadata.event_type: "NETWORK_HTTP" O analisador define o event_type padrão como "NETWORK_HTTP".
(Lógica do analisador) metadata.log_type: "AWS_S3_SERVER_ACCESS" O analisador define log_type como "AWS_S3_SERVER_ACCESS".
(Lógica do analisador) metadata.product_name: "Acesso ao servidor do AWS S3" O analisador define o product_name como "Acesso ao servidor do AWS S3".
(Lógica do analisador) metadata.product_version: "HTTP/http_version" O analisador sintático define o product_version usando o http_version extraído.
(Lógica do analisador) metadata.vendor_name: "AMAZON" O analisador define vendor_name como "AMAZON".
(Lógica do analisador) network.application_protocol: "HTTP" O analisador define application_protocol como "HTTP" se o campo ciphersuite não estiver presente.
(Lógica do analisador) timestamp O analisador define o evento timestamp como a hora atual quando o evento é processado.

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