536 美元和 8 小时:AI 学会攻击不同的 PLC

专家让 Claude 移植了一个 PLC 漏洞,但花费了 536 美元和 8 个小时,而且后来人工智能生成的有效负载意外损坏了硬件。 Forescout 研究人员刚刚回答了一个困扰工业安全一段时间的问题:人工智能是否真的可以将一个可用的漏洞从一个 PLC 移植到另一个模型,而无需 [...]

来源:Security Affairs _恶意软件

536 美元和 8 小时:AI 学会攻击不同的 PLC

专家让 Claude 移植了一个 PLC 漏洞,但花费了 536 美元和 8 个小时,而且后来人工智能生成的有效负载意外损坏了硬件。

Forescout 研究人员刚刚回答了一个困扰工业安全一段时间的问题:人工智能是否真的可以在没有源代码和调试器访问权限的情况下将一个有效的漏洞从一个 PLC 移植到另一个模型?他们的报告说是的,但答案伴随着价格标签、大量研究人员的帮助以及永久损坏的硬件。

起点是 CVE-2021-31886,这是 Nucleus FTP 服务器中的预身份验证缓冲区溢出,团队在早期研究中已在 WAGO 750-852 PLC 上利用了该漏洞。这次的目标是将该工作漏洞移植到一个相关但不同的模型 WAGO 750-831,使用 Claude 代码访问终端、Ghidra 和实际的物理设备。

“该漏洞利用取决于目标特定的参数,包括函数地址、偏移量和内存位置。我们的目标是使用 AI 将漏洞移植到类似但不相同的 PLC 模型:WAGO 750-831。除了简单地移植现有的 RCE 之外,我们还想测试 AI 是否可以帮助将其扩展为受限 PLC 上功能更强大的命令和控制植入程序。”报告中写道。 “我们从三个输入开始这项研究:

  • WAGO 750-852 PLC 的有效 RCE 漏洞利用。
  • 用于其他 PLC WAGO 750-831 (V01.04.16) 的固件二进制文件,原始安全公告将其标记为易受攻击。
  • 运行该固件的物理 WAGO 750-831 PLC。”
  • 这是一项比 AI 以前处理的软件漏洞要困难得多的任务。当没有源代码并且没有调试器来帮助解释正在发生的情况时,使用嵌入式固件会很困难。

    找到漏洞需要进行几次尝试,但这并不是最困难的部分。 Claude 测试了实时 FTP 服务器,使用 Ghidra 分析了固件,并编写了自己的 Python 脚本来帮助分析。最终导致 PLC 崩溃,确认可能会触发缓冲区溢出。

    真正的挑战是从崩溃到实际运行攻击者控制的代码。这需要做更多的工作,而且当时的进展速度减慢了。

    当 Claude 弄清楚为什么它注入的 shellcode 在运行之前不断消失时,转折点出现了。正常的 FTP 命令处理是在登录命令完成后立即将保存恶意负载的确切内存缓冲区清零,而修复意味着故意完全避免正常的完成路径。

    “Claude 确定利用路径可以通过避免正常的命令完成路径来保留 shellcode。省略‘\r\n’ (CRLF) 终止符会阻止相关处理路径以通常的方式完成,从而使攻击者控制的缓冲区完好无损。”报告继续。 “然后,Claude 创建了一个测试工具,在每次利用尝试后测量 PLC 的正常运行时间。无论注入的有效负载如何,设备都会在同一点崩溃,这表明在有效负载本身影响结果之前执行失败。这支持了 shellcode 在正常 FTP 处理期间被覆盖而不是执行的假设。”

    克劳德在严格的指导下到达了那里,但尽管如此,还是到达了那里。

    一旦 Claude 解决了这个具体问题,事情就会进展得更快。在短短 12 分钟内,它就从一个无害的测试有效负载变成了两个有效的漏洞:一个使 PLC 向远程计算机发送 ICMP ping,而另一个则发送包含“PWNED”一词的 UDP 数据包。

    大部分时间和精力都花在解决阻止有效负载运行的特定目标问题上。之后,生成工作漏洞就相对容易了。

    这个过程仍然需要大量的时间和金钱。最后的漏洞利用开发阶段在 8 小时 32 分钟的会话中花费了 535.74 美元的 API 费用,研究人员必须引导 Claude 通过几个死胡同,提供反汇编详细信息,并在较小的会话空间不足时切换到更大的上下文模型。

    “最终的 RCE 开发阶段消耗了 535.74 美元的 API 使用量,基于 2600 个输入令牌和 130 万个输出令牌。相应的会话持续了 8 小时 32 分钟,涵盖了几天的研究。大部分时间都花在识别与 FTP 命令处理路径相关的缓冲区保留问题上。”报告指出。 “在实现最初的 RCE 后,我们开启了一个新的 Claude Opus 4.6 会话,以探索工作 ICMP 和 UDP 有效负载是否可以扩展到命令和控制植入。提示开始:“我有 UDP 和 ICMP 信标的工作 PoC,阅读它们,让我们计划在 PLC 上进行 C2 植入”。

    所以,就目前而言,这不是一个没有经验的攻击者可以简单地交给人工智能并期望起作用的东西。这仍然需要专家的指导、大量的时间和不小的费用。

    整个练习中最有说服力的时刻发生在漏洞利用已经发挥作用之后。研究人员要求 Claude 将工作 ICMP 和 UDP 有效负载扩展为完整的命令和控制植入程序,并在探测 PLC 的内存布局以构建该植入程序时,生成的有效负载写入映射到闪存存储的区域,从而永久堵塞设备。没有人告诉克劳德破坏任何东西;它完全按照要求执行,但在此过程中仍然破坏了硬件,对于任何想象在更少监督的情况下针对真实物理基础设施运行更自主的人工智能代理的人来说,这确实是一个令人不安的数据点。

    这里最大的发现可能不是 Claude 成功移植了该漏洞,而是该过程仍然非常脆弱。 Forescout 还指出了一些真实的事件,攻击者通过直接滥用暴露在互联网上的 PLC 来破坏美国的水务设施,而无需复杂的漏洞利用。

    这仍然应该引起防守者的关注。如果人工智能不断减少开发针对 PLC 的更高级攻击所需的时间、成本和专业知识,那么工业系统太难破解的想法可能不会持续太久。目前,研究表明人工智能仍然需要专家指导,但随着技术的进步,这一差距可能会缩小。

    “最近针对面向互联网的 PLC 的攻击表明,暴露的控制器已经造成了操作风险,即使没有本研究中开发的那种 RCE。令人担忧的是,人工智能可以使更复杂的利用更容易在这些暴露的设备上重现。今天,这仍然需要专业知识和时间。但如果人工智能继续减少这两者,曾经看起来太困难或不经济的漏洞可能值得不同程度的关注。”报告总结道。 “对于关键基础设施组织来说,直接的含义很简单:不要仅仅因为当今的利用似乎很困难而忽视 OT 设备上的漏洞。”

    在 Twitter 上关注我:@securityaffairs 以及 Facebook 和 Mastodon

    皮尔路易吉·帕格尼尼

    (SecurityAffairs – 黑客攻击、PLC 漏洞)