Mathy Vanhoef, autor do ataque KRACK em redes sem fio com WPA2, e Eyal Ronen, coautor de alguns ataques ao TLS, revelaram informações sobre seis vulnerabilidades (CVE-2019-9494 a CVE-2019-9499) na tecnologia de proteção de redes sem fio WPA3, que permitem recriar a senha de conexão e acessar a rede sem fio sem conhecer a senha. As vulnerabilidades foram agrupadas sob o codinome Dragonblood e permitem comprometer o método de negociação de conexões Dragonfly, que oferece proteção contra a tentativa de quebra de senhas em modo offline. Além do WPA3, o método Dragonfly também é utilizado para proteção contra tentativas de quebra de senhas no protocolo EAP-pwd, utilizado em Android, servidores RADIUS e em hostapd/wpa_supplicant.
Durante a pesquisa, foram identificados dois tipos principais de problemas arquitetônicos no WPA3. Ambos os tipos de problemas podem eventualmente ser usados para recriar a senha de acesso. O primeiro tipo permite um retrocesso para métodos criptográficos não confiáveis (downgrade attack): os mecanismos para garantir a compatibilidade com WPA2 (modo de transição, que permite a utilização de WPA2 e WPA3) permitem que um atacante force o cliente a executar a negociação de conexões WPA2 em quatro etapas, o que permite, então, a utilização de ataques clássicos de quebra de senha aplicáveis ao WPA2. Além disso, foi identificada a possibilidade de realizar um ataque de downgrade diretamente no método de negociação de conexões Dragonfly, permitindo o retrocesso para tipos de curvas elípticas menos protegidos.
O segundo tipo de problema leva ao vazamento de informações sobre as características da senha através de canais laterais e é baseado nas falhas do método de codificação de senha no Dragonfly, que permitem, por meio de dados indiretos, como mudanças nos atrasos durante a execução de operações, recriar a senha original. O algoritmo utilizado no Dragonfly para conversão de hash em curva elíptica (hash-to-curve) revelou-se vulnerável a ataques que rastreiam o acúmulo de informações no cache do processador (cache attack), enquanto o algoritmo de conversão de hash em grupo (hash-to-group) é suscetível a ataques que medem o tempo de execução das operações (timing attack).
Para realizar ataques por meio da análise de cache, o atacante deve ser capaz de executar código não privilegiado no sistema do usuário conectado à rede sem fio. Ambos os métodos permitem obter informações necessárias para verificar a escolha correta das partes da senha durante o processo de quebra dela. A eficácia do ataque é bastante alta e possibilita a quebra de uma senha de 8 caracteres, incluindo caracteres em minúsculas, interceptando apenas 40 sessões de negociação de conexão (handshake) e gastando recursos equivalentes ao aluguel de potenciais da Amazon EC2 no valor de 125 dólares.
Com base nas vulnerabilidades identificadas, foram propostos vários cenários de ataque:
- Ataque de retrocesso para WPA2 com possibilidade de dicionário. Em situações onde o cliente e o ponto de acesso suportam tanto WPA3 quanto WPA2, o atacante pode implantar seu próprio ponto de acesso falso com o mesmo nome de rede, que suporta apenas WPA2. Nessa situação, o cliente usará o método de negociação de conexão típico do WPA2, durante o qual será determinada a inviabilidade desse retrocesso, mas isso ocorrerá em uma fase onde as mensagens de negociação de canal já foram enviadas e todas as informações necessárias para um ataque de dicionário já vazaram. Um método semelhante é aplicável para retroceder para versões problemáticas de curvas elípticas no SAE.
Além disso, foi identificado que o daemon iwd, desenvolvido pela Intel como uma alternativa ao wpa_supplicant, e a pilha sem fio do Samsung Galaxy S10 estão sujeitos a ataques de downgrade mesmo em redes que utilizam apenas WPA3 — se esses dispositivos já se conectaram a uma rede WPA3 anteriormente, eles tentarão se conectar a uma rede falsa WPA2 com o mesmo nome.
- Ataques por canais laterais com extração de informações do cache do processador. O algoritmo de codificação de senhas no Dragonfly contém ramificações condicionais e um atacante, tendo a capacidade de executar código no sistema do usuário da rede sem fio, pode, com base na análise do comportamento do cache, determinar qual bloco da expressão if-then-else foi escolhido. As informações obtidas podem ser usadas para realizar uma tentativa progressiva de adivinhação de senhas, utilizando métodos semelhantes aos usados em ataques offline de dicionário para senhas WPA2. Para proteção, recomenda-se o uso de operações com tempo de execução constante, independentemente da natureza dos dados processados;
- Ataques por canais laterais com avaliação do tempo de execução das operações. No código Dragonfly, ao codificar senhas, são utilizadas várias grupos multiplicativos (MODP) e um número variável de iterações, cuja quantidade depende da senha utilizada e do endereço MAC do ponto de acesso ou cliente. Um atacante remoto pode determinar quantas iterações foram realizadas durante a codificação da senha e utilizá-las como um sinal ao tentar adivinhar a senha progressivamente.
- Ataque de negação de serviço. Um atacante pode bloquear o funcionamento de determinadas funções do ponto de acesso devido à exaustão de recursos disponíveis ao enviar um grande número de solicitações de negociação do canal de comunicação. Para contornar a proteção contra flood prevista no WPA3, é suficiente enviar solicitações de endereços MAC fictícios e únicos.
- Recuo para grupos criptográficos menos seguros utilizados no processo de negociação de conexões no WPA3. Por exemplo, se um cliente suportar curvas elípticas P-521 e P-256, e usar P-521 como a opção preferencial, o atacante, independentemente do suporte a
P-521 no ponto de acesso, pode forçar o cliente a usar P-256. O ataque é realizado filtrando certas mensagens durante o processo de negociação da conexão e enviando mensagens falsas com informações sobre a falta de suporte a determinados tipos de curvas elípticas.
Para verificar dispositivos em busca de vulnerabilidades, foram preparados vários scripts com exemplos de execução de ataques:
- Dragonslayer — implementação de ataques ao EAP-pwd;
- Dragondrain — uma ferramenta para verificar a vulnerabilidade de pontos de acesso na implementação do método de autenticação de conexões SAE (Autenticação Simultânea de Iguais), que pode ser utilizada para iniciar uma negação de serviço;
- Dragontime — um script para realizar ataques por canais externos contra SAE, levando em consideração a diferença nos tempos de processamento das operações ao usar grupos MODP 22, 23 e 24;
- Dragonforce — uma ferramenta de recuperação de informações (quebra de senha) baseada em tempos variados de processamento de operações ou identificação de dados retidos em cache.
A Wi-Fi Alliance, que desenvolve padrões para redes sem fio, anunciou que o problema afeta um número limitado de implementações antigas do WPA3-Personal e pode ser resolvido por meio de atualizações de firmware e software. Até o momento, não foram registrados casos de exploração das vulnerabilidades para ações maliciosas. Para aumentar a segurança, a Wi-Fi Alliance adicionou testes adicionais no programa de certificação de dispositivos sem fio para verificar a correção das implementações, além de entrar em contato com os fabricantes para coordenar a resolução dos problemas identificados. Atualizações para hostap/wpa_supplicant já foram lançadas. Atualizações de pacotes estão disponíveis para Ubuntu. No Debian, RHEL, SUSE/openSUSE, Arch, Fedora e FreeBSD, os problemas ainda não foram corrigidos.
Fonte: opennet.ru
