Ataques a pontos de entrada
14 de Outubro de 2024

Pesquisadores de cibersegurança descobriram que pontos de entrada poderiam ser explorados em vários ecossistemas de programação como PyPI, npm, Ruby Gems, NuGet, Dart Pub e Rust Crates para realizar ataques à cadeia de suprimentos de software.

"Os atacantes podem aproveitar esses pontos de entrada para executar códigos maliciosos quando comandos específicos são executados, representando um risco disseminado no panorama de código aberto", disseram os pesquisadores da Checkmarx, Yehuda Gelb e Elad Rapaport, em um relatório compartilhado.

A empresa de segurança na cadeia de suprimentos de software observou que ataques a pontos de entrada oferecem aos atores de ameaças um método mais furtivo e persistente de comprometimento dos sistemas de uma maneira que pode contornar as defesas de segurança tradicionais.

Pontos de entrada em uma linguagem de programação, como Python, referem-se a um mecanismo de empacotamento que permite aos desenvolvedores expor certas funcionalidades como um invólucro de linha de comando (aka console_scripts).

Alternativamente, também podem servir para carregar plugins que aumentam as características de um pacote.

A Checkmarx observou que, embora os pontos de entrada sejam uma forma poderosa de melhorar a modularidade, essa mesma funcionalidade poderia ser abusada para distribuir código malicioso a usuários desavisados.

Algumas das maneiras como isso poderia acontecer incluem o sequestro de comandos e a criação de plugins falsos para várias ferramentas e frameworks.

Sequestro de comandos ocorre quando pacotes falsificados usam pontos de entrada que imitam ferramentas e comandos de terceiros populares (por exemplo, aws e docker), colhendo informações sensíveis quando os desenvolvedores instalam o pacote, mesmo em casos em que é distribuído como um arquivo .whl.

Alguns dos comandos de terceiros amplamente utilizados que podem ser alvos potenciais para o sequestro de comandos incluem npm, pip, git, kubectl, terraform, gcloud, heroku e dotnet.

Um segundo tipo de sequestro de comandos também pode se manifestar quando os atores de ameaças usam nomes de comandos do sistema legítimos (por exemplo, touch, curl, cd, ls e mkdir) como pontos de entrada para sequestrar o fluxo de execução.

"O sucesso desta abordagem depende principalmente da ordem do PATH", apontaram os pesquisadores.

Se o diretório contendo os pontos de entrada maliciosos aparecer antes nos diretórios do sistema no PATH, o comando malicioso será executado em vez do comando do sistema.

Isso é mais provável de ocorrer em ambientes de desenvolvimento, onde diretórios de pacotes locais têm prioridade.

Isso não é tudo.

A Checkmarx descobriu que a eficácia do sequestro de comandos pode ser aprimorada por uma tática mais furtiva chamada embrulho de comandos, que envolve criar um ponto de entrada que atua como um invólucro em torno do comando original, em vez de substituí-lo completamente.

O que torna a abordagem potente é que ela executa silenciosamente o código malicioso enquanto também invoca o comando original e legítimo, retornando os resultados da execução, permitindo assim que passe despercebida.

"Como o comando legítimo ainda é executado e seu resultado e comportamento são preservados, não há sinal imediato de comprometimento, tornando o ataque extremamente difícil de detectar pelo uso normal", disseram os pesquisadores.

Esta abordagem furtiva permite aos atacantes manter acesso de longo prazo e potencialmente exfiltrar informações sensíveis sem levantar suspeitas.

Outra tática de ataque a pontos de entrada envolve criar plugins e extensões maliciosos para ferramentas de desenvolvedor que têm a capacidade de obter amplo acesso ao próprio código, dando assim aos atores mal-intencionados a oportunidade de alterar o comportamento do programa ou adulterar o processo de teste para fazer parecer que o código está funcionando como pretendido.

"Adiante, é crucial desenvolver medidas de segurança abrangentes que levem em conta a exploração de pontos de entrada", disseram os pesquisadores.

Entendendo e abordando esses riscos, podemos trabalhar em direção a um ambiente de empacotamento Python mais seguro, protegendo tanto os desenvolvedores individuais quanto os sistemas empresariais contra ataques sofisticados à cadeia de suprimentos.

O desenvolvimento ocorre enquanto a Sonatype, em seu relatório anual State of the Software Supply Chain, revelou que mais de 512.847 pacotes maliciosos foram descobertos em ecossistemas de código aberto para Java, JavaScript, Python e .NET desde novembro de 2023, um aumento de 156% ano a ano.

"Ferramentas de segurança tradicionais muitas vezes falham em detectar esses ataques inovadores, deixando desenvolvedores e ambientes de build automatizados altamente vulneráveis", disse a empresa.

"Isso resultou em uma nova onda de ataques à cadeia de suprimentos de próxima geração, que visam diretamente os desenvolvedores, contornando as defesas existentes."

Publicidade

Não compre curso de Pentest

Em 14 de janeiro a Solyd irá revolucionar a forma como pentest e hacking deve ser ensinado. Se inscreva para ser o primeiro a saber das novidades. Saiba mais...