A maioria dos sistemas e aplicativos de datacenter com Windows permanecem vulneráveis a um bug de falsificação no CryptoAPI que foi divulgado pela NSA e pelo Centro Nacional de Segurança Cibernética do Reino Unido (NCSC) e corrigido pela Microsoft no ano passado, de acordo com os pesquisadores da Akamai.
CryptoAPI ajuda os desenvolvedores a proteger aplicativos baseados no Windows usando criptografia; a API pode ser usada, por exemplo, para validar certificados e verificar identidades.
A vulnerabilidade em questão (CVE-2022-34689) pode ser explorada por criminosos para assinar digitalmente executáveis maliciosos de uma forma que induz o Windows e os aplicativos a acreditar que os arquivos são de fontes confiáveis e legítimas e podem ser abertos ou instalados. Explorar isso envolverá colocar os arquivos nas máquinas das vítimas e executá-los.
Como alternativa, um invasor pode criar um certificado TLS que parece pertencer a outra organização e induzir um aplicativo a confiar no certificado, se esse aplicativo usar CryptoAPI para analisar o certificado. O aplicativo acredita que o invasor é a organização falsificada. O bug não é uma falha de execução remota de código; é uma vulnerabilidade que permite que alguém finja ser outro para um aplicativo ou sistema operacional, no contexto de verificações de criptografia de identidade e certificado no Windows.
Datacenters permanecem sem correção depois que a NSA divulgou bug do certificado da Microsoft
A Microsoft silenciosamente corrigiu a vulnerabilidade em agosto de 2022; embora tenha sido rotulado como crítico, recebeu uma pontuação de gravidade CVSS de apenas 7,5 em 10. Mais tarde, quando Redmond divulgou o bug em outubro, o gigante de TI disse que a falha de segurança não havia sido explorada e não era conhecida publicamente, mas considerou “a exploração mais provável”.
E agora que a Akamai publicou um código de prova de conceito que demonstra a exploração, os temores da Microsoft talvez se aproximem da realidade. A demonstração PoC explora uma versão antiga do Chrome no Windows, que usa CryptoAPI para verificar certificados, usando um ataque man-in-the-middle para fazer o navegador pensar que está conversando com o servidor legítimo de um site HTTPS, mas na verdade está usando um falso malicioso. O PoC não fica mais útil do que isso.
A Akamai também afirmou que a grande maioria dos servidores Windows voltados ao público em datacenters em todo o mundo que estudou não foi corrigida para fechar o buraco. Ressaltamos que, para que o bug seja explorado na prática, é necessário que haja um aplicativo ou serviço rodando na caixa que utilize o CryptoAPI de forma que o abra para spoofing.
Para que um ataque seja bem-sucedido, é necessário:
“Descobrimos que menos de um por cento dos dispositivos visíveis nos data centers são corrigidos, tornando o restante desprotegido contra a exploração dessa vulnerabilidade”, concluíram os pesquisadores de segurança da Akamai, Tomer Peled e Yoni Rozenshein.
Quando perguntado se isso significa que 99 por cento – praticamente todos – os endpoints de datacenter do Windows permanecem vulneráveis, Peled esclareceu:
Sim, podemos confirmar que, do subconjunto de endpoints que examinamos, descobrimos que 99% não foram corrigidos com o patch de segurança de agosto, mas isso não significa que o endpoint seja vulnerável porque também precisa haver um aplicativo vulnerável para aproveitar esta exploração.
Os pesquisadores disseram que vasculharam aplicativos vulneráveis que usam CryptoAPI de uma maneira que é vulnerável a esse ataque de falsificação. “Até agora, descobrimos que versões antigas do Chrome (v48 e anteriores) e aplicativos baseados no Chromium podem ser explorados”, escreveu a dupla . “Acreditamos que existem alvos mais vulneráveis na natureza e nossa pesquisa ainda está em andamento”.
Há um vídeo [MP4] que você pode assistir demonstrando a exploração contra o Chrome, mas aqui está a versão curta desse ataque de falsificação.
No centro disso, a Microsoft usou o algoritmo de hash MD5 para indexar e comparar certificados de segurança. É trivial quebrar o MD5 com o que é chamado de colisão: uma situação em que dois blocos de dados diferentes resultam no mesmo valor de hash MD5. Além disso, a Microsoft usou os quatro bytes menos significativos da impressão digital MD5 de um certificado para indexá-lo.
Então, o que você precisa fazer é o seguinte: enganar um aplicativo como o Chrome 48, que usa o Windows CryptoAPI, para se conectar a um servidor man-in-the-middle que deseja fingir ser o site que o usuário realmente deseja. O servidor malicioso envia o certificado HTTPS legítimo do site personificado para o navegador, que o passa para o CryptoAPI para processamento e o certificado é armazenado em cache na memória do PC do usuário.
Certificado
O certificado é armazenado neste cache usando parte da impressão digital MD5 dos dados do certificado como índice. Enquanto isso, o servidor malicioso modifica o certificado legítimo para que ele possa se disfarçar como o site e garante que esse novo certificado adulterado resulte no mesmo índice de cache calculado por MD5 que o verdadeiro. O servidor faz com que o navegador solicite o certificado do site novamente, momento em que o servidor entrega o certificado maligno.
A biblioteca CryptoAPI calcula a impressão digital MD5 para o certificado maligno e seu índice no cache, vê que já existe um certificado válido no cache para esse índice e, portanto, confia no certificado maligno. Agora você enganou o sistema fazendo-o pensar que o certificado malicioso é real. Como isso é explorado no mundo real para causar danos reais… bem, você precisa ser um canalha habilidoso e determinado, e provavelmente há pontos fracos de segurança mais fáceis de atingir. Consulte o link acima para o artigo da Akamai para obter detalhes técnicos completos.
“A causa raiz do bug é a suposição de que a chave de índice do cache do certificado, que é baseada em MD5, é livre de colisão”, explicou a dupla de pesquisadores. “Desde 2009, sabe-se que a resistência à colisão do MD5 está quebrada.”
Vale a pena notar que a NSA também encontrou e divulgou à Microsoft um bug CryptoAPI semelhante em 2020, rastreado como CVE-2020-0601, que também pode levar à falsificação de identidade.
No entanto, embora a vulnerabilidade mais antiga afetasse muitos sistemas não corrigidos e fosse a favorita entre os criminosos patrocinados pelo estado chinês, este último “CVE-2022-34689 tem mais pré-requisitos e, portanto, um escopo mais limitado de alvos vulneráveis”, de acordo com a Akamai.
“Dito isso, ainda há muito código que usa essa API e pode estar exposto a essa vulnerabilidade, garantindo um patch mesmo para versões descontinuadas do Windows, como o Windows 7”, acrescentaram os pesquisadores.
O Register perguntou à Microsoft quais foram as conclusões da pesquisa e se a gigante de TI planeja lançar um patch para versões mais antigas do Windows. Em vez disso, um porta-voz nos disse: “Lançamos uma atualização de segurança no ano passado, como parte de nosso processo normal de atualização na terça-feira. Recomendamos que os clientes apliquem a atualização para ajudar a se manterem seguros e protegidos”.