Usando bibliotecas de desenvolvimento para implantar malware

Diego Samuel Espitia    1 diciembre, 2020
Usando bibliotecas de desenvolvimento para implantar malware

Os cibercriminosos buscam estratégias para atingir seus objetivos: em alguns casos, são informações do usuário; em outros, conexões; outras vezes, eles geram redes de computadores sob seu controle (botnets), etc. Qualquer usuário é uma vítima em potencial, mas se ele também puder fazer com que outros distribuam seu código malicioso sem saber, estamos falando de um ganho inestimável para os criminosos.

É por isso que eles perceberam que infiltrar código malicioso em pacotes que os desenvolvedores usam para gerar seus projetos é uma forma muito eficaz de espalhar para o maior número possível de vítimas, além de se beneficiar do anonimato.

Desta forma, cada vez que um desenvolvedor, em qualquer lugar do mundo, utilizar o pacote corrompido que vazou dentro da biblioteca em qualquer tipo de código, ele vai distribuir o segmento malicioso e tornando a rastreabilidade quase impossível, pois existem bibliotecas que possuem foi baixado milhões de vezes.

No ano passado, vários exemplos dessa prática foram encontrados usando principalmente os pacotes da biblioteca NPM e pacotes da biblioteca Python. Os criminosos usaram diferentes técnicas para esconder suas ações e contornar os controles que estão nessas bibliotecas, vamos ver quais.

Quais são as técnicas usadas pelos cibercriminosos?

Embora as técnicas sejam diversas, vamos nos concentrar naquelas que, após sua detecção, pudemos comprovar que permaneceram por muito tempo disponíveis nas bibliotecas:

  • Typosquatting: como já havíamos mencionado, esta técnica é utilizada em vários tipos de ataques de computador e se baseia em modificações nos nomes dos pacotes que confundem os usuários ou que, após um erro de digitação, carreguem um desses códigos maliciosos.

    O exemplo mais claro desse método foi apresentado na biblioteca PyPi do Python, onde foram detectados dois pacotes maliciosos que utilizavam mutações no nome para sua propagação, como no caso de jeIlyfish com jellyfish. Esta mutação de nome tinha como objetivo obter as chaves de autenticação SSH nos diferentes servidores ou computadores onde qualquer desenvolvimento que usa este pacote está instalado.

    Esses pacotes ficaram disponíveis por mais de um ano na biblioteca PyPi, onde foram baixados mais de cem mil vezes, o que dá ao atacante um amplo impacto e dispersão em termos de possíveis alvos, já que este código ainda pode ser utilizado em alguns empreendimentos comerciais ou domésticos que não sejam mantidos ou monitorados de maneira adequada.
  • Brandjacking  Este tipo de ataque aproveita a importância de um pacote para criar uma mutação ou simulação do mesmo. A principal diferença com a técnica anterior é que ela não apela ao possível erro de um desenvolvedor ao inserir o requisito em seu código, mas cria um pacote que tem exatamente o mesmo nome, mas geralmente adiciona o nome da linguagem em que está trabalhando.

    Nos pacotes da biblioteca NPMjs, essa técnica foi detectada em diversas ocasiões, usando pacotes como twilio, que tem cerca de 500 mil downloads, para criar um pacote malicioso que usa seu reconhecimento para se fazer passar por ele, com o pacote twilio-npm, que Com apenas 3 dias online consegui 371 downloads.

Esses dois exemplos básicos mostram que os criminosos estão constantemente buscando a implantação de seu código malicioso por meio de vários mecanismos, demonstrando que podem colocar em risco qualquer usuário com ou sem conhecimento de computação ou gerenciamento de informações.

Da mesma forma, confirma que é imprescindível que as empresas de fomento procurem mecanismos para detectar essas estratégias, obedecendo a metodologias que garantam um desenvolvimento seguro para minimizar a exploração deste tipo de ameaças e colocar os utilizadores em risco.

Quanto às empresas por trás desse tipo de linguagem de desenvolvimento, esforços internos e comunitários estão sendo feitos para detectar essas ameaças no menor tempo possível. Um exemplo dessas alianças na OSSF (Open Source Security Foundation), da qual somos parte ativa, que visa desenvolver ferramentas e comunicação com o objetivo de melhorar a segurança nos empreendimentos e que as empresas de desenvolvimento de TI tenham referências ou elementos para validar o ciclo de vida de seus empreendimentos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.