Coletar registros do AWS Control Tower
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
- Crie um bucket do Amazon S3 seguindo este guia do usuário: Criar um bucket.
- Salve o Nome e a Região do bucket para uso futuro.
- 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 futuro.
- 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 trilha para criar uma nova trilha.
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.
No seletor Evento, escolha registrar Eventos de gerenciamento e Eventos de dados.
Configurar o CloudTrail para enviar registros a um bucket do S3
- Acesse o console do IAM da AWS.
- Clique em Funções.
- Pesquise o papel que o CloudTrail usa
AWSServiceRoleForCloudTrail
. O papel é criado automaticamente quando você configura o CloudTrail. - Na guia Permissões do papel, clique em Anexar políticas.
- Pesquise
CloudTrailS3DeliveryPolicy
. - Marque a caixa de seleção ao lado da política
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 rastro).
Configurar um feed no Google SecOps para processar registros do AWS Control Tower
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed (por exemplo, AWS Control Tower Logs).
- 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 bucket.
- Substitua
- 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.
Clique em Próxima.
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.