FireAIs säkerhetsblogg

Av FireAI Security & Research Team · Publicerad

Har en nedladdad fil telefon hem? Vi testade Spotlight och Quick Look på macOS 26

Har en nedladdad fil telefon hem? Vi testade Spotlight och Quick Look på macOS 26

En version av den här berättelsen cirkulerar i säkerhetsskrivningar, några av dem nu genererade av AI-assistenter: macOS:s bakgrundsindexeringsdemon, mdworker, hämtar förmodligen fjärrbilderna i vilken HTML-fil du laddar ner, så en fil du aldrig öppnar kan fortfarande rapportera din IP-adress till den som skickade den. Det är en bra historia. Det är också den typen av påstående som bör testas innan det upprepas, så vi testade det.

Tre olika saker händer med en ny fil

Påståendet suddar ut tre separata mekanismer. När en fil landar på disken lämnar Spotlights metadataserver den till en importerplugin, körs i en mdworker_shared-process, som extraherar text och attribut så att filen blir sökbar (mdimport och mdls är kommandoradsfönstren till detta). Separat, när Finder behöver en ikon, återger Quick Look-miniatyrbilder en liten miniatyrbild. Och bara när du väljer filen och trycker på blanksteg gör Snabb titt en fullständig förhandsgranskning. Var och en av dessa kan bete sig olika, så var och en behöver sitt eget test.

Testet

Vi körde en liten HTTP-lyssnare på loopback-adressen som loggar varje begäran med dess User-Agent, och skapade sedan två filer i ~/Downloads som pekade på den: en HTML-sida med en enpixelbild och en extern stilmall, och en SVG med en inbäddad extern bild. Loopback håller experimentet fristående; en fjärrspårningsserver skulle få samma förfrågningar, plus din offentliga IP-adress.

q3-report.html (betet)
<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. Bara att ladda ner det: Spotlight-indexering

Vi väntade 40 sekunder efter att ha skapat filerna och bekräftade sedan att Spotlight hade indexerat dem. Lyssnaren hade inte fått något.

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

2. Tvinga Spotlight-importören

För att utesluta tajming körde vi importören för hand. Den använde Apples RichText-importör, extraherade 37 attribut och gjorde ingen begäran.

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. Finder-ikonen: Quick Look-miniatyr

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. Tryck på blanksteg: förhandsgranskningen av Quick Look

qlmanage -p öppnar samma förhandsgranskningspanel som när du väljer en fil i Finder och trycker på blanksteg (qlmanage). Den här gången tändes lyssnaren omedelbart, för båda filerna:

lyssnarlogg
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
HisnLabs test, macOS 26.7, Apple silicon, 25 september 2026. Loopback-lyssnare; en körning per fall.
Vad användaren gjordeMekanismFjärrbegäran?
Ingenting (fil nedladdad)Spotlight-importör i mdworker_sharedInga
Ingenting (tvångsimport)mdimport, RichText-importörInga
Tittade på mappenQuick Look-miniatyr (Finder-ikon)Inga
Markerade filen, tryckte på blankstegQuick Look-förhandsvisning (WebKit)Ja: bild, stilmall, SVG-bild

Vad detta betyder

"Noll-klick"-versionen är inte vad vi mätte: en fil som finns i Nedladdningar, indexeras av Spotlight och visas som en ikon som inte ropade ut. Det spelar roll, för ett försvar byggt på en fel modell slösar kraft på fel plats. Blockering av mdworker från nätverket, till exempel, skulle inte ha förändrat någonting i detta test.

Ennyckelversionen är verklig. Quick Looks förhandsvisning renderar HTML och SVG med WebKit och laddar deras fjärrresurser, så ett enda tryck på blanksteg på en bifogad "rapport" talar om för avsändaren att filen tittades på, när och från vilken IP-adress. Det är ett webbfyr, samma knep som e-postspårningspixlar använder och som Apples Mail Sekretessskydd existerar för att trubba i Mail; det är helt enkelt inte täckt när samma innehåll kommer som en fil. I angripartermer är det spaning, inte kompromiss: GERING ATT&CK T1598 katalogiserar den här typen av informationsinsamling innan en riktig attack.

Begränsningar för detta test

  • En macOS-version (26.7) och en körning per fodral. Beteendet kan skilja sig åt på andra versioner; kör den igen på din, filerna ovan är allt du behöver.
  • Vi använde en loopback-adress. En offentlig URL beter sig på samma sätt för WebKit, men vi mätte den inte här.
  • Vi testade HTML och SVG. Andra typer med fjärrreferenser (till exempel .webarchive, Office-dokument med länkade bilder eller tredjeparts Quick Look-tillägg) testades inte och kan bete sig annorlunda i båda riktningarna.
  • qlmanage -p är Apples felsökningsgränssnitt för förhandsvisningen; Finders förhandsvisning av mellanslagstangenten använder samma ramverk, men vi har inte instrumenterat Finder själv.

Vad ska man göra

  1. Behandla Quick Look på en opålitlig HTML- eller SVG-fil som att öppna den. Om du vill inspektera en på ett säkert sätt, läs den som text: cat file.html, eller öppna den i en vanlig textredigerare.
  2. Kontrollera en filtyp innan du förhandsgranskar: mdls -name kMDItemContentType file berättar hur Quick Look kommer att rendera den som, vad dess ikon än antyder.
  3. Se vilken process som gör kopplingen, inte bara om en inträffar. Här var det WebKit-förhandsvisningen som agerade på Apples vägnar, varför regler som bara litar på eller misstror "appar du installerat" missar det.

Den bredare lektionen handlar om metod. Den dramatiska versionen av denna berättelse var självsäker skriven och skulle ha varit lätt att publicera. Tjugo minuter med en lyssnare och fyra kommandon visade var det var fel och var den verkliga, mindre risken finns.

Var FireAI och HisnLabs kommer in

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 är HisnLabs eget verktyg: en AI-brandvägg som körs direkt på din Mac. Den visar varje anslutning dina appar gör, på klarspråk, och låter dig avgöra vad som lämnar din Mac — AI:n körs lokalt, så din trafik skickas aldrig till oss eller någon annan. HisnLabs säkerhetsforskningsteam är de som håller de bedömningarna tillförlitliga: de katalogiserar vilka domäner som är vanlig telemetri och vilka som är en riktig tjänst, spårar land och nätverk bakom en anslutning och tränar den lokala modellen (Autopilot-funktionen) på verkliga trafikmönster — utan att något av det lämnar din Mac.

Du kan läsa om de tekniska besluten bakom, eller prova FireAI i 17 dagar, på FireAI, från HisnLabs.

Källor