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 teletrabajo se extendía por todo el mundo, se descubrió una vulnerabilidad en el instalador de Zoom (una de las principales herramientas de comunicación a distancia del mundo) que permitía la ejecución de código arbitrario en ordenadores Apple. Zoom solucionó esta vulnerabilidad… o casi.

Lo cierto es que en agosto de 2022 se ha encontrado un fallo similar (tanto en términos de localización como en las consecuencias de su explotación).

En este artículo vamos a analizar este último problema de seguridad y tratar de explicar por qué los agujeros en el software, a veces, vuelven a surgir en el mismo lugar. Por último, terminaremos dando algunos consejos sobre qué hacer al respecto.

¿En qué consiste esta última vulnerabilidad?

El reconocido investigador Patrick Wardle reveló este nuevo problema en Zoom en la DEF CON 30, a principios de agosto de este año. Resumiendo, 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 da la posibilidad a un atacante de hacer lo que quiera en el ordenador anfitrión.

Sin embargo, para explotar la vulnerabilidad, el atacante necesitaría tener acceso físico al ordenador, aunque sin derechos especiales. No estamos ante una situación tan descabellada: por ejemplo, un usuario puede ir a comer y olvidarse de bloquear su ordenador. En teoría, la vulnerabilidad también podría ser explotada por un malware, que de otro modo no causaría graves daños al usuario.

Más detalles, por favor

El tiempo de ejecución y la sencilla instalación de las actualizaciones son requisitos importantes para cualquier software moderno.

Lo ideal es que las correcciones de errores se instalen sin que el usuario se percate, pero esto no siempre es posible. Para completar una actualización, a menudo hay que reiniciar un programa, volver a iniciar sesión o incluso 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 de una tablet. Pero es vital hacerlo: las actualizaciones parchean agujeros de seguridad que, de no cerrarse, podrían ser utilizados en tu contra.

En algunos casos especialmente graves, es necesario proteger de inmediato el software vulnerable contra los 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 e introduces una contraseña de usuario.

Zoom trató de hacer más simple este procedimiento: el cliente accede al servidor, descarga la nueva versión y esta se instala por sí sola sin necesidad de que el usuario introduzca una contraseña.

Desgraciadamente, este proceso de comunicación con el servidor, y de descarga e instalación de la actualización, no siempre se realiza correctamente.

Hace diez años, el acceso a los servidores sin cifrado de datos era una práctica común, lo que permitía a un posible atacante sustituir el archivo de actualización por un malware de forma bastante sencilla. Al implementarse el cifrado, se volvió más complicado, pero todavía es posible sustituir el archivo después de la descarga cuando ya está guardado en el disco, pero aún no está instalado.

En la última versión de Zoom, de finales del año pasado cuando Patrick comenzó su investigación, todo parecía estar bien. El cliente accede a un servidor especial de actualizaciones a través de un canal seguro, descarga el archivo, valida su 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, pero de tal forma que 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.

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

La firma digital es importante. Al fin y al cabo, el programa se descarga en el ordenador del usuario desde algún rincón de Internet y se ejecuta con máximos privilegios. Por lo tanto, hay que asegurarse de que lo que descargamos 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 extremadamente difícil llegar a falsificar una).

Lamentablemente, el proceso de validación de la firma digital en Zoom tenía sus fallos. Funcionaba ejecutando 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, se iniciaba la instalación. El problema era que el nombre del archivo también aparecía en la salida. Así que, en teoría, 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 eso sería suficiente para engañar al procedimiento de validación: la línea requerida está ahí, así que 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… ¡el ordenador se ha hackeado!

Pero el 20 de diciembre de 2021 se publicó una actualización de Zoom que puso fin a esta vía de ataque. El cambio era sencillo: 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 lo importante que es la instalación de actualizaciones. Es más, la historia de este fallo demuestra claramente cómo los desarrolladores de software a menudo intentan resolver un problema mediante un simple cambio sin entenderlo por completo.

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 de la 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 a través del mecanismo estándar de actualizaciones. Pero no fue hasta seis meses después del informe de Wardle, cuando se reparó el mecanismo de validación de certificados digitales.

Sin embargo, esto no resolvió por completo el problema. Sí se eliminaron de los recursos de los posibles hackers los dos métodos de ataque más sencillos: la sustitución del archivo de actualización por malware y el cambio a una versión vulnerable. Pero había otro problema: un archivo de actualización ejecutado con privilegios de superusuario podía ser modificado por cualquiera que tuviera acceso al ordenador.

Un atacante solamente tenía que encontrar la forma de introducir un archivo malicioso en el instalador de Zoom en el momento adecuado: después de la validación de la firma digital, pero antes de que comenzara la instalación. 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 estaba completamente parcheada! Cinco días después del informe de Patrick, los desarrolladores finalmente parchearon el problema. Sin embargo, esta afirmación debe ser verificada de forma 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 finalmente ocho meses más tarde y al tercer intento? Por supuesto, no queremos tachar de incompetentes a los desarrolladores, ya que en todos los programas surgen fallos y errores de vez en cuando. Y, si todos los programadores cometen errores, echarles la culpa no resolverá el problema, ya que son los únicos desarrolladores que hay en el mundo.

Tal vez la razón sea que los hackers de sombrero blanco (que informan de sus hallazgos a los proveedores) y los ciberdelincuentes (que aprovechan los agujeros para atacar a los usuarios y obtener beneficios) tienen prioridades diferentes a las de los desarrolladores de software.

Cuando desarrollas un programa, lo más importante es que realice correctamente cientos de tareas diferentes. Tu prioridad es proporcionar confort a los usuarios, lo que significa, en el caso de Zoom, ofrecerles una buena calidad de comunicación y compatibilidad con diferentes sistemas operativos y miles de dispositivos, tanto antiguos como nuevos.

Sin embargo, lo único que necesita el hacker es encontrar un fallo que pueda ser utilizado para hacer trucos sucios. Ahora imagina que alguien te informa de una vulnerabilidad. Sí, tienes que parchearla, pero sin destrozar el delicado sistema de software cliente-servidor. Tienes que probarlo en cientos de configuraciones diferentes. Naturalmente, el desarrollador quiere resolver el problema con unas modificaciones mínimas que, a menudo, no son suficientes.

Los programas se vuelven más seguros con el paso del tiempo, con cada pequeño parche. No se pueden resolver absolutamente todos los problemas y crear una aplicación ideal sin más. O, mejor dicho, sí se puede, pero solo partiendo 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 nuestros ordenadores y, en este sentido, la historia de las vulnerabilidades de Zoom es un ejemplo positivo de un investigador independiente y un desarrollador trabajando juntos para resolver un problema. Esto demuestra claramente la actitud responsable del desarrollador.

Terminamos este artículo con un importante recordatorio: el malware suele entrar en un ordenador durante la primera instalación del software. Por lo tanto, es importante comprobar que las utilidades se descargan de fuentes oficiales, utilizar las 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 métodos de hackeo muy sencillos, sin necesidad de explotar sofisticadas vulnerabilidades en el software oficial.

Consejos