Le blog sécurité de FireAI

Par FireAI Security & Research Team · Publié

Un fichier téléchargé téléphone-t-il à la maison ? Nous avons testé Spotlight et Quick Look sur macOS 26

Un fichier téléchargé téléphone-t-il à la maison ? Nous avons testé Spotlight et Quick Look sur macOS 26

Une version de cette histoire circule dans des articles de sécurité, dont certains sont désormais générés par des assistants IA : le démon d'indexation en arrière-plan de macOS, mdworker, est censé récupérer les images distantes dans n'importe quel fichier HTML que vous téléchargez, de sorte qu'un fichier que vous n'ouvrez jamais peut toujours signaler votre adresse IP à celui qui l'a envoyé. C'est une bonne histoire. C’est aussi le genre d’affirmation qui devrait être testée avant d’être répétée, c’est pourquoi nous l’avons testée.

Trois choses différentes arrivent à un nouveau fichier

Cette affirmation brouille trois mécanismes distincts. Lorsqu'un fichier arrive sur le disque, le serveur de métadonnées de Spotlight le transmet à un plug-in d'importation, exécuté dans un processus mdworker_shared, qui extrait le texte et les attributs afin que le fichier devienne consultable (mdimport et mdl sont les fenêtres de ligne de commande sur celui-ci). Séparément, lorsque le Finder a besoin d'une icône, Aperçu rapide des vignettes affiche une petite vignette. Et ce n'est que lorsque vous sélectionnez le fichier et appuyez sur Espace que Aperçu rapide affiche un aperçu complet. Chacun d’eux peut se comporter différemment, chacun nécessite donc son propre test.

L'épreuve

Nous avons exécuté un petit écouteur HTTP sur l'adresse de bouclage qui enregistre chaque requête avec son agent utilisateur, puis avons créé deux fichiers dans ~/Downloads pointant vers lui : une page HTML avec une image d'un pixel et une feuille de style externe, et un SVG avec une image externe intégrée. Le bouclage maintient l'expérience autonome ; un serveur de suivi à distance recevrait les mêmes demandes, plus votre adresse IP publique.

q3-report.html (l'appât)
<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>
badge.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. Il suffit de le télécharger : indexation Spotlight

Nous avons attendu 40 secondes après la création des fichiers, puis avons confirmé que Spotlight les avait indexés. L'auditeur n'avait rien reçu.

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

2. Forcer l'importateur Spotlight

Pour exclure tout problème de timing, nous avons géré l'importateur manuellement. Il a utilisé l’importateur RichText d’Apple, a extrait 37 attributs et n’a fait aucune demande.

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. L'icône du Finder : vignette Quick Look

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. Appuyer sur Espace : l'aperçu rapide

qlmanage -p ouvre le même panneau d'aperçu que lorsque vous sélectionnez un fichier dans le Finder et que vous appuyez sur Espace (qlmanager). Cette fois, l'écouteur s'est allumé immédiatement, pour les deux fichiers :

journal de l'auditeur
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
Test HisnLabs, macOS 26.7, Apple Silicon, 25 septembre 2026. Écouteur de bouclage ; une analyse par cas.
Ce que l'utilisateur a faitMécanismeDemande à distance ?
Rien (fichier téléchargé)Importateur Spotlight dans mdworker_sharedNon
Rien (importation forcée)mdimport, importateur RichTextNon
J'ai regardé le dossierMiniature Aperçu rapide (icône du Finder)Non
Sélectionnez le fichier, appuyez sur EspaceAperçu rapide (WebKit)Oui : image, feuille de style, image SVG

Qu'est-ce que cela signifie

La version « zéro clic » n'est pas celle que nous avons mesurée : un fichier qui se trouve dans les téléchargements, est indexé par Spotlight et affiché sous forme d'icône n'a pas d'appel. C’est important, car une défense construite sur un mauvais modèle gaspille des efforts au mauvais endroit. Bloquer mdworker du réseau par exemple n'aurait rien changé à ce test.

La version à une clé est réelle. L'aperçu de Quick Look restitue le HTML et le SVG avec WebKit et charge leurs ressources distantes. Ainsi, une simple pression sur Espace sur un « rapport » joint indique à l'expéditeur que le fichier a été consulté, quand et à partir de quelle adresse IP. Il s'agit d'un balise Web, la même astuce utilisée par les pixels de suivi des e-mails et que le Protection de la confidentialité du courrier d'Apple existe pour émousser dans Mail ; cela n'est tout simplement pas couvert lorsque le même contenu arrive sous forme de fichier. En termes d'attaquant, il s'agit de reconnaissance et non de compromis : ATTAQUE À ONGLET&CK T1598 répertorie ce type de collecte d'informations avant une véritable attaque.

Limites de ce test

  • Une version macOS (26.7) et une exécution par cas. Le comportement peut différer sur d'autres versions ; réexécutez-le sur le vôtre, les fichiers ci-dessus sont tout ce dont vous avez besoin.
  • Nous avons utilisé une adresse de bouclage. Une URL publique se comporte de la même manière pour WebKit, mais nous ne l'avons pas mesuré ici.
  • Nous avons testé HTML et SVG. D'autres types avec des références distantes (par exemple .webarchive, des documents Office avec des images liées ou des extensions Quick Look tierces) n'ont pas été testés et peuvent se comporter différemment dans les deux sens.
  • qlmanage -p est l'interface de débogage d'Apple pour l'aperçu ; L'aperçu de la barre d'espace du Finder utilise le même cadre, mais nous n'avons pas instrumenté le Finder lui-même.

Ce qu'il faut faire

  1. Traitez Quick Look sur un fichier HTML ou SVG non fiable comme si vous l'ouvriez. Si vous souhaitez en inspecter un en toute sécurité, lisez-le sous forme de texte : cat file.html, ou ouvrez-le dans un éditeur de texte brut.
  2. Vérifiez le type d'un fichier avant de le prévisualiser : mdls -name kMDItemContentType file vous indique comment Quick Look le rendra, quoi que suggère son icône.
  3. Observez quel processus établit la connexion, et pas seulement si cela se produit. Ici, il s’agissait de l’aperçu de WebKit agissant au nom d’Apple, c’est pourquoi les règles qui font confiance ou se méfient uniquement des « applications que vous avez installées » ne le font pas.

La leçon plus large concerne la méthode. La version dramatique de cette histoire a été écrite avec confiance et aurait été facile à publier. Vingt minutes avec un auditeur et quatre commandes ont montré où cela n'allait pas et où se situe le risque réel, moindre.

Le rôle de FireAI et de 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 est le produit de HisnLabs : un pare-feu IA embarqué pour Mac. Il montre en langage clair chaque connexion faite par vos applications et vous laisse décider ce qui sort de votre Mac — son IA fonctionne en local, votre trafic ne nous est jamais envoyé, ni à personne d’autre. L’équipe de recherche en sécurité de HisnLabs est celle qui garde ces décisions fiables : elle recense les domaines de simple télémétrie face à ceux d’un vrai service, suit le pays et le réseau derrière une connexion, et entraîne le modèle embarqué (la fonction Autopilot) sur du trafic réel, sans que rien ne quitte votre Mac.

Vous pouvez lire les choix techniques qui s’y trouvent, ou essayer FireAI pendant 17 jours, sur FireAI, par HisnLabs.

Sources