Anomalia no CloudTrail: Correlacionando uma Cadeia de Comprometimento de Credencial
O desafio
Estes são eventos do CloudTrail da sua conta AWS. Uma chave de acesso falha ao fazer login algumas vezes, depois de repente assume um papel privilegiado e começa a ler objetos do bucket de finanças a partir de uma região que você nunca usa. As outras chaves estão fazendo seu trabalho normal. Correlacione a cadeia - logins falhos, depois AssumeRole, depois GetObject - e envie o id da chave de acesso comprometida.
O que você vai aprender
- Ler eventos do CloudTrail como uma linha do tempo por credencial, em vez de uma lista plana
- Correlacionar falhas de ConsoleLogin, AssumeRole e GetObject em uma única cadeia de ataque
- Usar a região como sinal de anomalia para uso indevido de credenciais
- Diferenciar uma chave comprometida de chaves realizando trabalho normal e de propósito único
- Atribuir uma intrusão na nuvem a um id de chave de acesso específico
Habilidades testadas
Pré-requisitos
- Conceitos básicos de IAM da AWS (chaves de acesso, roles, AssumeRole)
- Familiaridade com nomes de eventos do S3 e CloudTrail
- Entendimento sobre regiões da AWS
Como funciona
Na nuvem, um ataque raramente aparece como um único evento ruim. Uma credencial roubada é usada em sequência: entrar, escalar privilégios, depois alcançar os dados. O CloudTrail registra cada uma dessas etapas como um evento separado, então a habilidade é parar de ler linhas isoladamente e começar a ler a linha do tempo de um único principal - aqui, uma accessKey - através de vários tipos de evento e campos.
Siga AKIA9XPLOIT77 em ordem cronológica e toda a intrusão se encaixa: três falhas de ConsoleLogin (tentativa de adivinhação de senha), depois um sucesso de ConsoleLogin, depois um AssumeRole imediato em role/FinanceAdmin (escalada de privilégios), depois uma sequência sustentada de chamadas GetObject extraindo arquivos de s3://finance-bucket - folha de pagamento, contas bancárias, transferências eletrônicas, registros fiscais. Dois sinais extras confirmam isso: o alvo é um bucket sensível, e todos os eventos dessa chave vêm de ap-south-1, uma região que a conta nunca usa em nenhuma outra circunstância. As chaves benignas fazem, cada uma, um trabalho consistente em eu-west-1.
É assim que a correlação d4 se parece: nenhuma coluna isolada dá a resposta. event:AssumeRole sozinho mostra uma escalada, event:GetObject sozinho mostra leituras, e a região sozinha mostra uma anomalia - mas somente ao unir a mesma chave de acesso em todos eles é que o comprometimento se torna inegável.
Erros comuns
- Julgar um evento isolado. Um login falho ou um GetObject isolado é normal; a resposta é a chave cuja sequência completa forma uma cadeia de ataque.
- Ignorar a coluna de região. A região anômala
ap-south-1é uma forte confirmação que falta às chaves benignas emeu-west-1. - Escolher o role em vez da chave. O
role/FinanceAdminfoi abusado, mas a pergunta pede o id da chave de acesso que o assumiu. - Culpar AKIA4FINANCE01 por acessar o S3. Essa chave lê seu próprio bucket de relatórios na região normal - ela nunca escala privilégios e nunca acessa o finance-bucket a partir de uma região estrangeira.
Como se proteger
O comprometimento de credenciais na nuvem é detectável porque a cadeia de ataque é ruidosa no CloudTrail. Construa detecções com base na mesma correlação que você acabou de fazer manualmente.
- Alerte sobre falhas repetidas de
ConsoleLoginseguidas de um sucesso para o mesmo principal. - Alerte quando uma chave chamar
AssumeRoleem um role privilegiado que ela nunca usou, especialmente a partir de uma nova região. - Exija MFA nos logins de console e rotacione ou reduza o escopo de chaves de acesso de longa duração.
- Sinalize acessos a buckets sensíveis como o
finance-bucketa partir de qualquer região fora da sua região normal de operação.