Skip to main content
Blog
Blog

O que é a cadeia de fornecimento do navegador?

O cside é um produto de cibersegurança que atua no espaço da cadeia de fornecimento do navegador. Nós e outros fornecedores que operam aqui gostamos de falar sobre essa cadeia de fornecimento. Mas o que exatamente queremos dizer com isso? A cadeia de fornecimento do navegador é a combinação de componentes e processos que se unem para renderizar páginas web, executar scripts e garantir um funcionamento fluido. Essa cadeia inclui tudo, desde a requisição inicial de uma página web até a renderização final dessa página no navegador do usuário. Assim como comportamentos dinâmicos que ocorrem após o site ser renderizado.

Jul 02, 2024 8 min read
O que é a cadeia de fornecimento do navegador — cada script que seu site carrega em produção

O cside é um produto de cibersegurança que atua no espaço da cadeia de fornecimento do navegador. Nós e outros fornecedores que operam aqui gostamos de falar sobre essa cadeia de fornecimento. Mas o que exatamente queremos dizer com isso?

A cadeia de fornecimento do navegador é a combinação de componentes e processos que se unem para renderizar páginas web, executar scripts e garantir um funcionamento fluido. Essa cadeia inclui tudo, desde a requisição inicial de uma página web até a renderização final dessa página no navegador do usuário. Assim como comportamentos dinâmicos que ocorrem após o site ser renderizado.

Veja a cadeia de fornecimento do navegador completa e como protegê-la corretamente

1. O usuário realiza uma ação: Um usuário inicia uma requisição digitando uma URL no navegador ou clicando em um link.

Componentes: Navegador.

2. Resolução de DNS: O navegador consulta um servidor DNS para traduzir o nome de domínio em um endereço IP.

Componentes: Servidores DNS e cache do navegador.

Use DNSSEC (Domain Name System Security Extensions) para proteger o processo de consulta DNS. Isso valida a autenticidade da resposta DNS, protegendo contra ataques de DNS spoofing e envenenamento de cache. Embora o cache DNS possa melhorar os tempos de carregamento, certifique-se de que o TTL de um registro DNS seja baixo o suficiente para que você possa fazer alterações rapidamente. Por fim, opte por provedores de DNS com um histórico sólido em segurança.

3. Conexão TCP/IP: O navegador estabelece uma conexão TCP com o servidor web usando o endereço IP obtido na resolução de DNS.

Componentes: Infraestrutura de internet, ISP e roteadores de rede.

Configure firewalls na camada de rede para monitorar e controlar o tráfego de entrada e saída com base em políticas de segurança. Isso ajuda a prevenir acessos não autorizados.

4. Handshake SSL/TLS: Se a conexão for segura (HTTPS), o navegador e o servidor realizam um handshake SSL/TLS para estabelecer uma conexão criptografada.

Componentes: Certificados SSL/TLS e Autoridades Certificadoras (CAs).

Sempre use Transport Layer Security (TLS) para criptografar os dados transmitidos pela rede. Isso impede que invasores interceptem ou adulterem os dados em trânsito.

5. Requisição HTTP: O navegador envia uma requisição HTTP ao servidor para obter a página web.

Componentes: Servidor web e balanceadores de carga.

Implemente HTTPS em todas as suas páginas para proteger as requisições HTTP criptografando os dados em trânsito. Use HTTP Strict Transport Security (HSTS) para garantir que os navegadores estabeleçam apenas conexões seguras com o seu servidor. Se aplicável, considere implementar limitação de taxa para prevenir o abuso das APIs do seu serviço.

6. Resposta do Servidor: O servidor processa a requisição e responde com um documento HTML e o JavaScript associado. Muitas vezes, a entrega da resposta inicial fará com que o navegador busque conteúdo de outros servidores de terceiros. No entanto, as respostas aqui podem ser dinâmicas, por isso é recomendável ter uma ferramenta como o cside para monitorar os recursos de terceiros buscados pelo lado do cliente.

Componentes: Servidor web, servidor de aplicação e servidor de banco de dados.

Para prevenir ataques de Cross-Site Scripting (XSS), codifique adequadamente qualquer conteúdo gerado pelo usuário nas respostas do servidor. Isso envolve transformar caracteres potencialmente prejudiciais em equivalentes codificados seguros antes de retorná-los ao cliente.

7. Redes de Distribuição de Conteúdo (CDNs): Ativos estáticos como imagens, CSS e arquivos JavaScript são frequentemente servidos por CDNs para reduzir a latência.

Componentes: Servidores CDN.

Muitas pessoas acreditam que proteger a cadeia de fornecimento do navegador requer apenas proteger o início da linha. No entanto, essa suposição está incorreta. Nossa campanha de lançamento, Supply Chain Risk Doesn't End At NPM, explica por que esse não é o caso. Apenas proteger esse aspecto é insuficiente, como demonstrado pelo incidente de 2021 com o cdnjs. Apesar de ser usado em 12% de todos os sites globais, o cdnjs estava exposto a uma vulnerabilidade significativa.

Portanto, usar um provedor de CDN robusto é, claro, necessário. Apenas certifique-se de que ele não seja sua única barreira de segurança e siga as demais recomendações.

8. Análise e Renderização do HTML: O navegador analisa o documento HTML para construir o DOM (Document Object Model).

Componentes: Motor de renderização do navegador.

De forma semelhante, não dependa exclusivamente de Content Security Policies (CSPs), mas configure-as aqui. Se scripts inline forem necessários, use um nonce (um token de uso único) na tag de script. O nonce deve corresponder ao presente no cabeçalho Content Security Policy (CSP). Essa abordagem garante que apenas scripts com o nonce correto possam ser executados, o que ajuda a prevenir a execução de scripts não autorizados ou maliciosos.

9. Análise de CSS: O navegador analisa os arquivos CSS para construir o CSSOM (CSS Object Model).

Componentes: Motor de renderização do navegador.

Expressões CSS podem executar código no contexto do navegador, potencialmente levando a vulnerabilidades de segurança. Embora sejam amplamente obsoletas e sem suporte em muitos navegadores modernos. Se sua aplicação permite que usuários insiram CSS direta ou indiretamente (por meio de um CMS ou similar), certifique-se de que essa entrada seja validada e sanitizada para evitar a execução de CSS malicioso. Isso pode incluir a remoção de URLs baseadas em JavaScript, expressões e propriedades potencialmente prejudiciais.

10. Execução de JavaScript e Scripts de Terceiros: O navegador baixa e executa arquivos JavaScript, modificando o DOM e o CSSOM conforme necessário. Scripts adicionais de fontes de terceiros (por exemplo, analytics, anúncios, widgets de redes sociais) são buscados e executados.

Componentes: Motor JavaScript do navegador, servidores de terceiros, configurações de Content Security Policy (CSP) e cside.

Processamos todos os scripts de terceiros por meio do nosso motor de detecção, otimizando sua velocidade para evitar qualquer latência adicional. Fornecemos esses dados para você, permitindo monitorar a atividade deles, o que é essencial para a conformidade com as regulamentações PCI DSS 4.0. Também podemos bloquear atores maliciosos de forma autônoma, aumentando a segurança do seu site. Comece conosco gratuitamente hoje para estar mais próximo da conformidade e mais seguro imediatamente.

Para conhecer outros fornecedores e como nos comparamos, leia aqui.

11. Busca de Recursos: O navegador faz requisições HTTP adicionais para recursos referenciados no HTML, CSS e JavaScript (por exemplo, fontes, imagens adicionais).

Componentes: Servidor web e CDN.

É importante destacar aqui que o cside detecta qualquer atividade maliciosa no domínio de terceiros antes que ela seja renderizada pelo navegador. Outras ferramentas de monitoramento frequentemente não fazem isso. Em nossa opinião, essa é a melhor forma de proteger essa etapa.

12. Cache do Lado do Cliente: O navegador armazena recursos localmente em cache para melhorar o desempenho em visitas subsequentes.

Componentes: Cache do navegador e Service Workers.

Defina diretivas de cache adequadas para evitar o armazenamento de informações sensíveis no cache. Para páginas especialmente sensíveis, use a diretiva no-store para garantir que não sejam armazenadas em cache. Sempre use HTTPS para todas as transações. Implemente checksums ou hashes para verificar a integridade dos dados em cache antes de utilizá-los.

13. Service Workers: Se aplicável, os service workers podem interceptar requisições de rede, gerenciar o cache e habilitar funcionalidades offline.

Componentes: Scripts de Service Worker e ambiente do navegador.

Defina regras de cache rígidas nos seus scripts de service worker para garantir que apenas conteúdo não sensível e imutável seja armazenado em cache.

14. Renderização e Pintura: O navegador constrói a árvore de renderização e pinta os pixels na tela, criando a representação visual da página web.

Componentes: Motor de renderização do navegador (e GPU).

Certifique-se de que os recursos carregados de origens cruzadas não possam interferir na renderização do seu site. Use o atributo crossorigin para controlar como esses recursos interagem com o seu documento.

15. Etapa de Interação do Usuário: O usuário interage com a página web (por exemplo, clicando, digitando), acionando event listeners e a execução adicional de scripts.

Componentes: DOM do navegador, mecanismos de tratamento de eventos e motor JavaScript.

Implemente tokens anti-CSRF em formulários para se proteger contra ataques de Cross-Site Request Forgery. Certifique-se de que os event handlers JavaScript sejam codificados de forma segura para evitar a exposição de informações ou funcionalidades sensíveis. Evite usar JavaScript inline em atributos HTML como onclick. Se o seu site permite upload de arquivos, garanta uma varredura completa de malware nos arquivos enviados. Aplique restrições rígidas de tamanho e tipo para prevenir o upload de arquivos potencialmente prejudiciais.

Deixe sua cadeia de fornecimento o mais segura possível

Recomendamos que você inicie esse processo hoje. Muitas organizações sofreram ataques, multas ou danos à reputação por negligenciar a segurança da cadeia de fornecimento web. Isso frequentemente decorre de problemas de conformidade relacionados à não proteção dos sites de acordo com os padrões estabelecidos.

Os padrões mudam com frequência, geralmente em resposta a ataques ou problemas identificados. Aborde esses problemas potenciais de forma proativa, indo além do mínimo hoje. Use a lista abrangente fornecida acima para proteger cada parte da sua cadeia de fornecimento ao máximo possível.

Considere também usar o cside. Com nosso plano gratuito, você pode monitorar e proteger scripts de terceiros no seu site, garantindo que essa parte do seu site esteja completamente segura.

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.

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