还记得2010年的“震网攻击事件”吗?以色列黑客通过将“震网(Stuxnet)病毒”植入核设施中,轻松破坏了伊朗准备了许久的核能研究实验。
Stuxnet是首个针对工业控制系统的蠕虫病毒,利用西门子公司控制系统(SIMATIC WinCC/Step7)存在的漏洞感染数据采集与监控系统(SCADA),能向可编程逻辑控制器(PLC)写入代码并将代码隐藏,极大地延缓了伊朗核电站的上线。
近日,来自佐治亚理工学院(GT)的安全研究人员发布了一篇论文,详细介绍了他们发现的一款针对PLC的恶意软件,黑客看借此对工业控制系统(ICS)发起类似远程震网式攻击。
在传统的PLC的时代,攻击者可以针对控制逻辑层或固件层。固件攻击可以提供高级别的设备控制,并且难以被发现,但难点在于恶意软件难以部署。而控制逻辑层部署恶意软件更容易,但也更容易被发现。最关键的是,这两种方式都要求攻击者拥有对目标组织的工业网络的特权访问权限。
在现代PLC时代,PLC通常包含了网络服务器,它们可以远程配置、控制,以及通过专用API和人机界面(HMI)的常规网络浏览器进行监控。尽管这些现代PLC可以为组织带来许多好处,但佐治亚理工学院的安全研究人员警告说,它们也可以显著扩大ICS的攻击面。
为了证明这些风险,研究人员复现了一款基于网络的PLC恶意软件,该恶意软件隐藏在控制器的内存中。由于ICS环境中配备浏览器的设备在客户端执行,因此恶意软件可以滥用PLC的合法网络API来干扰工业过程或对机械设备造成损害。
这种新的PLC恶意软件易于部署且难以检测。最初的感染可以通过物理或网络访问目标的HMI来完成,但恶意软件也可以通过利用跨源漏洞直接通过互联网劫持HMI来部署。为了确保持久性,这种新型PLC恶意软件利允许JavaScript代码深入浏览器缓存并独立于安装它的网页执行。此外,即便文件已经从服务器上删除,它们也将继续运行长达24小时。通过这种方法,恶意软件可以在固件更新、新的HMI以及硬件更换后仍然存活。
可以预见,恶意软件一旦部署成功,其能力取决于所使用的合法的API能力,这就给攻击者更多的想象空间。例如它们可以被利用来直接覆盖输入/输出值,滥用HMI输入,更改设定点和安全设置,伪造HMI显示,更新管理员设置,甚至用于实时数据外泄。
而且其中一些API非常强大。例如,它们可以被利用来直接覆盖输入/输出值,滥用HMI输入,更改设定点和安全设置,伪造HMI显示,更新管理员设置,甚至实时数据外泄等等。
更关键的是,研究人员还发现即使目标PLC处于隔离的网络中,恶意软件也可以建立命令和控制(C&C)连接。一旦攻击者完成了攻击,该恶意软件还可以通过自我销毁、良性载荷覆盖、注销账户信息,甚至是恢复出厂设置来掩盖其痕迹。
研究人员确定这种类型的PLC恶意软件可以用于西门子、艾默生、施耐德电气、三菱电机和艾伦·布拉德利PLC。而针对这些控制器的攻击涉及利用新发现或已知的漏洞,在某些情况下需要FTP密码、不安全的协议或内部人员进行攻击。
专家们已经创建了一个与供应商无关的框架,可以用来构建和分析基于网络的PLC恶意软件,并表示“这个框架探索了广泛适用策略的每个阶段,这些策略可以用于大多数现代PLC模型,并且呈现了恶意前端代码如何系统地破坏PLC的网络属性,颠覆工业控制系统环境的完整性。未来,该框架可以作为任何PLC供应商和模型研究中的参考案例。”
参考来源:https://www.securityweek.com/remote-stuxnet-style-attack-possible-with-web-based-plc-malware-researchers/