FireAIs sikkerhetsblogg

Av FireAI Security & Research Team · Publisert

Har en nedlastet fil telefon hjemme? Vi testet Spotlight og Quick Look på macOS 26

Har en nedlastet fil telefon hjemme? Vi testet Spotlight og Quick Look på macOS 26

En versjon av denne historien sirkulerer i sikkerhetsskrivinger, noen av dem er nå generert av AI-assistenter: macOSs bakgrunnsindekseringsdaemon, mdworker, henter visstnok de eksterne bildene i enhver HTML-fil du laster ned, så en fil du aldri åpner kan fortsatt rapportere IP-adressen din til den som sendte den. Det er en god historie. Det er også en type påstand som bør testes før den gjentas, så vi testet den.

Tre forskjellige ting skjer med en ny fil

Påstanden utvisker tre separate mekanismer. Når en fil lander på disken, leverer Spotlights metadataserver den til en importør-plugin, kjører i en mdworker_shared-prosess, som trekker ut tekst og attributter slik at filen blir søkbar (mdimport og mdls er kommandolinjevinduene til denne). Separat, når Finder trenger et ikon, gjengir Quick Look-miniatyrbilder et lite miniatyrbilde. Og bare når du velger filen og trykker mellomrom, gjengir Rask titt en fullstendig forhåndsvisning. Hver av disse kan oppføre seg forskjellig, så hver trenger sin egen test.

Testen

Vi kjørte en liten HTTP-lytter på loopback-adressen som logger hver forespørsel med dens User-Agent, og opprettet deretter to filer i ~/Downloads som pekte på den: en HTML-side med et bilde på én piksel og et eksternt stilark, og en SVG med et innebygd eksternt bilde. Loopback holder eksperimentet selvstendig; en ekstern sporingsserver vil motta de samme forespørslene, pluss din offentlige IP-adresse.

q3-report.html (agnet)
<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. Bare laster ned: Spotlight-indeksering

Vi ventet 40 sekunder etter å ha opprettet filene, og bekreftet deretter at Spotlight hadde indeksert dem. Lytteren hadde ikke fått noe.

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

2. Tvinge Spotlight-importøren

For å utelukke timing kjørte vi importøren for hånd. Den brukte Apples RichText-importør, hentet ut 37 attributter og gjorde ingen forespørsel.

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-ikonet: Quick Look-miniatyrbilde

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. Trykk mellomrom: forhåndsvisningen Quick Look

qlmanage -p åpner det samme forhåndsvisningspanelet som å velge en fil i Finder og trykke mellomrom (qlmanage). Denne gangen lyste lytteren opp umiddelbart, for begge filene:

lytterlogg
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-lytter; ett løp per sak.
Hva brukeren gjordeMekanismeFjernforespørsel?
Ingenting (fil lastet ned)Spotlight-importør i mdworker_sharedIngen
Ingenting (tvangsimport)mdimport, RichText-importørIngen
Så på mappenQuick Look-miniatyrbilde (Finder-ikon)Ingen
Valgte filen, trykket mellomromQuick Look forhåndsvisning (WebKit)Ja: bilde, stilark, SVG-bilde

Hva dette betyr

"Null-klikk"-versjonen er ikke det vi målte: en fil som ligger i Nedlastinger, indekseres av Spotlight og vises som et ikon som ikke ropte opp. Det betyr noe, fordi et forsvar bygget på feil modell sløser innsatsen på feil sted. Blokkering av mdworker fra nettverket, for eksempel, ville ikke ha endret noe i denne testen.

One-key versjonen er ekte. Quick Looks forhåndsvisning gjengir HTML og SVG med WebKit og laster inn eksterne ressurser, slik at et enkelt trykk på Space på en vedlagt "rapport" forteller avsenderen at filen ble sett på, når og fra hvilken IP-adresse. Det er et web beacon, det samme trikset som e-postsporingspiksler bruker og som Apples Personvern for e-post eksisterer for å sløve i Mail; det er rett og slett ikke dekket når det samme innholdet kommer som en fil. I angripertermer er det rekognosering, ikke kompromiss: GJÆR ATT&CK T1598 katalogiserer denne typen informasjonsinnsamling før et reelt angrep.

Begrensninger for denne testen

  • Én macOS-versjon (26.7) og én kjøring per sak. Atferd kan variere på andre versjoner; kjør den på nytt på din, filene ovenfor er alt du trenger.
  • Vi brukte en loopback-adresse. En offentlig URL oppfører seg på samme måte for WebKit, men vi målte den ikke her.
  • Vi testet HTML og SVG. Andre typer med eksterne referanser (for eksempel .webarchive, Office-dokumenter med koblede bilder eller tredjeparts Quick Look-utvidelser) ble ikke testet og kan oppføre seg annerledes i begge retninger.
  • qlmanage -p er Apples feilsøkingsgrensesnitt for forhåndsvisningen; Finders Space-bar-forhåndsvisning bruker det samme rammeverket, men vi instrumenterte ikke Finder selv.

Hva du skal gjøre

  1. Betrakt Quick Look på en uklarert HTML- eller SVG-fil som å åpne den. Hvis du vil inspisere en på en sikker måte, les den som tekst: cat file.html, eller åpne den i en ren tekstredigering.
  2. Sjekk en filtype før forhåndsvisning: mdls -name kMDItemContentType file forteller deg hva Quick Look vil gjengi den som, uansett hva ikonet antyder.
  3. Se hvilken prosess som skaper forbindelsen, ikke bare om en skjer. Her var det WebKit-forhåndsvisningen som handlet på vegne av Apple, og det er grunnen til at regler som bare stoler på eller mistillit til «apper du har installert», savner det.

Den bredere leksjonen handler om metode. Den dramatiske versjonen av denne historien var selvsikkert skrevet og ville vært enkel å publisere. Tjue minutter med en lytter og fire kommandoer viste hvor det var feil og hvor den reelle, mindre risikoen er.

Hvor FireAI og HisnLabs kommer inn

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 er HisnLabs’ eget produkt: en KI-brannmur som kjører direkte på Macen. Den viser hver tilkobling appene dine gjør, i klart språk, og lar deg bestemme hva som forlater Macen din — KI-en kjører lokalt, så trafikken din sendes aldri til oss eller noen andre. HisnLabs’ sikkerhetsforskningsteam er de som holder disse vurderingene pålitelige: de katalogiserer hvilke domener som er vanlig telemetri og hvilke som er en ekte tjeneste, sporer landet og nettverket bak en tilkobling, og trener den lokale modellen (Autopilot-funksjonen) på ekte trafikkmønstre — uten at noe av det forlater Macen din.

Du kan lese om de tekniske valgene bak, eller prøve FireAI i 17 dager, på FireAI, fra HisnLabs.

Kilder