Coletar registros da AWS Control Tower

Compatível com:

Este documento explica como ingerir registros da AWS Control Tower no Google Security Operations. A AWS Control Tower permite governança, compliance e monitoramento de segurança em várias contas da AWS. Com essa integração, é possível analisar registros da AWS Control Tower para melhorar a visibilidade e a postura de segurança.

Antes de começar

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

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

Configurar o bucket do Amazon S3

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
  2. Salve o Nome e a Região do bucket para uso posterior.
  3. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  4. Selecione o usuário criado.
  5. Selecione a guia Credenciais de segurança.
  6. Clique em Criar chave de acesso na seção Chaves de acesso.
  7. Selecione Serviço de terceiros como o Caso de uso.
  8. Clique em Próxima.
  9. Opcional: adicione uma tag de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
  12. Clique em Concluído.
  13. Selecione a guia Permissões.
  14. Clique em Adicionar permissões na seção Políticas de permissões.
  15. Selecione Adicionar permissões.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise e selecione as políticas AmazonS3FullAccess e CloudWatchLogsFullAccess.
  18. Clique em Próxima.
  19. Clique em Adicionar permissões

Configurar o CloudTrail na AWS Control Tower

  1. Faça login no Console de Gerenciamento da AWS.
  2. Acesse a AWS Control Tower.
  3. Na barra de pesquisa, digite CloudTrail e selecione na lista de serviços.
  4. Clique em Criar rastreamento para criar um novo rastreamento.

  5. Especifique as configurações de rastreamento:

    • Nome do rastreamento: forneça um nome significativo para o rastreamento (por exemplo, ControlTowerTrail).
    • Aplicar o rastreamento a todas as regiões: selecione Sim em Aplicar o rastreamento a todas as regiões.
    • Eventos de gerenciamento: verifique se os eventos de Leitura/gravação estão definidos como Todos.
    • Opcional: Eventos de dados: ative os eventos de dados do S3 e do Lambda para capturar atividades detalhadas.
    • Opcional: Validação de arquivos de registro: ative essa opção para garantir que os arquivos de registro não sejam adulterados depois de armazenados.
  6. No seletor Evento, escolha registrar Eventos de gerenciamento e Eventos de dados.

Como configurar o CloudTrail

  1. Acesse o console do IAM da AWS.
  2. Clique em Funções.
  3. Procure a função que o CloudTrail usa AWSServiceRoleForCloudTrail. Ela é criada automaticamente quando você configura o CloudTrail.
  4. Na guia Permissões da função, clique em Anexar políticas.
  5. Pesquisar por CloudTrailS3DeliveryPolicy.
  6. Marque a caixa de seleção ao lado da política de CloudTrailS3DeliveryPolicy.
  7. Clique em Anexar política.
  8. Acesse o console do CloudTrail da AWS.
  9. Na seção Local de armazenamento, selecione S3 como o destino dos arquivos de registro.
  10. Selecione o bucket do S3 que você criou anteriormente.
  11. Clique em Permitir quando solicitado para conceder ao CloudTrail permissão para gravar registros no bucket escolhido.
  12. Revise as configurações e clique em Criar (ou Salvar alterações se você estiver editando um rastreamento atual).

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 da AWS Control Tower

  1. Clique no pacote Amazon Cloud Platform.
  2. Localize o tipo de registro AWS Control Tower.
  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.

Tabela de mapeamento da UDM

Campo de registro Mapeamento da UDM Lógica
awsAccountId target.user.group_identifiers O ID da conta da AWS associada ao evento.
digestPublicKeyFingerprint target.file.sha1 A impressão digital da chave pública usada para assinar o resumo.
digestPublicKeyFingerprint target.resource.attribute.labels.value A impressão digital da chave pública usada para assinar o resumo.
digestS3Bucket target.resource.name O nome do bucket do S3 em que o resumo está armazenado.
digestS3Object target.file.full_path O caminho para o objeto de resumo no bucket do S3.
digestSignatureAlgorithm network.tls.cipher O algoritmo usado para assinar o resumo.
digestSignatureAlgorithm target.resource.attribute.labels.value O algoritmo usado para assinar o resumo.
digestStartTime metadata.event_timestamp O horário de início do período do resumo. Usado como horário do evento se eventTime não estiver disponível.
eventCategory security_result.category_details A categoria do evento.
eventID metadata.product_log_id O ID exclusivo do evento.
eventName metadata.product_event_type O nome do evento.
eventName security_result.summary O nome do evento, usado para gerar o resumo do resultado de segurança.
eventSource target.application A origem do evento.
eventTime metadata.event_timestamp Hora em que o evento ocorreu
eventType additional.fields.value.string_value O tipo do evento.
logFiles.hashValue about.file.sha256 O hash SHA-256 do arquivo de registro.
logFiles.s3Bucket about.resource.name O nome do bucket do S3 em que o arquivo de registro está armazenado.
logFiles.s3Object about.file.full_path O caminho para o objeto do arquivo de registros no bucket do S3.
previousDigestHashValue target.file.sha256 O hash SHA-256 do resumo anterior.
recipientAccountId target.resource.attribute.labels.value O ID da conta da AWS do destinatário do evento.
Records.awsRegion principal.location.name A região da AWS em que o evento ocorreu.
Records.errorCode security_result.rule_id O código do erro, se houver, associado à solicitação.
Records.errorMessage security_result.description A mensagem de erro, se houver, associada à solicitação.
Records.eventCategory security_result.category_details A categoria do evento.
Records.eventID metadata.product_log_id O ID exclusivo do evento.
Records.eventName metadata.product_event_type O nome do evento.
Records.eventName security_result.summary O nome do evento, usado para gerar o resumo do resultado de segurança.
Records.eventSource target.application A origem do evento.
Records.eventTime metadata.event_timestamp Hora em que o evento ocorreu
Records.eventType additional.fields.value.string_value O tipo do evento.
Records.requestID target.resource.attribute.labels.value O ID da solicitação.
Records.requestParameters.groupName target.group.group_display_name O nome do grupo, se houver, associado à solicitação.
Records.requestParameters.userName src.user.userid O nome do usuário, se houver, associado à solicitação.
Records.requestParameters.userName src.user.user_display_name O nome do usuário, se houver, associado à solicitação.
Records.responseElements.ConsoleLogin security_action O resultado da tentativa de login no console.
Records.responseElements.ConsoleLogin security_result.summary O resultado da tentativa de login no console, usado para gerar o resumo dos resultados de segurança.
Records.sourceIPAddress principal.hostname O endereço IP do principal. Usado como nome do host se não for um IP válido.
Records.sourceIPAddress principal.ip O endereço IP do principal.
Records.tlsDetails.cipherSuite network.tls.cipher O pacote de criptografia usado para a conexão TLS.
Records.tlsDetails.tlsVersion network.tls.version A versão do TLS usada para a conexão.
Records.userAgent network.http.user_agent O user agent da solicitação.
Records.userIdentity.accessKeyId additional.fields.value.string_value O ID da chave de acesso usado para a solicitação.
Records.userIdentity.accountId principal.user.group_identifiers O ID da conta da AWS do usuário.
Records.userIdentity.arn principal.user.attribute.labels.value O ARN do usuário.
Records.userIdentity.arn target.user.userid O ARN do usuário. Usado como userid se userName não estiver disponível.
Records.userIdentity.principalId principal.user.product_object_id O ID principal do usuário.
Records.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels.value Indica se a MFA foi usada na solicitação.
Records.userIdentity.sessionContext.sessionIssuer.userName principal.user.userid O nome de usuário que emitiu a sessão.
Records.userIdentity.type principal.resource.type O tipo de identidade usado para a solicitação.
Records.userIdentity.userName target.user.userid O nome de usuário.
- extensions.auth.mechanism Defina como "REMOTE".
- metadata.event_type Defina como "STATUS_UPDATE", "USER_RESOURCE_ACCESS", "USER_LOGIN" ou "GENERIC_EVENT" com base no eventName.
- metadata.log_type Defina como "AWS_CONTROL_TOWER".
- metadata.product_name Defina como "AWS Control Tower".
- metadata.vendor_name Defina como "AWS".
- principal.asset.attribute.cloud.environment Defina como "AMAZON_WEB_SERVICES".
- security_result.action Defina como "ALLOW" ou "BLOCK" com base no errorCode.
- security_result.severity Defina como "INFORMATIONAL".

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