El blog de seguridad de FireAI

Por FireAI Security & Research Team · Publicado

Zero-days en macOS: por qué las amenazas desconocidas siguen teniendo que llamar a casa

Zero-days en macOS: por qué las amenazas desconocidas siguen teniendo que llamar a casa

Un zero-day es un fallo de seguridad que está siendo explotado antes de que el fabricante tenga una corrección, llamado así porque los defensores han tenido cero días para responder. Es la categoría de amenaza más alarmante porque el consejo habitual, «mantén tu software actualizado», todavía no se aplica: no hay nada a lo que actualizar. Este artículo repasa cómo han sido realmente estos fallos en las plataformas de Apple, apoyándose en las propias publicaciones de seguridad de Apple, en Google Project Zero y en el Citizen Lab, y después en la única cosa que un exploit desconocido sigue teniendo que hacer una vez que ha tenido éxito.

Hay un punto que conviene dejar claro desde el principio, porque el marketing alrededor de este tema suele ser engañoso: ningún cortafuegos detiene un exploit. Ni FireAI, ni ningún otro. Un cortafuegos no puede ver una imagen malformada procesándose dentro de iMessage ni un fallo del kernel disparándose desde una página web. Lo que un cortafuegos sí puede hacer es observar lo que ocurre después, y resulta que eso importa más de lo que parece a primera vista.

Qué muestra realmente el historial

Apple documenta cada corrección de seguridad en su página de actualizaciones de seguridad de Apple, y cuando un fallo ya estaba siendo usado contra personas reales lo dice con una frase estándar: «Apple tiene constancia de un informe según el cual este problema puede haber sido explotado activamente». Leer esa página a lo largo de unos años da una imagen más fundamentada que cualquier titular. Google Project Zero mantiene un registro público complementario, su rastreador de 0-day «In the Wild», que enumera exploits detectados en ataques reales antes de que existiera un parche. Project Zero aclara con cuidado que el rastreador solo contiene casos que fueron detectados, que por definición son los fracasos del atacante, así que no puede usarse para contar cuánta explotación ocurre realmente ni para comparar plataformas.

Tres casos documentados muestran la forma del problema.

FORCEDENTRY, 2021

En marzo de 2021, el Citizen Lab de la Universidad de Toronto analizó el teléfono de un activista saudí y recuperó un exploit al que llamó FORCEDENTRY. Era un ataque de cero clics: un archivo especialmente diseñado, entregado a través de iMessage, que no requería ninguna pulsación de la víctima e instalaba el spyware Pegasus de NSO Group. El Citizen Lab encontró indicios de que se había usado al menos desde febrero de 2021. Apple corrigió el fallo, CVE-2021-30860 en el analizador de imágenes de CoreGraphics, el 13 de septiembre de 2021 en iOS 14.8, macOS Big Sur 11.6 y una actualización de seguridad para Catalina; sus propias notas de la versión Big Sur 11.6 confirman que el fallo «puede haber sido explotado activamente».

Google Project Zero publicó más tarde un análisis técnico que explica por qué este tipo de cosas es tan difícil de atrapar. El fallo estaba en el código de compresión de imágenes JBIG2 usado dentro de los PDF. El exploit de NSO usó los propios operadores lógicos del formato para construir, a partir de más de 70.000 comandos de segmentos de imagen, un pequeño ordenador funcional dentro del decodificador de imágenes, y ejecutó el resto del ataque sobre él. Nada de eso parece un programa desde fuera. Es una imagen, abierta por un proceso del sistema legítimo y firmado.

El watering hole de Hong Kong, 2021

A finales de agosto de 2021, el Threat Analysis Group de Google encontró una campaña de watering hole dirigida a los visitantes de las webs de un medio de comunicación y de un grupo prodemocracia de Hong Kong. Contra los Mac encadenaba un fallo de WebKit ya parcheado en enero con un fallo de escalada de privilegios en el kernel, CVE-2021-30869, que seguía sin parche en macOS Catalina; Apple lo corrigió el 23 de septiembre de 2021. La carga útil, una puerta trasera que Google llamó MACMA, podía identificar la máquina, capturar la pantalla, grabar audio, registrar pulsaciones de teclas, subir y descargar archivos y ejecutar comandos de terminal.

Este ejemplo es instructivo porque el exploit y la carga útil son cosas distintas. El exploit era invisible: una página web. La carga útil era un programa implantado corriente que, para servir de algo a sus operadores, tenía que establecer un canal de mando y control y sacar datos del Mac. El informe de Google describe exactamente esa infraestructura.

BLASTPASS, 2023

En septiembre de 2023, el Citizen Lab informó de BLASTPASS, otra cadena de cero clics por iMessage que entregaba Pegasus, esta vez mediante adjuntos de PassKit con imágenes maliciosas. Apple asignó CVE-2023-41064 y CVE-2023-41061 y publicó correcciones para iPhone, iPad, Mac y Apple Watch. Cabe destacar que tanto los ingenieros de seguridad de Apple como el Citizen Lab dijeron creer que el modo Aislamiento había bloqueado esta cadena en concreto, que es la prueba pública más sólida de que reducir la superficie de ataque, y no detectar el ataque, es lo que funciona contra esta clase de amenaza.

Por qué detectar el propio exploit es tan difícil

Pon los tres casos uno al lado del otro y el patrón está claro. El exploit llega como datos (una imagen, un PDF, una página web) y no como una aplicación. Lo procesa código legítimo firmado por Apple. No hay archivo que XProtect pueda comparar, no hay binario sin firmar que Gatekeeper pueda rechazar y a menudo no hay proceso nuevo que una herramienta de seguridad de endpoint pueda marcar, porque el código hostil se ejecuta dentro de un proceso en el que ya se confiaba. La detección, cuando ocurre, suele ser forense: el Citizen Lab encontró FORCEDENTRY examinando artefactos en un dispositivo a posteriori, no porque un escáner lo atrapara en vivo.

Por eso el consejo de Apple para quienes creen que pueden ser objetivo no es «instala un detector», sino el modo Aislamiento, que en macOS Ventura y posteriores bloquea la mayoría de los tipos de adjuntos en mensajes, desactiva tecnologías web complejas, rechaza llamadas de FaceTime de desconocidos e impide instalar perfiles de configuración. Funciona eliminando las rutas de código que un exploit necesita, a un coste en comodidad que Apple reconoce explícitamente.

Por qué el paso de red es distinto

Un exploit es el principio de un ataque, no su propósito. Pegasus existe para enviar mensajes, fotos y audio del micrófono a su operador. Las capturas de pantalla y las pulsaciones de MACMA no valían nada en el disco de la víctima. En todos los casos documentados el valor se obtuvo mediante tráfico que salía de la máquina, y en la matriz MITRE ATT&CK para macOS esa fase tiene dos columnas propias, mando y control y exfiltración, porque es un paso distinto y observable que los atacantes no pueden saltarse.

Este paso tiene propiedades que el exploit no tenía. Procede de un proceso identificable con una firma de código (o, de forma reveladora, sin ella). Va a un destino con una IP, un nombre de host y un historial. A menudo usa un puerto inusual, una IP en bruto en lugar de un nombre, o un proveedor de alojamiento sin relación con ninguna aplicación del Mac. Nada de eso requiere conocer el fallo que se usó. Solo requiere ver la conexión y poder decir que no.

Esta es la parte para la que está hecho FireAI. Sus reglas por aplicación están ligadas a la firma de código del proceso que hace la conexión, de modo que un binario implantado que no es una aplicación aprobada por ti recibe un aviso de permiso en lugar de vía libre, con el motivo del modelo local mostrado en lenguaje claro. Sus fuentes de inteligencia de amenazas (abuse.ch, Spamhaus, FireHOL, OpenPhish, Phishing Army y la lista actual de nodos de salida de Tor) se aplican localmente, así que una dirección de mando y control conocida se rechaza tanto si algo más en el Mac reconoció la carga útil como si no. Los modos Bajo ataque y Paranoico endurecen el valor por defecto hasta bloquear directamente las aplicaciones sin firmar y los destinos desconocidos, y el interruptor de emergencia corta Internet manteniendo la red local, que es el primer movimiento correcto cuando sospechas un compromiso y quieres conservar las pruebas.

Lo que esto no cubre

La honestidad exige la otra mitad de la lista. Si una carga útil se ejecuta por completo dentro de una aplicación permitida, por ejemplo dentro de un navegador que ya has autorizado, su tráfico hereda los permisos de esa aplicación y FireAI no lo distinguirá. El tráfico cifrado hacia un destino con reputación limpia se parece a cualquier otra conexión. Una fuente solo contiene direcciones que alguien ya ha notificado; un servidor de mando y control recién creado todavía no está en ella. Y FireAI no detecta, elimina ni analiza el exploit ni el implante: no escanea archivos ni memoria, y no es un antivirus. En un Mac que crees comprometido por un actor de nivel estatal, el camino correcto es la guía de Apple sobre notificaciones de amenazas y un especialista forense, no un ajuste del cortafuegos.

La defensa práctica contra fallos desconocidos es, por tanto, por capas y nada glamurosa: aplica las actualizaciones de Apple el día que salen, porque la mayor parte de la explotación apunta a fallos que ya tienen corrección; activa el modo Aislamiento si tu trabajo te convierte en un objetivo plausible; mantén pequeña la superficie de ataque; y controla qué aplicaciones de tu Mac pueden hablar siquiera con Internet, para que cuando algo desconocido consiga entrar, el paso que no puede saltarse sea el paso que estás vigilando.

El papel de FireAI y de HisnLabs

FireAI cannot stop an exploit and does not claim to; what it does is sit on the one step every documented case above could not skip, the connection out, and ask, for each unknown process, whether that connection should be allowed at all.

FireAI es el propio producto de HisnLabs: un cortafuegos con IA integrada para Mac. Muestra, en lenguaje claro, cada conexión que hacen tus aplicaciones y te deja decidir qué sale de tu Mac; su IA funciona en el propio equipo, así que tu tráfico nunca se envía a HisnLabs ni a nadie más. El equipo de investigación en seguridad de HisnLabs es quien mantiene esas decisiones fiables: cataloga qué dominios son simple telemetría frente a un servicio real, sigue el país y la red detrás de una conexión, y entrena el modelo local (la función Autopilot) con tráfico real, sin que nada salga de tu Mac.

Puedes leer las decisiones técnicas detrás de esto, o probar FireAI durante 17 días, en FireAI, de HisnLabs.

Fuentes