Logotipo de Zephyrnet

Zoom para Mac corrige el error de raíz: ¡actualice ahora!

Fecha:

En la conocida fiesta de seguridad DEF CON en Las Vegas, Nevada, la semana pasada, el investigador de ciberseguridad de Mac Patrick Wardle revelado un "get-root" elevación de privilegios (EoP) error en Zoom para Mac:

En el tweet, que siguió a su charla [2022-08-12], Wardle señaló:

Actualmente no hay parche [:EMOJI DE ALARMA CON OJOS DE HUEVO FRITO:] [:EMOJI DE GRITO DE EDVARD MUNCH:]

Zoom inmediatamente trabajó en un parche para la falla, que se anunció al día siguiente en Boletín de seguridad Zoom ZSB-22018, ganándose una felicitación responder de Wardle en el proceso:

¡Mahalos a @Zoom para la solución (increíblemente) rápida! [:AMBAS MANOS LEVANTADAS EN CELEBRACIÓN Y MOVIENDO SOBRE EMOJI:] [:PALMAS JUNTAS EN SEÑAL DE BUENA VOLUNTAD ESPIRITUAL EMOJI:]

Divulgación de día cero

Dada la aparente velocidad y facilidad con la que Zoom pudo emitir un parche para el error, denominado CVE-2022-28756, probablemente se esté preguntando por qué Wardle no le contó a Zoom sobre el error con anticipación, y fijó el día de su discurso como fecha límite para revelar los detalles.

Eso le habría dado tiempo a Zoom para enviar la actualización a sus muchos usuarios de Mac (o al menos para ponerla a disposición de aquellos que creen en parche temprano/parche frecuente), eliminando así la brecha entre Wardle explicando al mundo cómo abusar del error y el parche del error.

De hecho, parece que Wardle hizo todo lo posible para advertir a Zoom sobre este error, además de un montón de fallas interconectadas en el proceso de actualización automática de Zoom, hace algunos meses.

Wardle explica el cronograma de divulgación de errores en el diapositivas de su charla DEF CON, y enumera una serie de actualizaciones de Zoom relacionadas con las fallas que descubrió.

Una espada de doble filo

Los errores que discutió Wardle se relacionaron generalmente con el mecanismo de actualización automática de Zoom, una parte de cualquier ecosistema de software que es un arma de doble filo: un arma más poderosa que una espada normal, pero correspondientemente más difícil de manejar de manera segura.

La actualización automática es un componente imprescindible en cualquier aplicación cliente moderna, dado que hace que los parches críticos sean más fáciles y rápidos de distribuir, lo que ayuda a los usuarios a cerrar los agujeros de ciberseguridad de manera confiable.

Pero la actualización automática trae consigo un mar de riesgos, sobre todo porque la herramienta de actualización en sí misma generalmente necesita acceso al sistema de nivel raíz.

Esto se debe a que el trabajo del actualizador es sobrescribir el software de la aplicación (algo que se supone que un usuario normal no debe hacer) y tal vez ejecutar comandos privilegiados del sistema operativo para realizar configuraciones u otros cambios a nivel del sistema.

En otras palabras, si los desarrolladores no tienen cuidado, la misma herramienta que los ayuda a mantener su aplicación subyacente actualizada y más segura podría convertirse en una cabeza de puente desde la cual los atacantes podrían socavar la seguridad al engañar al actualizador para que ejecute comandos no autorizados con privilegios del sistema. .

En particular, los programas de actualización automática deben tener cuidado de verificar la autenticidad de los paquetes de actualización que descargan, para evitar que los atacantes simplemente les proporcionen un paquete de actualización falso, completo con malware agregado.

También deben mantener la integridad de los archivos de actualización que finalmente consumen, de modo que un atacante local no pueda modificar furtivamente el paquete de actualización "seguro verificado" que acaba de descargarse en el breve período entre la obtención y la activación.

Eludir el control de autenticidad

Como explica Wardle en su , uno de los errores que descubrió y reveló fue una falla en el primer paso mencionado anteriormente, cuando el actualizador automático de Zoom intentó verificar la autenticidad del paquete de actualización que acababa de descargar.

En lugar de usar las API oficiales de macOS para validar la firma digital de la descarga directamente, los desarrolladores de Zoom decidieron realizar la autenticación indirectamente, ejecutando la utilidad macOS. pkgutil --check-signature en segundo plano y examinando la salida.

Aquí hay un ejemplo de pkgutil salida, usando una versión antigua del Zoom.pkg paquete de software:

$ pkgutil --check-signature Zoom.pkg Paquete "Zoom.pkg": Estado: firmado por un certificado de desarrollador emitido por Apple para distribución Firmado con una marca de tiempo confiable el: 2022-06-27 01:26:22 +0000 Cadena de certificados : 1. Instalador de ID de desarrollador: Zoom Video Communications, Inc. (BJ4HAAB9B3) Caduca: 2027-02-01 22:12:15 +0000 SHA256 Huella digital: 6D 70 1A 84 F0 5A D4 C1 C1 B3 AE 01 C2 EF 1F 2E AE FB 9F 5C A6 80 48 A4 76 60 FF B5 F0 57 BB 8C ----------------------------------- ------------------------------------- 2. La autoridad de certificación de ID de desarrollador caduca: 2027-02-01 22:12:15 +0000 SHA256 Huella digital: 7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 F2 9C 88 CF B0 B1 BA 63 58 7F -------- -------------------------------------------------- -------------- 3. Apple Root CA Caduca: 2035-02-09 21:40:36 +0000 SHA256 Huella digital: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

Desafortunadamente, como descubrió Wardle cuando descompiló el código de verificación de la firma de Zoom, el actualizador de Zoom no procesó el pkgutil datos de la misma manera que lo harían los observadores humanos.

Verificaríamos la salida siguiendo la secuencia visual útil en la salida.

Primero, buscaríamos primero el estado deseado, por ejemplo signed by a developer certificate issued by Apple for distribution.

Entonces encontraríamos el subtítulo Certificate Chain:.

Finalmente, verificaríamos que la cadena estuviera formada por estos tres firmantes, en el orden correcto:

  1. Zoom Video Communications, Inc. 2. Autoridad de certificación de ID de desarrollador 3. CA raíz de Apple

Sorprendentemente, el código de Zoom simplemente verificó que cada una de las tres cadenas anteriores (sin siquiera verificar la identificación única de Zoom). BJ4HAAB9B3) apareció en alguna parte en la salida de pkgutil.

Entonces, crear un paquete con un nombre absurdo pero válido como Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg engañaría al verificador de paquetes para que encontrara las "cadenas de identidad" que estaba buscando.

El nombre completo del paquete se repite en el pkgutil encabezado de salida en la primera línea, donde el desafortunado "verificador" de Zoom coincidiría con las tres cadenas de texto en la parte incorrecta de la salida.

Por lo tanto, el control de "seguridad" podría pasarse por alto trivialmente.

Una solución parcial

Wardle dice que Zoom finalmente solucionó este error, más de siete meses después de que lo informó, a tiempo para DEF CON...

…pero después de aplicar el parche, notó que todavía había un gran vacío en el proceso de actualización.

El actualizador intentó hacer lo correcto:

  • 1. Mueva el paquete descargado al directorio propiedad de root, y, por lo tanto, teóricamente fuera del alcance de cualquier usuario habitual.
  • 2. Verifique la firma criptográfica del paquete descargado, usando API oficiales, no a través de un compromiso de coincidencia de texto contra pkgutil salida.
  • 3. Desarchive el archivo del paquete descargado, para verificar su número de versión, para evitar ataques de degradación.
  • 4. Instale el archivo del paquete descargado, usando los privilegios de raíz del proceso de actualización automática.

Desafortunadamente, a pesar de que el directorio utilizado para almacenar el paquete de actualización era propiedad de root, en un intento de mantenerlo a salvo de los usuarios entrometidos que intentaban subvertir el archivo de actualización mientras se usaba...

…el archivo del paquete recién descargado se dejó “con capacidad de escritura mundial” en su nueva ubicación (un efecto secundario de haber sido descargado por una cuenta normal, no por root).

Esto le dio a los atacantes locales una escapatoria para modificar el paquete de actualización. después de su firma digital había sido validada (paso 2), sin afectar los detalles de verificación de la versión (paso 3), pero justo antes el instalador tomó el control del archivo del paquete para procesarlo con privilegios de root (paso 4).

Este tipo de error se conoce como condición de carrera, porque los atacantes necesitan cronometrar su finalización para llegar a casa justo antes de que comience el instalador y, por lo tanto, deben colar sus cambios maliciosos justo antes de que comience.

También escuchará este tipo de vulnerabilidad a la que se hace referencia con el acrónimo que suena exótico TOCTÚ, corto para tiempo-de-chequeo-a-tiempo-de-uso, un nombre que es un claro recordatorio de que si verifica sus datos con demasiada anticipación, es posible que estén desactualizados cuando confíe en ellos.

El problema de TOCTOU es por qué las empresas de alquiler de coches en el Reino Unido ya no te piden simplemente ver tu permiso de conducir, que podría haber sido emitido hace hasta 10 años, y podría haber sido suspendido o cancelado por una variedad de razones desde entonces, muy probablemente porque de conducción insegura o ilegal de su parte. Junto con su licencia física, también debe presentar un código alfanumérico único de "prueba de validez reciente", emitido en los últimos 21 días, para reducir la brecha potencial de TOCTOU de 10 años a solo tres semanas.

La solución está ahora en

Según Wardle, Zoom ahora ha evitado este error al cambiar los derechos de acceso en el archivo del paquete de actualización que se copió en el paso 1 anterior.

El archivo que se utiliza para la comprobación de firmas, la validación de versiones y la instalación final de nivel raíz ahora está limitado al acceso de la cuenta raíz únicamente, en todo momento.

Esto elimina la condición de carrera, porque un atacante sin privilegios no puede modificar el archivo entre el final del paso 2 (verificación exitosa) y el inicio del paso 4 (comienza la instalación).

Para modificar el archivo del paquete con el fin de engañar al sistema para que le otorgue acceso de root, ya debería tener acceso de root, por lo que no necesitaría un error de EoP de este tipo en primer lugar.

El problema de TOCTOU no se aplica porque el cheque en el paso 2 sigue siendo válido hasta que comienza el uso del archivo, sin dejar ninguna ventana de oportunidad para que el cheque se vuelva inválido.

¿Qué hacer?

Si usa Zoom en una Mac, abra la aplicación y luego, en la barra de menú, vaya a zoom.us > Check for Updates...

Si hay una actualización disponible, se mostrará la nueva versión y podrá hacer clic en [Install] para aplicar los parches:

La versión que quieres es 5.11.5 (9788) o después.


punto_img

Información más reciente

punto_img

Habla con nosotros!

¡Hola! ¿Le puedo ayudar en algo?