有人如何利用 ATM 运行的操作系统?

信息安全 开发 攻击预防 打补丁
2021-08-27 12:56:27

我相信你们中的许多人都听说过,对 Windows XP 的支持的结束是对全球ATM 的所谓启示我知道这样可以确保不再发布补丁,并且银行需要认真对待这种威胁。我很难确定潜在的攻击媒介,在我看来,这似乎是耸人听闻的。

我们知道,大多数针对 ATM 的攻击都是针对 ATM 的环境(即 Card Skimming),而不是针对软件本身。这种威胁可能永远不会完全消除。也就是说,有人能指出运行该软件的软件如何作为漏洞利用吗?

也许我太天真了,但是机器本身提供了有限的物理接口来利用 - 没有 USB 或其他总线端口,无法访问串行端口等。网络(理论上)通过在 ATM 上运行的操作系统之外的方式被锁定,我能看到的唯一可能被利用的向量是卡槽本身。

有人如何利用 ATM 运行的操作系统?

4个回答

好吧,有几个潜在的攻击向量可能是相关的。

先说端口。令人惊讶的是,一些 ATM 确实有 USB 端口,并已通过它们受到攻击(此处以更多信息为例,以及关于用恶意软件感染 ATM 的CCC 演示文稿)。但是,您希望ATM 具有良好的物理安全性,以帮助减轻此类风险。

然后是网络攻击。Windows XP 的缺点之一是,像 SMB 这样的服务正在运行,并且几乎不可能在不使管理系统变得非常困难的情况下禁用。您显然可以对 ATM 进行防火墙,但仍然需要一些网络连接来进行管理和传输交易。

现在您希望每个人的 ATM 网络在物理上是独立的,并且无法与任何其他网络联系,但是公司将保持良好的气隙的想法在现实世界中不太可能 100% 成立(看看所有由于所有 SCADA 系统都是气隙的,人们认为不会发生的 SCADA 问题!)

所以答案确实是 ATM 软件会像其他 Windows XP 系统一样受到攻击,它可能更难执行,但并非不可能。

就个人而言,我不认为 Windows XP 的支持端对于 ATM 等嵌入式系统来说意义重大。我在这里给出了一个非常详细的答案不过,这对消费市场来说绝对很重要。

关于您关于这些东西如何被利用的问题,请参阅博客条目以获取过去的一些示例。我认为你说得对,很难想出直接攻击 ATM 本身的方案。他们什么都没有,只有可以与之交互的键盘,我认为您无法通过公共互联网直接与他们联系。

大多数攻击至少具有某种社交成分(例如,冒充维护人员)或与盗刷卡等有关。在大多数情况下,后者甚至可以通过明确使用基于芯片的系统而不是某种磁条来防止。

对 XP 的支持的结束对 ATM 安全来说并不是一个大问题,因为它缺乏对操作系统的整体支持。现在,当 ATM 制造商遇到 XP 问题时,他们无法解决他们可以致电供应商并获得帮助,一旦 XP 生命周期结束,Microsoft 可以简单地拒绝该帮助。希望引入新功能的 ATM 制造商可能会因缺乏支持而受到限制。

正如Ploutus所示,这并不是说没有安全问题。Ploutus 是窃贼使用的恶意软件,可以切入 ATM 并访问 USB 端口。它始于墨西哥,但现在已在欧洲出现它利用了一个 XP 漏洞,该漏洞将在支持操作系统时进行修补。一旦获得支持,发现的任何新漏洞都将保持开放,因此 ATM 制造商将无法获得任何帮助。

从细节退后一步,看看更大的问题:

可以利用接受输入的计算机程序吗?

这个问题的答案总是肯定的。永远永远永远。

这并不意味着它会发生,也不意味着它会很容易,但存在被利用的潜力。

即使是用定义明确的语言编写的极其简单的程序也是有风险的,因为它必须通过编译器或解释器(这可能很复杂)并由操作系统(可能很复杂)执行并在 CPU 上运行(这可能很复杂)。

考虑到这一点,回到具体问题……

ATM 在基于代码的操作系统上运行,并运行用代码编写的应用程序。该代码是由容易犯错的人编写的。

下面是一个可能的攻击场景:篡改 ATM 的电源,让主机断电然后重新上电。有时,当系统重新启动时,它们会为您提供启动到单用户或恢复模式的选项。在那种状态下,按下 ATM 键盘上的按钮是否会作为键盘输入传递给主机?