Productos y Servicios PRODUCTOS Y SERVICIOS

Un fallo en la firma de código de Apple pudo hacer parecer legítimo malware para Mac

Durante años fue posible crear código malicioso diseñado para OSX y macos que engañara los sistemas de seguridad al simular que había sido diseñado por Apple. Eso es lo que ´ha informado un investigador de la empresa de software Okta.

Obviamente esto no son buenas noticias ya que todo lo que tenga que ver con falsificar la firma de códigos es muy importante en términos de seguridad:

La firma de códigos es un elemento de seguridad que usa la infraestructura de clave pública para firmar digitalmente código compilado o incluso lenguajes de script para asegurar un origen fiable y que el código instalado no ha sido modificado.

… En macos/iOS, la firma de códigos se centra en Mach-O y paquetes de aplicaciones para asegurar que solo se ejecuta código de confianza.

El problema surge por la forma en la que muchos desarrolladores bien conocidos implementaron la API de Apple para la firma de código para que interactuara con los binarios Fat/Universal de Apple desde como mínimo 2007 hasta este año cuando se les informó de este tema.

La explicación ofrecida por el investigador Josh Pitts es difícil de seguir si no estás familiarizado con las técnicas de desarrollo de Apple, pero el punto central es que si se cumplen una serie de condiciones, era posible jugar con la verificación de la firma de código.

Estas condiciones son:

  • El primer Mach-O en el fichero Fat/Universal debe estar firmado por Apple, puede ser i386, x86_64, o incluso PPC [PowerPC].
  • El código malicioso por lo tanto debe estar firmado y compilado en i386 para atacar a un x86_64-bit macos.

Básicamente, con tal de que un fichero en un Mach-O y un paquete de aplicación estuviera legítimamente firmado, se podía insertar un fichero malicioso con él.

Es como si avaláramos todos los contenidos de un archivo zip lleno con ficheros y carpetas solo porque uno de los ficheros está limpio.

Afortunadamente nadie conocía esta debilidad o por lo menos no hay evidencias de que lo supieran. Pero, como siempre, el análisis a comenzado y los desarrolladores culpan a la documentación de Apple.

Un desarrollador comentó a Motherboard:

La API de firma de código es un poco confusa, porque si dices “por favor valida este fichero” puede decir ”si, todo parece estar correcto” incluso si los programas en el fichero Fat están firmados por dos desarrolladores distintos.

También se puede argumentar que ambas partes pudieron tener más cuidado.

El investigador ha creado una impresionante lista de CVEs para una amplia variedad de productos de seguridad, que según Okta puede que no esté completa.

Esta incluye VirusTotal (CVE-2018-10408), Google Santa (CVE-2018-10405), Facebook OSQuery (CVE-2018-6336), Objective Development LittleSnitch (CVE-2018-10470), F-Secure  xFence/LittleFlocker (CVE-2018-10403), Objective-See WhatsYourSign, ProcInfo/KnockKnock/ LuLu/TaskExplorer/otros (CVE-2018-10404), Yelp OSXCollector (CVE-2018-10406), Carbon Black Cb Response (CVE-2018-10407).

Es importante recordar que la firma de código es solo una forma de avalar un fichero y que las herramientas eficientes de seguridad utilizan defensas en profundidad. Y por mucho que esto mine la confianza en el proceso de desarrollo seguro, es mejor saberlo que no, por muy embarazoso que pueda ser a corto plazo.

¿Qué hacer?

Si estás usando algún software afectado comprueba con el fabricante las últimas actualizaciones.

Si escribes código, no aceleres los procesos y asegúrate que cuando valida ficheros Fat, cada componente pasa los controles.

 

 

Para manteneros al día de las últimas amenazas haceros fans de nuestra página de Facebook o síguenos en Twitter para intercambiar experiencias en torno al mundo de la seguridad. Si deseas recibir nuestro boletín de seguridad en tu correo electrónico, suscríbete en la siguiente aplicación: