可以防止 BadUSB 漏洞利用吗?

信息安全 开发 USB驱动器 固件 USB
2021-08-28 05:58:57

最近我读到了一些关于 BadUSB 漏洞利用的东西,例如:

http://arstechnica.com/security/2014/07/this-thumbdrive-hacks-computers-badusb-exploit-makes-devices-turn-evil/

我的理解是,连接到 USB 的设备可以改变其外观(驱动器、键盘、网卡……),这为受感染的 USB 驱动器(或其他设备)提供了模拟键盘和提交恶意命令或网卡并连接到网址下载程序。问题似乎是计算机自动信任 USB 设备。然而,受感染芯片的能力可能非常有限,这使得模拟网卡等更复杂的硬件变得困难:

如何防止 Linux 桌面上的 BadUSB 攻击?

无论如何,如果主要可以防止这种行为,我很感兴趣:

  • 我对漏洞利用的理解正确吗?
  • 如果是这样:是否有可能实现一个软件“防火墙”,如果连接了新的 USB 设备,它会询问用户的许可,尤其是在设备的“类型”发生变化时会发出警告?我的意思不是简单地单击确定(恶意 USB 设备可能会自行执行),而是使用诸如 CAPTCHA 之类的东西。
  • 如果这是不可能的,因为软件可能无法阻止使用 USB 设备(或出于某种原因):是否可以使用硬件解决方案来转发 USB 数据,但例如只允许 USB 驱动器而不是键盘?USB 设备如何告诉计算机它的“类型”?
4个回答

“防火墙”解决方案存在先有鸡还是先有蛋的问题:您的键盘和鼠标是 USB 设备*。作为用户,您如何告诉操作系统您要授予键盘和鼠标的权限,而不使用它们中的任何一个?如果键盘和鼠标通过显示器上的 USB 端口连接会怎样——每次关闭和打开显示器时,它们都会断开连接并重新连接。我敢肯定在其他情况下,“防火墙”要么让用户没有输入设备,也无法批准新设备,或者在试图避免这种情况时,会自动批准它不应该的设备。

*是的,即使在笔记本电脑上。它们只是永久连接到位的 USB 设备。

简短的回答:是的,它可以被预防,但解决方案并不容易。

正如 Steve Gibson 在最近的 Security Now 播客(此处)和最初的 Black Hat 演示文稿(此处)中所讨论的那样,如果我没记错的话,解决方案涉及锁定这些 USB 设备控制器中的固件。这基本上意味着固件将被写入 ROM 芯片,该芯片不允许修改该芯片上的固件,这是该漏洞的基础。

您对漏洞利用的理解似乎相当准确,但我建议您观看上面提到的原始演示文稿。

尽管您对软件类型解决方案的建议可能能够检测到已被利用的设备,但它并不能解决问题的根本原因。此外,不幸的是,在某些情况下,UBS 设备应该能够更改其类型,甚至可以同时更改多个设备类型。事实上,在 Black Hat 演示中,作者甚至为 USB 中的这种能力如何充分利用提供了一个很好的案例。不幸的是,警告就是这样——一个警告——并且很容易被忽略或静音。如果您必须报告 USB 设备的每种类型更改,您会得到很多误报。

演讲中提到的另一件事是,对 USB 设备的标准化和控制很少,因此没有真正的方法来确定 USB 设备应该是什么。所以你没有什么可以真正比较它的。

顺便提一句。如果您刚刚对 Infosec 产生了兴趣,我绝对建议您订阅 Security Now 播客 - 它非常棒!

到目前为止,还没有确定的防火方法来防止它。到目前为止,最好的解决方案是禁用设备的“启动模式”状态,并可能通过胶水物理禁用访问。

这是一篇关于它的文章http://news.softpedia.com/news/There-Is-Anti-BadUSB-Protection-but-It-sa-Bit-Sticky-461485.shtml

在此处输入图像描述

ps你可以用胶水玩得开心:)

有硬件。

USG是 USB 端口的防火墙它连接您的计算机和不受信任的 USB 设备,使用内部硬件防火墙隔离坏处:

https://github.com/robertfisk/USG/wiki