Explotación de una vulnerabilidad crítica de suplantación de identidad en Windows CryptoAPI

 

Por Federico Dios Pre sales senior manager de Akamai

Akamai Security Research analizó recientemente una vulnerabilidad crítica en Windows CryptoAPI revelada por la Agencia de Seguridad Nacional (NSA) y el Centro Nacional de Seguridad Cibernética (NCSC) a Microsoft.

La vulnerabilidad, asignada CVE-2022-34689 se parcheó en agosto de 2022, pero se anunció públicamente en octubre de 2022. Los certificados juegan un papel importante en la verificación de identidad online, lo que hace que esta vulnerabilidad sea lucrativa para los atacantes. Pero, aunque estaba marcado como crítico, la vulnerabilidad solo recibió una puntuación CVSS de 7.5 probablemente por el alcance limitado de las aplicaciones vulnerables y los componentes de Windows en los que se cumplen los requisitos previos de vulnerabilidad.

Según Microsoft, esta vulnerabilidad permite a un atacante pasar por una entidad legítima: "falsificar su identidad y realizar acciones como la autenticación o la firma de código como el certificado objetivo".

CryptoAPI es la API de facto en Windows para manejar cualquier cosa relacionada con la criptografía. En particular, maneja los certificados, desde leerlos y analizarlos hasta validarlos con las autoridades de certificación (CA) verificadas. Los navegadores también usan CryptoAPI para la validación de certificados TLS, un proceso que da como resultado el icono de candado que todos aprenden a verificar.

Sin embargo, la verificación de certificados no es exclusiva de los navegadores y también la usan otros clientes TLS, como la autenticación web de PowerShell, curl, wget, administradores de FTP, EDR y muchas otras aplicaciones. Además, los certificados de firma de código se comprueban en ejecutables y bibliotecas, y los certificados de firma de controladores se comprueban al cargar los controladores. Como se puede imaginar, una vulnerabilidad en el proceso de verificación de certificados es muy lucrativa para los atacantes, ya que les permite enmascarar su identidad y eludir las protecciones de seguridad críticas.

Esta no es la primera vez que la Agencia de Seguridad Nacional revela una vulnerabilidad en CryptoAPI. En 2020, encontraron y divulgaron CurveBall (CVE-2020-0601). La explotación de CurveBall o CVE-2022-34689 da como resultado la suplantación de identidad; pero aunque CurveBall afectó a muchas aplicaciones, CVE-2022-34689 tiene más requisitos previos y, por lo tanto, tiene un alcance más limitado de objetivos vulnerables.

La causa del error es la suposición de que la clave del índice de caché del certificado, que está basada en MD5, no tiene colisiones. Desde 2009, se sabe que la resistencia a colisiones de MD5 está rota .

El flujo de ataque es doble. La primera fase requiere tomar un certificado legítimo, modificarlo y entregar la versión modificada a la víctima. La segunda fase implica la creación de un nuevo certificado cuyo MD5 colisiona con el certificado legítimo modificado y el uso del nuevo certificado para falsificar la identidad del sujeto del certificado original.

Desde Akamai se buscaron aplicaciones que usan CryptoAPI de una manera que es vulnerable a este ataque de suplantación de identidad. Hasta ahora, se ha descubierto que las versiones antiguas de Chrome (v48 y anteriores) y las aplicaciones basadas en Chromium pueden explotarse. Parece que hay objetivos más vulnerables en el ecosistema y la investigación aún está en curso.

Al menos el 1 % de los dispositivos visibles en los centros de datos están parcheados, lo que hace que el resto quede desprotegido contra la explotación de esta vulnerabilidad.