Una vulnerabilidad en Zoom y la guerra entre hackers y desarrolladores

Conclusiones de la DEF CON 30: una vulnerabilidad en Zoom para macOS.

En marzo de 2020, cuando el home office crecía al rededor del mundo, una vulnerabilidad fue descubierta en el instalador de Zoom (una de las principales herramientas de comunicación a distancia del mundo) la cual permitía ejecutar código arbitrario en computadoras Apple. Zoom resolvió el problema… o casi.

La verdad es que en agosto de 2022 un fallo similar (tanto en términos de localización como en las consecuencias de su explotación) fue encontrado. En este artículo analizaremos el reciente problema de seguridad y trataremos de explicar por qué los agujeros en el software, a veces, aparecen de nuevo en el mismo sitio. Por último, daremos algunos consejos sobre qué hacer al respecto.

¿De qué va esta última vulnerabilidad?

Patrick Wardle, conocido investigador, reveló este nuevo problema en Zoom en la DEF CON 30 de este año, a inicios de agosto. En resumen, se encontraron unos cuantos fallos en el sistema de actualización automática del cliente Zoom en Apple. Estos fallos, en teoría, permitían obtener los llamados derechos de superusuario, lo que permite que un atacante pueda hacer lo que quiera en la computadora del anfitrión.

No obstante, para explotar la vulnerabilidad, el atacante necesita tener un acceso físico a la computadora, aunque sin derechos especiales. Esta situación ante la que nos encontramos no es tan descabellada: por ejemplo, un usuario puede ir a comer y olvidar bloquear su computadora. Teóricamente, la vulnerabilidad también podría ser explotada por un malware, que de otro modo no causaría daños graves al usuario.

Más detalles, por favor

El tiempo de ejecución, así como la fácil instalación de las actualizaciones son importantes requisitos para cualquier software moderno. Lo ideal es que las correcciones de errores sean instaladas sin que el usuario se dé cuenta, pero esto no siempre es posible. Usualmente, para una actualización se complete hay que reiniciar un programa, volver a iniciar sesión o inclusive reiniciar el equipo.

A todos nos molestan los mensajes emergentes que nos recuerdan que debemos actualizar un programa, un sistema operativo o el firmware de un smartphone o tablet. Pero es importantísimo hacerlo: las actualizaciones parchean agujeros de seguridad que podrían ser usados en tu contra en caso de no cerrarse. Especialmente en casos graves, es necesario proteger de inmediato el software vulnerable ante ciberataques activos: un día de retraso puede costarte tus datos.

La forma estándar de actualizar una aplicación de macOS es igual que su primera instalación: descargas la nueva versión, ejecutas el archivo y escribes una contraseña de usuario. Zoom trató de simplificar dicho procedimiento: el cliente accede al servidor, descarga versión actualizada y esta se instala sola sin necesidad de que el usuario introduzca una contraseña. Por desgracia, este proceso de comunicación con el servidor, y de descarga e instalación de la actualización, no se lleva a cabo de manera correcta en todos los casos.

Hace diez años, el acceso a los servidores sin cifrado de datos era una práctica usual, y hacía posible que un atacante sustituyera el archivo de actualización por un malware de forma bastante simple. Al implementarse el cifrado, esto se complicó, pero todavía es posible sustituir el archivo después de la descarga cuando ya está guardado en el disco, pero no ha sido instalado todavía.

En la versión más reciente de Zoom, de finales del año pasado cuando Patrick comenzó su investigación, todo parecía estar en orden. El cliente accede a un servidor especial de actualizaciones mediante un canal seguro, descarga el archivo, verifica la autenticidad (comprueba que está firmado por el certificado del proveedor) y lo instala. Para la instalación, el SW solicita al sistema derechos temporales de superusuario, de esta manera el usuario no necesita introducir una contraseña.

Extracto de la presentación de Patrick Wardle que muestra la ventaja de las actualizaciones de las firmas. <a href="https://speakerdeck.com/patrickwardle/youre-muted-rooted" target="_blank">Fuente</a>.

Extracto de la presentación de Patrick Wardle que muestra la ventaja de las actualizaciones de las firmas. Fuente.

La firma digital es importante. A final de cuentas, el programa es descargado en la computadora del usuario desde algún rincón de Internet y se ejecuta con máximos privilegios. Por tanto, hay que estar seguros de que lo que se descargó es el programa correcto. Una versión falsa del archivo descargado no funcionará: como se muestra arriba en la diapositiva de la presentación de Patrick, la sustitución del archivo da lugar a un mensaje de error. En resumen, la actualización falsa no tiene firma digital (y es casi imposible poder falsificar una).

Lamentablemente, el proceso de validación de la firma digital en Zoom tenía errores. Funcionaba al ejecutar una utilidad del sistema. Esta mostraba los parámetros de la firma digital de la actualización descargada, incluyendo una línea que indicaba qué empresa había recibido el certificado:

Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA

Se procesaba la salida de la utilidad y, si esta línea estaba presente, la instalación comenzaba. El problema era que el nombre del archivo también aparecía en la salida. Entonces, teóricamente un atacante podría crear una actualización maliciosa con el nombre “Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg” en lugar del estándar “ZoomUpdate.pkg”. Y con esto bastaría para engañar al procedimiento de validación: la línea requerida está ahí, por tanto, el archivo debe ser legítimo – ¡aunque sea el archivo equivocado y las palabras mágicas estén en el lugar equivocado!

Un ataque podría ser así: se inicia el procedimiento de validación de la actualización (no es difícil de hacer), luego se descarga la actualización legítima, se sustituye por malware y se le cambia el nombre para burlar el proceso de validación del certificado roto. El archivo malicioso se ejecuta con privilegios del sistema y… ¡la computadora está hackeada!

Pero el 20 de diciembre de 2021 una actualización de Zoom que puso fin a esta vía de ataque fue publicada. Era un cambio simple: se forzaba un cambio de nombre del archivo tras la descarga. Patrick Wardle pudo modificar el ataque: si Zoom es seguro desde la versión 5.9.0, ¿qué pasa si “actualizamos” el cliente a una versión anterior? Y funcionó: la antigua actualización tenía un certificado digital legítimo y la versión no se comprobaba durante la instalación.

¿Y cuál es el problema?

La investigación de Patrick Wardle demuestra que instalar actualizaciones es de suma importancia. Es más, la historia de esta falla demuestra de manera clara cómo, algunas veces, los desarrolladores de software tratan de resolver un problema con un cambio simple sin terminar de entenderlo. Al principio (incluso antes de que Wardle informara del problema a Zoom), en diciembre de 2021, derrotaron la versión más sencilla de un ataque que utilizaba la sustitución de archivos y eludía la validación de certificados.

Después de que se informara sobre esta vulnerabilidad, en abril de 2022, cerraron la opción de “downgrade“, es decir, la instalación de una versión más antigua y vulnerable de Zoom mediante el mecanismo estándar de actualizaciones. Pero fue hasta seis meses después del informe de Wardle, cuando se el mecanismo de validación de certificados digitales fue reparado.

No obstante, esto no terminó de resolver el problema. Sí, los dos métodos de ataque más sencillos fueron eliminados de los posibles recursos de los hackers: la sustitución del archivo de actualización por malware y el cambio a una versión vulnerable. Pero todavía existía otro problema: un archivo de actualización ejecutado con privilegios de superusuario podía modificarse por cualquiera con acceso a la computadora. El atacante solo debía encontrar la manera de introducir un archivo malicioso en el instalador de Zoom en el momento correcto: Justo tras validar la firma digital, pero antes de la instalación comenzara. Y funcionó.

Por lo tanto, cuando Patrick Wardle presentó sus descubrimientos en la DEF CON 30 de agosto de 2022 – ocho meses después de informar del problema a Zoom – ¡la vulnerabilidad no había sido parcheada por completo! Cinco días después del informe de Patrick, los desarrolladores finalmente parchearon el problema. Sin embargo, esta afirmación debe ser verificada de manera independiente.

Sobre los hackers y los desarrolladores

Al leer el informe de Patrick Wardle, uno no puede evitar preguntarse por qué tiene que ser así. ¿Cómo surgen vulnerabilidades tan simples en partes críticas del software, y por qué, incluso después de que se informe de un problema, este se soluciona hasta ocho meses después y al tercer intento? Hay que dejar en claro que no buscamos tachar de incompetentes a los desarrolladores, ya que en todos los programas existen fallos y errores de vez en vez. Y, si todos los programadores cometen errores, culparlos no resolverá el problema, ya que son los únicos desarrolladores que hay en el mundo.

Tal vez la razón se deba a que los hackers de sombrero blanco (que informan a los proveedores de sus hallazgos) y los ciberdelincuentes (que aprovechan los agujeros para atacar a los usuarios y obtener beneficios) tienen distintas prioridades a las de los desarrolladores de software. Cuando desarrollas un programa, lo más importante es que realice cientos de tareas diferentes de manera correcta. Tu prioridad es proporcionar confort a los usuarios, lo que se traduce, en el caso de Zoom, a ofrecer una buena calidad de comunicación y compatibilidad con distintos sistemas operativos y miles de dispositivos, tanto nuevos como antiguos.

No obstante, lo único que el hacker necesita es encontrar un fallo que pueda utilizar para sus sucios trucos. Ahora imagina que alguien te informa de una vulnerabilidad. Sí, debes parchearla, pero sin acabar con el delicado sistema de software cliente-servidor. Tienes que probarlo en cientos de configuraciones diferentes. Naturalmente, el desarrollador quiere resolver el problema con mínimas modificaciones que, usualmente, no son suficientes.

Con el paso del tiempo y con cada pequeño parche, los programas se vuelven cada vez más seguros. No se pueden resolver todos los problemas de tajo o crear una aplicación ideal sin más. O, mejor dicho, sí se puede, pero solo si se parte de cero. Pero algunos elementos críticos deben tener el mejor mantenimiento posible, y el sistema de entrega de actualizaciones es uno de ellos.

Los usuarios necesitamos poder confiar en los programas que instalamos en nuestras computadoras y, en este sentido, la historia de las vulnerabilidades de Zoom es un ejemplo positivo de un investigador independiente y un desarrollador trabajando de la mano para resolver un problema. Esto demuestra de forma clara la actitud responsable del desarrollador.

Terminamos este artículo con un recordatorio importante: el malware suele entrar en una computadora durante la primera instalación del software. Por lo tanto, es importante comprobar que las utilidades sean descargadas de fuentes oficiales, mediante tiendas de aplicaciones siempre que sea posible, y en ningún caso descargar programas de sitios web sospechosos. De lo contrario, existe la posibilidad de que tus datos sean robados a través de simples métodos de hackeo, sin que sea necesario explotar sofisticadas vulnerabilidades en el software oficial.

Más probado. Más premiado.

 

Consejos