Sobre macOS 10.13 High Sierra, el bug de root y el código del sistema

El problema de seguridad de root en macOS 10.13 High Sierra ha puesto en el punto de mira a macOS y se han levantado muchas voces agrias al respecto, la mayoría de ellas argumentando que Apple ha abandonado el Mac y no presta atención al sistema. Hay, sin embargo, otra perspectiva para este asunto.

881 5
881 5

El problema de la vulnerabilidad root, es sin duda, un fracaso para los servicios de calidad de Apple. El problema, de hecho, fue descubierto un par de semanas antes de que se hiciera público, pero Apple respondió bastante diligentemente con una actualización 24 horas después de que se hiciera público y corrieran ríos de tinta  al respecto.

La perspectiva inicial de este asunto es que Apple no está prestando suficiente atención a macOS y no se están ejecutando los test de calidad de forma eficiente1 pero hay ciertas pistas que demuestran que esta aproximación no es del todo correcta. De hecho, hay indicaciones de que Apple trabajando en el código de macOS, y mucho, renovando bajo el capó mucho código obsoleto heredado de versiones anteriores.

Veamos un par de ejemplos al respecto. El primero es Open Directory, que ha saltado desde la versión 417.50.4 bajo macOS 10.12.6 Sierra2 a la actual versión en macOS 10.13.1 High Sierra, 483.20.7. Este dramático cambio de número de versiones implica una reescritura importante del código de Open Directory, un incremento notable en apenas 4 meses.

Otras pistas vienen de lo que está sucediendo con el uso de Swift por parte de Apple. Alexandre Colucci, en su blog Timac, sigue el rastro del uso de Swift en iOS y macOS, y ha encontrado que su uso ha crecido de tan sólo 10 binarios en macOS 10.12.13 a 23 en macOS 10.13.14. Muchos de estos son componentes que no parecen haber sufrido grandes cambios externos, pero sí internos y la mayoría de ellos corresponden a Core Services  y Frameworks privados5. Estos cambios desde el actual código a Swift pueden verse multiplicados cuando Apple anuncie Swift 5 con ABI en la próxima WWDC. Una de las principales prioridades de Swift en este momento es la compatibilidad con futuras versiones Swift. Un componente importante de esto es ABI Stability, que permite la compatibilidad binaria entre aplicaciones y bibliotecas compiladas con diferentes versiones de Swift.

Estos cambios muestran cierta evidencia al respecto de que Apple está modificando el código del sistema, que se está reescribiendo gran parte del código base de macOS y tiene que haber una buena razón para ello, aunque esta permanezca oculta ahora mismo. Dos posibles opciones son el mantenimiento de ese código en el futuro y cambios en el hardware de los Mac.

Independientemente de esta perspectiva, es evidente que los servicios de Q&A no funcionaron bien, pero estos problemas en el código solo ocurren cuando hay cambios en el mismo de forma profunda y esto es algo que no se realiza con frecuencia, tiene que haber razones6 para ello.

Notas

  1. Y esto aparentemente es cierto
  2. Publicada el 19 de julio de 2017
  3. Publicado el 24 de octubre de 2016
  4. Publicado el 31 de octubre de 2017
  5. Frameworks que solo puede usar Apple y no desarrolladores externos
  6. y muy poderosas
In this article


Join the Conversation

5 comments

  1. marcosmj23

    Hola Carlos. No soy de comentar, pero me ha llamado mucho la atención el artículo. La reescritura del código a swift, ¿será un paso para los procesadores AXX en un Mac? ¿Estará Apple ya preparando la transición como en su momento con PPC e Intel? Al margen de que según he leído ya es seguro que habrá pronto procesadores AXX en los mac para gestionar algunas funciones del sistema, como el arranque. Gracias y felicidades por la Web.

    1. Carlos Burges Ruiz de Gopegui

      Bueno, de momento todo son elucubraciones. Y como todas las elucubraciones, hay que tomarlas con perspectiva.

      Lo que sí es cierto es que a macOS le toca una renovación de código sí o sí, porque lleva arrastrando mucho código antiguo que hay que ir renovando para poder mejorar el sistema.

      1. krollian

        Es lo que les sucede a los dinosaurios de Microsoft y a la segunda compañía de soft del mundo (o al menos lo era): Adobe. Que vive mas de las licencias de capacitación que de las suscripciones a su soft.

        Y resulta que llega la gente de Affinity, 12 programadores, algunos provenientes de escribir código para aquel programa de retoque fotográfico llamado xRes (modo Abuelo Mac-Cebolleta On).
        Y bien ¿qué sucede?
        Pues que se tiran 2 años escribiendo código, los mismos empleados en pensar el nombre de su primera maravilla en forma de Beta. Su nombre: Affinity Designer.
        Que sí que no es Illustrator. Se parece mas a FreeHand, pero tampoco es FreeHand. Han sido valientes y han aplicado el sentido común y las demandas reales de los usuarios. Han escrito su propio camino. Usan las últimas tecnologías. Y corre, abre y guarda y ejecuta rutinas que se las pela. Rápido, potente y simple.

        Y ahora Adobe dice que va a reescribir código en Illustrator.
        ¿Cuánto código del precámbrico tiene Photoshop o Illustrator? Tal vez los programadores que mantengan código antiguo clave estén muy bien pagados como los que escriben Fortran o COBOL para la Banca o el ejército. En fin.

        Las aplicaciones de Affinity funcionan desde Mac OS Lion y van muy bien. Adobe CC requiere El Capitán y buen chip y mas RAM.
        En Affinity actualizan las aplicaciones cada muy poco tiempo. Es lo que tiene usar código moderno. Lo permite y hace mas cómodo. Da flexibilidad y permite planear a medio/largo plazo.

        Imaginad APFS o el código apolillado en las aplicaciones de Adobe.

  2. Alquimista

    Elucubraciones aparte sobre este tema tengo una duda: ¿es el procesador Axx capaz de ejecutar un sistema operativo como macOS X? ¿Tiene todo lo que hay que tener? Porque si no es así toda especulación es ociosa.
    Claro que, si apple ha sido capaz de crear este procesador, ¿quién nos dice que no tenga en el armario una versión más compleja que sí fuera capaz de ejecutarlo…?

    1. marcosmj23

      Pues es una buena reflexión. Según los benchmarks el procesador del iPhone X es más potente que algunos Mac no tan antiguos. Además, sin la limitación de espacio y con mayor poder de disipación de calor o la posibilidad de poner más procesadores, tal vez no sea tan descabellado. Controlar sistema operativo y hardware le ha dado a apple un rendimiento espectacular en los dispositivos móviles. Poder controlar lo mismo en portátiles y sobremesa les puede dar una grandísima ventaja. Un saludo