São Paulo, março de 2019 – Por meio da análise de dados dos honeypots de contêineres configurados para monitorar ameaças, pesquisador brasileiro da Trend Micro, Alfredo Oliveira, descobriu atividades notáveis de mineradores de criptografia indesejados ou não autorizados sendo implantados como contêineres desonestos usando uma imagem de contêiner de contribuição da comunidade publicada no Docker Hub. A imagem corrompida está sendo usada como parte de um serviço malicioso que fornece malware de mineração criptografada. As ferramentas de rede são recuperadas para realizar movimentos laterais em outros contêineres e aplicativos expostos.
Os honeypots são configurados por padrão, isto é, configurados sem medidas de segurança ou software adotado pós-instalação. É importante notar que o Docker tem as melhores práticas ou recomendações para evitar configurações incorretas. Os honeypots que capturaram as atividades são honeypots hospedeiros de contêiner projetados para receber ataques direcionados à própria plataforma do contêiner, não aos aplicativos do contêiner.
As atividades que o pesquisador descobriu também são significativas, pois não precisam explorar vulnerabilidades e não dependem de nenhuma versão do Docker. A identificação de uma imagem de contêiner configurada incorretamente e, portanto, exposta, é tudo que os invasores podem fazer para infectar muitos hosts expostos.
Quando exposta, a API do Docker permite que o usuário execute uma ampla gama de comandos. Estes incluem listar os contêineres em execução; obtendo logs de um contêiner específico; iniciar, parar ou matar um contêiner; e até mesmo criar um novo container com uma imagem específica e opções dadas.
Figura 1. Como as cargas são entregues (esquerda) e visualização do ambiente do invasor que permite que as imagens sejam implantadas remotamente (à direita)
Figura 2. Distribuição por país das APIs do Docker expostas por 3.762, com base nos resultados de pesquisa do Shodan (em 12 de fevereiro de 2019)
Cadeia de ataque e cargas úteis
“Descobrimos essas atividades não apenas monitorando nossos honeypots. Dados recentes do Shodan (Figura 2) também revelaram que o número de APIs do Docker expostas aumentou desde a última vez que pesquisamos em um contêiner mal configurado que foi abusado como um ponto de partida para implantar malwares do Monero-mining. Em outubro do ano passado, as APIs expostas eram apenas 856”, afirma Oliveira.
A análise dos registros dos honeypots mostrou que o uso da imagem do container também envolve o abuso do ngrok, uma ferramenta usada para estabelecer conexões seguras ou retransmitir tráfego de endpoints publicamente acessíveis para endereços ou recursos especificados (por exemplo, um localhost). Isso permite que invasores criem dinamicamente URLs para quando as cargas forem entregues a um host exposto.
Quando o serviço ngrok é explorado, os arquivos baixados são recuperados de URLs em constante mudança. As URLs também têm um tempo de vida curto, portanto, as cargas úteis não podem ser baixadas depois que elas expirarem.
Existem duas cargas úteis. A primeiro é um minerador de criptomoedas compilado em arquivos de formato Linux executável e de ligação (ELF) – detectado pela Trend Micro como Coinminer.SH.MALXMR.ATNO – que se conecta a uma piscina de mineração. A segundo é um script de shell (TrojanSpy.SH.ZNETMAP.A) projetado para recuperar certas ferramentas de rede. Eles são usados para varrer intervalos de rede predefinidos e procurar novos alvos.
Um conta-gotas define duas variáveis que serão usadas posteriormente para implantar o minerador de criptomoeda. A variável HOST contém a URL que hospeda os arquivos maliciosos, enquanto a variável RIP tem o nome do arquivo (que é o hash do arquivo) do minerador de criptomoeda a ser implantado. A variável HOST muda toda vez que a variável do hash é alterada. O script de implantação também tenta garantir que não haja outro minerador de criptomoeda em execução no host afetado.
Antes de o minerador de criptomoeda ser executado, ele é renomeado para nginx. Outras versões deste script renomeiam o minerador para outros serviços válidos que podem ser encontrados em ambientes Linux. Isso é feito para evitar a detecção de quando os processos em execução são listados.
O script de mapeamento também possui recursos notáveis. Ele usa o mesmo serviço de URL para implantar as ferramentas necessárias. Entre eles está um binário do Linux chamado zmap, que é usado para varrer redes e obter portas abertas. Ele também faz o download de um binário diferente para interagir com o serviço encontrado e pegar seu banner para determinar mais informações sobre ele (por exemplo, sua versão em execução).
O script também predefine alguns conjuntos de intervalos de rede que devem ser verificados. Isso varia dependendo da versão do script. Ele define portas específicas usadas pelos serviços que ele almeja – neste caso, o Docker – antes de iniciar o processo de verificação.
Quando os alvos possíveis são encontrados, seus banners são obtidos automaticamente. O script também filtra os alvos para que correspondam a seus serviços, aplicativos, componentes ou plataformas de interesse: Redis, Jenkins, Drupal, MODX, Kubernetes Master, versão 1.16 do cliente Docker e Apache CouchDB. Se um host examinado corresponder a algum deles, ele será armazenado em um arquivo de texto, que os invasores podem usar para exploração adicional ou comprometimento no futuro. Os arquivos de texto são enviados para o servidor do invasor por meio de links dinâmicos. Isso significa que diferentes URLs são usados para cada arquivo de texto enviado, o que significa que acessá-los pode ser difícil.
Figura 6. Captura de tela mostrando a imagem do contêiner “alpine-curl” com mais de 10 milhões de downloads
Uma imagem baseada no Docker pode ser construída no Alpine Linux com curl, uma ferramenta de linha de comando eficiente em recursos para transferências de arquivos por meio de vários protocolos, instalada. Conforme mostrado na Figura 6, o contêiner “curl” já teve 10 milhões de downloads. O grande número de downloads pode ser atribuído à curvatura da imagem como ponto de entrada, sendo sua última atualização há mais de seis meses, e as outras imagens no mesmo repositório não estão no mesmo ritmo de downloads. No Docker, ponto de entrada é um conjunto de instruções usadas para configurar um contêiner para funcionar como um executável. Se as configurações do ponto de entrada de um contêiner forem configuradas incorretamente (ou seja, deixando-o exposto à Internet), ele poderá ser usado como um vetor de ataque. Os hackers, por exemplo, podem usá-lo para entregar suas cargas úteis quando encontram um contêiner mal configurado ou exposto sendo executado em estado selvagem.
É importante observar que a imagem do Docker (alpine-curl) não é maliciosa por si só. Mas, como mostrado acima, está sendo abusada para realizar uma funcionalidade maliciosa. Imagens semelhantes do Docker também podem ser usadas para realizar atividades maliciosas. Entramos em contato e trabalhamos com o Docker sobre esse problema.
Recomendações
A configuração incorreta continua a ser um desafio constante para muitas organizações, particularmente aquelas que adotam o DevOps, que se concentra no rápido desenvolvimento e entrega. O impacto é exacerbado pela necessidade de cumprir os regulamentos de auditoria, monitoramento e privacidade de dados e as pesadas multas que podem impor. A integração da segurança automatizada no ciclo de vida de desenvolvimento não apenas ajuda a discernir falhas de segurança que poderiam ser perdidas de outra forma. Ele também ajuda a reduzir as cargas de trabalho supérfluas, como o desenvolvimento de muitas configurações de aplicativos para cada incorreta ou vulnerabilidade identificada após um aplicativo ser implantado.
O incidente discutido neste post destaca a necessidade de segurança por design, que inclui estas recomendações:
- Para administradores de sistemas e desenvolvedores, sempre verifique a configuração da API e assegure-se de que ela esteja configurada para receber solicitações apenas de um determinado host ou rede interna.
- Implemente o princípio do menor privilégio: certifique-se de que as imagens do contêiner estejam assinadas e autenticadas, restrinja o acesso a componentes críticos (como o serviço daemon que ajuda a executar contêineres) e criptografe as conexões de rede.
- Siga as práticas recomendadas e ative os mecanismos de segurança, como as diretrizes do próprio Docker e os recursos de segurança integrados.
- Empregue o tempo de execução automatizado e a digitalização de imagens para obter mais visibilidade dos processos do contêiner (por exemplo, para determinar se ele foi adulterado ou tem vulnerabilidades). O controle de aplicativos e o monitoramento de integridade ajudam a manter as modificações anômalas em servidores, arquivos e áreas do sistema.
A Trend Micro ajuda as equipes de DevOps a construir com segurança, envio rápido e execução em qualquer lugar. A solução híbrida Trend Micro Cloud Security oferece segurança poderosa, ágil e automatizada dentro do pipeline DevOps da empresa e proporciona múltiplas técnicas XGen™ de defesa de ameaça para a proteção da duração de cargas de trabalho físicas, virtuais e de nuvem. Ele também adiciona proteção para contêineres por meio do Deep Security e Deep Security Smart Check, que verifica imagens de contêineres do Docker em busca de malware e vulnerabilidades em qualquer intervalo no pipeline de desenvolvimento para evitar ameaças antes que elas sejam implantadas.
Sobre a Trend Micro
A Trend Micro Incorporated, líder global em soluções de segurança cibernética, ajuda a proteger o mundo virtual para o intercâmbio de informações digitais. Nossas soluções inovadoras para consumidores, empresas e órgãos governamentais oferecem segurança em camadas para data centers, ambientes de nuvem, redes e endpoints. Todos os nossos produtos operam juntos para compartilhar informações de ameaças e oferecer recursos de segurança com visibilidade e controle centralizados, gerando uma proteção cada vez mais forte e ágil. Com mais de 6 mil funcionários em mais de 50 países e a inteligência global contra ameaças mais avançada do mundo, a Trend Micro protege o seu mundo conectado. Para saber mais, acesse www.trendmicro.com.
Informações sobre a Trend Micro para a imprensa:
RPMA Comunicação
Cecília Ferrarezzi – cecilia.ferrarezzi@rpmacomunicacao.com.br – (11) 2244-5967
Alisson Costa – alisson.costa@rpmacomunicacao.com.br – (11) 2244-5918
Thais Amaral – thais.amaral@rpmacomunicacao.com.br – (11) 2244-5953