西门子公司的一些新型可编程逻辑控制器 (PLC) 存在隐藏功能,使设备面临攻击风险。修复已提上日程。
研究人员发现,某些新型西门子可编程逻辑控制器 (PLC) 的一个非正式访问功能可被攻击者当做攻击武器,也可成为防御者的取证工具。
在研究西门子 S7-1200 PLC 的引导程序时,德国波鸿鲁尔大学的研究人员发现了该基于硬件的特殊访问功能。PLC 引导程序在设备启动时处理软件更新和验证 PLC 固件完整性。
研究人员发现,使用该特殊访问功能的攻击者可在 PLC 启动的半秒内绕过引导程序的固件完整性检查,加载恶意代码夺取 PLC 过程的控制权。
但此特殊访问功能为什么会存在于这些 PLC 中仍是一个迷。供应商在嵌入式设备中留下隐藏维护端口的例子并非没有,但西门子 PLC 中留下的这个却让研究人员颇为困惑。
我们不知道为什么西门子会有这个功能。从安全角度看,有这么个东西是不对的,因为你也能读写内存并从 RAM 中转储该内存内容。
研究人员向西门子报告了自己的发现,西门子表示正在开发漏洞补丁。
该公司在媒体声明中称:西门子注意到了波鸿鲁尔大学关于 SIMATIC S7-1200 CPU 硬件特殊访问的研究,专家组正在开发该问题的解决方案。西门子公司将在安全咨询中发布有关该漏洞的进一步信息,并通过西门子产品计算机应急响应小组通信频道通知客户。
一个关键问题是:修复是否需要硬件更换而非软件更新。被问及此 PLC 修复是硬件还是软件更新时,西门子称其 “专家正在评估可供选择的方案。”
不过,西门子 PLC 特殊访问功能也不是全然没有任何好的方面:该功能对保护设备安全的人有用,可供 PLC 内存取证使用。
研究人员可使用该特殊访问功能查看 PLC 内存内容,也就是说,工厂运营商可以之发现自己设备上可能被植入的恶意代码。西门子不让用户查看 PLC 内存内容,但你可以用此特殊访问功能查看。
下月在伦敦举行的欧洲黑帽大会上,研究人员将展示他们的研究发现,并发布一款执行此取证内存转储的工具。
他们做了什么
在未触发引导程序校验和检测的情况下,研究人员成功通过 PLC 固件更新功能向其闪存芯片中写入了自己的代码。他们表示,问题在于如何缓解此类攻击,因为恶意代码可被嵌入引导程序闪存。
全看西门子是否能通过软件更新修复了。如果西门子能用软件修复,就意味着攻击者也可覆盖引导程序内容,换句话说,没办法彻底解决此问题。
这是研究人员要发布此固件内容转储工具的原因之一。在此工具帮助下,攻击者无法继续藏身于 PLC 中。
可实际接触该端口,或可在供应链制造过程中装配 PLC 的攻击者,就可以使用此技术读写设备内存。这样他们就能操纵 PLC 运行,比如提供虚假读数或其他仪表数据。
新交付的 PLC 中存在此信任概念就是一大问题。
并非此特殊访问功能本身让用户可读写闪存。闪存读写的实现是一系列功能巧妙组合的结果,运用这些功能可使用户能够在设备上执行自己的代码。而一旦能够执行自己的代码,也就能完全控制此 PLC 了。
支持西门子安全
研究人员称,选择研究西门子的 PLC 是因为西门子是市场领导者,也因为公众对 PLC 操作系统知之甚少。
尽管现在很多嵌入式系统仍然安全防护不周,但相比其他供应商,西门子在安全方面做了更多工作。
老实说,西门子的 PLC 可算行业顶尖了。他们一直在增加研究人员必须绕过的各种功能和安全特性。西门子做了很多工作以保持在嵌入式安全领域的领先位置。
即便如此,研究人员坚称,还需做更多工作以保护工厂运营商的 PLC 不受攻击者或供应链腐败的破坏。如果有类似西门子 PLC 中的那种特殊功能,供应商应通告其客户。客户理应知晓此信息,这样他们才能在风险评估中将之纳入考虑。
波鸿鲁尔大学团队的研究工作是一系列 PLC 研究项目中最新的一个。今年夏天,发现使用同一固件的现代 S7 系列 PLC 共享同一公共加密密钥后,另一组安全研究人员建立了一个虚假工程工作站,可欺骗并篡改西门子 S7 PLC 操作。
2016 年,此研究团队中的安全研究员 Abbasi 创建了一个 PLC rootkit,可在任意品牌的 PLC 上执行。
欧洲黑帽大会上研究人员将演示的取证内存转储工具:
https://www.blackhat.com/eu-19/briefings/schedule/#doors-of-durin-the-veiled-gate-to-siemens-s7-silicon-18023
声明:本文来自安全牛,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。