Os cibercriminosos utilizam diversas estratégias para atacar sistemas vulneráveis – e os ataques de execução remota de código (RCE) são uma das estratégias mais comuns. De fato, de acordo com o Relatório Global de Inteligência de Ameaças de 2020 da NTT, os ataques de RCE foram a técnica de ataque mais comum observada.
Há um grande atrativo em um ataque de RCE: um agente mal-intencionado localizado em qualquer lugar do mundo pode atacar seus sistemas. O RCE possibilita um ataque à distância, que pode permitir que o invasor saia ileso, enquanto suas operações, seus dados e seus negócios sofrem danos irreparáveis.
Neste artigo, explicamos o que é um ataque de execução remota de código, apresentamos alguns dos exemplos mais relevantes da vida real desse tipo de ataque e destacamos as melhores práticas que sua organização deve seguir para evitar que um ataque de RCE seja bem-sucedido.
O que é, exatamente, um ataque de execução remota de código?
A pista está na sigla: um ataque de execução remota envolve a execução de código no seu servidor por um invasor remoto. Em outras palavras, um invasor aproveita uma vulnerabilidade para acessar e executar comandos no seu dispositivo ou no seu servidor, independentemente de onde você esteja no mundo — ou de onde o invasor esteja.
Os ataques de RCE variam em tipo e forma. Um invasor pode simplesmente executar código malicioso em seu computador para atingir um objetivo específico, mas um ataque de RCE também pode significar que o invasor assuma o controle total e completo do seu dispositivo — incluindo o acesso a aplicativos e serviços por meio de privilégios elevados.
Em geral, os ataques RCE dependem da exploração de algum tipo de vulnerabilidade. Pode ser uma falha nas defesas de rede, uma brecha de segurança em um de seus aplicativos — ou uma vulnerabilidade no sistema operacional que ainda não tenha sido corrigida.
Como um ataque RCE se compara a um ataque ACE?
Como observação adicional, os ataques RCE são um subconjunto do que se denomina ataque de execução de código arbitrário (ACE). Assim como nos ataques RCE, no caso de um ataque ACE, o invasor executa comandos arbitrários de sua escolha no seu equipamento de informática sem a sua permissão e o faz com objetivos maliciosos. É claro que a diferença entre um ataque ACE e um ataque RCE é que, no caso de um ataque RCE, o invasor está localizado remotamente – enquanto o invasor por trás de um ataque ACE pode estar fisicamente no local onde você se encontra.
Tipos comuns de ataques RCE
Para se ter uma ideia do amplo alcance e dos diversos riscos representados pelos ataques de execução remota (RCE), vamos apresentar alguns dos vetores de ataque RCE mais comuns. Todos esses ataques dependem de uma vulnerabilidade específica e, em cada cenário, o invasor tem como objetivo obter acesso não autorizado aos seus sistemas. Existem três formatos típicos de ataque:
Ataques de desserialização
A serialização de dados consiste na conversão de estruturas de dados complexas, como campos e objetos, em uma estrutura de dados mais simples, que pode ser enviada em um fluxo de dados sequencial simples. Esse fluxo de dados precisa ser restaurado — e esse processo é chamado de desserialização. É nessa etapa que um invasor pode intervir, pois o processo de desserialização pode levar à execução acidental de código binário. Os invasores tentam modificar os dados serializados e, assim, inserir código nos objetos de dados alterados.
Ataque de estouramento de buffer
Uma estratégia comum, que de forma alguma é exclusiva dos ataques remotos, é o ataque de estouro de buffer. Nesse caso, um invasor explora uma vulnerabilidade que lhe permite sobrescrever dados armazenados na memória. Os agentes mal-intencionados podem fazer isso para causar falhas em dispositivos simples, como controladores de rede, para destruir dados em uma máquina ou, de fato, para inserir código malicioso em uma máquina — o que, por sua vez, permite ao invasor realizar um ataque de execução remota de código (RCE).
Ataque de Confusão de Tipo
Quando um trecho de código não toma medidas para verificar a integridade de um objeto que lhe é passado, existe o risco de que isso gere uma confusão de tipos. A confusão de tipos é perigosa porque permite que um invasor introduza código capaz de executar comandos arbitrários – simplesmente criando uma incompatibilidade entre os tipos de objetos.
Outro método menos conhecido, mas interessante, relacionado à execução remota de código é o “ataque do vizinho mais próximo”, que explora vulnerabilidades em modelos de aprendizado de máquina utilizados por alguns sistemas para executar código remotamente por meio da manipulação de dados de entrada.
Os objetivos dos ataques RCE
Assim como qualquer acesso não autorizado aos seus sistemas, os objetivos por trás dos ataques de RCE variam amplamente. As motivações para esses ataques dependem do seu ramo de atividade, dos seus clientes e dos dados que você mantém. Um ataque pode ter como objetivo alcançar qualquer um dos seguintes resultados:
- Infiltrar-se e monitorar. Os invasores podem simplesmente usar ataques de RCE para se infiltrar na sua rede, por exemplo, para fins de espionagem corporativa. O RCE pode ser o primeiro passo de um ataque mais abrangente — que certamente pode envolver o monitoramento contínuo de suas operações.
- Roubar dados. Ataques de RCE podem abrir caminho para a instalação de código adicional, o que, por sua vez, pode levar à transmissão de dados. A partir de um ataque de RCE, um cibercriminoso pode assumir o controle dos seus recursos de computação para, eventualmente, extrair grandes quantidades de dados.
- Interrupção. Os invasores podem usar uma vulnerabilidade de RCE para invadir seus sistemas com o objetivo de causá-las. Um simples ataque de estouro de buffer, por exemplo, pode prejudicar significativamente suas operações. Como resultado, invasores remotos podem atingir seus objetivos garantindo que sua presença online fique offline – ou causando outro tipo de perturbação que traga transtornos ou custos para você ou seus clientes.
No entanto, há um objetivo que está por trás de muitas violações de segurança — e que é, sem dúvida, responsável pela alta prevalência de ataques de RCE no campo.
Mineração ilícita de criptomoedas – Um fator determinante por trás dos ataques de RCE
Uma pesquisa realizada em 2018 pela empresa de segurança cibernética Imperva revelou um número impressionante. De acordo com a pesquisa da Imperva, quase 90% de todos os ataques de RCE foram motivados por um único objetivo: a instalação e execução de software de mineração de criptomoedas no hardware da vítima.
Por que os criminosos se dariam a tanto trabalho para instalar softwares de mineração de criptomoedas em seus sistemas? Em termos simples, a mineração de criptomoedas pode gerar grandes lucros, mas somente se você tiver os recursos computacionais necessários para dedicar à mineração de criptomoedas.
Com os ataques RCE, os criminosos tentam explorar seus recursos de computação para resolver um número suficiente de problemas criptográficos a fim de minerar criptomoedas de forma lucrativa. O ataque RCE permite que eles executem softwares de mineração de criptomoedas em seu equipamento sem arcar com os custos de eletricidade, recursos de hardware e similares.
À primeira vista, você pode se perguntar por que deveria se preocupar tanto com o fato de alguém usar seus recursos de computação para resolver problemas matemáticos — mas há alguns pontos que devem ser levados em consideração. Em primeiro lugar, a mineração de criptomoedas com RCE pode sair muito caro em termos de consumo de energia e desgaste do hardware.
Além disso, qualquer software não autorizado em seus sistemas pode levar a uma violação ainda maior e mais abrangente. Isso também fará com que você descumpra suas obrigações de conformidade. Você simplesmente não pode permitir que agentes criminosos executem códigos desconhecidos e não autorizados em seus sistemas — por mais inofensivo que o código possa parecer.
Exemplos dignos de destaque Vulnerabilidades RCE
Os ataques de RCE são tão comuns, generalizados e difundidos que é difícil escolher entre os inúmeros exemplos que afetam tudo, desde softwares de front-end até a infraestrutura de servidores. Vamos dar uma olhada em alguns exemplos apenas para ilustrar o quão difundidos os ataques de RCE realmente são.
O Log4j é um caso de grande repercussão. Em 10 de dezembro de 2021, foi divulgada uma vulnerabilidade grave no Log4j, conhecida como Log4Shell (CVE-2021-44228). Essa vulnerabilidade, com nível de gravidade crítico e pontuação CVSS máxima de 10, foi descoberta por Chen Zhaojun, da equipe de Segurança em Nuvem da Alibaba. A vulnerabilidade afeta quase todas as versões do Log4j2, que é uma popular estrutura de registro de eventos em Java.
Você também pode conhecer os detalhes técnicos sobre como corrigir essa falha em nosso guia sobre como aplicar uma correção para a vulnerabilidade do Log4j.
Um número significativo de frameworks de aplicativos Java utiliza o Log4j como seu framework de registro de logs padrão. Entre os exemplos mais notáveis está o Apache Struts 2. Trata-se, portanto, de uma vulnerabilidade de execução remota de código (RCE) altamente perigosa e amplamente difundida que já foi explorada inúmeras vezes, especialmente quando as estruturas atingem o status de fim de vida útil do Apache Struts e deixam de receber atualizações oficiais de segurança.
A seguir, vamos falar da popular plataforma de comunicação Discord. Em outubro de 2020, um pesquisador de segurança descobriu uma vulnerabilidade de execução remota de código (RCE) no aplicativo para desktop da plataforma. Não era a vulnerabilidade mais evidente, já que o pesquisador precisou combinar três vulnerabilidades para executar o código remoto no aplicativo do Discord, mas a vulnerabilidade de RCE era, mesmo assim, real – afetando potencialmente mais de 100 milhões de usuários ativos do Discord.
Outra plataforma de comunicação comum, o vBulletin, sofreu uma falha de RCE que foi considerada “ridiculamente fácil de explorar”. De acordo com o Bleeping Computer, a exploração depende de apenas uma linha de código – e afeta um fórum utilizado por grandes nomes, desde a Sony e o Steam até o Pearl Jam e a NASA. As repercussões foram reais: logo após a publicação da exploração de dia zero, os ataques começaram quase imediatamente – afetando até mesmo o fórum do próprio vBulletin na época.
Os exemplos são incontáveis. Veja, por exemplo, a vulnerabilidade SMBGhost de execução de código remoto (RCE). Em junho de 2020, foi divulgada uma prova de conceito que mostrava como um ataque crítico de RCE poderia levar a um grande número de ataques, segundo o FBI. A Microsoft, no entanto, lançou uma correção para essa vulnerabilidade, mas a aplicação de patches, é claro, nem sempre é feita de forma consistente – um ponto ao qual voltaremos na próxima seção.
Esses são apenas alguns exemplos de vulnerabilidades de RCE amplamente difundidas que estão circulando na rede. Os exemplos simplesmente não param de surgir todos os dias, basta dar uma olhada na lista de ataques de RCE que é constantemente atualizada no The Daily Swig.
Por fim, o “Terrapin Attack” é uma técnica de RCE (Execução Remota de Código) descoberta recentemente por meio de pesquisas, que tem como alvo dispositivos de IoT ao explorar vulnerabilidades de firmware, demonstrando como os invasores continuam a encontrar novas maneiras de invadir sistemas remotamente.
Melhores práticas para se proteger contra um ataque de RCE
Você simplesmente não sabe se um invasor está atacando seus sistemas porque quer usar os recursos computacionais para mineração de criptomoedas ou por um motivo muito mais grave. Seja como for, você deve tomar as medidas preventivas necessárias para garantir que o risco de sofrer um ataque cibernético — incluindo um ataque RCE — seja mínimo. Aqui estão algumas etapas importantes:
- Alertas antecipados e monitoramento. Pode não ser sempre possível impedir um ataque de RCE, mas os sistemas de alerta precoce podem alertá-lo sobre uma violação de segurança em andamento — ou sobre uma situação em que um ataque bem-sucedido tenha levado à execução contínua de código ilícito. Da mesma forma, um sistema de monitoramento pode ajudá-lo a identificar comportamentos anormais que indiquem um servidor comprometido.
- Firewalls e outros softwares de segurança. Implemente ferramentas capazes de prevenir ataques automatizados comuns: considere, por exemplo, um firewall de aplicativos web (WAF). Da mesma forma, implemente e execute ferramentas de varredura de vulnerabilidades e de testes de penetração para ajudar a identificar onde um ataque de execução remota de código (RCE) pode ocorrer, de modo que você possa corrigir a vulnerabilidade antes que seja tarde demais.
- Elabore um plano de resposta. É difícil evitar um ataque RCE 100% das vezes — mesmo as medidas de segurança mais rigorosas podem ser comprometidas. Esteja preparado para essa eventualidade e elabore um plano de resposta que possa ajudar sua organização a interromper rapidamente um ataque e a se recuperar rapidamente das possíveis consequências.
Todos os pontos acima são importantes, mas pode-se argumentar que existe uma medida fundamental que pode contribuir mais do que qualquer outra política ou ação para manter suas operações de informática protegidas contra ataques remotos.
Por que as atualizações de segurança são importantes
Os ataques RCE geralmente exploram vulnerabilidades de segurança conhecidas. Essas vulnerabilidades conhecidas são normalmente corrigidas pelo fornecedor do software – por meio de um patch. Tudo bem, mas o problema com os patches é que eles precisam ser aplicado.
Você, como responsável pela gestão dos recursos de informática, deve aplicar regularmente correções aos seus recursos de hardware e software para garantir que vulnerabilidades conhecidas não possam ser exploradas. Parece senso comum, mas — na verdade — a aplicação consistente de correções não é tão fácil quanto parece à primeira vista.
A dificuldade em aplicar patches de forma consistente pode explicar por que, de acordo com o CSO Online, 60% das violações envolvem a exploração de uma vulnerabilidade para a qual existe uma correção eficaz – mas que não foi aplicado.
A aplicação oportuna e consistente de patches não é fácil. É um processo que exige muitos recursos e causa interrupções, já que a aplicação de patches geralmente requer reinicializações que levam a tempo de inatividade. Dito isso, existem ferramentas eficazes que podem ajudar.
Apenas como exemplo, considere o KernelCare – a ferramenta automatizada de aplicação de patches da TuxCare que mantém os servidores Linux protegidos e seguros contra vulnerabilidades comuns sem a necessidade de reiniciar os servidores – nem o tempo de inatividade que isso acarreta.
Os ataques de RCE são muito comuns – e a prevenção é fundamental
Não há dúvida de que um ataque RCE pode levar a consequências graves. Desde a presença de um minerador de criptomoedas, que custa caro e consome muitos recursos, até roubo de dados e interrupções críticas para os negócios. Os ataques RCE também são comuns; não são, de forma alguma, um evento raro que acontece apenas com os azarados.
Portanto, sua organização deve estar ciente dos ataques RCE – e se proteger rigorosamente contra eles. Mencionamos algumas dicas acima, mas o aspecto mais importante com o qual você deve se preocupar é a aplicação de patches.
O serviço de aplicação de patches em tempo real KernelCare, da TuxCare, pode ajudar a manter suas cargas de trabalho Linux protegidas contra ataques de RCE – automatizando a aplicação de patches e eliminando a necessidade de reinicialização dos servidores. Saiba mais sobre o KernelCare aqui.

