Menos de 24 horas después de que Microsoft revelara CVE-2020-0601 —la falla crítica de Windows CryptoAPI que Microsoft parcheó el 14 de enero de 2020 tras un aviso privado de la NSA—, el investigador Saleem Rashid tuiteó imágenes de «Never Gonna Give You Up» de Rick Astley reproduciéndose en GitHub.com y NSA.gov por HTTPS. El rickroll fue la demostración: su exploit hizo que Edge y Chrome trataran sitios falsificados como genuinamente verificados, con Brave, otros derivados de Chrome e Internet Explorer probablemente afectados también. Firefox no mostró indicios de verse afectado.
La falla rompió por completo la validación de certificados para sitios web, actualizaciones de software, VPN y otros usos críticos para la seguridad en Windows 10, incluidos Windows Server 2016 y 2019. La mecánica: CryptoAPI confiaba en los parámetros de curva elíptica incluidos con cada certificado en lugar de exigir curvas definidas por estándares, de modo que un atacante podía proporcionar parámetros de generador personalizados —permitiendo que Windows «acordara» una clave pública que el atacante había elegido, y haciendo que certificados falsificados pasaran por reales.
Rashid dijo que el exploit usaba unas 100 líneas de código, y que podría comprimirlo a 10 si descartaba «unos cuantos trucos útiles». La velocidad de la demostración —en menos de un día, contra una falla revelada sin una descripción técnica pública— mostró qué poco margen quedaba entre «vulnerabilidad parcheada» y «exploit armado» cuando la causa raíz es un error de diseño y no un bug de memoria.
El origen de la revelación dio a la historia su ironía: la NSA había reportado el bug de forma privada, cuyo efecto práctico incluía suplantar el propio sitio web de la NSA. El rickroll —la demostración humorística estándar de fallas de seguridad graves— hizo la suplantación visible de inmediato para los no expertos.
Una biblioteca criptográfica que acepta los parámetros de curva elíptica del atacante permite al atacante elegir la clave con la que las matemáticas están de acuerdo: la verificación se convierte en un sello de goma.
La causa raíz es un principio de diseño, no un desliz de implementación: aceptar parámetros criptográficos proporcionados por el llamador convierte la agilidad en falsificación universal.
El radio de impacto era todo lo que TLS protege —sitios web, actualizaciones de software, VPN— en todas las máquinas Windows 10 y Server 2016/2019.
Una suplantación funcional aterrizó en unas 100 líneas dentro de un día de la revelación, antes de que la mayoría de los defensores hubiera siquiera aplicado el parche.
El objetivo de la demostración fue el propio reportero del bug, haciendo imposible descartar el modo de falla como teórico.
La agilidad criptográfica es superficie de ataque: cada parámetro que un verificador aceptará del lado no confiable es una perilla que el atacante puede girar —codifica las constantes, no verifiques nada opcional.
El parche de Microsoft del 14 de enero de 2020 corrigió la falla de validación de CryptoAPI para Windows 10 y las versiones de servidor afectadas; la fuente no reporta explotación en el mundo real más allá de la demostración de Rashid.
CONSULTA LAS PRUEBAS
Las fuentes
- Critical Windows 10 vulnerability used to Rickroll the NSA and Github Ars Technica · arstechnica.com ·