Le notifiche generate dai sistemi operativi quando un file cambia possono diventare una fonte di informazioni inattesa.
Una ricerca della Graz University of Technology ha analizzato questo meccanismo su Android, Linux, Windows e macOS, mostrando come semplici eventi del file system possano contribuire a ricostruire attività che un programma non dovrebbe poter osservare direttamente.
Il problema non richiede necessariamente l’accesso al contenuto dei documenti: nomi, percorsi e tempistiche possono già offrire indizi sufficienti. I ricercatori hanno studiato interfacce nate per permettere alle applicazioni di reagire rapidamente alle modifiche dei file e hanno verificato che, in determinate configurazioni, tali segnali possono diventare un canale laterale. Il rischio concreto cambia però sensibilmente a seconda del sistema analizzato.
Come le notifiche dei file diventano un rischio
Linux utilizza inotify, Android mette a disposizione FileObserver, Windows offre ReadDirectoryChangesW e macOS utilizza FSEvents. Queste tecnologie notificano alle applicazioni operazioni come creazione, modifica o cancellazione. Non forniscono necessariamente il contenuto del file, ma possono esporre metadati utili per dedurre cosa sta accadendo sul dispositivo.
Nel caso Linux, i ricercatori hanno osservato eventi associati a file che il programma non avrebbe potuto leggere direttamente. Una dimostrazione particolarmente significativa riguarda /dev/input: analizzando gli eventi e gli intervalli temporali tra le pressioni dei tasti, l’attacco sperimentale ha raggiunto un’accuratezza compresa tra il 93,1 e il 100% sui sette partecipanti. Una variante condotta tramite SSH ha raggiunto il 100%. Un’altra prova, realizzata con KDE Plasma 6, ha mostrato come gli eventi possano indicare la comparsa di una richiesta di autenticazione.
Android presenta invece un problema legato alla separazione tra applicazioni. Secondo lo studio, FileObserver può ricevere eventi relativi alle directory private di altre applicazioni attraverso il livello FUSE. I ricercatori hanno utilizzato WhatsApp come caso di studio: nomi e tempi dei file hanno permesso di distinguere operazioni riguardanti immagini, video e documenti. Il gruppo afferma di non aver individuato una mitigazione disponibile per questa piattaforma.
Windows e macOS hanno esposizioni differenti
Su Windows, l’analisi si concentra su ReadDirectoryChangesW e sull’osservazione della directory C:\. Gli eventi possono riguardare file appartenenti a parti del sistema che l’utente non può normalmente leggere. I ricercatori hanno sfruttato i nomi delle directory create da Firefox per riconoscere i siti visitati. Sui primi 1000 siti analizzati, il modello ha raggiunto un F1 score del 97,8%. Microsoft considera il comportamento una funzionalità non documentata.
Linux dispone di una mitigazione parziale associata a CVE-2025-68788, che interviene sugli eventi relativi a specifici file speciali sotto /dev. La correzione è arrivata nelle versioni del kernel 5.10.248, 5.15.198, 6.1.160, 6.6.120, 6.12.65 e 6.18.3. Microsoft ha invece introdotto la policy di registro EnforceDirectoryChangeNotificationPermissionCheck, che secondo i ricercatori non risulta attiva automaticamente.
Il comportamento di macOS è più limitato. FSEvents può comunque fornire indicazioni su cambiamenti riguardanti impostazioni, periferiche, rete, volumi e installazione o rimozione di applicazioni. I ricercatori non hanno invece individuato un metodo equivalente per aggirare i controlli sulle directory private.
La ricerca porta l’attenzione su una caratteristica poco visibile della sicurezza dei sistemi moderni: anche informazioni apparentemente innocue possono diventare significative quando vengono aggregate e analizzate nel tempo. Gli autori propongono quindi controlli più severi sull’osservazione delle directory e autorizzazioni specifiche per le attività di monitoraggio. Il lavoro sarà presentato ad ACM CCS 2026, previsto a novembre all’Aia. I ricercatori precisano inoltre di non conoscere, al momento, casi di sfruttamento reale delle tecniche analizzate.