Pesquisa com 5 milhões de apps revela escala alarmante de segredos vazados em JavaScript
Chaves de API vazadas não são novidade, mas a escala do problema em código front-end tem sido um mistério – até agora. A equipe de pesquisa da Intruder desenvolveu um novo método de detecção de segredos e escaneou 5 milhões de aplicações especificamente em busca de segredos escondidos em pacotes JavaScript. Os resultados, divulgados em um artigo patrocinado na BleepingComputer, revelam uma exposição massiva e inadvertida de credenciais sensíveis.
Descoberta e metodologia
A pesquisa focou em pacotes JavaScript (arquivos .js) servidos para navegadores web, que frequentemente contêm não apenas a lógica da interface do usuário, mas também – por erro – credenciais embutidas como tokens de API, chaves de acesso a bancos de dados, senhas e variáveis de ambiente. A Intruder construiu um scanner que analisa o código JavaScript final entregue ao cliente, indo além da análise de repositórios de código-fonte, para capturar segredos que são expostos apenas em produção.
Impacto e alcance
Os números da pesquisa são contundentes:
- Milhares de aplicações continham segredos expostos em seus pacotes JavaScript front-end.
- Tipos de segredos variaram de chaves de API de serviços de terceiros (como AWS, Stripe, SendGrid) a credenciais de bancos de dados e tokens de autenticação interna.
- A exposição é global, afetando empresas de todos os portes e setores, incluindo fintech, saúde, e-commerce e SaaS.
Vetor e causas raiz
As causas para esse vazamento são geralmente erros de desenvolvimento e configuração:
- Configurações de build que não diferenciam adequadamente variáveis de ambiente entre desenvolvimento e produção.
- Práticas de "hardcoding" onde desenvolvedores embutem credenciais diretamente no código por conveniência durante testes e esquecem de removê-las.
- Ferramentas de bundling (como Webpack) que, com configurações inadequadas, podem incluir inadvertidamente todo o conteúdo de arquivos .env ou config.
- Falta de revisão de código ou ferramentas de segurança (SAST) que escaneiam o artefato final de produção.
Repercussão e mitigação
Para equipes de desenvolvimento e segurança, a pesquisa serve como um alerta urgente. As mitigações incluem:
- Implementar revisões de segurança que examinem especificamente os pacotes JavaScript de produção.
- Usar ferramentas de detecção de segredos no pipeline de CI/CD, focando no artefato final (bundle).
- Adotar práticas de "zero trust" para credenciais, usando serviços de gerenciamento de segredos e nunca embutindo credenciais no código do cliente.
- Educar desenvolvedores sobre os riscos de expor segredos no front-end e estabelecer políticas claras para o manuseio de credenciais.