El blog de seguridad de FireAI

Por FireAI Security & Research Team · Publicado

¿Tiene un archivo descargado su teléfono en casa? Probamos Spotlight y Quick Look en macOS 26

¿Tiene un archivo descargado su teléfono en casa? Probamos Spotlight y Quick Look en macOS 26

Una versión de esta historia circula en artículos de seguridad, algunos de ellos ahora generados por asistentes de IA: el demonio de indexación en segundo plano de macOS, mdworker, supuestamente recupera las imágenes remotas dentro de cualquier archivo HTML que descargues, por lo que un archivo que nunca abras aún puede informar tu dirección IP a quien lo envió. Es una buena historia. También es el tipo de afirmación que debe probarse antes de repetirse, por eso la probamos.

A un archivo nuevo le suceden tres cosas diferentes

La afirmación desdibuja tres mecanismos separados. Cuando un archivo llega al disco, el servidor de metadatos de Spotlight lo entrega a un complemento importador, que se ejecuta dentro de un proceso mdworker_shared, que extrae texto y atributos para que el archivo se pueda buscar (mdiimportar y mdls son las ventanas de línea de comandos sobre esto). Por otra parte, cuando Finder necesita un icono, Miniaturas de vista rápida muestra una pequeña miniatura. Y solo cuando selecciona el archivo y presiona la barra espaciadora, Vista rápida muestra una vista previa completa. Cada uno de ellos puede comportarse de manera diferente, por lo que cada uno necesita su propia prueba.

la prueba

Ejecutamos un pequeño detector HTTP en la dirección de loopback que registra cada solicitud con su User-Agent, luego creamos dos archivos en ~/Downloads apuntándolo: una página HTML con una imagen de un píxel y una hoja de estilo externa, y un SVG con una imagen externa incrustada. Loopback mantiene el experimento autónomo; un servidor de seguimiento remoto recibiría las mismas solicitudes, más su dirección IP pública.

q3-report.html (el cebo)
<html><head><title>Q3 Financial Report</title></head><body>
  <h1>Financial Summary</h1>
  <img src="http://127.0.0.1:8765/html-img.png" width="1" height="1">
  <link rel="stylesheet" href="http://127.0.0.1:8765/html-css.css">
</body></html>
insignia.svg
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100">
  <image xlink:href="http://127.0.0.1:8765/svg-image.png" width="100" height="100"/>
</svg>

1. Simplemente descargándolo: indexación de Spotlight

Esperamos 40 segundos después de crear los archivos y luego confirmamos que Spotlight los había indexado. El oyente no había recibido nada.

Terminal
mdls -name kMDItemContentType ~/Downloads/fireai-lab-test/q3-report.html
kMDItemContentType = "public.html"
# listener log: empty

2. Forzar el importador de Spotlight

Para descartar el tiempo, ejecutamos el importador a mano. Utilizó el importador RichText de Apple, extrajo 37 atributos y no realizó ninguna solicitud.

Terminal
mdimport -t -d1 ~/Downloads/fireai-lab-test/q3-report.html
Imported '…/q3-report.html' of type 'public.html' with plugIn /System/Library/Spotlight/RichText.mdimporter.
37 attributes returned
# listener log: still empty

3. El icono del Finder: miniatura de Vista rápida

Terminal
qlmanage -t -s 256 -o /tmp ~/Downloads/fireai-lab-test/q3-report.html ~/Downloads/fireai-lab-test/badge.svg
* …/q3-report.html produced one thumbnail
Done producing thumbnails
# listener log: still empty

4. Presionando la barra espaciadora: la vista previa de Vista rápida

qlmanage -p abre el mismo panel de vista previa que al seleccionar un archivo en Finder y presionar la barra espaciadora (qlgestionar). Esta vez el oyente se iluminó inmediatamente, para ambos archivos:

registro de oyente
qlmanage -p ~/Downloads/fireai-lab-test/q3-report.html
13:40:22.408 GET /html-img.png   UA=Mozilla/5.0 (Macintosh; …) AppleWebKit/605.1.15 … Safari/605.1.15
13:40:22.408 GET /html-css.css   UA=Mozilla/5.0 (Macintosh; …) AppleWebKit/605.1.15 … Safari/605.1.15
qlmanage -p ~/Downloads/fireai-lab-test/badge.svg
13:40:30.035 GET /svg-image.png  UA=Mozilla/5.0 (Macintosh; …) AppleWebKit/605.1.15 … Safari/605.1.15
Prueba HisnLabs, macOS 26.7, Apple Silicon, 25 de septiembre de 2026. Oyente loopback; una ejecución por caso.
Lo que hizo el usuarioMecanismo¿Solicitud remota?
Nada (archivo descargado)Importador de Spotlight en mdworker_sharedNo
Nada (importación forzada)mdimport, importador de texto enriquecidoNo
Miró la carpetaMiniatura de Vista rápida (icono del Finder)No
Seleccionó el archivo, presionó EspacioVista previa de vista rápida (WebKit)Sí: imagen, hoja de estilo, imagen SVG

¿Qué significa esto?

La versión de “clic cero” no es lo que medimos: un archivo que se encuentra en Descargas, es indexado por Spotlight y se muestra como un ícono que no aparece. Eso es importante, porque una defensa construida sobre un modelo equivocado desperdicia esfuerzos en el lugar equivocado. Bloquear a mdworker de la red, por ejemplo, no habría cambiado nada en esta prueba.

La versión de una tecla es real. La vista previa de Quick Look representa HTML y SVG con WebKit y carga sus recursos remotos, por lo que una sola pulsación de la barra espaciadora en un "informe" adjunto le indica al remitente que se miró el archivo, cuándo y desde qué dirección IP. Se trata de un baliza web, el mismo truco que utilizan los píxeles de seguimiento de correo electrónico y que el Protección de privacidad del correo de Apple existe para atenuarlo en Mail; simplemente no está cubierto cuando el mismo contenido llega como archivo. En términos de atacante, se trata de reconocimiento, no de compromiso: INGLETE ATT&CK T1598 cataloga este tipo de recopilación de información antes de un ataque real.

Límites de esta prueba

  • Una versión de macOS (26.7) y una ejecución por caso. El comportamiento puede diferir en otras versiones; Vuelva a ejecutarlo en el suyo, los archivos anteriores son todo lo que necesita.
  • Usamos una dirección de loopback. Una URL pública se comporta igual para WebKit, pero no la medimos aquí.
  • Probamos HTML y SVG. Otros tipos con referencias remotas (por ejemplo .webarchive, documentos de Office con imágenes vinculadas o extensiones Quick Look de terceros) no se probaron y pueden comportarse de manera diferente en cualquier dirección.
  • qlmanage -p es la interfaz de depuración de Apple para la vista previa; La vista previa de la barra espaciadora del Finder utiliza el mismo marco, pero no instrumentamos el propio Finder.

que hacer

  1. Considere Quick Look en un archivo HTML o SVG que no sea de confianza como si lo abriera. Si desea inspeccionar uno de forma segura, léalo como texto: cat file.html o ábralo en un editor de texto sin formato.
  2. Verifique el tipo de archivo antes de obtener una vista previa: mdls -name kMDItemContentType file le indica cómo lo representará Quick Look, independientemente de lo que sugiera su ícono.
  3. Observe qué proceso establece la conexión, no sólo si ocurre una. Aquí estaba la vista previa de WebKit actuando en nombre de Apple, razón por la cual las reglas que solo confían o desconfían de las "aplicaciones que usted instaló" no se cumplen.

La lección más amplia es sobre el método. La versión dramática de esta historia fue escrita con confianza y habría sido fácil de publicar. Veinte minutos con un oyente y cuatro comandos mostraron dónde estaba mal y dónde está el riesgo real y menor.

Dónde entran FireAI y HisnLabs

The fetch in this test came from a WebKit preview running on Apple’s behalf, not from an app you installed, which is exactly the kind of connection a per-app firewall exists to show you: FireAI lists the process, the destination and the country, and lets you deny it.

FireAI es el producto de HisnLabs: un firewall con IA que corre directamente en tu Mac. Te muestra, en lenguaje claro, cada conexión que hacen tus aplicaciones y te deja decidir qué sale de tu Mac; su IA funciona de manera local, así que tu tráfico nunca se envía a nosotros ni a nadie más. El equipo de investigación en seguridad de HisnLabs es el que mantiene esas decisiones confiables: cataloga qué dominios son simple telemetría y cuáles un servicio real, rastrea el país y la red detrás de cada conexión, y entrena el modelo local (la función Autopilot) con patrones de tráfico reales, sin que nada de eso salga de tu Mac.

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

Fuentes