Hoje, estamos entusiasmados por anunciar o Page Shield, um produto de segurança do lado do cliente que os clientes podem usar para detectar ataques em navegadores de usuários finais.
A partir de 2015, um grupo de hackers chamado Magecart roubou credenciais de pagamento de lojas on-line infectando dependências de terceiros com código malicioso. O código infectado era solicitado pelos navegadores do usuário final, onde executava e acessava as informações do usuário na página da web. Depois de obter as informações, o código infectado as enviava aos hackers, que as revendiam ou usavam para lançar ataques adicionais, como fraude de cartão de crédito e roubo de identidade.
Desde então, outros alvos de tais ataques à cadeia de suprimentos incluiram Ticketmaster, Newegg, British Airways e muitos outros. O ataque da British Airways resultou no comprometimento de um de seus arquivos JavaScript auto-hospedados, expondo quase 500 mil dados de clientes a hackers. O ataque resultou em multas do GDPR e na maior ação coletiva de privacidade da história do Reino Unido. No total, milhões de usuários foram afetados por esses ataques.
Escrever código seguro dentro de uma organização já é bastante desafiador sem a necessidade de se preocupar com fornecedores terceirizados. Muitas plataformas SaaS fornecem código de terceiros para milhões de sites, o que significa que um único comprometimento pode ter resultados devastadores. O Page Shield ajuda os clientes a monitorar esses possíveis vetores de ataque e evitar que informações confidenciais de usuários caiam nas mãos de hackers.
No início desta semana, anunciamos o Isolamento do navegador remoto para todos como uma forma de mitigar ataques do lado do cliente nos navegadores de seus funcionários. O Page Shield continua o avanço da Cloudflare na segurança do lado do cliente, ajudando a mitigar ataques direcionados a seus clientes.
Antecedentes
Um ataque no estilo Magecart é um tipo de ataque à cadeia de suprimentos de software realizado no navegador de um usuário. Os invasores visam os hosts de dependências de JavaScript de terceiros e obtêm controle sobre o código-fonte fornecido aos navegadores. Quando o código infectado é executado, geralmente tenta roubar dados confidenciais que os usuários finais inserem no site, como detalhes de cartão de crédito durante um fluxo de pagamento.
Esses ataques são difíceis de detectar porque muitos proprietários de aplicativos confiam em JavaScript de terceiros para funcionar conforme o esperado. Devido a essa confiança, o código de terceiros raramente é auditado pelo proprietário do aplicativo. Em muitos casos, os ataques Magecart duraram meses antes da detecção.
A exfiltração de dados não é o único risco decorrente das cadeias de suprimentos de software. Nos últimos anos, também vimos hackers modificarem códigos de terceiros para mostrar anúncios fraudulentos aos usuários. Os usuários clicam nesses anúncios e vão para sites de phishing, onde suas informações pessoais são roubadas pelos hackers. Outro malware JavaScript extraiu criptomoedas para os invasores usando recursos do usuário final, prejudicando o desempenho do site.
Então, o que os proprietários de aplicativos podem fazer para se proteger? As tecnologias dos navegadores existentes, como Content Security Policy (CSP) e Subresource Integrity (SRI), fornecem alguma proteção contra ameaças do lado do cliente, mas apresentam algumas desvantagens.
O CSP permite que os proprietários de aplicativos enviem uma lista de permissões para o navegador, impedindo a execução de qualquer recurso fora dos listados. Embora isso possa impedir certos ataques de cross-site scripting (XSS), não detecta quando os recursos existentes mudam de estados benignos para maliciosos. O gerenciamento do CSP também é um desafio operacional, pois exige que os desenvolvedores atualizem a lista de permissões sempre que um novo script é adicionado ao site.
O SRI permite que os proprietários de aplicativos especifiquem um hash de arquivo esperado para JavaScript e outros recursos. Se o arquivo buscado não corresponder ao hash, sua execução será bloqueada. O desafio com o SRI é que os fornecedores atualizam seus códigos com frequência e, em certos casos, fornecem arquivos diferentes para diferentes usuários finais. Também descobrimos que os fornecedores de JavaScript às vezes fornecem versões de arquivos com hashes diferentes para os usuários finais devido a pequenas diferenças, como espaçamento. Isso pode fazer com que o SRI bloqueie arquivos legítimos sem culpa do proprietário do aplicativo.
O Script Monitor é o primeiro recurso disponível do Page Shield
O Script Monitor é o início da aspiração da Cloudflare para o Page Shield. Quando ativado, ele registra as dependências de JavaScript do seu site ao longo do tempo. À medida que novas dependências de JavaScript aparecem, nós o alertamos, para que você possa investigar se são alterações esperadas em seu site. Isso ajuda a identificar se agentes mal-intencionados modificaram seu aplicativo para solicitar um novo arquivo JavaScript malicioso. Assim que a versão beta estiver concluída, esse conjunto inicial de recursos será disponibilizado para clientes Business e Enterprise sem nenhum custo extra.
Como funciona o Script Monitor?
Devido à posição exclusiva da Cloudflare entre os servidores de origem do aplicativo e os usuários finais, podemos modificar as respostas antes que cheguem aos usuários finais. Nesse caso, estamos adicionando um cabeçalho Content-Security-Policy-Report-Only às páginas conforme elas passam por nossa borda. Quando os arquivos JavaScript tentam ser executados na página, os navegadores enviam um relatório à Cloudflare. Como usamos um cabeçalho report-only, não é necessário que os proprietários de aplicativos mantenham listas de permissões para insights relevantes.
Para cada relatório que vemos, comparamos o arquivo JavaScript com as dependências históricas dessa zona e verificamos se o arquivo é novo. Se for, disparamos um alerta, para que os clientes possam investigar e determinar se a mudança era esperada.
A IU do monitor de scripts localizada em Firewall -> Page Shield
Como participante beta, você verá a guia Proteção de página na seção Firewall do painel de sua zona. Lá, você encontra a tabela Script Monitor rastreando as dependências JavaScript da sua zona. Para cada dependência, você pode visualizar a primeira data e a última data de visualização e o domínio do host em que foi detectada.
Exemplo de notificação por e-mail para novas dependências de JavaScript encontradas
Você também pode configurar as notificações do Script Monitor no painel. Essas notificações enviam alertas para o e-mail ou PagerDuty sempre que um novo arquivo JavaScript é solicitado pelo seu site.
Pensando no futuro
Nossa missão é ajudar a construir uma internet melhor. Isso se estende aos navegadores dos usuários finais, onde vimos um aumento alarmante de ataques nos últimos anos. Com o Page Shield, ajudamos os aplicativos a detectar e mitigar esses ataques enganosos para manter as informações confidenciais de seus usuários seguras.
Já estamos desenvolvendo a detecção de alteração de código no Script Monitor. A detecção de alteração de código buscará periodicamente as dependências JavaScript do seu aplicativo e analisará seu comportamento. Quando um novo comportamento de código for detectado em arquivos existentes, nós o alertaremos para que você possa analisar a alteração e determinar se o novo código é uma atualização benigna ou um trecho de código infectado.
Após a detecção de alteração de código, vem a análise inteligente de arquivos JavaScript. Embora alertar os proprietários de aplicativos quando suas dependências mudam forneça informações sobre arquivos de interesse, podemos fazer ainda melhor. Trabalhamos com nossos parceiros de segurança para adquirir amostras de JavaScript Magecart e provamos que podemos classificar com precisão amostras de JavaScript malicioso. Planejamos refinar ainda mais nossas técnicas e, finalmente, começar a alertar os clientes do Page Shield quando acreditarmos que suas dependências são maliciosas.
Conversamos com nossos clientes e entendemos que manter as listas de permissões de CSP é um desafio operacional. Se um novo JavaScript do lado do cliente for implantado sem ser adicionado à lista de permissões, esse novo código será bloqueado pelos navegadores. É por isso que usaremos nossa posição como proxy reverso para enviar bloqueio de modelo de segurança negativo. Isso permitirá que os proprietários de aplicativos bloqueiem scripts individuais sem ter que manter uma lista de permissões, garantindo que os clientes possam enviar novos códigos sem a sobrecarga incômoda.
Inscreva-se para receber a versão beta
A partir de hoje, todos os clientes Business e Enterprise podem se inscrever aqui para participar do beta fechado do Page Shield. Ao ingressar na versão beta, os clientes poderão ativar o Script Monitor e começar a monitorar o JavaScript de seu site.