Ataques de remoção de SSL: perigos e como evitar ataques

Hoje, a maioria dos sites usa o protocolo HTTPS seguro para comunicações entre clientes e servidor web, graças a este protocolo que utiliza TLS e aos algoritmos criptográficos incorporados neste último, as comunicações são encriptadas ponto a ponto, além disso, também A autenticidade da ligação e até a integridade dos dados são verificados para que os cibercriminosos não possam modificar os pacotes em tempo real. No entanto, há um ataque ao protocolo HTTPS chamado Remoção de SSL , esse ataque consiste em “suspender” a criptografia TLS da comunicação para que um cibercriminoso possa ver todas as comunicações em texto simples usando HTTP. Você quer saber tudo sobre o ataque de remoção de SSL e como você pode se proteger para evitar que um cibercriminoso comprometa suas comunicações?

Ataques de remoção de SSL: perigos e como evitar ataques

Como funciona o protocolo HTTPS?

O protocolo HTTPS (Hypertext Transfer Protocol Secure) é a versão segura do popular protocolo HTTP (Hypertext Transfer Protocol). Este protocolo está na camada de aplicação e é baseado em HTTP, mas a segurança do protocolo TLS (no nível da camada de transporte) é adicionada para fornecer segurança ponto a ponto em todas as conexões, dos clientes ao servidor web. O protocolo TLS é um dos mais utilizados para fornecer segurança de comunicação, além disso, não é utilizado apenas em conexões HTTPS, mas também em outros protocolos como FTPES (a versão do FTP, mas com a camada de segurança usando TLS) e até virtuais protocolos de rede privada como OpenVPN. O protocolo TLS (e, portanto, também o protocolo HTTPS no nível da camada de aplicativo) faz uso de diferentes algoritmos criptográficos que nos fornecem as seguintes características:

  • Confidencialidade : Confidencialidade na criptografia significa que todos os dados são criptografados de ponta a ponta e que apenas a origem e o destino poderão “ler” esses dados. Se um cibercriminoso se colocar no meio da comunicação (ataque Man in the Middle), ele poderá capturar as informações sem problemas, mas nunca poderá lê-las se não tiver a chave de descriptografia privada.
  • Autenticidade : esta característica da criptografia garante-nos que os dados são autênticos desde a origem e que não houve roubo de identidade por terceiros.
  • Integridade : esta funcionalidade garante que todos os dados da origem ao destino não sejam modificados, caso tenham sido modificados por um terceiro malicioso, essa informação poderá ser detectada e descartada.

A vida útil dos certificados HTTPS será menor

Atualmente o protocolo HTTPS para a versão HTTP / 2 faz uso do protocolo TLS em sua versão TLSv1.2 e também TLSv1.3, esses dois protocolos são atualmente considerados seguros e nenhuma vulnerabilidade foi descoberta que os torne perigosos de usar. A versão TLSv1.3 é muito mais rápida do que a versão anterior, além disso, ela suporta apenas suítes de criptografia segura e não permite a configuração de suítes de criptografia menos seguras como TLSv1.2.

Em relação às portas, enquanto o protocolo HTTP usa o protocolo TCP na camada de transporte e a porta 80, o protocolo HTTPS usa a porta TCP 443. Nos últimos meses o protocolo QUIC foi padronizado para conexões web, um protocolo para HTTPS quando HTTP / 2 e / ou HTTP / 3 é usado e que usa o protocolo UDP para fazer conexões ponto a ponto, este protocolo QUIC já incorpora criptografia segura com os mais recentes algoritmos criptográficos seguros, como Chacha20-Poly1305 ou AES -GCM.

Assim que soubermos como o HTTPS funciona e quais protocolos temos por baixo nas diferentes camadas TCP / IP, veremos em que consiste o ataque de remoção de SSL para descriptografar todas as comunicações HTTPS.

O que é o ataque SSL Stripping?

Quando realizamos um ataque ARP Spooping e colocamos um sniffer para capturar todo o tráfego, o que fazemos é capacitar todo o tráfego de rede gerado por um determinado computador (a vítima). No caso de você usar protocolos não seguros, como HTTP ou FTP, podemos ver facilmente todas as suas comunicações, credenciais de autenticação e até cookies de sessão. Por esse motivo, é tão perigoso se conectar ao público Wi-fi redes ou redes não confiáveis, porque qualquer cibercriminoso pode realizar esse ataque Man in the Middle e capturar todas as informações.

Se usarmos um protocolo seguro como o HTTPS, o invasor poderá capturar todas as informações sem problemas, porém, não poderá ler nenhum de seu conteúdo, ou seja, não poderá ver as credenciais de autenticação, cookies de sessão ou absolutamente nada, porque todo o tráfego é criptografado de ponta a ponta (dos clientes para o servidor web). Graças ao protocolo TLS e aos algoritmos criptográficos como AES, nossas informações serão confidenciais, ou seja, serão criptografadas de ponta a ponta.

Os ataques SSL Strippping consistem em configurar um proxy HTTP / HTTPS para “levantar” esse protocolo HTTPS criptografado, e a vítima faz uso do protocolo HTTP para poder capturar todas as informações e ver os dados dentro deles. O processo que deveria ser realizado para violar uma conexão HTTPS seria o seguinte:

  1. Realizar um ataque ARP Spoofing na vítima , para encaminhar todo o tráfego da rede para nós antes de passá-lo para o roteador, desta forma, iremos capturar todas as informações que esta vítima envia e recebe.
  2. Colocamos o farejador para funcionar , por exemplo, o WireShark é uma opção muito boa, é um dos softwares mais completos e fáceis de usar, e é totalmente gratuito.
  3. Verifique se estamos capturando todos o tráfego da vítima, desta forma, nos certificaremos de que o ARP Spoofing e o sniffer estão funcionando corretamente. Nesse caso, certamente só podemos ver DNS, ICMP e outro tráfego em texto não criptografado, mas não o tráfego HTTPS, porque ele é criptografado de ponta a ponta.

Depois de realizar essas três etapas, o que temos que fazer é configurar um proxy HTTP / HTTPS utilizando ferramentas gratuitas, por exemplo, Bettercap é a melhor ferramenta que podemos utilizar para realizar este tipo de ataque. Depois de configurar esse proxy HTTP / HTTPS, o que acontecerá será o seguinte:

  1. A vítima tentará se conectar às webs através do protocolo HTTPS, no entanto, o proxy HTTP / HTTPS que configuramos dirá à vítima que a conexão deve ser HTTP, posteriormente, nosso proxy HTTP / HTTPS poderá encaminhar as informações para a web real (Google, PayPal, Amazon etc.) via HTTPS. Desta forma, o atacante terá todos os dados em texto claro indo e vindo da vítima e do servidor web real, continuamente se transformando entre HTTP e HTTPS e vice-versa.
  2. O sniffer de rede que ativamos anteriormente irá capturar todo o tráfego HTTP e nos mostrar em texto claro as credenciais do usuário, cookies de sessão e tudo o que a vítima está fazendo.

Como você pode ver, a possibilidade de realizar um ataque SSL Stripping está disponível para todos que fazem uso de ferramentas gratuitas como o Bettercap para Linux, aliás, neste artigo você tem um tutorial completo para você fazer auditorias de segurança e verificar se um determinado alvo poderia usá-lo contra nós, ou se estamos protegidos contra esse tipo de ataque.

Como posso me proteger desse ataque?

Este tipo de ataque é amplamente utilizado por cibercriminosos para obter todo o tráfego de suas vítimas, principalmente em redes públicas, sejam elas redes cabeadas ou redes WiFi públicas, por este motivo, é desencorajado conectar-se a esses tipos de redes que fazemos não gerenciar. No entanto, se alguém for capaz de invadir nossa rede WiFi, estaremos exatamente no mesmo cenário: estamos na mesma rede local que o cibercriminoso, eles podem nos fazer um ataque ARP Spoofing e também um ataque SSL Stripping. Por este motivo, é tão importante manter uma lista de dispositivos com fio ou Wi-Fi conectados à nossa rede local, e verificar de vez em quando se não há invasores, além disso, também devemos nos certificar de que ninguém pode entrar em nossa rede Wi-Fi , colocando uma criptografia WPA2 -AES e desabilitando WPS (Wi-Fi Protected Setup).

Este ataque de remoção de SSL não pode impedir que eles façam isso conosco se estivermos na mesma rede local que o invasor, mas o que podemos fazer é impedir que seja eficaz, ou seja, seja capaz de “levantar” a conexão HTTPS, para que a confidencialidade continue a ser mantida e possamos navegar com segurança. Atualmente, existem vários métodos que podemos usar para nos proteger contra esses ataques, alguns dependem do administrador da web, e outros dependem exclusivamente de nós.

Que a web tem HSTS habilitado

HSTS ou também conhecido como HTTP Strict Transport Segurança, é uma política que existe em servidores da web que nos obriga a usar HTTPS em nosso navegador para nos comunicarmos com o servidor. Anteriormente, explicamos que o servidor proxy HTTP / HTTPS pode se comunicar via HTTPS sem problemas com o servidor web, no entanto, se um site tiver HSTS ativado, um cookie será salvo no navegador indicando que esse navegador nunca pode usar o protocolo HTTP para comunicar com o servidor web, desta forma teremos segurança ponto a ponto, mesmo que alguém se intrometa colocando um proxy HTTP / HTTPS para “levantar” o HTTPS da nossa comunicação com a web.

Hoje muitos servidores web de diferentes páginas web estão corretamente configurados com esta política de segurança, a fim de proteger seus usuários. Esses cookies que ficam armazenados nos navegadores dos clientes expiram, porém, o que se faz é colocar que a duração é máxima (um ano), de forma a proteger os clientes o máximo possível.

A parte negativa do HSTS é que, se for a primeira vez que acessamos um site e eles fazem um SSL Stripping, esse recurso não será capaz de nos proteger. A proteção é a partir da segunda visita porque o cookie já terá sido baixado, a menos que tenhamos uma lista de sites pré-carregados em nosso navegador, como acontece com os “grandes” como o Google e outros serviços. Nós mesmos poderíamos configurar uma lista de sites para pré-carregamento de HSTS que é fornecida pelo Google como parte do projeto Chromium.

No servidor da web Apache, teríamos que incorporar a seguinte diretiva:

  • Cabeçalho sempre definido Strict-Transport-Security «max-age = 31536000; includeSubDomains »

No servidor da web Nginx, teríamos que incorporar a seguinte diretiva:

  • add_header Strict-Transport-Security «max-age = 31536000; includeSubDomínios »

Poderíamos também indicar a estas diretivas o “pré-carregamento” no final, para indicar que está pré-carregado no navegador web e poder entrar na web sem problemas.

Para verificar se um determinado site tem HSTS habilitado, você sempre pode acessar o Site oficial da Qualys SSL Labs onde você pode analisar todos os sites que desejar. Antes de concluir, devemos indicar que esta proteção HSTS também pode ser contornada, com base em DNS Spoofing para encaminhar a vítima para outro domínio sob nosso controle que seja igual ao original, com o objetivo de “enganá-la”, o Bettercap também inclui esse recurso.

Use uma VPN

Outro método para evitar este tipo de ataque em conexões HTTPS é usar um VPN serviço. Uma rede privada virtual ou VPN é responsável por criptografar todas as comunicações ponto a ponto dentro de um túnel, portanto, um invasor que nos faça um ataque ARP Spoofing e coloque um sniffer, veria apenas todo o tráfego criptografado, ele não poderia ver nenhum protocolo adicional, porque as resoluções DNS também vão dentro do túnel VPN. É possível que o cibercriminoso tente “lançar” esse túnel VPN, na verdade, ele conseguiria injetando pacotes e fazendo com que o serviço VPN parasse de funcionar por segurança, porém, devemos lembrar que as VPNs possuem um recurso chamado Kill-Switch. A funcionalidade Kill-switch permite bloquear completamente o tráfego da Internet caso o túnel VPN caia ou tenha algum tipo de problema, desta forma, teremos a garantia de que os nossos dados não são filtrados nem nos podem tornar qualquer outro tipo de ataques. É sempre melhor ficar sem uma conexão com a Internet do que ter informações roubadas.

Atualmente, existem vários protocolos VPN, como WireGuard, OpenVPN ou IPSec IKEv2, todos eles são seguros e podemos usá-los para evitar que alguém intercepte as comunicações e cancele a criptografia do protocolo HTTPS. Por esse motivo, se você vai se conectar a redes com fio ou a redes WiFi públicas ou não seguras, é altamente recomendável que você sempre use esse tipo de VPN. Podemos configurar servidores VPN em nossa rede local doméstica, se tivermos um servidor NAS, ele terá aplicativos VPN e até mesmo alguns roteadores domésticos, como ASUS, AVM FRITZ! Box e até D-Link ou NETGEAR possuem este tipo de servidores para nos conectar à Internet com segurança, pois redirecionam o tráfego.

Caso você não tenha a possibilidade ou conhecimento de instalar e configurar um servidor VPN em sua casa, nossa recomendação é que você use serviços VPN como o WARP da Cloudflare, que é totalmente gratuito e funciona muito bem, você pode se drogar velocidades de download e upload e latência muito baixa. Outras alternativas que pode utilizar são os serviços VPN pagos, pois possuem aplicações para todos os sistemas operativos, múltiplos servidores espalhados por todo o mundo e funcionalidades importantes como o Kill-switch entre tantas outras.

Execute um encapsulamento SSH

Outra forma de se proteger contra ataques de remoção de SSL é realizar um túnel SSH com redirecionamento de tráfego. Esta técnica consiste em conectar-se a um servidor SSH remoto confiável e configurar um proxy SOCKS para posteriormente configurá-lo no navegador da web. Desta forma, estaremos redirecionando o tráfego do navegador da web através do servidor SSH ao qual nos conectamos. Para isso, devemos seguir os seguintes passos:

  • Configure um servidor SSH de forma segura, alterando portas, boa autenticação e um bom pacote de cifras.
  • Ative o encaminhamento de TCP no servidor SSH, caso contrário, mesmo que nos conectemos, não poderemos encaminhar o tráfego da Internet.
  • Configure este servidor SSH em programas como PuTTY e habilite o encaminhamento ou encaminhamento, em um proxy SOCKS5 específico.
  • Configure este proxy local que acabamos de criar no navegador da web, para que todo o tráfego flua através do servidor SSH para a Internet.

Este método é exatamente igual ao do servidor VPN, usando um “servidor” para se conectar a ele com segurança e, em seguida, acessando a Internet via HTTPS, sem que ninguém seja capaz de remover essa criptografia.

Conclusões

Embora as conexões HTTPS sejam seguras, em certas circunstâncias, um invasor pode “levantar” essa segurança para obter as credenciais do usuário e também os cookies da sessão, tornando as conexões HTTPS menos seguras. No entanto, este tipo de ataque só pode ser realizado em determinadas circunstâncias, como por exemplo, o atacante e a vítima estarem na mesma rede local, seja com ou sem fio, e os sites visitados pelo usuário não possuam o protocolo HSTS habilitado. É muito importante saber em quais sites temos o protocolo HSTS disponível, para ficar tranquilo quando navegarmos por esse site, pois se alguém estiver nos atacando, o site nos avisará automaticamente que não houve uma conexão segura. estabelecido, e que a conexão não será feita, protegendo-nos de troca de mais dados.

Se nos conectarmos à Internet em redes públicas através de uma VPN ou fazendo um tunelamento SSH, podemos ficar tranquilos, pois eles não conseguirão interceptar as comunicações e violá-las, por isso o uso dessas técnicas é tão importante quando estamos fora de nossas redes confiáveis. Não importa se o servidor VPN ou SSH está em nossa casa, em um servidor VPS contratado por nós, e mesmo se usarmos serviços VPN pagos como os que todos conhecemos, o importante é nos proteger contra um invasor que está em nossa rede local e Evite este tipo de ataque SSL Stripping.