Detectando abuso no control plane da AWS de forma acionável utilizando o Det{R}ails
Quando falamos em monitoramento de ambientes AWS, em especial da parte do control plane, certamente a chave são os logs de CloudTrail. Sendo mais claro, quando falamos de control plane estamos nos referindo às ações tomadas usando a API da AWS, como por exemplo: criar um usuário de IAM, aumentar um privilégio, subir uma instância, dar acesso a uma base de dados, liberar um acesso a determinada porta de rede entre outras centenas de opções possíveis.
O que caracteriza os logs de CloudTrail como fonte de dados é a sua granularidade, consistindo de eventos estruturados em formato JSON e com diversos campos complexos e aninhados. Isto é necessário para poder representar todas as informações extras para um evento ser mais acionável. Afinal de contas, o control plane da AWS possui por mais de 7.400 ações, divididas entre os mais de 200 serviços. Cada uma destas ações são a grosso modo operações executadas na API da AWS, e cada ação envolve parâmetros diferentes com os tipos mais variados de dados.
O controle de acesso ao control plane envolve autenticação via usuário e senha (acesso via Console de Gerenciamento Web) ou uma chave com seu segredo para utilizar ferramentas que utilizam SDK ou via AWS CLI. Existem diversas maneiras de se obter acesso a credenciais de acesso, sendo algumas lícitas e outras associadas ao abuso de alguma falha. Entre alguns meios podemos citar:
- Portal / API (na criação);
- Abuso de aplicações na nuvem;
- EC2 Instance Metadata Service;
- Vazamento de código
- Endpoints usados pelos times com acesso legítimo (.aws/credentials)
- Terceiros como soluções SaaS, MSPs ou consultorias (Cross Account Access)
- Configuração de Ferramentas (CI/CD, Scanners …)
Uma vez que um atacante consiga acesso a uma chave ele poderá realizar diversas técnicas de ataque, tais como:
- Enumeração (usuários, privilégios, serviços)
- Escalação de privilégios
- Movimentação lateral
- Exploração
- Persistência
- Exfiltração
- Evasão
As organizações devem utilizar o monitoramento dos logs do CloudTrail para detectar e reagir de forma ágil a este tipo de atividade maliciosa. Isto exige um bom entendimento do que são atividades normais no ambiente, bem como o uso de regras de correlação e enriquecimento dos eventos de forma a permitir detecção e investigação mais eficazes e eficientes. Foi pensando em ajudar organizações a colocar esses conselhos em prática que criamos o Det{R}ails, apresentado em sua versão inicial hoje na respeitada conferência SecTor.
O Projeto Det{R}ails (CloudTrail in Details) está sendo desenvolvido através de pesquisa pelo time da Tenchi Security, visando melhorar a visibilidade e ação em cima dos eventos do CloudTrail. Criado em cima da Elastic Stack, o projeto conta com um base de enriquecimentos que está na versão atual com a seguinte cobertura:
Uma fonte interessante de inspiração e dados de enriquecimento foi a fantástica ferramenta open source CloudSplaining (criada por Kinnaird McQuade da Salesforce). Ela foi desenhada para ser usada para analisar o ambiente sob demanda, mas nós a adaptamos para rodar em tempo de criação e mudança de políticas IAM baseada no conteúdo de eventos do CloudTrail.
Outros enriquecimentos interessantes que não podemos deixar de citar, são os seguintes mapeamentos:
- Origem do AssumeRole para posterior verificação se a chave está sendo utilizada a partir de outra origem
- Access Level da ação
- MITRE ATT&CK (quando a ação está relacionada a alguma técnica)
- Risk Level, também baseado no CloudSplaining mas aplicado em cada action isoladamente, adicionando informações do tipo de dano a ação pode ocasionar: Elevação de Privilégios, Exposição de Recursos, Vazamento de dados, Vazamento de credenciais e serviços afetados.
Todos estes enriquecimentos estão sendo implementados no Logstash, antes do envio para o Elasticsearch, conforme arquitetura usual do Elastic Stack. Uma implicação interessante é que os eventos poderiam ser enviados enriquecidos do Logstash para outras soluções de SIEM ou big data caso necessário, dada a sua flexibilidade, permitindo a integração com infraestruturas pré-existentes.
As capturas de tela abaixo mostram alguns dos dashboards que construímos a partir dos dados com estes enriquecimentos:
E para demonstrar um pouco da idéia, realizamos simulações de dois cenários em que aplicamos alguma engenharia de detecção: elevação de privilégios, e utilização do PACU Framework.
Publicamos os slides da apresentação aqui: https://www.slideshare.net/tenchisecurity/detecting-aws-control-plane-abuse-in-an-actionable-way-using-detrails. O vídeo está disponível em https://sector.ca/sessions/detecting-aws-control-plane-abuse-in-an-actionable-way-using-detrails/.
Não hesite em entrar em contato se quiser saber mais sobre como implementar monitoramento eficaz de seus ambientes de nuvem com apoio da Tenchi Security.
Happy Detection!
Escrito por Rodrigo Montoro, Felipe Espósito e Alexandre Sieira.