无需权限就能窥探你的每一次敲击:操作系统里藏了二十年的“文件通知窃听器”被揭开了

发布时间:2026/9/30 17:15:48
无需权限就能窥探你的每一次敲击:操作系统里藏了二十年的“文件通知窃听器”被揭开了
你的电脑正在不停地“说话”。每按一次键盘、每打开一个网页、每插拔一次U盘操作系统都会向所有订阅者广播一条消息某个文件被访问了某个目录被改动了。这本来是件好事——文本编辑器靠它感知文件变化网盘同步工具靠它判断该上传什么。可奥地利格拉茨理工大学的安全研究团队最近扔出了一颗重磅炸弹这套存在了几十年的文件通知机制竟然可以被改造成一台几乎无孔不入的监视器而且攻击者不需要管理员权限不需要读取任何文件内容甚至不需要突破任何内存防线。这项名为“文件通知攻击”的研究揭示了一个令人不安的事实Linux 的 inotify、Windows 的 ReadDirectoryChangesW 和 macOS 的 FSEvents这三大平台的文件变更通知服务本质上都是合法的广播频道。任何普通用户进程只要对某个目录拥有读取权限就能订阅该目录下所有文件操作的通知。攻击者要做的只是静静地“听”然后把听到的时间戳和文件路径与特定的用户行为模式进行比对。从一次击键到整段密码节奏Linux 上的监听精准得可怕研究的巧妙之处在于其半自动化的模板化流程。研究人员在执行各类操作时同步记录文件系统事件生成行为指纹模板——无论是终端命令、鼠标移动、网页访问、打印任务还是虚拟机、容器、蓝牙与VPN状态切换甚至USB设备的插拔都会在文件系统里留下独特的“脚步声”。Linux 平台暴露的信号最为细腻。inotify 会主动报告文件访问事件这意味着一个非特权账户只要监视某个可读的父目录就能收到自己根本没权限读取的文件的事件通知——包括 /dev 目录下代表键盘输入的设备文件。由此本地击键时序分析成为现实在对七名用户的测试中F1 分数落在 93.1% 到 100% 之间。更令人咋舌的是通过 SSH 监控伪终端活动F1 分数直接拉到 100%即便密码字段开启了终端回显抑制也无济于事——攻击者看不到你按了什么键但能精确捕捉你按键的节奏与间隔而节奏本身往往就足以还原出敏感输入的轮廓。团队还演示了一种针对 Wayland 环境下 KDE Plasma 6 的认证界面重构攻击。通过监听 PolicyKit 的 pkexec 组件执行时触发的文件通知恶意代码能够精准掐算伪造窗口的弹出时机让假密码框恰好覆盖在合法提示框上方。你以为自己在给系统输密码实际上是在给攻击者打工。Windows 的隐私窟窿更大盯着C盘根目录就能看到别人浏览过什么网站如果 Linux 的问题是“信号太细”那 Windows 的问题就是“管得太松”。一个再普通不过的本地账户哪怕对其他用户的配置文件没有任何读取权限只要监视 C 盘根目录就能获取所有文件变动的完整路径。这等于把整台电脑的文件活动摊开在攻击者面前。浏览器存储目录成了最直接的告密者。访问过的每一个网站都会在本地留下带域名特征的缓存路径而 Firefox 的目录结构规整得像一本打开的历史记录。实测结果显示针对全球排名前 1000 的网站有 975 个能够被稳定识别F1 准确率高达 97.8%且没有一例误报。相比之下 Edge 的识别率只有 48.5%——不是因为它更安全而是因为它生成的网站专属存储目录太少攻击者能抓到的特征自然稀疏。这反倒成了一个黑色幽默式的安全提示浏览器越“整洁”被指纹追踪的难度反而越高。macOS 相对克制但苹果电脑同样藏不住秘密macOS 的 FSEvents 由于无法跨用户监控私有目录泄露面在三大平台中最小。不过共享系统文件依然会出卖你应用程序启动、系统设置更改、打印任务、网线插拔、外接存储设备、蓝牙设备变动乃至 VMware 虚拟机的运行状态都会通过系统级文件事件暴露出来。它的平均延迟约 11.48 毫秒是三平台中最慢的但对于行为监控这个用途来说十几毫秒的滞后完全无伤大雅。整项攻击的代价低得惊人。分辨率范围在 0.2 毫秒到 11.5 毫秒之间而持续监控带来的 CPU 开销不超过 0.21%。换句话说受害者几乎不可能通过电脑变慢、风扇变响这类直观迹象察觉自己正被监听。攻击者的门槛与防御者的出路需要先澄清的是这种攻击并非独立的远程入侵工具。它要求恶意代码以非特权本地用户身份运行——真正的危险场景是入侵之后的隐蔽驻留攻击者已经混进了系统却不需要读取受保护内容、不需要注入应用程序、不需要动用任何硬件级缓存攻击仅靠“听通知”就能拼凑出受害者的行为全景。误报的风险同样存在当不同活动产生相似的文件系统模式时推断可能偏离真相。研究团队在 2025 年 10 月向 Linux、微软、苹果和 KDE 披露了全部发现。Linux 社区于 2026 年初针对设备文件推出了部分缓解措施编号 CVE-2025-68788但针对更广泛的不可读文件绕过路径修复仍未到位。微软的态度则是将此行为归类为“设计使然”——好在 Windows 提供了名为 EnforceDirectoryChangeNotificationPermissionCheck 的策略选项可以限制未经授权的路径披露只是它在默认状态下处于禁用需要管理员手动开启。研究人员给出的建议直指问题核心权限检查应当区分“自己拥有的文件”“可读的文件”和“受保护的文件”操作系统也该收紧对整个驱动器监控的放任态度。文件名、访问时间、通知元数据都应被视作敏感遥测数据来对待。对普通用户和运维团队而言现实可行的防护路径包括对不受信任的应用程序进行沙盒隔离、严格分离服务账户、及时应用操作系统更新以及在策略层面启用更严格的通知权限控制。文件系统从来不只是存数据的地方它还是一台持续广播的电台。这次研究最大的价值在于提醒我们安全的边界从来不只由“谁能读文件”划定还包括“谁知道文件被动过”。而这道边界目前三大的操作系统都还守得不够严实。