原文标题:HoneyPLC: A Next-Generation Honeypot for Industrial Control Systems
原文作者:Efrén López Morales,Carlos Rubio-Medrano ,Adam Doupé,Yan Shoshitaishvili,Ruoyu Wang,Tifany Bao,Gail-Joon Ahn原文链接:https://doi.org/10.1145/3372297.3423356发表会议:CCS "20笔记作者:李智宇@安全学术圈主编:黄诚@安全学术圈编辑:张贝宁@安全学术圈
1、引言
工业控制系统(ICS)为核能、电力、水务和交通运输网络等关键任务设施提供管理和控制能力,这些公用设施与人们的日常生活密不可分,任何破坏都可能造成重大损失。作为网络世界和物理世界之间的桥梁,可编程逻辑控制器 (PLC) 在 ICS 中发挥着关键作用。随着现代 ICS 日益互联互通,PLC 成为网络攻击的重要目标。由于目前针对 ICS 的蜜罐存在低交互性、低可扩展性等局限,本文因此提出了 HoneyPLC:一种高交互性、可扩展且可收集恶意软件的蜜罐。它能够模拟 PLC 中常见的网络协议、异构 PLC 以及其所具有的内部存储块,从而自动捕获和存储恶意梯形逻辑程序。
2、背景介绍
可编程逻辑控制器(PLC)是一种小型工业计算机,它根据电器硬件(如泵、继电器、机械定时器等)提供的输入来执行逻辑功能,具备控制复杂工业过程的能力。其内部存在用于存储指令的可编程存储块,可根据实际需求实现不同的功能。
蜜罐是一种故意暴露漏洞和服务的计算机系统,旨在诱使攻击者对其进行探测、分析和利用,从而实时监控和记录所有可能的交互行为,收集攻击数据用于后续分析。蜜罐可分为低交互蜜罐和高交互蜜罐,低交互蜜罐不是真实的系统,攻击者可能无法完成攻击步骤,甚至将其识破,而高交互蜜罐提供与真实系统相同级别的交互。
文献中现有的 ICS 蜜罐具有以下局限性:
可扩展性有限。文献中的几种蜜罐可扩展能力有限,只支持一种或两种 PLC 型号,而本文提出的 HoneyPLC 目前提供对三个品牌的五个 PLC 的开箱即用支持。
交互性有限。当前蜜罐在 TCP/IP 协议栈仿真以及原生 ICS 网络协议方面提供的功能大多有限,阻碍当前蜜罐从对抗性交互和恶意软件中提取价值。
隐蔽性有限。攻击者一旦发现蜜罐的真实性质,就会停止暴露其攻击方法,因此蜜罐应该能够欺骗广泛使用的网络侦察工具。文献中的几种蜜罐无法欺骗 Nmap,而 HoneyPLC 提供了欺骗 Nmap 等侦察工具的模拟。
无恶意软件收集。ICS 设备的高度专业化特性要求对恶意软件进行收集和深入分析,然而现有蜜罐缺乏这种功能。为此,HoneyPLC 创新性地提供了梯形图逻辑捕获功能。
下表对文献中的 ICS 蜜罐进行了总结:
3、研究方法
HoneyPLC 作为一个可扩展的、高交互性的、用于 ICS 的恶意软件收集蜜罐,提供先进的协议模拟,例如 TCP/IP、S7comm、HTTP 和 SNMP,实现了与真实 PLC 相当的交互水平。
下图展示了 HoneyPLC 的框架以及使用步骤:
第一步。在部署之前,从存储库中选择一个 PLC 配置文件,该 PLC 将作为蜜罐暴露给攻击者。
第二步。攻击者尝试使用侦察工具对已部署的 HoneyPLC 进行指纹识别。
第三步。攻击者通过专用协议进行连接,例如 S7comm,连接请求交由个性化引擎处理。
第四步。将连接交给 HoneyPLC 的网络服务模块处理,然后转发到专用的 S7comm 服务器。
第五步。当攻击者识别出适合注入的 PLC 内存块,通过使用梯形逻辑代码覆盖预先存在的代码,引入一个定制的恶意负载。
第六、七步。HoneyPLC 的 S7comm 服务器将注入代码写入由交互数据模块管理的存储库中。
3.1 支持 PLC 扩展性
PLC 配置文件库是 PLC 配置文件的集合,PLC 配置文件又是三个离散数据集 SNMP MIB、Nmap 指纹、管理网站的集合。其中,MIB 是 SNMP 代理使用的一种标准,HoneyPLC 需要一个自定义 MIB 才能提供真实的 SNMP 模拟;Nmap 指纹是一个纯文本文件,用于模拟特定 PLC 设备的 TCP/IP 协议栈;管理网站是由 PLC 设备提供的轻量级 Web 服务器,包含启动画面和一些配置选项。
HoneyPLC 的配置文件由 PLC 分析器工具自动创建,该分析器与三个不同的应用程序连接:Nmap、snmpwalk 和 wget。它只需要 PLC 设备的 IP 地址作为输入,便可以通过三个应用程序接口从目标 PLC 获取上述三个离散数据集。
3.2 支持行动隐蔽性
HoneyPLC 提供的协议模拟体现在以下四个方面:
TCP/IP 协议栈。HoneyPLC 在新建 PLC 时,首先使用 Nmap 生成 TCP/IP 协议栈指纹,然后将该指纹集成到指纹数据库中。运行时,当 Nmap 等工具对 HoneyPLC 主机进行指纹识别时,其个性化引擎会动态响应匹配的指纹信息。
S7comm 服务器。在 HoneyPLC 的网络服务模块中,S7comm 服务器提供了西门子专有协议的复杂模拟。HoneyPLC 的 S7comm 服务器应用程序基于 Snap7 框架编写,并拥有记录 S7comm 交互、梯形图逻辑捕获等附加功能。
SNMP 服务器。HoneyPLC 使用轻量级的 Python 应用程序 snmpsim 模拟 SNMP 协议,其根据实时或存档的 MIB 数据模拟 SNMP 代理。当 HoneyPLC 收到 SNMP 请求时,SNMP 代理会像真实的 PLC 一样回复一个对象 ID。
HTTP 服务器。HoneyPLC 通过一个轻量级的 Web 服务器 lighttpd 处理所有 HTTP 请求,当 HTTP 请求到达 HoneyPLC 时,请求会被转发到该服务器并使用配置文件的网站数据进行回复。
3.3 梯形图逻辑收集
HoneyPLC 的 S7comm 服务器具有新颖的梯形图逻辑捕获功能。当攻击者将梯形图逻辑程序上传到任何 S7comm 服务器内存块时,此功能会自动将其写入带有相应时间戳的 HoneyPLC 文件系统。
3.4 通过日志记录实现记录保存
HoneyPLC 收集的所有交互数据由交互数据组件维护,该组件直接与网络服务组件通信。它包含了 S7comm 服务器、SNMP 代理和 HTTP 服务器产生的所有日志,以及通过 S7comm 服务器注入的所有梯形逻辑程序。
4、实验评估
研究者使用了以下 PLC 模型:西门子S7-300、S7-1200、S7-1500、Allen-Bradley MicroLogix 1100和 ABB PM554-TP-ETH。针对现有蜜罐存在的局限性,所进行的一系列实验基于验证以下三个问题:
HoneyPLC 是否支持不同的真实 PLC ?
HoneyPLC 能否能欺骗广泛使用的侦察工具?
HoneyPLC 能否有效地捕获梯形图逻辑代码?
两组案例研究的结果表明,HoneyPLC 可以支持不同类型的 PLC。对于西门子 PLC(S7-300、S7-1200 和 S7-1500),HoneyPLC Profiler Tool 成功创建了所有三个 PLC 配置文件,并且只需要对一些 HTML 文件进行少量手动修改。对于非西门子生产的 PLC(Allen-Bradley MicroLogix 1100 和 ABB PM554-TP-ETH PLC),同样成功地为每个被分析的 PLC 生成了配置文件。不过,由于不同的生产商会在不同的端口上实现各种协议,可能需要对 HoneyPLC 进行额外的修改以提供对某些协议的支持。
下图展示了使用 Nmap 对三个真实西门子 PLC 模型及 其对应的 HoneyPLC 扫描 10 次的结果:对于所有三个 PLC 模型,真实的 PLC 获得了略微更高的置信度,并且 HoneyPLC 提供的配置文件非常接近,由此表明 HoneyPLC 能够提供有效的隐蔽性。
与上一个实验类似,研究者利用 Shodan 获得了每个 HoneyPLC 和真实 PLC 配置文件的 Honeyscores,结果如下图所示:Shodan 为 S7-300 配置文件分配的 Honeyscore 为 0.0,S7-1200 和 S7-1500 配置文件的为 0.3。此实验结果再次表明 HoneyPLC 能够有效地保持隐蔽性。
研究者最后利用 PLCinject 与 HoneyPLC 主机进行交互,通过命令行注入梯形逻辑程序,然后使用 Step7 Manager 编写并注入了一个梯形逻辑程序样本到 HoneyPLC 中。注入完成后,在蜜罐文件系统中找到了梯形逻辑文件及其对应的时间戳。并且还从 HoneyPLC 的 S7comm 服务器下载了上传的示例程序,并使用梯形图逻辑编辑器证实示例程序已保存在 HoneyPLC 的 S7comm 服务器中,该结果说明 HoneyPLC 能有效地捕获梯形图逻辑代码。
5、总结
本文提出了 HoneyPLC,一个高交互、可扩展且可收集恶意软件的蜜罐,其达到了与真实 PLC 设备相当的性能水平,显著推动了该领域的技术发展水平。此外,本文还提供了实验证据以表明 HoneyPLC 的性能优于文献中现有的蜜罐,为现有蜜罐存在的低交互性、低可扩展性和低隐蔽性等局限提供了解决方案。
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com
声明:本文来自安全学术圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。