©2022 - Todos os Direitos Reservados

Ameaça mascarada de contribuições do Dependabot atinge repositórios do GitHub

Ameaça mascarada de contribuições do Dependabot atinge repositórios do GitHub

Recentemente, provedores de segurança cibernética descobriram uma série de injeções de códigos maliciosos camuflados como contribuições legítimas do Dependabot em centenas de repositórios do GitHub. Esses incidentes, ocorridos em julho de 2023, levantaram preocupações sobre a segurança de tokens de acesso pessoal (PATs) no GitHub e o crescente refinamento de atores de ameaças em ataques à cadeia de suprimentos.

O Dependabot é uma ferramenta nativa do GitHub para automatizar atualizações de dependências em projetos de software hospedados no GitHub.


Ele ajuda desenvolvedores a manter seus projetos atualizados monitorando automaticamente as dependências do projeto (como bibliotecas e pacotes) quanto a vulnerabilidades de segurança e versões desatualizadas.


Quando o Dependabot detecta que uma atualização está disponível ou uma vulnerabilidade de segurança foi corrigida, ele gera pull requests com as atualizações necessárias. Isso simplifica o processo de manutenção de dependências e garante que os projetos permaneçam seguros e atualizados com os componentes de software mais recentes.

Ataque Enganoso


Durante a primeira metade de julho, atores de ameaças miraram uma ampla gama de repositórios do GitHub, afetando projetos públicos e privados. As vítimas consistiam principalmente em contas de usuários indonésios, tornando-a uma questão significativa e potencialmente generalizada. Os atacantes utilizaram uma técnica inteligente para imitar as mensagens de commit do Dependabot, enganando os desenvolvedores a acreditar que essas eram contribuições autênticas.


As falsas mensagens de commit frequentemente continham o nome "dependabot", efetivamente camuflando suas atividades e evitando suspeitas. Dentro desses repositórios, especialistas descobriram dois grupos distintos de alterações de código, sugerindo fortemente o uso de scripts automatizados pelos atacantes.

Carga Útil e Táticas Maliciosas


De acordo com uma postagem no blog de Guy Nachshon, da Checkmarx, os atacantes introduziram um novo arquivo de Ação do GitHub chamado "hook.yml" nos repositórios, criando um novo fluxo de trabalho que era acionado durante pushes de código. Essa ação sifonava segredos e variáveis do GitHub, enviando-os para um URL suspeito (sendwagateway.pro/webhook). Essa manobra foi executada com cada evento de push, amplificando o dano potencial.


Além disso, os atores maliciosos adulteraram arquivos de projeto existentes com a extensão ".js". Uma linha de código ofuscada foi anexada a esses arquivos, projetada para criar uma nova tag de script durante a execução em um ambiente de navegador. Este novo código visava carregar um script externo de (sendwagatewaypro/client.js?cache=ignore), com o intuito sinistro de interceptar formulários de senha baseados na web e transmitir as credenciais do usuário para o mesmo endpoint de exfiltração.

Desvendando o Vetor de Ataque


Inicialmente, não estava claro como os atacantes obtiveram acesso às contas visadas, dadas as medidas de autenticação de dois fatores (2FA) obrigatórias reforçadas do GitHub. Para esclarecer a situação, especialistas entraram em contato com algumas das vítimas e descobriram que os atacantes exploraram PATs comprometidos (Tokens de Acesso Pessoal).


Esses tokens, armazenados localmente nas máquinas dos desenvolvedores, facilitam operações Git sem exigir 2FA. Os atacantes aparentemente extraíram esses tokens silenciosamente dos ambientes de desenvolvimento das vítimas, potencialmente por meio de um pacote de código aberto malicioso que havia infiltrado seus sistemas.

Escala Automatizada do Ataque


A análise da escala do ataque indicou um alto nível de automação na abordagem do ator da ameaça. A eficiência e sofisticação do ataque enfatizaram a necessidade de maior vigilância entre desenvolvedores e mantenedores de software.

Lições Aprendidas e Próximos Passos

Este incidente serve como um lembrete da importância da verificação da origem do código, mesmo de plataformas confiáveis como o GitHub. Destaca que até plataformas bem estabelecidas podem ser vítimas de tais ataques, enfatizando a necessidade de vigilância contínua online.

Para aprimorar a segurança, recomenda-se que os desenvolvedores considerem adotar tokens de acesso pessoal de granularidade fina do GitHub, reduzindo o risco associado a tokens comprometidos.


No entanto, vale ressaltar que a atividade de log de acesso para tokens de acesso pessoal está atualmente visível apenas para contas corporativas, deixando os usuários não corporativos menos informados sobre possíveis violações.


As Táticas, Técnicas e Procedimentos (TTPs) dos atacantes demonstram uma crescente sofisticação em ataques de cadeia de suprimentos.


Seu uso de commits falsos, roubo de credenciais e personificação do Dependabot destaca o cenário de ameaças em evolução.

Protegendo Repositórios do GitHub


Este ataque realça a crescente sofisticação de atores de ameaça e a necessidade de maior vigilância por desenvolvedores e equipes de segurança. Algumas medidas proativas que as organizações podem tomar para fortalecer a segurança do GitHub incluem:


  • Adotar tokens de acesso pessoal granulares: Isso limita o escopo de danos se um token for comprometido.
  • Ativar a autenticação de dois fatores (2FA): Adicione uma camada extra de segurança para acessar contas.
  • Monitorar logs de commit e pull requests: Permite detectar commits suspeitos o mais rápido possível.
  • Verificar e validar dependências: Assegure que componentes de terceiros sejam legítimos e segurança.
  • Restringir permissões: Forneça aos desenvolvedores apenas o acesso necessário.
  • Segmentar ambientes: Separe ambientes de desenvolvimento, teste e produção.
  • Utilizar varreduras SAST/DAST: Identifique vulnerabilidades em aplicações e APIs expostas.
  • Realizar backups frequentes: Permita restaurar estado seguro em caso de comprometimento.
  • Educar equipes: Treine equipes sobre melhores práticas de segurança e consciência de ameaças.

Ao implementar uma combinação dessas medidas, as organizações podem reduzir significativamente suas superfícies de ataque no GitHub e proteger a integridade de seu código e dados confidenciais.

Importância da Inclusão de Aplicações no Gerenciamento de Vulnerabilidades


Este ataque ressalta a importância crítica de incluir aplicações no programa de gerenciamento de vulnerabilidades de uma organização. Historicamente, muitas empresas focaram esforços de correção quase que exclusivamente em vulnerabilidades em sistemas operacionais, frameworks e bibliotecas de terceiros.


No entanto, as aplicações personalizadas desenvolvidas internamente também podem conter sérias fraquezas de segurança. Ignorar o código proprietário no processo de gerenciamento de vulnerabilidades cria lacunas significativas na postura de segurança.


Ferramentas como análises estáticas (SAST) e testes dinâmicos de aplicações (DAST) permitem ampliar a cobertura de gerenciamento de vulnerabilidades para incluir aplicações internas. As varreduras SAST examinam o código-fonte em busca de fraquezas, enquanto o DAST testa aplicações em execução para expor riscos.


Ao incorporar essas capacidades, as organizações podem descobrir problemas como injeção SQL, falsificação de solicitação entre sites (CSRF), controles de acesso fracos e muito mais. Equipes de segurança podem então priorizar estas vulnerabilidades de aplicação juntamente com outros ativos, garantindo que elas sejam abordadas em tempo hábil.


À medida que a sofisticação de ataques de cadeia de suprimentos aumenta, as empresas não podem mais negligenciar a segurança de código interno. Através de testes SAST/DAST abrangentes e da incorporação de aplicativos no gerenciamento de vulnerabilidades, as organizações podem reduzir drasticamente seu risco cibernético.


Quer amadurecer seu programa de segurança cibernética através do gerenciamento de vulnerabilidades? Conheça a EcoTrust, a #1 plataforma SaaS de Inteligência em Riscos Cibernéticos, que através da identificação e priorização de riscos cibernéticos críticos para o negócio, ajuda empresas a serem mais resilientes a ataques cibernéticos. Agende uma demo aqui