forcedentry
SophosLabs Uncut

Productos de Apple vulnerables al ataque día cero FORCEDENTRY ¡Parchea ya!

Sabes lo que vamos a decir, así que lo diremos ya.

Parchea rápido, parchea a menudo.

El grupo canadiense de activistas de privacidad y ciberseguridad The Citizen Lab acaba de anunciar una vulnerabilidad día cero en los sistemas operativos iPhone, iPad y Macintosh de Apple.

Han llamado al ataque FORCEDENTRY, por razones bastante obvias, aunque su designación oficial es CVE-2021-30860.

Citizen Lab ha atribuido la vulnerabilidad, y el código que la explota, a la controvertida empresa de vigilancia de dispositivos NSO Group, ya conocida por su línea llamada Pegasus de productos similares a software espía.

Según Citizen Lab, este exploit se basa en archivos PDF con trampas explosivas y fue detectado en el mundo real cuando un activista saudí entregó su teléfono para su análisis después de sospechar que de alguna manera se había implantado software espía en el dispositivo.

El informe de Citizen Lab coincide con el propio boletín de seguridad HT21807 de Apple, que acredita a Citizen Lab por informar del agujero, y dice simplemente:

El procesamiento de un PDF creado con fines maliciosos puede provocar la ejecución de código arbitrario. Apple tiene conocimiento de un informe que indica que este problema puede haber sido explotado activamente. […] Se solucionó un desbordamiento de enteros con una validación de entrada mejorada.

El problema con los enteros

Los desbordamientos de enteros ocurren cuando un cálculo aritmético no se ajusta a la precisión numérica disponible, lo que a menudo conduce a algún tipo de desbordamiento del búfer de memoria más adelante.

Los ordenadores generalmente usan un número fijo de bits, generalmente 16, 32 o 64, para realizar operaciones aritméticas con números enteros (números enteros, como 1, 42 y 2021), por lo que algunas combinaciones de entradas producirán salidas que no encajarán en el espacio de los números disponibles.

Esta es la misma clase de problema que el famoso error Y2K, donde los programas que usaban dos dígitos para almacenar el año calcularían el año que siguió a 1999 como 99 + 1 = 100, usando esto como “atajo” en lugar de calcular 1999 + 1 = 2000 en su totalidad.

Por supuesto, con solo dos dígitos para almacenar la respuesta, el resultado “perdería” el primer dígito que denota “cien años”, y volvería a situarse en 00, lo que provocaría que la hora y la fecha al filo de la medianoche se dispararan hacia atrás en un siglo en lugar de avanzar solo un segundo.

En el código de gestión de la memoria, los formatos numéricos de este tipo pueden llevar fácilmente a que se escriban fragmentos de datos en bloques de memoria en los que simplemente no caben.

Por ejemplo, un programa que se basa en números de 16 bits para almacenar el ancho y el alto de una imagen le permitirá especificar imágenes de hasta 65535 píxeles de ancho por 65535 píxeles de alto (0xFFFF en hexadecimal, o el valor de 16 bits de 111…111 en binario).

A primera vista, suena como una imagen más grande de lo que jamás necesitaría.

Pero si el programador olvidó especificar un número de 32 bits para el número de píxeles necesarios (ancho × alto), y por costumbre asignó otro número entero de 16 bits para el resultado, entonces incluso una imagen de, digamos, 1000 × 1000 píxeles causaría serios problemas.

El producto de 1000 × 1000 debería resultar en 1.000.000 píxeles, o 0xF4240 en hexadecimal, pero ese número requiere 20 bits para almacenarse en su totalidad, o 5 dígitos hexadecimales, debido al desbordamiento de enteros. (Cuando multiplica dos números de N dígitos, el resultado puede tener hasta 2N dígitos de longitud).

Si esa respuesta se mete en un entero de 16 bits, el 0xF al comienzo del número se descarta, dejando solo cuatro dígitos hexadecimales (16 bits), por lo que el “tamaño de imagen” calculado se ajusta a 0x4240 en hexadecimal, como los coches antiguos que han superado los 99.999 kilómetros y han vuelto a arrancar desde cero.

Eso produce una respuesta incorrecta de 16.960 en lugar de 1.000.000.

Si el software asigna solo 16.960 bytes de espacio de almacenamiento, después de haber calculado mal que como el tamaño “correcto” de una imagen de 1000 × 1000 píxeles, se produciría un desbordamiento de búfer enorme y catastrófico tan pronto como la imagen se copiara en el búfer de tamaño insuficiente.

Dos errores solucionados

Curiosamente, Apple también solucionó otro error que estaba siendo explotando activamente al mismo tiempo, denominado CVE-2021-30858.

Este segundo agujero día cero se encontró en el software de renderizado web de Apple, WebKit, que forma el corazón del navegador Safari integrado en todos los sistemas operativos de Apple.

De hecho, todos los programas de la App Store (desde los juegos y utilidades más básicas hasta los navegadores web más potentes) que pueden representar y mostrar contenido HTML están obligados por Apple a utilizar WebKit.

Incluso los navegadores como Edge y Firefox, que generalmente usan el software de renderizado web Chromium y Gecko respectivamente, deben usar WebKit en su lugar, por lo que los errores de seguridad de WebKit pueden tener consecuencias generalizadas en iPhones y iPads.

El error CVE-2021-30858 es una vulnerabilidad use-after-free, en la que un programa devuelve la memoria del sistema operativo que ya no necesita, por lo que se puede usar en otro pero luego, inadvertidamente, sigue usándolo de todos modos, pisoteando cualquier dato nuevo que se haya almacenado allí para algún otro propósito.

Este tipo de error casi siempre conduce a fallos de la aplicación y, ocasionalmente, les da a los atacantes la oportunidad de crear exploits completos de ejecución remota de código (RCE), que parece ser lo que sucedió aquí.

No tenemos idea de si los dos errores de esta historia están relacionados: el informe de Citizen Labs solo menciona CVE-2021-30860, y el error de WebKit CVE-2021-30858 se atribuye simplemente a “un investigador anónimo”.

¿Qué hacer?

Con dos errores aparentemente independientes que están siendo explotados al mismo tiempo, y con pocas indicaciones hasta ahora de lo que se debe tener en cuenta en los archivos PDF o páginas web con trampas explosivas, no hay mucho que puedas hacer aparte de parchear rápido, parchear a menudo.

Los parches actuales [2021-09-14T00: 01Z] están documentados en los últimos boletines de seguridad de Apple de la siguiente manera:

  • HT212804: macOS Big Sur 11.6, solucionando ambos errores.
  • HT212805: 2021-005 Catalina, solo se corrigió el error de PDF.
  • HT212806: watchOS 7.6.2, solo se corrige el error de PDF.
  • HT212807: iOS 14.8 y iPadOS 14.8, solucionando ambos errores.
  • HT212808: Safari 14.1.2 para Catalina y Mojave, solo corrige el error de WebKit.

Esto significa que en macOS Catalina, actualmente hay dos parches que necesitarás, uno para el sistema operativo y el otro para WebKit/Safari.

Para buscar las actualizaciones (y recuperarlas automáticamente si aún no se han descargado automáticamente), haz lo siguiente:

  • En un iPad o iPhone. Ve a Configuración> General> Actualización de software. Si estás usando iOS 14, quieres 14.8.
  • En un portátil MacBook o un Mac de escritorio. Ve al menú Apple> Preferencias del sistema> Actualización de software. Si estás utilizando macOS Big Sur 11, quieres 11.6.

Por lo que podemos decir, el error de Citizen Lab afecta a “todos los iPhones con versiones de iOS anteriores a la 14.8”, que suponemos incluye iOS 12, que todavía es oficialmente compatible con Apple.

Pero no podemos encontrar ningún boletín de seguridad actual que mencione iOS 12, lo que significa que los teléfonos más antiguos pueden ser vulnerables, pero aún no están parcheados.

El Boletín HT212803, que precede inmediatamente a este lote de parches de día cero, cubre la reciente y quizás no sorprendente noticia de que conectar un iPhone directamente a una motocicleta de alta potencia, o a una bicicleta de montaña utilizada en recorridos todoterreno extremos, podría causar vibraciones prematuras. Daño a los componentes de ingeniería de precisión en la lente de su teléfono. El boletín HT212809, el siguiente en secuencia después de este lote, aún no existe [2021-09-14T00: 01Z].

Para los usuarios de iPhones más antiguos, todo lo que podemos sugerir en este momento es que sean más cautelosos de lo habitual acerca de quién aceptas archivos PDF y los sitios desde los que los descarga.

En particular, no te dejes influir solo porque el documento con el que estás siendo tentado aparentemente se relaciona con tu propio trabajo o hobby.

Los ciberdelincuentes pueden descubrir fácilmente tus intereses, tanto en tu vida profesional como en tu vida familiar, simplemente leyendo la descripción de tu trabajo o echando un vistazo a tus páginas en redes sociales.

¡En caso de duda, no lo abras!

Dejar un comentario

Your email address will not be published.