如何在 OpenBSD/Linux 中禁用 Firewire 以防止通过 Firewire 进行攻击?

信息安全 linux 操作系统 硬件 硬化
2021-09-06 21:37:35

由于Firewire 缺乏安全性,允许插入的设备访问主机内存,因此完全禁用它是一件好事。如果我们不使用 BIOS 来禁用 Firewire 端口,那么我们如何使用“软件方法”来做到这一点?PC 上运行的操作系统是 OpenBSD 或 Fedora 或 Ubuntu。

编辑:是否足以在操作系统中禁用火线支持以防止火线攻击设备访问内存?需要哪些步骤来防止这种威胁?

4个回答

软件方法:

  • 禁用火线驱动程序/重新编译内核

禁用火线驱动程序会阻止使用任何火线设备,因为它会禁用火线硬件控制器。为了使攻击起作用,存在几个要求:必须加载驱动程序以便初始化控制器(总线主控等),必须将其配置为“开放访问”而不是每个设备,并且必须启用 dma (ohci1394 有一个禁用 dma 选项)。

在 Ubuntu 中,火线驱动程序是内核模块。有一种简单的方法可以将它们列入黑名单: 打开/etc/modprobe.d/blacklist-firewire.conf,您会在其中找到要列入黑名单的模块列表。

blacklist ohci1394
blacklist sbp2
blacklist dv1394
blacklist raw1394
blacklist video1394
#blacklist firewire-ohci
#blacklist firewire-sbp2

只需删除#所有内容的前面并保存即可。然后运行sudo update-initramfs -k all -u

其他方法:

  • 在 BIOS 中禁用火线端口
  • 密封实际端口,就像在某些环境中对 USB 端口所做的那样。

编译一个缺乏对火线接口设备支持的自定义内核就足够了。是什么阻止您通过权限设置限制对这些设备的访问?

删除驱动程序将阻止插入的设备建立 DMA 传输:

...您还可以使用 /etc/fbtab 微调对设备的访问

http://www.openbsd.org/cgi-bin/man.cgi?query=fbtab&sektion=5&apropos=0&manpath=OpenBSD+Current&arch=i386

基于通过火线/usb/其他端口登录,一切都可以被禁用