Skip links

Token comprometido: explorando vulnerabilidade no Elastic APM

Este artigo irá tratar de uma questão crítica em segurança cibernética: a exposição de secret tokens no Elastic Application Performance Monitoring (APM). Esta vulnerabilidade foi descoberta durante uma avaliação de segurança meticulosa, em que realizamos testes de penetração em sistemas de monitoramento de desempenho amplamente utilizados.

A exposição de um secret token pode ter implicações graves, abrindo as portas para uma série de ataques e comprometimentos de segurança. Neste contexto, discutiremos como a exposição de tokens no Elastic APM acontece, suas consequências potenciais para a integridade e a confidencialidade dos sistemas monitorados, e a importância de práticas de segurança rigorosas.

Além disso, exploraremos as medidas preventivas e corretivas que podem ser adotadas para proteger esses sistemas vitais. O objetivo é fornecer insights práticos e ações recomendadas para mitigar esses riscos, melhorando assim a segurança geral de aplicações e infraestruturas que dependem do Elastic APM para monitoramento e análise de desempenho.

Contexto da Vulnerabilidade

Elastic AP: uma visão geral

O Elastic Application Performance Monitoring (APM) é uma ferramenta de monitoramento de desempenho de aplicações que oferece insights valiosos sobre o funcionamento dos sistemas. O Elastic APM permite aos desenvolvedores e administradores de sistemas rastrear métricas críticas, como tempo de resposta, solicitações por segundo e desempenho de transações individuais. Essa ferramenta faz parte do Elastic Stack, que também inclui Elasticsearch, Logstash e Kibana, formando um conjunto robusto de ferramentas para análise de dados e observabilidade.

Entendendo a exposição do Secret Token

No coração do Elastic APM está o conceito de segurança e autenticação, onde os secret tokens desempenham um papel fundamental. Esses tokens são chaves de segurança que autenticam a comunicação entre os agentes APM (instalados nas aplicações monitoradas) e o servidor APM. Uma gestão segura desses tokens é crucial, pois eles são a porta de entrada para dados sensíveis sobre o desempenho e a saúde das aplicações.

A vulnerabilidade que abordamos aqui envolve a exposição de um desses secret tokens. De forma mais específica, o token foi encontrado dentro de um arquivo info.php. Geralmente, arquivos como info.php são usados para diagnósticos e configurações em ambientes PHP, podendo exibir informações sobre a versão do PHP, detalhes do servidor e outras configurações críticas. A exposição do token neste arquivo pode ser atribuída a uma série de fatores, incluindo configurações inadequadas de segurança, falta de práticas eficazes de gerenciamento de credenciais, ou erros na fase de desenvolvimento ou deploy, em que detalhes sensíveis não foram devidamente protegidos ou ocultados.

Esta exposição representa um risco significativo: com acesso ao token, um ator mal-intencionado poderia potencialmente manipular dados de monitoramento, injetar dados falsos ou até mesmo acessar dados sensíveis de desempenho das aplicações monitoradas, levantando sérias preocupações sobre a integridade e confidencialidade dos sistemas afetados.

A próxima sessão fornece uma visão geral do que é o Elastic APM, a importância dos secret tokens dentro do seu ecossistema e uma explicação preliminar de como e porque o token foi exposto.

Análise Técnica da Vulnerabilidade no Elastic APM

A natureza da falha

A vulnerabilidade crítica identificada no Elastic APM está centrada na exposição não intencional do $_ENV[‘ELASTIC_APM_SECRET_TOKEN’]. Este token é uma variável de ambiente crucial usada para autenticar e autorizar a comunicação entre os agentes de monitoramento do Elastic APM e o servidor. A exposição deste token em um arquivo info.php acessível publicamente constitui uma séria falha de segurança.

Como a vulnerabilidade funciona

Normalmente, o $_ENV[‘ELASTIC_APM_SECRET_TOKEN’] é uma variável de ambiente protegida que armazena a chave de autenticação para as transações entre o servidor do Elastic APM e seus agentes. O token é essencial para garantir que apenas fontes autorizadas possam enviar dados de desempenho ao servidor. Quando este token é exposto, particularmente em um arquivo como info.php, que é frequentemente usado para diagnósticos e pode ser acessível através da web, qualquer pessoa com conhecimento deste arquivo pode potencialmente capturar o token.

Implicações da exposição do Token

A exposição do $_ENV[‘ELASTIC_APM_SECRET_TOKEN’] traz consigo várias implicações de segurança. Atacantes podem utilizar este token para enviar dados falsificados ao servidor Elastic APM, comprometendo a integridade dos dados de desempenho. Além disso, com o acesso ao token, é possível obter informações sensíveis sobre a infraestrutura e operações da aplicação monitorada, incluindo detalhes que podem ser usados para ataques mais direcionados.

Análise de causa raiz

A presença do token exposto no arquivo info.php sugere falhas nas práticas de segurança durante o desenvolvimento ou configuração do sistema. Pode indicar uma falta de conscientização sobre a importância de manter tais informações sensíveis protegidas ou um descuido na gestão de configurações em ambientes de desenvolvimento e produção. Esta exposição pode ser o resultado de um descuido no processo de deploy, no qual configurações de ambiente não foram adequadamente isoladas ou ocultadas em ambientes de produção.

Demonstração prova de conceito

Na sequência deste artigo, apresentaremos uma Prova de Conceito (PoC) que demonstra como a vulnerabilidade associada à exposição do $_ENV[‘ELASTIC_APM_SECRET_TOKEN’] pode ser explorada. Esta PoC é projetada para ilustrar o processo de exploração de forma controlada e ética, com o objetivo de destacar a gravidade da vulnerabilidade e a necessidade de medidas de segurança robustas.É importante ressaltar que a intenção desta demonstração é puramente educativa e visa aumentar a conscientização sobre as melhores práticas de segurança em aplicações web e sistemas de monitoramento como o Elastic APM. Todos os passos e métodos aqui descritos devem ser utilizados apenas para fins de aprendizado e melhoria da segurança, e não para atividades mal-intencionadas.Inicialmente realizamos o processo de enumeração de arquivos e diretórios, visando encontrarmos informações relevantes que pudessem ser utilizadas como vetor de ataque.

Figura 1 – Enumeração de arquivos e diretórios

Através dos resultados da enumeração de arquivos e diretórios, conseguimos identificar a exposição do infophp. Vale ressaltar a importância de ler o conteúdo deste arquivo de configuração de forma detalhada, pois, neste arquivo, podem conter informações valiosas que podem ser utilizadas como vetor de ataque, como por exemplo senhas, secret tokens, URLs específicas etc.

Acessamos por fim o arquivo info.php, e neste arquivo conseguimos encontrar informações valiosas, no caso uma secret token do Elastic APM.

Figura 2 – Detectando pelas informações no arquivo de configuração do php

Olhamos para essa token e pensamos: o que será que pode ser explorado com a posse dessas informações?

Vulnerabilidades que podem ser exploradas no Elastic APM

Ao considerar a vulnerabilidade relacionada à exposição do $_ENV[‘ELASTIC_APM_SECRET_TOKEN’] no Elastic APM, vários tipos de ataques podem ser viabilizados.

Injeção de dados falsificados

Atacantes podem usar o token comprometido para enviar dados falsos ao servidor do Elastic APM, manipulando métricas e relatórios de desempenho.

Exploração de APIs expostas

Com acesso ao token, um atacante pode explorar APIs expostas do Elastic APM para acessar ou modificar dados sensíveis.Ataques de Rejogabilidade (Replay Attacks):Capturando requisições legítimas, atacantes podem reenviá-las para realizar ações maliciosas, aproveitando-se do token autenticado.

Elevação de privilégios

Dependendo das permissões associadas ao token, um atacante pode ganhar privilégios elevados no sistema, potencialmente acessando informações críticas ou realizando ações administrativas.

Ataques Man-in-the-Middle (MitM)

Interceptar a comunicação entre os agentes do Elastic APM e o servidor, modificando ou redirecionando dados.

Exploração de vulnerabilidades do Elastic Stack

Utilização do token para explorar outras vulnerabilidades conhecidas no Elastic Stack, potencialmente escalando o acesso a outros componentes como Elasticsearch, Logstash ou Kibana.

Criação de agentes APM maliciosos

Configurar agentes APM falsos que se comunicam com o servidor usando o token comprometido, possibilitando a coleta de dados ou a execução de ações mal-intencionadas.

Espionagem de dados de aplicações

Acesso a informações detalhadas sobre o desempenho e erros das aplicações monitoradas, que podem revelar vulnerabilidades internas ou dados operacionais sensíveis.

Denial of Service (DoS)

Enviar grandes volumes de dados falsos ou malformados para sobrecarregar o servidor do Elastic APM, levando a uma negação de serviço.

Bypass de controles de segurança

Utilizar o token para contornar controles de segurança implementados no Elastic APM ou em sistemas relacionados.

Estes ataques representam um espectro de riscos sérios para organizações que utilizam o Elastic APM, destacando a importância de uma gestão segura de credenciais e tokens, bem como a necessidade de monitoramento e auditoria contínuos para detectar e mitigar tais ameaças.

Criação de Script em Python para exploração de vulnerabilidades no Elastic APM

Depois de toda análise realizada, foi então confeccionado um script que permite que enviemos dados para o Elastic, no nosso código adicionamos diversas funções, porém, utilizamos apenas a opção para realizar envio de grandes quantidades. 

Figura 3 – Código utilizado para exploração
Figura 4 – Exemplo de código utilizado para envio
Figura 5– Execução do script em python

Após a execução do script, podemos selecionar qual tipo de ataque realizar, neste exemplo vamos utilizar somente o envio de dados. 

Figura 6– Vulnerabilidade explorada com sucesso

O atacante poderia enviar uma grande quantidade de dados indisponibilizando assim o serviço.

Figura 7 – Interação com o Elastic APM

Impacto e implicações

O impacto e as implicações decorrentes da vulnerabilidade de exposição do $_ENV[‘ELASTIC_APM_SECRET_TOKEN’] no Elastic APM são significativos e abrangem diversas áreas críticas da segurança e operação de sistemas. Abaixo, destaco o impacto e as implicações associadas:

Comprometimento da integridade dos dados

O acesso ao token permite a injeção de dados falsos, comprometendo a integridade dos relatórios de desempenho e métricas coletadas pelo Elastic APM.

Risco de manipulação de transações

Atacantes podem manipular transações monitoradas, introduzindo anomalias ou distorcendo informações críticas, o que pode levar a decisões inadequadas baseadas em dados adulterados.

Exposição de dados sensíveis

Informações sensíveis, como detalhes de configuração, endpoints e características operacionais, podem ser expostas, permitindo uma análise detalhada do ambiente da aplicação.

Ameaça à confidencialidade

Acesso não autorizado ao token representa uma ameaça à confidencialidade das informações, pois atacantes podem obter dados operacionais e detalhes de configuração sensíveis.

Possibilidade de atividades maliciosas

Com o token, atacantes podem realizar atividades maliciosas, como o envio de dados falsificados, monitoramento indevido de operações ou a execução de ações prejudiciais ao ambiente monitorado.

Impacto nas operações da aplicação

Manipulações nos dados de desempenho podem afetar diretamente as operações da aplicação, resultando em tempos de resposta anormais, falhas inesperadas ou degradação do serviço.

Reputação e confiabilidade comprometidas

Incidentes de segurança, especialmente aqueles relacionados à exposição de tokens, podem comprometer a reputação da organização e a confiança dos usuários e stakeholders.

Desafios na detecção e resposta

A exploração do token pode ocorrer de forma sutil, dificultando a detecção imediata. A resposta eficaz a incidentes torna-se desafiadora devido à manipulação potencial de dados de monitoramento.

Exposição a outras vulnerabilidades

A exploração do token pode servir como ponto de entrada para explorar outras vulnerabilidades no Elastic Stack ou em componentes relacionados, ampliando o risco de comprometimento do sistema.

Custos operacionais e de recuperação

A gestão de um incidente resultante da exposição do token pode gerar custos operacionais substanciais, incluindo investigação forense, mitigação de danos e implementação de melhorias de segurança.

Estas implicações destacam a importância crítica de proteger os tokens de acesso no Elastic APM, implementando práticas de segurança robustas, monitoramento contínuo e resposta eficaz a incidentes para preservar a integridade e a segurança dos sistemas monitorados.

Conclusão

A proteção eficaz do $_ENV[‘ELASTIC_APM_SECRET_TOKEN’] e a mitigação de riscos associados são vitais para a segurança e estabilidade do Elastic APM e dos sistemas que ele monitora. A negligência ou falha em abordar essas vulnerabilidades pode resultar em consequências graves, afetando negativamente a integridade, confidencialidade e disponibilidade dos sistemas de informação.

Recomendações de Segurança

Gerenciamento seguro de credenciais

Armazenar tokens como $_ENV[‘ELASTIC_APM_SECRET_TOKEN’] em locais seguros e acessíveis apenas por aplicações e usuários autorizados. Evitar a exposição de credenciais em repositórios de código ou locais públicos.

Monitoramento e análise de logs

Implementar monitoramento contínuo e análise de logs para detectar atividades suspeitas ou não autorizadas relacionadas ao uso do token.

Atualizações e patches de segurança

Manter o Elastic APM e sistemas relacionados atualizados com as últimas correções de segurança e patches.

Controles de acesso rigorosos

Aplicar princípios de menor privilégio e segmentação de rede para limitar o acesso ao token apenas a entidades necessárias.

Treinamento e conscientização em segurança

Educar os membros da equipe sobre as melhores práticas de segurança e a importância de proteger informações sensíveis como tokens de acesso.

Resposta a incidentes e plano de recuperação

Ter um plano de resposta a incidentes bem definido e testado, incluindo procedimentos para lidar com a exposição de tokens.

Avaliação regular de segurança

Realizar auditorias e testes de penetração regulares para identificar e remediar vulnerabilidades de segurança potenciais.

Criptografia e segurança de dados

Utilizar criptografia forte para proteger dados sensíveis, incluindo tokens, tanto em trânsito quanto em repouso.

Marcos de Almeida, gerente de Red Team

This website uses cookies to improve your web experience.
Explore
Drag