如何在 Linux 上保护您的 USB 端口

通用串行总线 (USB) 是一把双刃剑,它彻底改变了我们与设备的交互方式。 它的即插即用特性使设备之间的数据传输变得简单。 USB记忆棒并非没有缺点。 它们很快成为用病毒和恶意软件感染整个网络的媒介。

图片来源:Marek R. Swadzba via Shutterstock

Enter USB Kill 设备,它可以彻底烧毁您的 USB 端口或破坏您的主板。 它通过从 USB 端口为其电容器充电并将残酷的电压浪涌回端口来实现这一点。 这种情况会发生好几次,直到拔掉电源,或者主机死机。

让我们来看看您可以如何尝试并减轻此类设备的风险。

基础

在我们进入更详细的细节之前,您可以遵循一些简单的经验法则:

  • 不要插入你发现被遗弃在地板上的 USB 驱动器。
  • 不要插入随机个人给您的 USB 驱动器。
  • 让受信任的人通过云向您发送文件。
  • 不要插入不是三星、闪迪等知名供应商的 USB 驱动器。
  • 不要让您的计算机无人看管。

此列表应涵盖大多数情况。 但是,USB 设备的安全性仍有待提高。

保护您的 BIOS

如果您有一台必须无人看管的机器,则访问该机器相对简单。 所有人所要做的就是创建一个可启动的 USB 驱动器,然后从驱动器启动到实时环境中。 这将使他们能够访问所有未加密的文件。 对于 Windows,您甚至可以清除用户的密码。 密码保护您的基本输入输出系统 (BIOS) 意味着必须在启动选项出现之前输入密码。

有关如何进入 BIOS 的信息,请参阅您的硬件制造商文档。 一般是通过反复点击 删除 键,因为您的计算机正在启动,但这因制造商而异。 密码设置应该在 安全 BIOS 中的部分。

USBGuard 为您提供支持

您是否需要让 PC 或服务器无人看管? 如果是这样,您可以使用一个恰当命名的实用程序 USBGuard 来防止攻击。 这旨在防止恶意 USB 设备(也称为 BadUSB)。 示例包括可以模拟键盘并发出登录用户命令的 USB 设备。 这些设备还可以欺骗网卡并更改计算机的 DNS 设置以重定向流量。

USBGuard 基本上通过实施基本的黑名单和白名单功能来阻止未经授权的 USB 设备。 理想情况下,除了您信任的少数几个 USB 设备外,您不会允许任何 USB 设备。 当您插入 USB 设备或集线器时,USBGuard 将首先扫描设备。 然后它会依次查看其配置文件,以检查该设备是被允许还是被拒绝。 USBGuard 的伟大之处在于它使用了直接在 Linux 内核中实现的功能。

如果您运行的是 Ubuntu 16.10 或更高版本,您可以通过键入以下命令安装 USBGuard:

sudo apt install usbguard

如果您使用的是较旧的 *buntus 之一,则可以按照 GitHub 上的说明进行操作 [No Longer Available]. 我们的 example 将遵循一个简单的 允许 这将演示如何授权具有特定 ID 的设备。 要启动并运行,请使用:

usbguard generate-policy > rules.conf
nano rules.conf

花点时间查看即将添加的政策。 此步骤将添加和授权当前插入您机器的所有内容。 您可以删除或注释掉您不想授权的设备的行。

sudo install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf
sudo systemctl restart usbguard

进行测试

到目前为止,您连接到机器的任何设备都将无法运行,即使它似乎已被检测到。 I插入 USB 驱动器以通过运行来验证这一点 lsusb 列出所有连接到系统的 USB 设备。 记下 SanDisk id,我们稍后会用到它。

尽管已在 Ubuntu 中检测到该设备,但没有任何迹象表明它已被挂载!

要将此设备添加到授权设备列表中,请运行以下命令:

sudo nano /etc/usbguard/rules.conf

现在将 SanDisk id 添加到 规则.conf 文件将其设置为授权设备之一。

现在只需快速重启 USBGuard 服务:

sudo systemctl restart usbguard

现在拔下,然后重新连接 USB 驱动器。 USBGuard 将检查 rules.conf,将 id 识别为允许的设备,并允许使用它。

您的设备立即可以正常使用。 这是一种简单的方法,仅允许设备通过其 ID. 要真正具体,您可以添加一条规则 规则.conf 沿着这些思路:

allow 0781:5151 name "SanDisk Corp. Cruzer Micro Flash Drive" serial "0001234567" via-port "1-2"
reject via-port "1-2"

上述规则将只允许在特定端口上匹配该 id、name、serial 的设备。 拒绝规则将不允许任何其他设备插入该端口。 选项几乎无穷无尽,但可以在线参考。

物理预防

USBGuard 可能无法保护您免受臭名昭著的 USB Killer 的侵害。 所以,你可以做什么? 如果您确实可以控制 USB 端口,但仍需要插入一些有问题的 USB 驱动器,则可以使用一些解决方案。 USB 集线器相对于新笔记本电脑的价格是微乎其微的。 使用这种经验丰富的技术的巨大优势之一是它的配件广泛可用且价格便宜。 您可以购买一个好的品牌设备,而不是将粗略的设备直接插入您的机器,而是通过 USB 集线器将其插入。 如果 USB 驱动器是 USB 杀手,它会烧毁 USB 集线器,您的机器将是安全的。

您的用例的另一个解决方案可能是 美国地质勘探局. 该设备是位于可疑 USB 设备和您的计算机之间的硬件防火墙。 它与鼠标、键盘和 USB 闪存驱动器兼容。 它将通过过滤恶意活动并传递您需要的数据来保护您免受 BadUSB 的侵害。

图片来源:罗伯特·菲斯克

这不是矫枉过正吗?

根据您工作的环境,可能会出现这种情况。 如果您负担得起不插入任何您无法完全控制的设备并且您是唯一可以访问您的机器的人,那么这将是最好的情况。 一线希望是,除了人们试图找到造成伤害的方法之外,还有人也在思考防止这种伤害的方法。

有过使用不可靠的 USB 设备的糟糕经历吗? 您如何确保您或您的公司拥有安全的 USB 措施? 在下面的评论中让我们知道!

图片来源:Frantisek Keclik/Shutterstock