Исследователи из Граца
припомнили старую истину — если система хоть что-то сообщает о происходящем, этим можно воспользоваться для слежки, даже если напрямую доступа у вас нет.
Оказалось, что API вроде
inotify в Linux,
FileObserver в Android и вызовы файловых событий в Windows текут метаданными даже там, где у непривилегированного пользователя нет никаких прав. Код с реализацией методов атак
опубликован под лицензией MIT.
Самый красивый вектор провернули в Linux: обычный юзер не может напрямую читать сырые данные клавиатуры из
/dev/input/event4, зато может подписаться на метаданные родительской папки
/dev/input. Каждое нажатие клавиши микроскопически дергает каталог, а по задержкам между таймингами (пальцы тянутся к «Q» или «X» дольше, чем к соседним клавишам) статистика легко восстанавливает вводимый текст. В свежих ядрах лазейку уже прикрыли, запретив каталогам генерировать события на спецфайлах, но сам факт чтения ввода без рута впечатляет.
❤️ Впрочем, Linux отделался малой кровью... В KDE Plasma исследователи настроили слежку за обращением к бинарнику
/usr/bin/pkexec: как только система пытается спросить пароль суперпользователя, зловред мгновенно выкатывает поверх родного окна фейковую форму авторизации Polkit и уводит пароль.
❤️ На Android через банальный
FileObserver удалось без особых разрешений мониторить приватную папку WhatsApp, вытягивая имена пересылаемых файлов и фиксируя активность переписки.
❤️ А на Windows всё оказалось совсем просто: подписка на события корневого диска
C:\ сливает пути вообще ко всем файловым операциям в ОС в обход любых разграничений прав, позволяя в реальном времени вычислять открытые сайты в Firefox по именам создаваемых папок кэша.
Кстати, в Microsoft заявили, что возможность подглядывать за файлами всех пользователей и процессов системы — это не уязвимость, а «недокументированная возможность».
Linux / Линукс 🥸