Cайт программиста Ruby, веб-разработчика Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Файловые системы Windows, Android, Linux и macOS позволяют шпионить за пользователями

Операционная система может не отдавать чужой файл, но всё равно рассказывать, когда с ним что-то происходит. Команда Технического университета Граца показала, что штатные механизмы уведомлений о файловых событиях в Android, Linux, macOS и Windows позволяют следить за действиями других пользователей и приложений без доступа к содержимому файлов.

Проблема затрагивает механизмы, которые приложения используют для отслеживания открытия, записи, изменения и удаления файлов. В Linux такую задачу выполняет inotify, в Android его обёртка FileObserver, в Windows API ReadDirectoryChangesW, а в macOS FSEvents. Подобные побочные каналы не раскрывают сами данные, но последовательность событий, имена файлов и точное время операций позволяют восстановить поведение пользователя.

В Linux обычный пользователь может наблюдать за читаемым каталогом и получать события от находящихся внутри файлов, даже если прямого доступа к отдельному файлу нет. На /dev/input команда смогла фиксировать моменты нажатий клавиш. В тестах локальная и межпользовательская атаки показали F1-score 100%, причём для 66% нажатий время определялось с отклонением менее одной миллисекунды. Похожая слежка работала между пользователями одного SSH-сервера.

На Android FileObserver оказался способен пройти мимо FUSE, который изолирует хранилища приложений. Тестовое приложение без дополнительных разрешений наблюдало за закрытой медиапапкой WhatsApp и получало имена файлов вместе с событиями. По таким следам можно определить, когда пользователь отправил, получил или удалил фотографию, видео, голосовое сообщение либо документ. Содержимое переписки и самих файлов такой способ не раскрывает.

Windows дала ещё более прямой канал. Непривилегированный пользователь может поставить наблюдение на корень диска C:\ и получать полные пути к файлам, которые затрагивают процессы других учётных записей. Firefox создаёт каталоги, связанные с сайтами, поэтому в эксперименте посещения ресурсов из набора top-1000 определялись с F1-score 97,8%. Для Edge показатель составил 48,5%. Microsoft сочла такое поведение ReadDirectoryChangesW недокументированной функцией, предусмотренной архитектурой системы. При этом компания ещё в апреле 2025 года добавила механизм проверки разрешений перед выдачей уведомлений о файловых изменениях. Защита входит в обновления Windows, но по умолчанию отключена из-за риска несовместимости с приложениями.

macOS раскрывает заметно меньше данных. Команда не нашла способа через FSEvents обходить запрет на чтение закрытых каталогов, однако по общедоступным файлам всё равно удаётся замечать запуск и работу отдельных приложений, подключение устройств, изменение аудиовыхода, параметров питания, Bluetooth, принтеров и сетевых настроек. Поэтому механизм остаётся каналом наблюдения, хотя утечка слабее, чем на других платформах.

Для Linux наиболее опасную часть проблемы частично закрыли ещё в декабре 2025 года. Уязвимость CVE-2025-68788, которую SUSE оценивает в 5,7 балла по CVSS 4.0, позволяла получать события доступа и изменения для специальных файлов внутри /dev. Новые версии ядра перестали генерировать такие уведомления, что блокирует показанную атаку через устройства ввода, однако общий класс утечек через файловые события полностью не исчез.

Представленные сценарии требуют локального непривилегированного доступа, другой учётной записи на общей системе либо уже запущенного вредоносного процесса, например, попавшего на устройство через скомпрометированный пакет. Команда не знает о случаях применения таких атак в реальных инцидентах. Для Android и macOS отдельной защиты от описанных сценариев пока нет, а результаты работы приняты на конференцию ACM CCS 2026.

SecurityLab