Heartbleed Representa Risco para Clientes e Internet das Coisas
A maior parte do foco com o Heartbleed tem sido referente a sites públicos, mas o bug afeta muito mais do que isso. Ainda que os sites mais populares não estejam vulneráveis, isso não significa que o usuário final possa baixar a guarda.
O Heartbleed também afeta softwares das organizações e corrompe sites, e-mail, chats, FTPs, aplicativos móveis, VPN e atualizadores de software. Em suma, qualquer cliente que se comunique através de SSL/TLS, usando uma versão vulnerável de OpenSSL, está sujeito a ataques.
Além disso, o Heartbleed afeta diversos outros aparelhos além de servidores de Web. Entre eles, proxies e servidores de mídia, games, banco de dados, chat e FTP. Por fim, equipamentos de hardware não estão imunes à vulnerabilidade. Ela pode afetar roteadores, PABXs (sistemas telefônicos corporativos) e, provavelmente, uma série de aparelhos que possuem Internet – IoT (Internet da Coisas, em português).
O ataque a estes servidores de software e hardware por meio da vulnerabilidade Heartbleed é feito de forma semelhante a um ataque a sites vulneráveis. No entanto, golpes a clientes podem acontecer essencialmente da forma reversa.
Normalmente, a exploração do Heartbleed vem sendo descrita como um cliente atacante que envia uma mensagem maliciosa para um servidor vulnerável e este equipamento expõe os dados privados. No entanto, o contrário também acontece. Uma empresa vulnerável pode se conectar a um servidor e ele pode enviar uma mensagem maliciosa de Heartbeat para o cliente – que cliente responderá com dados adicionais encontrados em sua memória, potencialmente expondo credenciais e demais dados privados.
Figura 1. Como um cliente vulnerável é atacado
Felizmente, enquanto os clientes estão vulneráveis, pode ser difícil explorá-los em cenários do mundo real. Os dois principais vetores de ataque são instruir o cliente a visitar um servidor SSL/TLS malicioso ou sequestrar a conexão a partir de fraquezas não relacionadas. Ambos apresentam uma complicação adicional para o atacante.
Direcionar o cliente a um servidor malicioso
Um exemplo simples de como um cliente pode ser explorado é por meio de um navegador Web vulnerável. É preciso simplesmente convencer a vítima a visitar uma URL maliciosa para permitir que o servidor atacante consiga acesso à memória do navegador Web do cliente. Isso coloca em risco conteúdos como cookies de sessões anteriores, sites visitados, dados de formulários e credenciais de autenticação.
Os navegadores mais populares não utilizam OpenSSL, mas as bibliotecas NSS (Network Security Services) são vulneráveis ao Heartbleed. No entanto, muitos clientes Web de linha de comando usam OpenSSL (por exemplo, wget e curl) e estão suscetíveis.
O fato de um atacante precisar enganar o usuário para que visite um site malicioso pode mitigar parte do risco, mas isso nem sempre é necessário. Imagine um serviço online de tradução de idiomas que você fornece uma URL para uma página em francês a um serviço automatizado e o serviço traduzirá o conteúdo para o inglês. Nos bastidores, o serviço está buscando o conteúdo na página em francês usando seu próprio cliente de backend. Se você fornecer a URL de um servidor malicioso, o cliente de backend será explorado e o atacante pode coletar informações sensíveis como códigos ou credenciais do serviço de tradução.
Sequestro de conexão
Direcionar clientes para um servidor malicioso conforme descrito acima exige a instrução das pessoas para que visitem servidores arbitrários. No entanto, muitos clientes podem contatar apenas um domínio pré-definido, hard-coded. Nestes casos, ainda assim a pessoa pode ser explorada. Em redes abertas compartilhadas como algumas redes públicas de Wi-Fi, o tráfego pode ser visível e alterado por outros, permitindo que os atacantes redirecionem clientes vulneráveis. Normalmente, SSL/TLS (por exemplo, HTTPS, navegação Web criptografada) é uma das soluções para este problema, já que a criptografia evita o eavesdropping (espionagem do tráfego da rede) e redirecionamento. Porém, é possível enviar mensagens maliciosas de Heartbeat antes da sessão SSL/TLS estar plenamente estabelecida.
Um atacante pode entrar em uma rede pública e espionar (eavesdrop) vítimas em potencial. Quando uma vítima em potencial utiliza um cliente vulnerável para estabelecer uma conexão SSL/TLS com um servidor legítimo, o atacante redireciona a conexão para o servidor malicioso. Antes que a conexão SSL/TLS esteja plenamente estabelecida e tenha chance de bloquear qualquer redirecionamento, o atacante pode enviar uma mensagem maliciosa de Heartbeat, extraindo os conteúdos da memória do computador da vítima. Isso pode incluir dados privados como credenciais de autenticação.
Figura 2. Como um atacante pode sequestrar e redirecionar um cliente vulnerável em uma rede aberta compartilhada
Além da orientação prévia, nós também recomendamos:
- Evite visitar domínios desconhecidos com qualquer software de cliente, que aceite mensagens Heartbeat usando bibliotecas vulneráveis OpenSSL;
- Não utilize os serviços de proxy que não receberam patches;
- Atualize softwares e hardwares conforme os fornecedores disponibilizarem patches;
- Use um cliente VPN e serviço não vulnerável ao Heartbleed quando estiver em redes públicas.