早在 2023 年 1 月,就有人试图禁用微软 协议的内核驱动程序。远程网络驱动程序接口规范(RNDIS)是这一协议的安全隐患所在,它建立在 USB 虚拟以太网功能之上。今年晚些时候,有人再次尝试在 Linux 上禁用 RNDIS,但没有成功。最近几天,似乎又有人试图禁用 RNDIS 驱动程序支持。
远程 NDIS (RNDIS) 是微软开发的用于为连接到 USB 总线的网络设备编写 NDIS 微型端口设备驱动程序。 远程 NDIS
通过定义与总线无关的消息集并描述此消息集如何在 USB 总线上运行来实现此目的。 由于此远程 NDIS
接口是标准化的,因此一组主机驱动程序可以支持连接到 USB 总线的任意数量的网络设备。
最近几天,Greg Kroah-Hartman 恢复了他的"rndis-removal"分支,作为 USB 子系统 Git 树的一部分。虽然现阶段并不是真正"移除"RNDIS,而只是修改 Kconfig 以防止驱动程序被轻易编译。一旦该分支进入 Linux 内核主线,几个月后如果没有问题,就可以从 Linux 内核中实际删除 RNDIS 驱动程序。
补丁说明中对这一改动的描述依然如故:
"微软的 RNDIS 协议在设计上是不安全的,在任何与不信任的主机或设备一起使用该协议的系统上都存在漏洞。 因为该协议不可能做到安全,所以只需禁用所有 RNDIS 驱动程序,以防止任何人再次使用它们。Windows 只有 XP 及更新版本的系统需要这样做,比它更早的 Windows 系统可以使用普通的 USB 类协议,而这些协议不存在这些问题。
Android 已禁用该协议多年,所以应该不会有真正的系统仍然需要这样做了。"
考虑到时间因素,我们将拭目以待rndis-removal 代码是否会在即将到来的 Linux v6.9 内核合并窗口中提交,以尝试将这些老化的代码从内核中移除。