20 ene. 2020

Cómo infectar un sistema abusando de la falla de Windows CryptoAPI

Los desarrolladores de malware pueden abusar de la nueva vulnerabilidad Windows CryptoAPI CVE-2020-0601 revelada por la NSA para firmar sus ejecutables de modo que parezcan provenir de compañías legítimas. Esto crea confianza en el programa, lo que puede hacer que un usuario esté más dispuesto a ejecutarlos.

La mayor parte de la cobertura de esta vulnerabilidad ilustra cómo se puede aprovechar la vulnerabilidad para falsificar certificados utilizados para conexiones TLS a sitios web y realizar ataques MitM. Por ejemplo, Kudelski Security ilustró cómo utilizaron la vulnerabilidad para crear un certificado falso que se hace pasar por github.com. Para proteger a los usuarios, Chrome agregó protecciones que impiden que los usuarios accedan a los sitios que utilizan estos certificados falsificados.

Sin embargo, esta vulnerabilidad también se puede utilizar para falsificar certificados de firma de código. Cuando un desarrollador lanza un programa, puede firmar digitalmente los ejecutables para asegurar a los usuarios que el programa proviene de una fuente confiable. Si ese usuario confía en la empresa, es muy probable que sus ejecutables firmados también sean confiables y sean más aptos para ejecutarlos. El software antivirus también puede incluir en la lista blanca el software que se detectará como malware si utilizan firmas digitales confiables y conocidas.

Usando esta nueva vulnerabilidad CryptoAPI, los distribuidores de malware pueden crear certificados de firma de código que falsifican compañías legítimas para que sus ejecutables de malware firmados parezcan ser de una compañía confiable como Microsoft.

Al ejecutar un archivo ejecutable en Windows que requiere privilegios elevados o administrativos, el sistema operativo mostrará un mensaje de Control de Cuenta de Usuario (UAC) que le pedirá que confirme si se debe otorgar el permiso.

Si el ejecutable ha sido firmado por código, el indicador de UAC mostrará una mensaje azul, el nombre del producto ejecutable, su icono y el nombre del desarrollador que figura en el certificado de firma de código. El usuario puede usar esta información para decidir si debe otorgar privilegios elevados al programa.
Cuando este mismo ejecutable no está firmado, Windows mostrará un aviso de UAC con un mensaje amarillo que especifica que el editor es 'Desconocido' y una vez más le preguntará si desea otorgar privilegios elevados.
Como puede ver, la del ejecutable sin firmar tiene la intención de hacer que el usuario sea más cauteloso acerca de proporcionar privilegios administrativos.

Debido a esto, los distribuidores de malware suelen crear compañías falsas para comprar certificados de firma de código o robar certificados de otras compañías. Estos certificados se utilizan para firmar sus ejecutables de malware.

Sin embargo, el problema para los atacantes es que una vez que se informa que un certificado se utiliza con malware, la autoridad de certificación responsable de este certificado lo revocará para que ya no funcione.

Uso de CVE-2020-0601 para falsificar editores de confianza

Usando la vulnerabilidad CVE-2020-0601, los distribuidores de malware pueden crear fácilmente certificados que falsifican compañías legítimas.

Esto les permite firmar sus ejecutables para que aparezcan como el mismo certificado de firma de código que se ve en los ejecutables de Windows. Peor aún, dado que estos certificados están explotando una vulnerabilidad, las autoridades de certificación no pueden revocarlos ni bloquearlos en dispositivos Windows sin parches.

Al firmar un ejecutable como un editor de confianza, también podría permitir que el malware omita los motores antivirus que han incluido en la lista blanca el certificado de confianza.

Para ilustrar esto, BleepingComputer encontró un ejecutable en VirusTotal que está firmado con un certificado que explota la vulnerabilidad CVE-2020-0601. Este certificado falsifica los utilizados por Microsoft para firmar ejecutables de Windows.

En un sistema sin parches, Windows no ve nada malo con el certificado cuando se abre.
Incluso cuando ejecuta el programa, muestra un mensaje de UAC que indica que fue firmado por Microsoft.
Sin embargo, en un sistema parcheado, Windows verá que este certificado es falso y mostrará una advertencia que no se confía en la cadena de certificados.

Las solicitudes de UAC en un sistema parcheado también ignorarán el certificado falsificado y tratarán la aplicación como no confiable.

No se trata de si el malware explotará esta vulnerabilidad, sino de cuándo. Ya en VirusTotal, vemos investigadores cargando ejecutables  [1, 2, 3] firmados con certificados falsificados y podemos esperar ver malware usándolo en la naturaleza pronto.

Con una prueba de conceptos fácil de usar disponible, esta vulnerabilidad permite a los atacantes generar malware firmado que parece confiable y posiblemente omita el software antivirus.

Aún mejor, les permite hacerlo sin el costo o la dificultad de adquirir un certificado de firma de código legítimo que pueda ser revocado fácilmente.

"Este es un escenario inmediato de alto impacto para eludir el malware. Durante el año pasado, las entregas de malware han reutilizado un malware firmado para evitar los sistemas AV que dependen de esta verificación en lugar de la suya propia. En el mejor de los casos, los delincuentes aprovecharían esta vulnerabilidad contra los no parcheados Windows 10 como parte de la firma de malware "gratuito" sin pasar por la detección estática y/o basada en la confianza", dijo el director de SentinelLabs, Vitali Kremez, a BleepingComputer en una conversación sobre esta vulnerabilidad.
Windows Defender detecta certificados maliciosos

La buena noticia es que el software antivirus, los navegadores web y Microsoft han estado trabajando arduamente para implementar detecciones para estos certificados falsificados.

Windows Defender ahora detectará programas firmados con certificados que explotan esta vulnerabilidad como Exploit: Win32/CVE-2020-0601. Microsoft también está utilizando la función CveEventWrite para registrar los intentos de explotar la vulnerabilidad CVE-2020-0601 al Visor de eventos.
Google Chrome agregó nuevas protecciones en Chrome 79.0.3945.130 que le impiden acceder a sitios que utilizan certificados falsificados.

Finalmente, los motores antivirus como los de McAfee, Kaspersky, ZoneAlarm y GData han agregado detecciones para esta vulnerabilidad y otros harán lo mismo.

Si tantas compañías de seguridad y desarrolladores de software están tomando en serio esta vulnerabilidad, usted también debería hacerlo.

Asegúrese de instalar el parche lo antes posible para protegerse.

Fuente: BC | @LawrenceAbrams

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!