Coletar registros da AWS Control Tower
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
- Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
- Salve o Nome e a Região do bucket para uso posterior.
- Crie um usuário seguindo este guia: Como criar um usuário do IAM.
- Selecione o usuário criado.
- Selecione a guia Credenciais de segurança.
- Clique em Criar chave de acesso na seção Chaves de acesso.
- Selecione Serviço de terceiros como o Caso de uso.
- Clique em Próxima.
- Opcional: adicione uma tag de descrição.
- Clique em Criar chave de acesso.
- Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
- Clique em Concluído.
- Selecione a guia Permissões.
- Clique em Adicionar permissões na seção Políticas de permissões.
- Selecione Adicionar permissões.
- Selecione Anexar políticas diretamente.
- Pesquise e selecione as políticas AmazonS3FullAccess e CloudWatchLogsFullAccess.
- Clique em Próxima.
- Clique em Adicionar permissões
Configurar o CloudTrail na AWS Control Tower
- Faça login no Console de Gerenciamento da AWS.
- Acesse a AWS Control Tower.
- Na barra de pesquisa, digite CloudTrail e selecione na lista de serviços.
Clique em Criar rastreamento para criar um novo rastreamento.
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.
No seletor Evento, escolha registrar Eventos de gerenciamento e Eventos de dados.
Como configurar o CloudTrail
- Acesse o console do IAM da AWS.
- Clique em Funções.
- Procure a função que o CloudTrail usa
AWSServiceRoleForCloudTrail
. Ela é criada automaticamente quando você configura o CloudTrail. - Na guia Permissões da função, clique em Anexar políticas.
- Pesquisar por
CloudTrailS3DeliveryPolicy
. - Marque a caixa de seleção ao lado da política de
CloudTrailS3DeliveryPolicy
. - Clique em Anexar política.
- Acesse o console do CloudTrail da AWS.
- Na seção Local de armazenamento, selecione S3 como o destino dos arquivos de registro.
- Selecione o bucket do S3 que você criou anteriormente.
- Clique em Permitir quando solicitado para conceder ao CloudTrail permissão para gravar registros no bucket escolhido.
- 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
- 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:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Registros da AWS Control Tower).
- Selecione Amazon S3 como o Tipo de origem.
- Selecione AWS Control Tower como o Tipo de registro.
- Clique em Próxima.
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 seu bucket do S3.
- Substitua
- URI é um: selecione Diretório ou Diretório que inclui subdiretórios, dependendo da estrutura do bucket.
Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
ID da chave de acesso: a chave de acesso do usuário com permissões para ler do bucket do S3.
Chave de acesso secreta: a chave secreta do usuário com permissões para ler do bucket do S3.
Namespace do recurso: o namespace do recurso.
Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed.
Clique em Próxima.
Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
Configurar feeds na Central de conteúdo
Especifique valores para os seguintes campos:
- 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 seu bucket do S3.
- Substitua
- URI é um: selecione Diretório ou Diretório que inclui subdiretórios, dependendo da estrutura do bucket.
- Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
ID da chave de acesso: a chave de acesso do usuário com permissões para ler do bucket do S3.
Chave de acesso secreta: a chave secreta do usuário com permissões para ler do bucket do S3.
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 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 | Definido 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.