Coletar registros do AWS Control Tower

Compatível com:

Este documento explica como transferir os registros do AWS Control Tower para o Google Security Operations. A AWS Control Tower permite o monitoramento de governança, conformidade e segurança em várias contas da AWS. Essa integração permite analisar registros da AWS Control Tower para melhorar a visibilidade e a postura de segurança.

Antes de começar

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

Configurar o bucket do Amazon S3

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Criar um bucket.
  2. Salve o Nome e a Região do bucket para uso futuro.
  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 futuro.
  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 trilha para criar uma nova trilha.

  5. Especifique as configurações do percurso:

    • Nome da trilha: informe um nome significativo para a trilha (por exemplo, TrilhaControlTower).
    • Aplicar o Trail a todas as regiões: selecione Sim em Aplicar o Trail 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 de dados detalhadas.
    • Opcional: Validação de arquivos de registro: ative essa opção para garantir que os arquivos de registro não sejam adulterados após o armazenamento.
  6. No seletor Evento, escolha registrar Eventos de gerenciamento e Eventos de dados.

Configurar o CloudTrail para enviar registros a um bucket do S3

  1. Acesse o console do IAM da AWS.
  2. Clique em Funções.
  3. Pesquise o papel que o CloudTrail usa AWSServiceRoleForCloudTrail. O papel é criado automaticamente quando você configura o CloudTrail.
  4. Na guia Permissões do papel, clique em Anexar políticas.
  5. Pesquise CloudTrailS3DeliveryPolicy.
  6. Marque a caixa de seleção ao lado da política 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 rastro).

Configurar um feed no Google SecOps para processar registros do AWS Control Tower

  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 Control Tower Logs).
  4. Selecione Amazon S3 como o Tipo de origem.
  5. Selecione AWS Control Tower 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 de UDM Lógica
awsAccountId target.user.group_identifiers O ID da conta da AWS associado 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 é 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 de 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 é armazenado.
logFiles.s3Object about.file.full_path O caminho para o objeto de arquivo de registro 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 de 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 de 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 conjunto 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 usada 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 Se a solicitação usou a MFA.
Records.userIdentity.sessionContext.sessionIssuer.userName principal.user.userid O nome de usuário do 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 nome do evento.
- 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 "INFORMATIVO".

Alterações

2024-03-17

  • Melhoria:
  • Mapeamos "req.userIdentity.arn" e "req.userIdentity.userName" para "target.user.userid".

2023-01-04

  • Melhoria:
  • Variáveis inicializadas para evitar a replicação de dados no loop For.

2022-12-15

  • Melhoria:
  • Mapeou "metadata.vendor_name" para "AWS".
  • Mapeou "metadata.product_name" para "AWS Control Tower".
  • Mapeou "metadata.event_type" para "USER_LOGIN" quando "eventName" é "ConsoleLogin".
  • O "security_result.severity" foi associado a "INFORMATIONAL" quando "eventName" é "ConsoleLogin".

2022-11-17

  • Melhoria:
  • Mapeamos "req.userIdentity.userName" e "req.userIdentity.sessionContext.sessionIssuer.userName" para "target.user.id".
  • Mapeamos "ConsoleLogin:Success" para "security_result.action".
  • As informações da porta mapeada de "sourceIPAddress" para "principal.port".

2022-10-31

  • Parser recém-criado.

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