Incidente de segurança: credencial exposta em repositório
Durante uma revisão, um desenvolvedor encontra uma chave de acesso a um bucket de armazenamento commitada em um repositório interno há oito meses. A chave pertence a uma conta de serviço com permissão de leitura e escrita no bucket que guarda arquivos de propostas de crédito. O repositório é privado, mas tem 60 colaboradores com acesso, e o histórico do Git preserva o segredo. Logs de acesso ao bucket mostram requisições de um IP não cadastrado em três ocasiões no último mês, sempre às 2h. Não há evidência de exfiltração em massa. A equipe sugere apenas remover a chave do commit mais recente e seguir adiante. O bucket não tem versionamento habilitado nem registro de quem leu cada objeto.
1. Avalie a resposta proposta pela equipe e indique a sequência correta de contenção.
Read the worked answer
A resposta é insuficiente. Remover a chave do commit atual não a apaga do histórico, e qualquer pessoa com acesso ao repositório pode recuperá-la. Além disso, a chave já foi usada de um IP desconhecido, o que indica comprometimento provável.
A sequência correta começa pela revogação imediata da credencial e rotação, antes de qualquer limpeza de histórico. Em paralelo, restringir a política do bucket, revisar permissões da conta de serviço e aplicar menor privilégio. Depois, preservar evidências (logs, objetos acessados, metadados) para a investigação, identificar o IP e verificar quais objetos foram lidos ou alterados. Só então limpar o histórico com ferramenta apropriada e invalidar clones, comunicando os 60 colaboradores. Por fim, registrar o incidente, avaliar obrigações de notificação por envolver dados de crédito e implementar varredura de segredos no pipeline.
2. Que controles preventivos você recomendaria para evitar recorrência, considerando o contexto de dados de crédito?
Read the worked answer
Recomenda-se varredura automática de segredos no pré-commit e no pipeline, com bloqueio de merge; uso de cofre de segredos com credenciais de curta duração em vez de chaves estáticas; e princípio do menor privilégio nas contas de serviço, separando leitura e escrita.
No bucket, habilitar versionamento, criptografia, logging de acesso por objeto e políticas que restrinjam origens e horários incomuns. Adotar autenticação baseada em identidade de workload, rotação periódica e alertas para uso de credenciais fora do padrão. Complementarmente, treinamento periódico, revisão de código com foco em segurança e um plano de resposta a incidentes testado. Como se tratam de dados de crédito, mapear base legal e obrigações de notificação, mantendo trilha de auditoria que permita provar quem acessou o quê.