在 Linux 上,如何强制实施 USB 设备白名单?

在 Linux 上,如何强制实施 USB 设备白名单?

比如橡皮鸭,以及可用的代码重新编程 USB 闪存,我的笔记本电脑上的 USB 端口正成为一个安全隐患。

如何开始使用可接受的 USB 存储和 HID 设备的白名单?

谢谢。

答案1

你可以尝试USB卫士。它在 UDev 和 Linux 内核 USB 授权框架之上实现了 USB 设备黑名单/白名单。它具有规则语言用于编写 USB 设备使用策略,例如表达以下内容:

  • “我只想在我的系统上使用这个键盘和 USB 闪存盘,阻止其他一切”
  • 或“阻止带有附加接口(键盘、网卡等)的 USB 闪存盘”

例如,为了阻止不仅仅是闪存盘的 USB 闪存盘(即,它们被重新编程为包含键盘或大容量存储接口以外的其他东西),您可以使用此 USBGuard 策略:

allow with-interface equals { 08:*:* }
block

这导致 USBGuard 仅授权包含一个 08 类(大容量存储)接口的 USB 设备。

免责声明:我是该项目的作者。

答案2

你不能。

USB 棒固件可以被修改,因此它会被识别为完全不同的设备。这就是安全风险。

例如,如果您将打印机列入白名单,则 USB 记忆棒可能会被刷新以将其自身标识为列入白名单的打印机,然后向您的打印机驱动程序发送它从未期望接收的数据。您的打印机驱动程序可能会出现意外行为,这可能导致 USB 记忆棒拥有您 PC 的 root 访问权限。

另外,看看https://security.stackexchange.com/questions/64524/how-to-prevent-badusb-attacks-on-linux-desktop

相关内容