西门子PLC的隐藏功能可以被用来攻击
西门子公司的一些新型可编程逻辑控制器(PLC)具有隐藏功能,使设备面临被攻击的风险。修理已经提上日程。
研究人员发现,一些新型西门子可编程逻辑控制器(PLC)的一个非正式访问功能,可以作为攻击者的攻击武器,也可以作为辩护人的取证工具。
德国波鸿鲁尔大学的研究人员在研究西门子S7-1200 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系列研究项目的最新成果。今年夏天,在发现使用相同固件的现代S7系列PLC共享相同的公共加密密钥后,另一组安全研究人员建立了一个假冒的工程工作站,可以欺骗和篡改西门子S7 PLC的操作。
在2016年,该研究团队的安全研究员Abbasi创建了一个PLC rootkit,可以在任何品牌的PLC上执行。