Os navegadores da Web são o alvo principal de muitos atacantes, porque muitos dados sensíveis passam por eles. Desde compras casuais a sistemas de gestão empresarial e operações militares, os navegadores tornaram-se o principal veículo que as pessoas utilizam para aceder a sistemas ligados à rede. Infelizmente, os navegadores têm um longo e armazenado historial de vulnerabilidades que proporcionaram aos atacantes um fornecimento lucrativo e quase inútil de vítimas, sobre as quais se podem abastecer. Aqui estão as vulnerabilidades de segurança mais comuns dos navegadores da web a ter em conta:
– Exploits de execução de código no navegador
– Exploits de execução de código em plug-ins
– Ameaças Persistentes Avançadas
– Ataques Man-in-the-Middle (“homem no meio”)
– Envenenamento DNS
– Injeção SQL
– Script entre sites
Exploits de execução de código no navegador
Este é o tipo mais notório, e também o mais raro. Ocasionalmente, os invasores descobrem uma vulnerabilidade no próprio navegador que permite a execução de código binário arbitrário quando um utilizador simplesmente visita um site comprometido. Os navegadores são peças complexas de maquinaria com muitos subsistemas (renderização HTML, JavaScript, CSS, analisadores de imagem etc.), e um pequeno erro de codificação em qualquer um desses sistemas pode oferecer código malicioso suficiente para ser executado. A partir daí, o código malicioso tem muitas opções – baixar outros pacotes maliciosos, roubar dados confidenciais e enviá-los para servidores no exterior ou aguardar silenciosamente por mais instruções do invasor. O invasor nem precisa comprometer um site legítimo para hospedar um ataque desse tipo — redes de publicidade têm sido usadas para distribuir código malicioso em sites seguros.
Como evitar: Ative as atualizações automáticas no navegador de sua preferência. Esse tipo de vulnerabilidade geralmente é corrigido rapidamente pelo navegador ou fornecedor do sistema operativo, portanto, os invasores têm uma janela muito curta para usá-lo em sistemas totalmente atualizados.
Exploits de execução de código em plug-ins
Plug-ins são provavelmente o vetor mais conhecido para downloads drive-by (ataques que baixam silenciosamente e executam código nativo em seu sistema). Do Flash ao Java, até mesmo plug-ins de fornecedores grandes e respeitáveis tiveram vulnerabilidades usadas repetidamente em ataques de malware. Assim como as explorações de navegador, os fornecedores geralmente corrigem vulnerabilidades desse tipo em pouco tempo, mas as cópias desatualizadas de plug-ins de navegador superam em muito as atualizadas.
Como evitar: Mantenha seus plug-ins atualizados e desinstale plug-ins e extensões que você não usa. Os navegadores estão melhorando em alertar os usuários sobre plug-ins desatualizados, portanto, não ignore os avisos.
Ameaças Persistentes Avançadas
Ameaças persistentes avançadas (APTs) instalam silenciosamente códigos maliciosos em um utilizador final e em seguida, roubam dados (teclas pressionadas, capturas de ecrã, atividade do navegador) ou até mesmo modificam o que o utilizador vê em seu navegador, às vezes passando despercebido por anos. Esses ataques usam uma infinidade de métodos para fazer com que os utilizadores os instalem, muitos não relacionados ao navegador, por exemplo, por meio de uma pen drive infetada ou um anexo de e-mail hostil. Mas como muitas interações confidenciais ocorrem por meio do navegador, a maioria desses tipos de ataques prioriza o roubo de dados do navegador.
Maneiras de evitar: Instale um bom produto antivírus e não utilize pen drives aleatórias, não abra anexos de e-mail suspeitos ou visite sites cheios de spam no seu computador. Além disso, evite redes Wi-Fi públicas o máximo possível, pois os invasores por vezes podem aceder ás máquinas por meio delas.
Ataques Man-in-the-Middle (“homem no meio”)
Um invasor que tenha acesso a qualquer ponto em uma conexão de rede entre um utilizador e sites confidenciais (um “homem no meio”) tem a oportunidade de observar e modificar o tráfego conforme ele passa entre o navegador e os servidores web. Sites que usam TLS (sites cujos endereços começam com “https”) ajudam a evitar isso, porque um invasor desse tipo tem muita dificuldade em falsificar o certificado criptográfico usado pelo servidor para se autenticar no navegador. No entanto, os invasores sabem que muitos utilizadores foram condicionados a apenas clicar nos avisos quando eles aparecem e, portanto, podem usar um certificado inválido/falsificado e, em muitos casos, os utilizadores ignorarão os avisos do navegador.
Maneiras de evitar: Não ignore os avisos do navegador. Em caso de dúvida, tente uma máquina ou uma conexão de internet diferente, ou apenas espere para realizar sua transação confidencial mais tarde. As empresas devem instalar um certificado SSL em seu site para proteger os utilizadores.
Envenenamento DNS
Os invasores podem envenenar o sistema DNS (pense nisso como uma lista de contatos que seu navegador usa para localizar o endereço IP de um site pelo nome) em várias maneiras diferentes. Sua máquina armazena em cache as entradas DNS e os invasores podem envenenar esse cache. Um ficheiro na sua máquina pode ser modificado para substituir servidores DNS para determinados endereços da Web, e pessoas mal-intencionados podem até comprometer os próprios servidores DNS e forçá-los a fornecer endereços IP maus para sites respeitáveis. Quando o ataque estiver em vigor, seu navegador entrará em contato com o servidor do invasor em vez do servidor legítimo de qualquer site direcionado. Ataques como esse geralmente visam bancos e outras instituições financeiras, enganando os usuários por tempo suficiente para que eles desistam das credenciais da conta, que são usadas para esvaziar suas contas.
Maneiras de evitar: Sempre que procura por “https” no início do endereço do site ao visitar um site sensível para fazer transações financeiras e (novamente) não ignore os avisos do navegador. Os invasores que envenenaram suas pesquisas de DNS ainda não podem falsificar os certificados usados para TLS, portanto, em muitos casos, eles usarão um endereço não-TLS (“http://…”) e esperam que os usuários não percebam.
Injeção SQL
As injeções SQL têm sido um problema conhecido há mais de 10 anos, com o The Open Web Application Security Project (OWASP) a mantê-lo no topo da sua lista das 10 principais ameaças. Utilizando uma injeção SQL, os atacantes podem adicionar comandos SQL a um sítio web, a fim de aceder e editar dados no servidor. Os atacantes podem utilizar formulários web, cookies, ou mensagens HTTP para injetar o seu código malicioso no browser. O objetivo destes tipos de ataques é tipicamente roubar, apagar, ou manipular os dados que as empresas armazenam nos seus servidores, incluindo nomes de clientes, números de segurança social, e informações sobre pagamentos.
Como evitar: As empresas devem proteger os seus websites com técnicas de codificação cuidadosas, incluindo a higienização e filtragem dos dados fornecidos pelos utilizadores e a limitação das funções que os comandos SQL podem ter. Além disso, as firewalls das aplicações web podem proteger as empresas das injeções SQL introduzidas através de fornecedores terceiros.
Script entre sites
Assim como as injeções de SQL, os ataques de script entre sites (XSS) usam injeções para enviar código malicioso a outros utilizadores. O navegador do destinatário pensa que o código é seguro, pois vem de uma fonte confiável e executará o script, dando ao invasor acesso a cookies e outras informações confidenciais que o navegador salvou para uso nesse site. O agente mal-intencionado pode usar essas informações para se passar pela vítima ou roubar suas credenciais de login. Às vezes, o script também pode reescrever o conteúdo de páginas HTML, o que pode fazer com que os usuários cliquem em links mais maliciosos. Os sites que aceitam conteúdo gerado pelo usuário são os mais vulneráveis a esses tipos de ataques.
Como evitar: Os métodos de prevenção para XSS seguem de perto aqueles para evitar injeções de SQL: filtre e limite os envios de usuários o máximo possível para evitar códigos maliciosos. Além disso, você pode codificar a saída de respostas HTTP para impedir que o navegador a interprete como conteúdo ativo e execute o código.