与 USB 读卡器一起使用时,SD 卡可以成为 BadUSB 类型攻击的载体吗?

信息安全 巴杜斯 SD卡
2021-09-03 15:00:52

USB 闪存驱动器的固件可以被恶意重写,以使其看起来像一个流氓设备(如键盘、网卡等)。由于几种不同类型的设备可能同时连接到同一个 USB 端口,因此计算机操作系统很难(如果不是不可能)区分正品和流氓设备。这称为 BadUSB 攻击。

SD 卡依赖于与 USB 闪存驱动器完全相同的技术:相同的 NAND 存储器、相同的控制器、相同类型的固件一起运行。因此,从理论上讲,固件本身应该容易受到相同类型的攻击。

但是,至少当计算机提供内部非 USB SD 卡读卡器时(可以在 SD 卡读卡器直接连接到 PCI 总线的笔记本电脑上找到),操作系统永远不会期望看到键盘或其他东西要插入 SD 卡读卡器插槽,协议甚至不允许这种奇怪的事情,因此针对 SD 卡的 BadUSB 类型攻击将是没有实际意义的。

但是,我想知道当使用外部 USB SD 卡读卡器时这是否仍然适用?SD 卡是否可以通过与健全的 USB 读卡器一起使用时能够触发针对计算机的 BadUSB 类型攻击的方式被感染?或者可以将 SD 卡读卡器视为计算机和潜在恶意 SD 卡之间的安全“代理”吗?

1个回答

我不能说总是如此,但我看到的所有内部 SD 卡读卡器实际上都是 USB 设备——这使它们成为 BadUSB 的范围。

在内部,SD 卡确实与拇指驱动器非常相似——并且已经发布了针对它们的攻击。因此,它们可以被重新编程以改变它们的行为方式,就像你可以使用拇指驱动器一样。所以,这肯定是有原因的。

我和 Brandon Wilson发布了第一个公开的 BadUSB 代码 - 当我们这样做时,我们还研究了 SD 卡,试图了解如何利用它们来执行类似的攻击。我们得出的答案是没有可靠的方法来做到这一点。

这里的攻击向量是恶意 SD 卡,它会以非标准方式利用阅读器固件中的漏洞——因为它是连接到 USB 的东西,并且可能能够做更多有趣的事情——以便采取直接控制USB接口或应用修改读卡器固件,方便进一步攻击。

这有什么问题吗?您必须针对特定的读者(通过控制器和固件版本),这意味着它作为有针对性的攻击具有一定的价值,但不能使其可靠或通用到足以产生大规模影响。所以我们没有在研究中追求它。当然,值得注意的是,开发读者使用的控制器的公司并不多,因此有一些潜力可以针对相对较少的常见控制器/固件组合并覆盖相当大的市场份额。

所以,回答你的问题 - 它不是一个安全的代理,但它是一个复杂的代理。如果攻击者能够了解您的具体配置,并且愿意将钱花在研发上——这有可能的。但是,也就是说,如果您面对这种类型的攻击者,几乎可以肯定他们有更好的选择。


一般来说,几乎所有连接到 USB 的东西,从鼠标到内部根集线器,都是 BadUSB 攻击的潜在目标。有些比其他的更难利用 - 拇指驱动器无处不在且易于修改,因此它们成为攻击的面孔,但它们远非孤军奋战。如果它连接到总线,则始终存在被恶意固件修改的风险。

它已被多次指出,但请记住,BadUSB 并不是真正的漏洞,它是一个特性您在 BadUSB 攻击中看到的所有内容都符合规范 - 这就是没有有效防御的原因。主机无法知道是否需要该行为。

同样重要的是要记住,BadUSB 不仅仅是显示为另一种设备类型的设备 - 它可以改变设备的行为方式,同时看起来正常运行。我们发布的其中一个演示是一个隐藏分区,只有在您知道正确的技巧时才能访问它 - 我们还玩弄了自毁驱动器,以及对任何已删除内容进行备份的驱动器,这样即使驱动器是格式化后,它仍然可以包含敏感信息(我们没有发布这些)。