Pesquisadores exploram o PoC Exploit para bug relatado pela NSA no Windows CryptoAPI

Views: 113
0 0
Read Time:4 Minute, 44 Second

Pesquisadores desenvolveram uma exploração de prova de conceito (PoC) para uma vulnerabilidade pública de falsificação de certificado x.509 no Windows CryptoAPI que a NSA e o Centro Nacional de Segurança Cibernética (NCSC) relataram à Microsoft no ano passado.

A Microsoft silenciosamente corrigiu o bug, rastreado como CVE-2022-34689 , em sua atualização de segurança mensal Patch Tuesday de agosto de 2022 , mas apenas o divulgou publicamente em outubro. Na época, avaliou a vulnerabilidade como aquela que os invasores tinham maior probabilidade de explorar. Mas ofereceu poucos detalhes sobre o bug ou como um invasor pode explorá-lo.

“Quando o patch foi lançado, esse bug estava ausente nas notas de versão [da Microsoft]”, diz Yoni Rozenshein, pesquisador de segurança da Akamai. “Foi anunciado retroativamente dois meses depois, em outubro, e parece não haver informações disponíveis que descrevam a vulnerabilidade e como ela é explorada”.

Ataque de prova de conceito para CVE-2022-34689

Os pesquisadores da Akamai, que analisaram a vulnerabilidade nos últimos meses, divulgaram nesta semana detalhes de um ataque que desenvolveram para ela, que, segundo eles, permitiria aos invasores falsificar o certificado de destino e se disfarçar como qualquer site, com a capacidade de obter uma variedade de de ações maliciosas. 
“O navegador vulnerável mostraria o ícone de cadeado verde indicando uma conexão segura, mesmo que a conexão seja totalmente controlada pelo invasor”, diz Rozenshein. Ele descreveu o PoC da Akamai como o primeiro para o bug.

CryptoAPI é uma interface de programação de aplicativos do Windows que os desenvolvedores usam para  habilitar o suporte para criptografia para seus aplicativos. Uma das funções da CryptoAPI é verificar a autenticidade dos certificados digitais. E é nessa função que existe a vulnerabilidade, diz Rozenshein.

Para verificar a autenticidade de um certificado, o CryptoAPI primeiro verifica se ele já existe no cache do certificado do aplicativo receptor. Em caso afirmativo, CryptoAPI trata o certificado recebido como verificado. Antes do patch da Microsoft para ele, o CryptoAPI determinava se um certificado recebido já estava no cache do certificado ou não apenas comparando as impressões digitais de hash MD5. Se a impressão digital MD5 do certificado recebido correspondesse à impressão digital MD5 de um certificado no cache, o CryptoAPI trataria o certificado recebido como verificado, mesmo que o conteúdo real dos dois certificados não correspondesse exatamente.

Isso abre a porta para os ciberataques introduzirem um certificado impostor.

Impressões digitais MD5: uma suposição incorreta

Antes do patch, “a Microsoft confia inerentemente na validade dos certificados armazenados em cache e não realiza nenhuma verificação de validade adicional depois que um certificado final é encontrado no cache”, disse a Akamai em seu relatório. Embora isso por si só seja uma suposição razoável, a confiança da CryptoAPI de que dois certificados finais são idênticos se suas impressões digitais MD5 corresponderem “é uma suposição incorreta que pode ser explorada e foi a gênese do patch”, observou a Akamai.

Para provar como um invasor poderia explorar o problema, os pesquisadores da Akamai primeiro geraram dois certificados – um legitimamente assinado e o outro malicioso – e os equiparam para que ambos acabassem tendo as mesmas impressões digitais MD5. Eles então criaram uma maneira de fornecer o primeiro certificado legítimo a um aplicativo com uma versão vulnerável do CryptoAPI (neste caso, uma versão antiga do Chrome — v48). Depois que o aplicativo verificou o certificado e o armazenou em seu cache de certificado final, a Akamai mostrou como um invasor poderia usar um ataque man-in-the-middle para fornecer o segundo certificado malicioso ao mesmo aplicativo e verificá-lo como autêntico .

Duas condições precisam existir para que o ataque funcione, diz Rozenshein. Uma delas é que o aplicativo precisa estar sem o patch do Windows que a Microsoft lançou em agosto passado. A outra é que o aplicativo deve usar CryptoAPI para verificação de certificado e habilitar um recurso CryptoAPI chamado “terminar cache de certificado”. O recurso está desabilitado por padrão no CryptoAPI, mas alguns aplicativos permitem que ele melhore o desempenho. São esses aplicativos que os invasores podem visar, se uma organização não os tiver corrigido.

“Ainda estamos pesquisando ativamente e procurando encontrar aplicativos mais vulneráveis”, diz Rozenshein.

fácil de explorar

Rozenshein diz que um invasor com controle sobre uma rede pode explorar a falha sem muita dificuldade. “Eles precisarão calcular uma colisão MD5, mas isso pode ser feito com antecedência, de forma barata e em apenas algumas horas”, diz ele apontando para pesquisas anteriores que mostraram como é possível para um invasor gerar dois certificados com o mesmo impressão digital MD5.

Depois que a impressão digital MD5 é calculada, o ataque pode ser realizado facilmente, diz Rozenshein. A maneira como um invasor realiza as próximas duas fases do ataque (servindo os dois certificados) depende do tipo de aplicativo visado, ele acrescenta: “No caso de navegadores da Web, descobrimos que simplesmente redefinir a conexão após a primeira fase foi concluído faz com que o navegador tente se reconectar imediatamente. É quando o ataque muda para a segunda fase.”

A Microsoft não respondeu imediatamente a um pedido de comentário sobre a pesquisa da Akamai ou o ataque PoC.

CVE-2022-34689 é a segunda falha no CryptoAPI que a NSA divulgou à Microsoft nos últimos anos. Em 2020, eles relataram um problema semelhante, rastreado como CVE-2020-061 ou a vulnerabilidade Curveball . A Akamai avaliou a falha divulgada mais recentemente como apresentando menos ameaça do que o CurveBall porque há mais pré-requisitos associados a ele e, portanto, tem um escopo mais limitado de alvos vulneráveis.

FONTE: DARK READING

POSTS RELACIONADOS