Skip to main content
Blog
Blog

Proteção resistente à evasão de CSP contra JavaScript ofuscado: guia 2026

Por que a CSP não consegue deter ataques de JavaScript ofuscado e o que a monitorização comportamental na camada do navegador acrescenta que as listas de permissões de fontes não conseguem.

Jul 12, 2026 6 min read
Proteção resistente à evasão de CSP contra JavaScript ofuscado: guia 2026

A proteção resistente à evasão de CSP refere-se a controlos de segurança que detetam e bloqueiam JavaScript malicioso mesmo quando esse código usa ofuscação, carregamento dinâmico ou injeção via hosts de confiança para contornar a Content Security Policy. A CSP impõe uma lista de permissões de fontes de scripts aprovadas, mas não consegue inspecionar o que essas fontes aprovadas executam. Os controlos resistentes à evasão observam o comportamento em tempo de execução de cada script dentro da sessão do navegador, detetando ameaças que passam pelas verificações de lista de permissões sem acionar uma única violação de política.

O ataque à cadeia de fornecimento do Polyfill[.]io em junho de 2024 mostrou esta lacuna. Mais de 490.000 sites tinham cdn.polyfill[.]io na sua lista de permissões CSP. Quando o domínio mudou de proprietário e o novo operador substituiu a biblioteca legítima por malware ofuscado, cada site afetado carregou e executou o payload malicioso enquanto a CSP não reportava qualquer violação. (Investigação Sansec, junho de 2024)

Três rotas que o código ofuscado usa para contornar a CSP

A CSP controla fontes, não payloads. Três padrões de ataque exploram esta lacuna:

Compromisso de CDN de confiança ou host de terceiros. O script carrega de um domínio já presente na lista de permissões. Um payload modificado não aciona a CSP porque o URL de fonte não se altera. O Polyfill[.]io, os ataques de web skimming Magecart e recentes compromissos de CDNs de análise seguem esta rota.

Injeção em ficheiros próprios. Um atacante com acesso ao servidor injeta código ofuscado num ficheiro JavaScript próprio existente. Esse ficheiro carrega do domínio do site, que é sempre permitido.

Construção dinâmica de código em tempo de execução. Um script aprovado carrega e monta uma função maliciosa a partir de fragmentos de strings em tempo de execução, usando eval(), Function() ou equivalentes indiretos. O payload perigoso nunca existe em qualquer recurso carregado; é construído dentro do navegador após um carregamento de página limpo.

Nenhuma destas rotas viola uma lista de permissões de fontes. A CSP reporta limpo enquanto o malware ofuscado é executado.

Como os scripts ofuscados também evitam os scanners automáticos

A ofuscação remove os sinais legíveis que tanto os revisores humanos como os scanners automáticos procuram:

TécnicaO que fazPor que os scanners a perdem
Divisão e concatenação de stringsDivide URLs e palavras-chave em fragmentos unidos em tempo de execuçãoNenhuma string completa aparece na fonte estática
Codificação Base64 com descodificação dinâmicaArmazena o payload como um blob descodificado apenas na execuçãoParece dados, não código executável, para um analisador estático
Sequências de escape hexadecimal ou UnicodeCodifica caracteres como \x61 ou AAs ferramentas estáticas precisam executar o código para resolver o valor real
Nomes de variáveis aleatóriosSubstitui identificadores legíveis por nomes curtos aleatóriosRemove o sinal de palavras-chave em que os detetores de padrões confiam
Carregamento dinâmico tardioObtém o payload real de um servidor C2 após a execução de um script aprovadoO recurso carregado difere em cada análise

Os hashes de Subresource Integrity (SRI) defendem contra substituições silenciosas de payloads de fontes conhecidas, mas apenas quando um hash pode ser fixado para cada ficheiro. Scripts de terceiros que se atualizam frequentemente tornam o SRI impraticável em produção, o que constitui o desafio central na gestão de integridade de scripts dinâmicos. O SRI também não consegue proteger contra payloads obtidos dinamicamente de um endpoint C2, porque esse payload não estava presente quando qualquer hash foi calculado.

Abordagens para proteção contra JavaScript ofuscado

AbordagemControlo de fontesInspeção de payloadTrata compromisso de host de confiançaDeteta injeção dinâmica em tempo de execução
CSPSimNãoNãoNão
Subresource Integrity (SRI)ParcialApenas hashParcialNão
WAF ou filtragem de camada de redeParcialNãoNãoNão
Análise estática de JavaScriptNãoParcialParcialNão
Monitorização comportamental na camada do navegadorOpcional por políticaSimSimSim

A monitorização na camada do navegador é o único controlo nesta tabela que sobrevive às três rotas de evasão descritas. Funciona em conjunto com a CSP e cobre a lacuna de visibilidade de payload que a CSP deixa em aberto.

O que exigir de uma ferramenta resistente à evasão de CSP

Quatro perguntas antes de incluir um fornecedor na lista restrita:

Observação de payload em tempo de execução. A ferramenta analisa o que os scripts executam dentro do navegador, não apenas os URLs a partir dos quais carregam? Peça ao fornecedor para demonstrar a deteção de um script que carrega de um domínio de confiança e chama um endpoint de exfiltração não autorizado. Se a demonstração precisar de um URL de fonte maliciosa para ativar, a ferramenta depende da fonte.

Deteção de padrões de código ofuscado. Faça perguntas específicas sobre divisão de strings, equivalentes de eval() e descodificação dinâmica de Base64. Ferramentas que apenas sinalizam eval() literalmente perderão a maior parte da ofuscação real.

Monitorização comportamental pós-carregamento. Muitos ataques obtêm o seu payload real de um servidor C2 após o carregamento inicial da página. A ferramenta deve continuar a monitorizar além de DOMContentLoaded, não apenas na análise inicial.

Explicabilidade dos alertas. Um alerta que apenas diz "script suspeito detetado" não é acionável. Cada descoberta deve identificar o script, o comportamento que acionou a deteção e a chamada de rede tentada, para que um analista possa triar sem adivinhar.

Como o cside se encaixa neste cenário

O cside instrumenta o navegador através de um script que é executado dentro de cada sessão de visitante. Observa o que cada script de terceiros e próprio faz em tempo de execução: chamadas de rede efetuadas, alterações DOM aplicadas, campos de dados sensíveis acedidos e padrões de execução ofuscados detetados.

Quando um CDN comprometido serve um payload ofuscado a uma página instrumentada pelo cside, a deteção aciona no que o payload faz em tempo de execução (chamada de rede não autorizada, cadeia eval ofuscada, padrão de exfiltração de dados) em vez de na sua origem. Uma falha na lista de permissões de fontes não pode produzir um falso negativo num sistema baseado em comportamento.

Os requisitos 6.4.3 e 11.6.1 do PCI DSS v4.0.1 (obrigatórios desde março de 2025) exigem que os comerciantes autorizem todos os scripts nas páginas de pagamento e detetem modificações não autorizadas no conteúdo dos scripts ou nos cabeçalhos HTTP. A monitorização comportamental na camada do navegador fornece a evidência ao nível da execução que esses controlos esperam de uma camada de monitorização que alcança o interior do navegador, em vez de parar no perímetro da rede.

Para mais informações sobre as limitações práticas da CSP, consulte por que a CSP não funciona. Para uma análise técnica dos métodos de ofuscação usados em ataques reais, consulte o guia de desofuscação de JavaScript de terceiros.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

A proteção resistente à evasão de CSP descreve controlos de segurança que detetam e bloqueiam JavaScript malicioso mesmo quando os atacantes utilizam ofuscação, carregamento dinâmico a partir de um host de confiança ou injeção tardia para contornar uma Content Security Policy. A CSP impõe listas de permissões de fontes; os controlos resistentes à evasão inspecionam o que os scripts realmente executam no navegador.

A CSP aprova ou bloqueia scripts com base na sua origem, não no que fazem. Os atacantes contornam-na por três vias: comprometer um CDN de confiança para que a fonte autorizada entregue malware ofuscado, injetar payloads ofuscados em ficheiros próprios em que o servidor já confia, e montar funções perigosas a partir de fragmentos de strings em tempo de execução usando equivalentes de eval(). Nenhuma destas rotas viola uma lista de permissões de fontes.

A propriedade chave é a inspeção de payload em tempo de execução. Uma ferramenta resistente à evasão de CSP observa o que os scripts executam dentro da sessão do navegador, não apenas os domínios a partir dos quais carregam. Deve sinalizar padrões de código ofuscado, chamadas de rede não autorizadas e alterações de comportamento a meio da sessão sem depender de uma lista de permissões de fontes.

Os ataques à cadeia de fornecimento via CDNs de confiança são o padrão principal. Em junho de 2024, o compromisso do Polyfill[.]io entregou malware ofuscado a mais de 490.000 sites. Cada site afetado tinha cdn.polyfill[.]io na sua lista de permissões CSP e nenhuma violação de política foi acionada. Os skimmers de pagamento tipo Magecart seguem a mesma rota: um host de confiança comprometido serve código de exfiltração ofuscado que uma CSP aprovada permite.

O cside instrumenta o navegador para observar o que cada script faz em tempo de execução, não apenas a sua origem. Deteta execução de código ofuscado, chamadas de dados não autorizadas e padrões de injeção dinâmica que aparecem após o carregamento da página. Como a deteção opera na camada de execução em vez da camada de fontes, um CDN de confiança comprometido não produz um falso negativo.

Monitore e Proteja Seus Scripts de Terceiros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Comece grátis, ou experimente o Business com um teste de 14 dias.

Interface do painel cside mostrando monitoramento de scripts e análises de segurança
Related Articles
Agende uma demonstração