Een kwaadwillende website kan achterhalen welke sites u bezoekt en welke apps u opent, met behulp van niets anders dan JavaScript en de timing van uw SSD. De aanval, gebeld VORSTheeft geen native code, geen extensie en geen toestemmingsprompt nodig.
Je opent de pagina, laat het tabblad daar staan en kijkt op de achtergrond naar de drive voor conflicten.
Onderzoekers van de Technische Universiteit van Graz hebben het gebouwd en beschreven in een nieuw artikel dat op DIMVA 2026 zal verschijnen. Het maakt misbruik van een opslagfunctie die aanwezig is in elke grote desktopbrowser, en het onderliggende timingkanaal werkt op zowel macOS als Linux.
SSD-timingaanvallen zijn niet nieuw. Vorig jaar publiceerde dezelfde groep Secret Spilling Drive, die het gebruikersgedrag van een schijf afleest door te kijken hoe het lezen langzamer gaat als iets anders er gebruik van maakt. Het addertje onder het gras was dat er native code op de machine nodig was, via een low-level interface zoals Linux’s io_uring. FROST laat die eis vallen. Het draait in de browsersandbox, waardoor een lokale aanval in een externe aanval verandert.
U hoeft niet meer op de machine te staan om hem eraf te trekken.
Hetzelfde laboratorium in Graz heeft dit eerder gedaan. De SnailLoad-aanval leidde ertoe dat de sites en video’s die een slachtoffer laadde alleen uit de netwerklatentie kwamen, en helemaal geen JavaScript.
Hoe FROST-aanval werkt
De toegang is het Origin Private File System, of OPFS, een opslagfunctie die browsers in 2023 hebben toegevoegd, zodat webapps zoals in-browser editors en IDE’s bestanden op schijf kunnen bewaren. OPFS geeft elke oorsprong zijn eigen sandbox-segment van het bestandssysteem, en omdat dat segment is afgeschermd, slaat het de toestemmingsprompt over die een pagina normaal gesproken nodig heeft om uw bestanden te bereiken. Geen dialoog, geen klik. Een site kan gewoon beginnen met schrijven.
Normaal gesproken verbergt het besturingssysteem de schijftiming achter de paginacache, waardoor herhaalde leesbewerkingen uit het geheugen worden uitgevoerd, zodat ze de schijf nooit aanraken.
FROST omzeilt dit door een bestand te maken dat groter is dan het RAM-geheugen van de machine. De cache kan niet alles bevatten, dus de leesgegevens blijven op de SSD terechtkomen. In Chrome en Safari kan OPFS groeien tot 60% van de schijfruimte, veel meer dan genoeg; Firefox beperkt elke oorsprong lager, hoewel een aanvaller de belasting over meerdere oorsprongen kan spreiden om daar voorbij te komen.

De code van de aanvaller leest vervolgens willekeurige stukjes van 4 kB van dat bestand in een lus, en maalt elke lezing met performance.now(). Browsers stellen standaard hun timers af om dit soort metingen moeilijker te maken, maar de aanvaller scherpt de resolutie weer aan door cross-origin-isolatie in te schakelen, wat hij vrijelijk op zijn eigen pagina kan doen.
Wanneer u een site opent of een app start op dezelfde schijf, concurreert die activiteit met de leesgegevens van de aanvaller en verschuift de timing meetbaar. Een neuraal netwerk dat op deze sporen is getraind, identificeert de site of app.
De nauwkeurigheid is het ongemakkelijke deel. Op een Mac identificeerde FROST, vergeleken met de top 50 websites, de bezochte site met een F1-score van 88,95% in een gesloten wereldtest, en bleef op 86,95% in een open wereldtest waarbij 300 sites werden toegevoegd die het nog nooit had gezien. Voor tien native, vooraf geïnstalleerde macOS-apps bereikte dit 95,83%. Het team bouwde ook een geheim kanaal op hetzelfde signaal, waarbij gegevens van een samenwerkende native app naar de kwaadaardige pagina werden verplaatst met 661,63 bit/s op Linux en 719,27 bit/s op macOS via OPFS. De native aanval was op zijn best sneller, maar dat zijn veel gegevens voor code die in een browsersandbox zit.
Hoewel het timingkanaal ook op Linux werkt, heeft het team de volledige classificatie alleen op macOS uitgevoerd, dus die vingerafdrukken zijn een macOS-resultaat. FROST neemt ook alleen activiteit op op dezelfde schijf als het OPFS-bestand.
Een laptop met één schijf zet alles op die schijf; een werkstation met meerdere schijven verbergt alles wat op een afzonderlijke schijf draait, hoewel het opstarten van apps die in de thuismap terechtkomen toch de neiging heeft te lekken.
Wat u kunt doen
Voorlopig niet veel. Google, Mozilla en Apple werden allemaal vóór publicatie op de hoogte gebracht. Het Chromium-team van Google beschouwt vingerafdrukken niet als een beveiligingsprobleem. Apple noemde het buiten de reikwijdte, maar liet later ruimte voor een verzachting. Mozilla heeft het erkend en heeft niets verzonden. Er is geen CVE en geen openbaar bewijs dat de techniek in het wild is gebruikt.
Dat maakt de verdediging dun. De meting wordt alleen uitgevoerd als de pagina van de aanvaller geopend is, dus als u het tabblad sluit, wordt de uitvoering beëindigd. Het in de gaten houden van de opslag van uw browser voor een onverklaard bestand van meerdere gigabytes is een ander teken, hoewel browsers het gebruik van OPFS niet gemakkelijk zichtbaar maken.
Op Linux worden systemen met profile-sync-daemon, een hulpprogramma dat het browserprofiel in het RAM bewaart, overigens beschermd tegen de zero-click-versie, omdat OPFS-schrijfbewerkingen nooit de SSD bereiken. De zwakkere variant, waarbij een pagina een dialoogvenster voor het kiezen van bestanden gebruikt om u zelf een groot bestand te laten selecteren, werkt nog steeds.
De oplossingen die het daadwerkelijk zouden sluiten liggen bij de browsermakers: het beperken van de OPFS-grootte zodat het bestand in het geheugen past en geen conflicten genereert, het beperken van timers met hoge resolutie terwijl OPFS in gebruik is, of het plaatsen van een toestemmingsprompt ervoor. Elk kost iets qua snelheid of bruikbaarheid, wat een van de redenen is waarom geen van deze is gebeurd.
Het echte meningsverschil is of een website die stilletjes leert wat u op uw eigen computer doet, een bug is of een functie die werkt zoals ontworpen. De echte zorg van de onderzoekers is structureel: browsers blijven webapps near-native toegang tot de hardware geven, en near-native toegang brengt near-native lekkage met zich mee. FROST is één API. Het patroon is iets om naar te kijken.