Os pesquisadores da Check Point Research (CPR), divisão de Inteligência em Ameaças da Check Point® Software Technologies Ltd, uma fornecedora líder de soluções de cibersegurança global, analisaram o ataque de cadeia de suprimentos de software que foi descoberto no GitHub na última quarta-feira. Embora tenha sido impedido de se espalhar ainda mais, as ramificações dos ataques de cadeia de suprimentos são claras e intimidadoras.
“Uma campanha de clonagem de repositórios maliciosos foi identificada no GitHub. Os atacantes usaram técnicas de Typosquatting (também chamado de sequestro de URL) para clonar e republicar repositórios populares com nomes de contas falsos, imitando os originais e adicionando commits (realização de um conjunto de mudanças) extras com código malicioso. O objetivo dos atacantes era roubar variáveis de ambiente e, em alguns casos, até habilitar backdoors para máquinas”, explica Lotem Finkelsteen, chefe de Inteligência de Ameaças da Check Point Software Technologies.
Este ataque destaca novamente como é fácil conduzir ataques à cadeia de suprimentos. Esses tipos de ataques estão se espalhando amplamente em canais de código aberto, de NPM (Node Package Manager) e PYPI (Python Package Index) e, agora, para o GitHub. Na Check Point Software, nossa missão é manter o desenvolvimento seguro contra os ataques e ameaças à cadeia de suprimentos, reforça Finkelsteen.
Check Point Software analisa o ataque da cadeia de suprimentos do GitHub
Este ataque recente foi executado no GitHub, o repositório de código mais popular usado por mais de 83 milhões de desenvolvedores em todo o mundo. Seu repositório permite que os desenvolvedores rastreiem e controlem o código-fonte que eles armazenam no repositório. Seus usuários representam a maior comunidade de codificação do mundo. É comum que os desenvolvedores baixem repositórios de código e usem o código em seus próprios aplicativos.
Em uma situação em que um desenvolvedor deseja alterar significativamente o código de outro, ele usa a função Clone do GitHub. Isso permite que um desenvolvedor crie uma cópia exata do código de outra pessoa – onde a versão original permanece intocada sob o gerenciamento de seu autor original. Ele mantém suas estatísticas de interação existentes, como visualizações, contribuições e seguidores, enquanto a nova versão clonada está sob nova propriedade, sem estatísticas de interação associadas a ela, porque essencialmente é um novo código (embora copiado de algo existente).
O que aconteceu?
Recentemente, um agente malicioso clonou mais de 35 mil repositórios do GitHub e os manteve idênticos ao código-fonte original, com a adição de código malicioso. Esse código malicioso foi capaz de construir uma impressão digital para coletar detalhes do ambiente em que é executado. O código pode coletar as identidades do dispositivo e do usuário e, possivelmente, dados confidenciais adicionais.
Esse código incluía a capacidade de baixar malware adicional de um site de terceiros. Esse malware adicional pode explorar ainda mais qualquer aplicativo ou ambiente que esteja usando esse código originado nos repositórios clonados como armas no GitHub.
A comunidade de desenvolvedores identificou o implante malicioso dentro do código que foi baixado do GitHub que, imediatamente, temeu que o código-fonte dos repositórios originais tivesse sido infectado por esse malware. No entanto, após mais pesquisas, ficou claro que o código infectado era de fato um código clonado que havia sido baixado do GitHub sob a suposição de que o desenvolvedor estava baixando o repositório original não malicioso.
Isso tem implicações potencialmente catastróficas para a cadeia de suprimentos de software, em que um desenvolvedor despretensioso baixa erroneamente um repositório de código clonado que inclui código malicioso, usa-o para seus próprios propósitos e, sem saber, fornece a seus usuários um código que inclui malware.
Como evitar ataques à cadeia de suprimentos
A prática de colocar a segurança no ponto mais inicial possível do processo de desenvolvimento (shifting security “left”) e fornecer às equipes de segurança ferramentas automatizadas para o DevOps inserir a segurança em seus pipelines não é nova, mas a adoção é lenta. Essa tentativa de atacar inúmeros ambientes e aplicativos é um exemplo claro de que a segurança da cadeia de suprimentos é crítica.
Neste sentido, é importante ter ferramentas de segurança automatizadas para desenvolvedores para garantir que todo o código seja centrado na proteção, pois verificam a infraestrutura como código e o código-fonte para eliminar ameaças na fase inicial.