Uma campanha de segurança descoberta por pesquisadores da JFrog e SafeDep revelou o uso de 148 pacotes npm disfarçados como proxies web para estudantes, que foram utilizados para transformar navegadores de visitantes em uma botnet de negação de serviço distribuído (DDoS). A operação, que operou por cerca de duas semanas em maio, explorou a confiança dos usuários em ferramentas de bypass de rede escolar para distribuir código malicioso.
Descoberta e escopo da campanha
A campanha, identificada como "Lucide Proxy", utilizava nomes e páginas associadas a tutorias educacionais, como "Riverbend Tutoring" e "Northstar Tutoring". O objetivo aparente era fornecer uma maneira para estudantes contornarem restrições de conteúdo de rede escolar, permitindo o acesso a sites e jogos bloqueados. No entanto, o comportamento legítimo do proxy servia como cobertura para scripts maliciosos que eram carregados em segundo plano.
Os pesquisadores da SafeDep documentaram inicialmente 141 pacotes relacionados como abuso de hospedagem de adware em maio. Posteriormente, a JFrog deofuscou o aplicativo e descobriu funções de carregamento remoto de código e DDoS que operaram no final de maio. A primeira onda começou em 27 de maio, e uma onda posterior apareceu em 8 de julho, totalizando 148 pacotes. Embora muitos pacotes tenham sido removidos, alguns permaneciam disponíveis no momento da publicação da pesquisa.
Mecanismo de ataque e exploração
Diferente de um pacote npm malicioso típico, esta operação não precisava infectar o computador do desenvolvedor durante a instalação. Os pacotes atuavam como um sistema de entrega para páginas de proxy baseadas em navegador. Qualquer pessoa que abrisse um dos sites hospedados poderia estar exposta a publicidade popunder, rastreamento e, durante um período chave, código de inundação de tráfego.
A análise da JFrog encontrou um pacote JavaScript ofuscado que carregava dois módulos ocultos antes da interface do proxy aparecer. Um deles puxava um script hospedado remotamente de um branch mutável do GitHub sem verificação de integridade. Isso deu aos operadores a capacidade de alterar o código entregue a cada visitante sem republicar o pacote npm.
Um payload de segunda etapa enviado enviava grandes solicitações POST repetidas a um site de destino de educação a cada meio segundo. A JFrog estimou que um navegador ativo poderia gerar cerca de 2 MB de tráfego de upload por segundo, e mil visitantes poderiam produzir aproximadamente 2 GB por segundo. Tal tráfego pode retardar ou sobrecarregar um serviço voltado ao público.
Um componente separado buscava configurações de WebSocket em tempo real e instruía os navegadores a abrir conexões para um ponto de extremidade proxy compatível com Wisp. Isso poderia criar e fechar conexões em alta velocidade, colocando pressão na capacidade de soquete e nos logs de um servidor.
Impacto e alcance
O impacto principal recaiu sobre instituições educacionais e redes corporativas onde o uso de proxies é comum. A abordagem tornou as remoções mais difíceis, pois os mesmos arquivos básicos podiam ser copiados através de muitos nomes de pacotes e locais de hospedagem. O vetor de ataque explorava a confiança dos usuários finais, que não eram necessariamente desenvolvedores adicionando uma dependência a um projeto, mas sim estudantes visitando uma página de proxy implantada.
Como o código malicioso era entregue após o carregamento da página, alertas de endpoint focados apenas na instalação do pacote podem não detectar usuários afetados. A telemetria do navegador e os registros DNS são, portanto, importantes para escopar a exposição em redes de campus.
Medidas de mitigação recomendadas
Administradores devem bloquear os domínios de infraestrutura listados, especialmente em redes escolares e corporativas. Usuários que acessaram sites afetados devem limpar cookies do navegador, arquivos em cache e service workers. Equipes de desenvolvimento devem remover os pacotes correspondentes dos manifestos e lockfiles, reconstruir a partir de fontes limpas e verificar se as dependências diretas e indiretas foram removidas.
Equipes de segurança também devem revisar os logs de filtragem web para visitas a páginas de proxy com tema de tutoria e investigar atividade incomum de upload do navegador. A remoção do carregador remoto e do gerador de tráfego ocorreu, mas o carregamento de scripts externos permanece uma preocupação.
Indicadores de comprometimento (IoCs)
Os seguintes indicadores foram identificados pela pesquisa e devem ser monitorados em plataformas de inteligência de ameaças:
- Domínios: whatsadmaidk, changiairportpromax, testdonotredeem, wisp.breadarchive.dpdns.org, 21baseballacademy.com, lucideon.top, cdn.conditionfuneral.com.
- URLs: https://cdn.jsdelivr.net/gh/canyoupleasesaysomething/cdn/main/cdn.js, https://cdn.caan.edu/?v=, https://woofbeginner.com/jivd2xu8, https://realizationnewestfangs.com, https://protrafficinspector.com/stats.
- IPs: 92.38.177.17, 92.38.177.101, 53.75.225.178, 5.188.124.67, 92.38.177.169, 92.38.177.37.
- Arquivos: assets73sxysj46r.js, assets/script.js.
- Hashes SHA-256: eb4e1394d537d8eba509dd5c57e7aaf4c1df57715c7161330012a11f6202af84, 10ddbbae0070267b8d15888b09a3cdb19fa74d861315b71f21c9ace8b9f85c75, 4b188d179e50e8208a6efec85e273e88d8fc390c836f299ba12915e0840408fd.
Nota: Endereços IP e domínios são intencionalmente defanged (ex: [.]) para evitar resolução acidental. Re-fang apenas dentro de plataformas controladas como MISP ou SIEM.