Até agora, você provavelmente já ouviu falar de um grande ataque na cadeia de suprimentos de software que ameaça muitos sites usando o serviço open source polyfill.io. este artigo irá dar-lhe algumas informações sobre o problema, bem como ações atualizadas que você pode tomar para garantir que seus usuários estão protegidos. Embora os serviços da Edgio não sejam afetados por este ataque, a nossa equipa de segurança está pronta para ajudar os clientes preocupados que possam ter usado o polyfill.io no seu website ou aplicação.
Fundo em polyfill.io
Para entender o recente ataque da cadeia de suprimentos do polyfill.io, devemos primeiro definir o termo ‘polifil’. Polyfill refere-se a código que adiciona funcionalidade moderna a navegadores mais antigos que não têm suporte nativo para novos recursos da web. Permite que os desenvolvedores proporcionem uma experiência de usuário consistente em diversos navegadores, particularmente aqueles mais lentos para adotar os mais recentes padrões da web. No caso do ataque polyfill.io, os desenvolvedores usaram polyfill para adicionar funcionalidades JavaScript que não são compatíveis com navegadores mais antigos.
O polyfill.io é um serviço amplamente utilizado que deteta automaticamente o navegador do utilizador final e serviu os polyfills necessários para garantir a compatibilidade com as modernas tecnologias da web. Ao incorporar scripts do cdn.polyfill.io, os desenvolvedores poderiam fornecer polyfils sem o incómodo da gestão manual, simplificando o processo de manter a compatibilidade do navegador.
No entanto, no início deste ano o polyfill.io foi adquirido pela Funnull, uma empresa relativamente desconhecida e supostamente chinesa. Parece que a aquisição marcou estrategicamente o início de um ataque significativo à cadeia de abastecimento. No final de junho de 2024, a empresa de segurança Sansec avisou que o serviço foi usado para injetar código malicioso em milhares de sites, redirecionando os usuários para sites fraudulentos e expondo-os a possíveis roubos de dados e ações não autorizadas.
Quem é afetado pelo ataque polyfill.io?
O impactos deste ataque à cadeia de abastecimento é vasto, afetando mais de 100 000 sites globalmente. Qualquer site que incorpore scripts do cdn.polyfill.io está em risco. O script malicioso introduzido pelo Funnull redirecionou os utilizadores para sites fraudulentos, ativou o roubo de dados e potencialmente permitiu a execução remota de código. Notavelmente, este ataque também comprometeu os utilizadores móveis e especificamente os dispositivos direcionados a momentos específicos, evitando a deteção por ferramentas de segurança e análises.
O Ataque da Cadeia de Suprimentos: O que você precisa saber
Embora existam muitas possibilidades nefastas que os atacantes podem assumir depois de comprometer scripts de terceiros, as mais comuns incluem:
- Redirecionar para sites maliciosos: Sites que usam scripts comprometidos podem, sem saber, redirecionar os utilizadores para sites fraudulentos, como sites falsos do Google Analytics ou de apostas desportivas. Esses redirecionamentos maliciosos comprometem a confiança do usuário e podem levar a ataques de phishing.
- Roubo de Dados e Execução de Código: O script modificado pode roubar dados confidenciais dos utilizadores e executar a execução não autorizada de código, o que representa riscos graves para a integridade do website e para a privacidade do utilizador. Scripts não autorizados podem exfiltrar dados confidenciais do utilizador, tais como informações pessoais, detalhes do cartão de crédito e credenciais de início de sessão, para servidores externos.
- Scripts entre sites (XSS): Scripts maliciosos podem ser executados no contexto do navegador do usuário, levando ao sequestro de sessão, distribuição de malware e, como mencionado anteriormente, a exfiltração de dados.
- Desfiguração do site: Os invasores podem modificar a aparência ou o conteúdo de uma página da web, levando a danos à marca e perda da confiança do usuário.
- Degradação do desempenho: Scripts maliciosos ou não autorizados podem causar problemas significativos de desempenho de aplicativos, retardando os sites e proporcionando experiências de usuário pobres.
O que pode fazer para proteger o seu site e os seus utilizadores?
Considerando esse ataque e a alta dependência de bibliotecas de terceiros nos aplicativos modernos de hoje, os desenvolvedores e administradores de sites devem tomar medidas imediatas para proteger seus sites e usuários. Aqui está a nossa última orientação:
- Identificar sites usando o polyfill.io: O primeiro passo para proteger o seu site e os seus utilizadores deste ataque é saber se o seu código faz referência ao polyfill.io.
Se você tiver uma solução de Teste de Segurança de Aplicação Estática (SAST), pode executar uma consulta para procurar referências a polyfill.io (a sintaxe pode variar, mas o seguinte Regex dá a ideia):
Resultado: Find_Strings().FindByRegex (“https?://(cdn.polyfill.io)”);
Além disso, as ferramentas de Análise Estática de Código (SCA), que se concentram na identificação e gestão de componentes de código aberto e das suas vulnerabilidades, podem ajudar. As ferramentas SCA mantêm bases de dados de vulnerabilidades conhecidas associadas a bibliotecas e frameworks. Ao digitalizar a sua base de código, as ferramentas SCA podem sinalizar quaisquer dependências (incluindo polyfill.io) com problemas de segurança conhecidos.
Se você não tem SAST ou SCA em vigor, nós recomendamos seguir estes passos do ZAP, um projeto GitHub Top 1000 ativamente mantido dedicado a testes de segurança.
docker run -t zaproxy/zap-stable zap.sh -cmd -addoninstall pscanrulesBeta -zapit https://www.example.com/
O comando de uma linha usado pela deteção de scripts polyfill.io do ZAP para verificar se há scripts a serem servidos a partir do domínio polyfill.io (requer Docker); para uma verificação mais robusta, execute uma verificação de linha de base do ZAP .
- A proteção do lado do cliente ajuda a proteger-se contra ataques da cadeia de suprimentos, monitorando e controlando scripts e chamadas de API de terceiros em tempo real, impedindo o carregamento de código malicioso e bloqueando interações não autorizadas com hosts maliciosos.
A solução de Proteção do Lado do Cliente da Edgio permite que as equipas implementem um modelo de segurança positivo, permitindo apenas que scripts definidos de terceiros sejam executados em navegadores clientes.
Exemplo de uma política de proteção do lado do cliente. Um modelo de segurança positivo pode ser aplicado direcionando quais fontes de script podem ser chamadas na lista de permissões.
- Remover scripts polyfill.io: Remova todas as referências a cdn.polyfill.io do seu código. Substituí-los por fontes alternativas e confiáveis para polyfills ou descontinuar o uso de polyfils completamente, como navegadores modernos raramente exigem deles.
As funções Edge do Edgio também podem ser usadas para reescrever dinamicamente quaisquer referências de polyfill feitas pelo seu site para qualquer URL segura (disponível no nosso repositório do GitHub aqui ). Esta camada de segurança adicional pode ser considerada como um simples e fácil de implantar “patch virtual”, oferecendo proteção valiosa e tempo de compra para que as suas equipas de desenvolvimento recuem e removam e substituam referências à biblioteca comprometida.
- Monitorize quanto a compromissos: Verifique regularmente o seu website quanto a sinais de compromisso, tais como redirecionamentos não autorizados ou exfiltração de dados. Implementar ferramentas de monitoramento de segurança para detetar atividades incomuns e manter-se atualizado com avisos de segurança e atualizações relacionadas às bibliotecas e serviços que você usa.
- Mudar para Serviços Confiáveis: Se o seu caso de uso requer polyfills, procure serviços alternativos de organizações com um histórico comprovado. No entanto, você sabe o que eles dizem sobre garantias na vida, por isso é importante usar os controles e as melhores práticas acima mencionados para reduzir o risco. Afinal, os desenvolvedores vão usar o que eles acham que funciona – o polyfill.io era um serviço bastante popular – e nem todos têm um fundo de codificação seguro.
Conclusão
O ataque da cadeia de suprimentos do polyfill.io serve como um lembrete das vulnerabilidades inerentes aos componentes de software de terceiros. Na Edgio, enfatizamos a importância de proteger suas aplicações web através de uma robusta segurança multi-camada. O nosso serviço de Proteção de Aplicações Web e API (WAAP) , que inclui Proteção do Lado do Cliente para detetar e bloquear scripts maliciosos em execução em navegadores do lado do cliente, garante uma proteção contínua contra ataques da cadeia de fornecimento e outras ameaças em evolução.
Além disso, a nossa nova solução de Gerenciamento de Superfície de Ataque (ASM) fornece visibilidade abrangente em toda a sua pegada voltada para a web, permitindo que você identifique e mitigue vulnerabilidades de forma proativa, salvaguardando-as contra possíveis explorações antes que possam ser aproveitadas pelos invasores.
Por fim, os Serviços de Segurança Geridos do Edgio também estão prontos para ajudar a implementar ou gerir totalmente a segurança das suas aplicações web. Com 24/7 operações de segurança, uma equipa dedicada de inteligência contra ameaças e arquitetos de segurança atribuídos, pode ter a certeza de que os seus ativos web são continuamente monitorizados e protegidos contra as mais recentes ameaças, permitindo que as suas equipas se concentrem na inovação enquanto lidamos com as suas necessidades de segurança.
Se você tiver alguma dúvida ou precisar de ajuda para proteger seus sites contra ataques na cadeia de suprimentos, sinta-se à vontade para entrar em contato com os especialistas em segurança do Edgio .