当前位置:   article > 正文

HoneyPLC:A Next-Generation Honeypot for Industrial Control Systems_honeyd namp指纹

honeyd namp指纹

(这是一篇20年CCS文章,本文链接HoneyPLC:A Next-Generation Honeypot for Industrial Control Systems_sun/的博客-CSDN博客

最近在做这篇文章的复现工作,哈哈~~ 希望顺利

下面做了一份ppt,水平有限!!!!!

链接:https://pan.baidu.com/s/1VJ3cp7KPPjUGMm0Xan79tQ?pwd=tuyb 
提取码:tuyb 
--来自百度网盘超级会员V5的分享

目录

摘要

1 介绍

2 背景和相关工作

2.1 可编程逻辑控制器

2.2 网络扫描工具

2.3 典型的ICS恶意软件

2.4 ICS中的蜜罐

3 当前蜜罐的局限

4 HoneyPLC:一个方便的高交互PLC蜜罐

4.1 说明性用例场景

4.2 支持PLC可拓展性

4.3 支持隐蔽操作

4.4 梯形图收集

4.5 用日志保存记录 

5 评估

5.1 实验问题

5.2 案例研究:配置西门子PLC

5.3 案例研究:Allen-Bradley和ABB PLC

5.4 弹性侦查实验(不知道是什么意思)

5.5 Shodan的蜜罐得分实验

5.6 Step7 Manager实验

5.7 互联网交互实验

5.8 梯形图捕捉实验

6 讨论和未来工作

7 结论

8 致谢(略)


摘要

工业控制系统(ICS,Industrial Control Systems)为重要公共设施提供了管理和控制能力,例如核、电、水和交通网。在工业控制系统中,可编程逻辑控制器(PLC,Programmable Logic Controllers)在连接网络和现实世界发挥着关键作用。例如,控制核电站的离心机。ICS和PLC发挥重要作用的同时也使它们成为复杂网络的攻击目标,这些攻击旨在破坏它们的运作,从而造成社会动荡和经济损失。本文中,证明了蜜罐是收集真实数据(例如恶意软件的数据)的有效工具,便于更好地分析攻击者使用的方法和策略。

然而,现有的最先进的蜜罐PLC缺乏获取有价值数据所需的复杂模拟服务。另外,随着恶意软件的进步,无法应对更复杂的攻击。为了解决这些问题,本文提出了HoneyPLC。HoneyPLC是一个高交互、可扩展和恶意软件收集的蜜罐,支持多种PLC模型。实验结果表明,HoneyPLC有很高的伪装水平,被多种检测工具识别为真实设备,包括Nmap、shodan的honeyscore、西门子Step 7 Manafer、PLCinject和PLCScan,具有很高的可信度。我们在亚马逊AWS上部署了HoneyPLC,并在网上记录了大量的交互信息。这表明了ICS系统能吸引攻击者并且HoneyPLC可以收集数据样本,收集的数据可以用于分析以便于将来更好的吸引和欺骗攻击者。

1 介绍

工业控制系统(ICS)应用在很多行业,包括公共事业,如电网、供水、电信。这些公用设施是人们日常不可缺少的部分,因此ICS的遭到攻击可能造成重大的破坏和损失。现代集成电路使ICS比以前更容易受到网络攻击。比如,针对电网的网络攻击可能导致一个城市停电,Stuxnet恶意软件第一次向世界展示了ICS不安全以来,针对ICS的攻击数量稳定上升。2015年,针对乌克兰电网的网络攻击成功摧毁了几个配电站,导致22.5万人受到停电影响。

ICS网络的关键组件之一是可编程逻辑控制器,也就是我们熟悉的PLC。PLC控制着关键的电器硬件,如泵和离心机,充当着网络世界和现实物理世界的连接桥梁。由于其关键作用,PLC最近成为网络攻击的目标,这些攻击者目的是破坏正常运行的ICS。例如,Stuxnet的主要破坏目标就是PLC,因为PLC控制着核设施的关键部分。为了更好地理解ICS和PLC网络攻击,提出了几个蜜罐包括HoneyNet、CryPLH、Gaspot、Conpot、HoneyPhy、S7commTrace。然而,目前的ICS蜜罐无法捕获最新的攻击技术。例如,文献中大多数现有方法所表现出的一个共同局限性是低交互性,由于只能对网络协议进行浅层模拟,和攻击者的交互收到限制,容易被攻击者发现。这些缺点影响ICS收集到更多更有价值的攻击数据。

想要解决这些问题,还面临着一些挑战。首先,很难一步一步的模拟协议最终实现蜜罐和攻击者的高交互。这些不充分的模拟使蜜罐容易被识破,除非提供准确可用的数据,可以进一步分析攻击者的恶意逻辑代码。其次,ICS中对几个网络协议大量使用,例如S7 comm是私有的,没有公开的文档,阻碍了对协议的有效理解,配置参数也是非公开的,这会导致蜜罐被识破。最后,实际中PLC在配置参数、协议以及定制的应用程序方面各不相同。创建一个通用框架并且省去编写大量配置文件时间是个很大的挑战。

针对上述问题和挑战,本文提出了HoneyPLC。HoneyPLC是一种专门为ICS设计的高交互蜜罐,具有可扩展和信息收集功能。能够对常见网络协议进行高级模拟,这些网络协议包括TCP/IP堆栈、S7comm、HTTP和SNMP,解决了前面讨论的模拟不充分的问题。例如,TCP/IP堆栈模拟引入了一种叫做指纹反转的新技术,该技术允许运行状态下对TCP、ICMP和UDP进行精确建模,为攻击者发起的每个交互提供有效地响应,极大的提高了参与程度和欺骗性。此外,对PLC通信核心的S7comm协议提供了模拟,甚至能够欺骗西门子Step7 Manager等专有工具。此外,HoneyPLC还提供了增强的可扩展性特征,允许对不同型号和品牌的PLC进行有效的模拟,解决了PLC异构挑战。已经成功地使用五个真正的PLC测试了这一功能,目前HoneyPLC已经支持西门子S7-300、S7-1200和S7-1500,Akkeb-Bradley MicroLogix 1100和ABBPM554-TP-ETH PLC。honeyPLC还实现了现代PLC特有的内部内存块的高级模拟,允许自动捕获和存储恶意逻辑程序,随后可以对其进行技术分析,以揭露新的攻击技术。

以上讨论的特性是HoneyPLC特有的,大大提高了ICS蜜罐的技术水平。这使得HoneyPLC成为一种方便灵活的工具,可以作为分析新兴威胁和攻击的可靠基础,以及帮助ICS保护技术的开发。

本文的贡献如下:

  (1)总结了现有的ICS蜜罐的局限性和缺点,并讨论了它们如何解决(或者不解决)新出现的恶意软件威胁,以及新的ICS技术,例如新的PLC模型和ICS网络协议。

  (2)提出了一个高交互的PLC蜜罐HoneyPLC,它不仅解决了相关方法的许多局限性,而且为进一步理解并最终战胜ICS的新威胁提供了方便的支持。

  (3)介绍了HoneyPLC PLC Profiler工具,允许有效模拟许多不同的PLC,无视型号和制造商。

  (4)最后,提供实验证据,表明HoneyPLC不仅在吸引和欺骗最先进的网络扫描工具方面有效,而且优于文献中提到的现有蜜罐,达到与实际PLC设备相当的性能水平。

2 背景和相关工作

在这一节中,介绍PLC(2.1节)、网络扫描工具(2.2节)、ICS恶意软件(2.3节)和ICS蜜罐(2.4节)的背景。

2.1 可编程逻辑控制器

可编程逻辑控制器(PLC)是一种小型工业计算机,设计用于根据电器硬件(如泵、继电器、机械计时器、开关等)提供输入执行逻辑功能。PLC具有控制复杂工业过程的能力,使其在ICS和SCADA环境中无处不在。一些流行的PLC制造商包括西门子(Siemens)、艾伦-布拉德利(Allen-Bradley)和ABB。在内部,PLC具有可编程的内存块,存储实现不同功能的指令,例如输入和输出控制、计数、逻辑门和算数运算。

2.2 网络扫描工具

Nmap。Nmap(Network Mapper)是一款流行的开源实用程序,能够通过在网络上发送原始IP包来检测特定设备正在运行的操作系统和服务。一旦完成给定的检测扫描,Nmap可以报告单个操作系统和匹配和潜在的操作系统猜测的列表,每个猜测都有自己的置信度百分比,范围为0到100,其中0表示完全没有置信度,100表示对预测猜测结果的完全置信度。

PLCScan。PLCScan用于扫描给定端口中的PLC设备。PLCScan通过扫描TCP/102端口实现的S7comm协议或通过扫描TCP/502端口实现的Modbus协议。它由Python编写,并列出PLC信息,包括基本硬件,序列号,PLC名称和固件版本。

Shodan。Shodan是一个专门为互联网上设备量身定制的搜索引擎和爬虫。寻找着网络摄像头、路由器、ICS设备等。Shodan Honeyscore(Shodan API的一部分)是一个检查设备是否是蜜罐的工具。给出一个IP地址,Shodan HoneyScore计算主机是蜜罐的概率,范围在0.0到1.0之间,其中0.0表示主机肯定是一个真实的系统,1.0表示主机肯定是一个蜜罐。根据Shodan的创建者,以下标准用于Honeyscores的计算:

  (1)开放过多的网口

  (2)服务与环境不匹配,例如在AWS EC2上运行的ICS设备

  (3)已知蜜罐的已知默认设置

  (4)如果一个主机之前被归类为蜜罐,即使现在看起来是真实的,可能依然是蜜罐。

  (5)机器学习分类算法(未公开)

  (6)多个蜜罐使用相同的配置

2.3 典型的ICS恶意软件

Stuxnet。已知的第一个网络战武器Stuxnet是网络安全历史上的一个转折点,针对西门子制造的PLC型号315和417修改其内部梯形图代码(下方有梯形图的介绍),同时隐藏自己不被ICS管理员发现。恶意软件首先会通过U盘和本地网络传播,寻找易受攻击的Windows工作站。随后,它会通过劫持同于PLC通信的动态链接库(DLL)文件来感染Step7和WinCC西门子专有软件。最后,在前面的模型中,恶意梯形图数据会基于特定的制造商编号和内存块被清除。

Kemuri Incident。2016年,攻击者进入一家名为Kemuri的未公开供水公司的网络,针对数百个ICS设备,如阀门、后台文件和管理水处理化学过程的PLC。攻击者成功改变了大量的化学物质扰乱了水的供应,造成了相当大的破坏,并危机人类的生命。

Crashoverride。也被称为industriyer,是一种复杂的恶意软件,旨在破坏变电站中使用的ICS网络。它显示了对电气行业中使用的ICS协议的深入了解,这只有通过访问专门的工业设备才有可能实现。crashoverride通过打开断路器,并在电网运营商试图关闭断路器以恢复系统的情况下仍然保持打开状态,从而造成物理损害。这是2016年12月乌克兰停电的原因。

PLC编程入门【梯形图】 | 学习软件编程

2.4 ICS中的蜜罐

蜜罐是一种计算机系统,它有目的地暴露一组漏洞和服务,可以被攻击者探测,分析并最终利用,允许监视、记录和存储所有可能的交互数据以供将来分析。

低交互蜜罐。低交互蜜罐为攻击者提供的功能最少。这种蜜罐所公开的服务通常使用简单的脚本和有限状态机实现。由于它们的交互有限,攻击者可能无法完成攻击步骤,甚至可能意识到它们的目标是一个假系统。另一方面,低交互蜜罐不能完全被破坏,因为它们不是真正的系统,这大大降低了维护成本,配置和部署简单,降低了时间成本。Gaspot是一个用Python编写的低交互蜜罐,模拟油箱压力表,修改温度、罐名、体积参数。SCADA蜜网项目是第一个专门为ICS构建的蜜罐实现。这个项目旨在开发一个能够使用Python脚本模拟PLC等ICS设备的软件框架。Conpot也是一个低交互ICS蜜罐实现,模拟西门子S7-200 PLC,可以通过编辑XML文件动手修改以模仿其他PLC。

高交互蜜罐。高交互蜜罐努力提供与真实系统相同级别的交互。CryPLH是一个高交互蜜罐(我看有的说是低交互),它模拟西门子S7-300 PLC,包括运行在Linux主机上的HTTP、HTTPS、S7comm和SNMP服务,该主机已被修改为接受特定端口上的连接。通过显示错误的密码响应来模拟S7comm协议,通过Linux内核模拟TCP/IP堆栈。S7commTrace提供了S7comm协议的高交互模拟,并支持西门子S7-300 PLC。Antonioli等人提出了一个高交互蜜罐,利用MiniCPS框架来模拟以太网/IP协议和通用PLC。HoneyPhy提供了一种新颖的物理感知模型来模拟通用模拟恒温器和DNP3协议。

3 当前蜜罐的局限

(文中所提到的6个蜜罐文献如下)

【3】2020. SCADA HoneyNet Project: Building Honeypots for Industrial Networks.
http://scadahoneynet.sourceforge.net/

【9】Dániel István Buza, Ferenc Juhász, György Miru, Márk Félegyházi, and Tamás
Holczer. 2014. CryPLH: Protecting smart energy systems from targeted attacks
with a PLC honeypot. In Int.Workshop on Smart Grid Security. Springer, 181–192.

【39】Kyle Wilhoit and Stephen Hilt. [n.d.]. The GasPot Experiment: Unexamined
Perils in Using. ([n. d.]).

【15】Arthur Jicha, Mark Patton, and Hsinchun Chen. 2016. SCADA honeypots: An
in-depth analysis of Conpot. In 2016 IEEE conference on intelligence and security
informatics (ISI). IEEE, 196–198.

【21】Samuel Litchfield, David Formby, Jonathan Rogers, Sakis Meliopoulos, and Raheem
Beyah. 2016. Rethinking the honeypot for cyber-physical systems. IEEE
Internet Computing 20, 5 (2016), 9–17.

【40】Feng Xiao, Enhong Chen, and Qiang Xu. 2017. S7commTrace: A High Interactive
Honeypot for Industrial Control System Based on S7 Protocol. In Int. Conference
on Information and Communications Security. Springer, 412–423.

尽管之前讨论过蜜罐的优点,但目前表1所示的文献中的ICS蜜罐无法捕捉最新和最复杂的攻击数据,有以下几个局限性:

局限1:可扩展性差。当前文献中的一个常见问题是对ICS中实际使用的许多不同PLC设备和网络服务的可扩展性支持有限,这些设备和网络服务已经成为最近攻击的目标。例如,Stuxnet和Kemuri攻击针对不同类型的PLC,而CRASHOVERRIDE针对不同的网络服务,如第二节所述。在表1中,文献中的几种方法提供了有限的扩展功能,其中大多数通过编辑XML文件以支持其他PLC。这个过程除了繁琐和耗时外,还非常容易出错,导致蜜罐被攻击者发现。如表3所示,文献中的大多数方法只支持一两个开箱即用的PLC模型,加剧了这种情况。在后面4.2将讨论HoneyPLC Profiler Tool,其可以定制支持不同品牌和型号的PLC。例如,HoneyPLC目前支持3个主流品牌的5个PLC模型。

局限2:交互性差。在第二节中提到,目前针对TCP/IP堆栈模拟和本地ICS网络协议的方法很少。这是一个严重的问题,使当前方法很难从与攻击者交互和恶意软件中提取价值。例如,CRASHOVERRIDE利用了低交互蜜罐不支持的高级ICS协议特征。这最终会导致非常有价值的数据丢失。即使是高交互的蜜罐也无法提供足够的协议模拟。例如,CryPLH仅仅使用Python脚本实现模拟S7comm协议错误的密码屏幕。HoneyPLC通过其专用PLC配置文件实现网络协议的扩展来解决这一问题,我们将在4.3节中讨论,并在5.4-5.7节中通过实验进行评估。

局限3:操作隐蔽性差。一旦攻击者发现是蜜罐,游戏就结束了,因为攻击者为了避免透露攻击方法,可能停止与蜜罐交互。因此,蜜罐的目标是欺骗被广泛使用的网络扫描工具,例如2.2节中介绍的Nmap,以维持其秘密操作。在这方面,SCADA蜜网项目【3】是文献中唯一能完全骗过攻击者的方法。此外,Linux内核模拟由文献中的几种方法实现。例如,CryPLH,无法欺骗Nmap。其他工作没有尝试解决,甚至没有提到这一个重要的特征。为了解决这个问题,HoneyPLC提供了先进的网络模拟,旨在欺骗扫描工具,如Nmap,在4.3节中将演示。

局限4:不能收集恶意软件。ICS设备的高度专业化性质要求更好的分析、解剖和理解专门为新兴恶意软件趋势量身定制的技术。在这方面,如表1所示,文献中没有可以提供的这种功能的ICS蜜罐,在最近恶意软件注入攻击的情况下,这对ICS的安全性产生了严重的后果。例如,Stuxnet向目标PLC注入了恶意的梯形图代码。为了解决这个问题,HoneyPLC提供了一个新的特征来捕获梯形图,在4.4节和5.8节将阐述。

4 HoneyPLC:一个方便的高交互PLC蜜罐

在描述了现有方法的局限性后,现在介绍HoneyPLC,这事一个可扩展的、高交互性的、用于ICS的恶意软件收集的蜜罐。HoneyPLC提供了先进的协议模型,例如,TCP/IP、S7comm、HTTP和SNMP,实现了与真实PLC相当的交互级别,最终引入了一个说明性的用例场景,该场景举例说明了当试图破坏PLC时,HoneyPLC的不同内部模块和组件在运行时如何与攻击者交互。后续将详细介绍HoneyPLC如何解决第3节中强调的几个问题。

4.1 说明性用例场景

图1:HoneyPLC的架构。在部署之前,从数据库①中选择一个PLC概要文件。随后,在运行时,攻击者可能通过专用协议发起联系,例如S7comm②。然后,通信由个性引擎③处理,随后转发到S7comm服务器⑤,最终由交互数据框架⑥记录。最后,攻击者注入的所有代码都在存储库模块⑦中捕获。

初始设置。4.2节将讨论,HoneyPLC可以扩展到模拟不同型号、通信协议和/或制造商的PLC。考虑到这一点,使用HoneyPLC的第一步是选择像现实中PLC那样的PLC配置文件,这些PLC将作为蜜罐暴露给攻击者。这一过程如图1所示。PLC概要文件可以从包含部分HoneyPLC的专用存储库中选择。对于这个案例场景的其余部分,我们假设选择S7-1200型号。

指纹识别。一旦部署了HoneyPLC,攻击者可能会尝试使用Nmap或PLCScan等扫描工具对其进行指纹识别(图1,步骤②)。当建立初始联系时,所有的TCP/IP请求将由HoneyPLC的个性引擎处理,而该引擎是基于honey工具提供的特征,这将在4.3节中进一步讨论。(图1,步骤③)。由于一开始选择的是S7-1200 PLC型号,因此个性引擎将使用PLC配置文件中包含的适当指纹来回复由Nmap启动的通信。在这一点上,Nmap可能会向攻击者确认,正在处理一个PLC而不是一个蜜罐,将在第5节展示。

侦查。在接下来的步骤中,攻击者可能会尝试启动一个S7comm连接,以检查哪些PLC内存块可用。如第2节所述,至关重要的过程是试图修改PLC的内部梯形图代码。首先,HoneyPLC的网络服务模块负责处理连接。然后,转发到专用的S7comm服务器(图1,步骤④)。S7comm服务器返回请求的信息,集成框架将应答转发给攻击者。同时,S7comm服务器将记录所有交互,包括攻击者的源IP地址和向PLC发出的内存块请求。

代码注入。此时,当攻击者识别出适合注入的PLC内存块时,攻击者使用类似PLCinject这样的S7comm应用程序将梯形图代码加载到PLC中,有效地覆盖任何预先存在的代码并引入定制的恶意数据(图1,步骤⑤)。因此,HoneyPLC的S7comm服务器将把代码写入专门的HoneyPLC存储库,该存储库由交互数据模块管理(图1,步骤⑥⑦)。

在这个案例场景完成后,HoneyPLC可能已经能够在其日志基础设施中收集有关攻击的关键信息:

(1)攻击者的公共IP地址

(2)攻击者针对的特定PLC内存块,以及最关键的部分

(3)攻击者注入的梯形图程序,可以在字节层面上分析这样的恶意软件样本,以更好地理解攻击者希望PLC执行的恶意指令。在第6节中,我们将详细阐述这一想法,作为我们未来工作的一部分。

4.2 支持PLC可拓展性

PLC配置文件。如图1(步骤①)所示,PLC配置文件存储库是PLC配置文件的集合,其中包含模拟给定PLC所需的所有数据。它与集成框架和网络服务模块通信,以定制HoneyPLC在任何给定时间模拟的PLC,并解决局限1中讨论的缺乏可扩展性的问题。反过来,PLC配置文件是三个离散数据集的集合,它允许HoneyPLC通过模拟高度定制的网络交互来模拟特定的PLC设备。网络交互的模拟,将在4.3节中讨论。

  • SNMP MIB。MIB(Management Information Base,管理信息库)是SNMP代理使用的标准。因为大多数PLC设备实现一个简单的SNMP代理,HoneyPLC需要一个自定义MIB来提供真实的SNMP模拟。
  • Nmap Fingerprint。一个带有Nmap指纹的纯文本文件,可以有效地模拟特定PLC设备的TCP/IP堆栈,后续将详细介绍。该指纹使HoneyPLC能够有效地攻击和欺骗著名的扫描工具,如Nmap。
  • Management Website。一些PLC设备提供带有启动屏幕和一些配置选项的轻量级web服务器。因此,PLC配置文件包括此类网站的副本,包含但不限于图像、HTML和CSS文件。

PLC配置文件工具。HoneyPLC配置文件工具可以自动创建新的HoneyPLC配置文件。它与三个不同的应用程序交互:Nmap、snmpwalk和wget。为了获取目标PLC的配置文件,HoneyPLC Profiler获取PLC设备的IP地址作为输入。接着,运行一系列查询,从前面描述的目标PLC获得三组离散的数据:SNMP MIB、网站目录和Nmap fingerprint。首先,snmpwalk用于从只读社区字符串中读取所有可能的对象id(OIDs),创建一个与PLC使用的相同的MIB。除了其他重要的配置设置外,OIDs可以包括PLC的唯一标识符及其基本IP地址。其次,Nmap的操作系统检测用于获取目标PLC的TCP/IP堆栈指纹,该过程包括扫描所有已知的TCP和UDP端口。HoneyPLC的集成框架稍后将利用这个指纹来提供有意义的TCP/IP交互来作为对攻击者发起的请求的相应。第三,使用wget下载启动画面或管理网站的完整副本(如果有的话)。最后,HoneyPLC Profiler将在其转筒的PLC Profile Repository(如图1,步骤①所示)中创建一个可由HoneyPLC使用的自定义目录,以模拟目标PLC。

4.3 支持隐蔽操作(欺骗)

图2:HoneyPLC个性引擎:首先,从存储库中选择一个PLC配置文件,包括它的Nmap指纹①。当攻击者试图使用Nmap指纹HoneyPLC时,这样的工具将发送一系列探针来确定操作系统或设备②。然后HoneyPLC将以适当的响应来模拟真实的PLC,从而有效地欺骗Nmap和攻击者③。

 

图3:HoneyPLC SNMP和web服务器代理。从PLC概要文件中获取的MIB数据库和Website HTTP文件首先由每个代理①加载。然后,攻击者可以使用SNMPWalk和HTTP客户端与HoneyPLC建立连接②。随后,每个代理使用从PLC配置文件③中获得的信息来回复每个请求。

TCP/IP模拟。在HoneyPLC的集成框架(如图1所示)中,通过利用honey(蜜罐模拟的流行框架)以及Nmap实现了复杂的TCP/IP堆栈模拟,该过程如图2所示。最初,当HoneyPLC对一个新的PLC建模时,会使用Nmap为其生成详细的TCP/IP堆栈指纹。接着,通过将指纹附加到Honeyd的nmap-os-db文本文件,这样的指纹将与Honeyd指纹数据库集成。然后,在运行时,当类似Nmap这样的工具试图对HoneyPLC主机进行指纹识别时,HoneyPLC个性引擎(利用Honeyd)将使用适当的指纹信息进行响应。为了实现这一点,引擎从Nmap的数据库中读取一个特定的指纹并反转它,这意味着当Honeyd模拟一个特定的设备时,它会引入它的IP/TCP堆栈特征:TCP SYN包标志、IMCP包标志和时间戳。

生成精确的Nmap指纹带来了各种各样的挑战。首先,不同制造商和型号的PLC设备使用不同的UDP和TCP端口,这些端口不是标准的,或者在设备手册中没有正确定义。例如,MircoLogix 1100 PLC的端口2222。缺乏异质性要求我们执行人工检查,这是耗时且容易出错的。其次,我们分析了包括指纹结果的Nmap报告,并球盖格式以与honey指纹数据库兼容。此外,创建精确的honey模板也带来了一系列挑战。对于HoneyPLC来说,提供增强的交互功能,可以使攻击者长时间参与攻击(将会在4.3节进一步阐述),我们显著改进了honey中包含的标准模拟脚本。具体来说,我们使用了honeyd提供的子系统虚拟化特征:该特性促进了不同HoneyPLC组件的集成。

S7comm Server。在HoneyPLC的网络服务模块中,如图1所示,S7comm服务器提供了西门子专有协议的复杂模拟。它模拟了一个真实的西门子PLC,并通过TCP端口102暴露了几个内存块。在撰写本文时,西门子还没有发布S7comm协议的规范,可用的信息已经由第三方收集,如Snap7项目和Wireshark Wiki。利用Snap7框架用C++编写了一个S7comm服务器应用程序。修改并重新便于了Snap7主库的源代码,以添加自己的功能。其中包括记录S7comm交互,梯形图捕获,以及所有3中新门子PLC型号的PLC固件规范。例如,CPU型号、序列号、PLC名称标签、版权等。

SNMP Server。在HoneyPLC的网络服务模块中,SNMP代理实现了SNMP协议的高级模拟和可信的MIB数据,有效地允许HoneyPLC响应任何外部SNMP服务查询。SNMP在实践中通常用于监控网络连接的设备,并通过UDP端口161监听请求。由于真正的PLC确实实现了SNMP代理,实现这个子组件增加了HoneyPLC的欺骗能力。我们的模拟过程如图3(上部)所示,可以如下描述:在实践中,典型的SNMP设置包括一个Manager模块和一个Agent模块。SNMP Manager不断地向Agent查询最新的数据。SNMP Agent公开一组数据,称为管理信息库或MIB。为了模拟SNMP协议,我们使用了轻量级Python应用程序snmpsim,它基于实时或存档的MIB数据模拟SNMP代理。当HoneyPLC接收到SNMP请求时,SNMP Agent会像真正的PLC一样用OID进行响应。

HTTP Server。最后,HoneyPLC的HTTP服务提供了真实PLC的HTTP服务器的高级模拟,在真实PLC中找到的网站,如图3(下部)所示。例如,大多数西门子PLC设备包括一个可选的HTTP服务来管理一些内部配置功能。这个功能是由lighttpd实现的,这是一个轻量级web服务器,可以处理所有的HTTP任务。当HTTP请求到达HoneyPLC时,它的集成框架将请求中继到lighttpd服务器。稍后,web服务器用来自HoneyPLC配置文件的网站数据进行回应。

4.4 梯形图收集

HoneyPLC的S7comm服务器拥有新颖的梯形图捕获功能。它写下攻击者上传到HoneyPLC的任何梯形图程序。攻击者将梯形图程序上传到HoneyPLC的任意S7comm Server内存块,并相信它是一个真正的PLC,该特征会自动将它们以及时间戳写入文件HoneyPLC文件系统。这些捕获的梯形图程序可以在后续阶段进行字节层面上的分析,以揭露梯形图指令,然后提取对手针对PLC使用的新攻击模式。我们使用C++实现了基于Snap7框架的Ladder Logic Captuyre组件,其方式与S7comm Server类似。此外,我们修改了Snap7框架主库文件,以便在Linux操作系统层次集成此特性。

4.5 用日志保存记录 

交互数据组件保存了HoneyPLC收集的所有交互数据,它维护两种数据。第一个是它包含S7comm服务器、SNMP代理和HTTP服务器产生的所有日志。第二个是它包含所有通过S7comm服务器注入的梯形图程序。该组件直接与Network Services组件通信。

首先,我们配置了honey,lighttpd,snmpsim和S7comm Server来自动记录所有的交互。S7comm Server在读写时,将所有的交互,包括初始主机的IP地址、时间戳、内存块ID写入文件系统。然后,snmpsim记录IP信息、被访问的OID和时间戳。最后,lighttpd web服务器包括现代web服务器的所有主要功能,详细的日志记录,包括IP地址信息,访问网站文件和时间戳。它们都会一直记录每一次交互。

5 评估

图4:实验用的PLC,从左到右依次为西门子S7-300、S7-1500、S7-1200、Allen-Bradley MicroLogix 1100和ABB PM554-TP-ETH。

正如第四节所示,HoneyPLC的设计可以有效地欺骗攻击者,使其相信攻击的是真正的PLC。本节首先列举了一组实验性问题,这些问题基于第3节中所述的现有方法的局限性。然后,为了提供由实验证据支持的肯定答案,我们提出了一系列实验。为此,我们使用了以下PLC型号:西门子S7-300、S7-1200和S7-1500,以及Allen-Bradley MicroLogix 1100,ABB PM554-TP-ETH,如图4所示,这些信号在现实中很常见。举个例子,Shodan上的查询显示了来自几个不同国家的1700多个面向互联网的PLC。对于每个实验,我们描述了它的环境设置、使用的方法和获得的结果。表2显示了我们将HoneyPLC与文献中其他蜜罐进行比较的实验摘要,这些蜜罐的实现可以在网上获得,也可以根据作者要求去实现。下面将对所获得的结果进行描述,并在第6节中对HoneyPLC与相关工作进行了比较。

5.1 实验问题

问题1:HoneyPLC能否支持真实的PLC?

由于目前的方法对ICS在实践中广泛使用的各种类型的PLC提供了有限的支持,我们有兴趣探索HoneyPLC使用第4.2节中描述的PLC配置文件工具对不同PLC建模的能力。这个问题与局限1有关,如第3节所述。我们努力在第5.2节和5.3节中回答这个问题。

问题2:HoneyPLC能否隐藏自己?

更具体地说,HoneyPLC能骗过广泛使用的监测工具吗?此外,我们对部署在互联网上的HoneyPLC获得的交互证据很感兴趣。这个问题与局限2以及局限3有关。我们将在第5.4节、第5.5节和第5.7节详细阐述这个问题。

问题3:HoneyPLC能否有效捕获梯形图代码?

由于获取梯形图代码是分析ICS威胁的一个非常理想的功能,因此我们有兴趣探索HoneyPLC的能力,如第4节所述,正确执行此类任务。这个问题与局限4有关,并在第5.8节中讨论。

5.2 案例研究:配置西门子PLC

【39】Kyle Wilhoit and Stephen Hilt. [n.d.]. The GasPot Experiment: Unexamined
Perils in Using. ([n. d.]).

【3】2020. SCADA HoneyNet Project: Building Honeypots for Industrial Networks.
http://scadahoneynet.sourceforge.net/

【15】Arthur Jicha, Mark Patton, and Hsinchun Chen. 2016. SCADA honeypots: An
in-depth analysis of Conpot. In 2016 IEEE conference on intelligence and security
informatics (ISI). IEEE, 196–198.

【38】Susan Marie Wade. 2011. SCADA Honeynets: The attractiveness of honeypots as
critical infrastructure security tools for the detection and analysis of advanced
threats. (2011).

【10】Jianhong Cao, Wei Li, Jianjun Li, and Bo Li. 2017. Dipot: A distributed industrial
honeypot system. In Int. Conference on Smart Computing and Communication.
Springer, 300–309.

【19】Kamil Kołtyś and Robert Gajewski. 2015. Shape: A honeypot for electric power
substation. J. of Telecommunications and Information Technology 4 (2015), 37–43.

【9】Dániel István Buza, Ferenc Juhász, György Miru, Márk Félegyházi, and Tamás
Holczer. 2014. CryPLH: Protecting smart energy systems from targeted attacks
with a PLC honeypot. In Int.Workshop on Smart Grid Security. Springer, 181–192.

【40】Feng Xiao, Enhong Chen, and Qiang Xu. 2017. S7commTrace: A High Interactive
Honeypot for Industrial Control System Based on S7 Protocol. In Int. Conference
on Information and Communications Security. Springer, 412–423.

【7】Daniele Antonioli, Anand Agrawal, and Nils Ole Tippenhauer. 2016. Towards
high-interaction virtual ICS honeypots-in-a-box. In Proc. of the 2nd ACM Workshop
on Cyber-Physical Systems Security and Privacy. 13–22.

【21】Samuel Litchfield, David Formby, Jonathan Rogers, Sakis Meliopoulos, and Raheem
Beyah. 2016. Rethinking the honeypot for cyber-physical systems. IEEE
Internet Computing 20, 5 (2016), 9–17.

如第3节所述,目前最先进的PLC蜜罐是在有限数量的PLC上建模的,如表3所示,并且对任何扩展的支持都非常有限。因此,我们有兴趣探索HoneyPLC支持不同型号和制造商PLC的能力。

环境描述。对于我们的第一个案例研究,我们采购了3个西门子PLC:S7-300、S7-1200和S7-1500,如图4所示。每个PLC连接到一个特殊的电源和数据或以太网电缆。此外,我们使用了Siemens Step7 Manager工具来配置IP地址。我们还在连接PLC的笔记本电脑主机上部署了HoneyPLC Profiler Tool和python3。

方法。我们将每个PLC模型连接到我们的实验笔记本电脑主机,并使用基于命令行的HoneyPLC Profiler Tool为这三个PLC创建PLC配置文件。要启动该工具,我们输入PLC IP地址和PLC配置文件目录的名称。当HoneyPLC Profiler Tool开始从PLC程序查询数据时,将显示包含错误消息(如果有的话)。在开发和测试分析器工具时,我们遇到了一些困难。首先,我们必须扩大扫描的端口数量,以获得更好的Nmap指纹,这样Nmap报告的置信度就更高。我们还必须对下载PLC网站进行调整,以包含图像和正确的HTML路径。此外,还需要手动修改PLC的HTML配置文件,以纠正断开的链接。

结果。总的来说,我们成功地创建了3个PLC配置文件。这些概要文件保存在我们的实验笔记本主机文件系统中,稍后在本节描述的其他实验中使用。HoneyPLC Profiler Tool创建每个配置文件大约需要5分钟,我们只需要对一些HTML文件进行一些小的手动修改。对于西门子生产的PLC,如果SNMP和web服务器服务事先按照制造商提供的说明或使用任何其他S7commenabled软件(例如Step7 Manager)正确激活,则可以方便检索其相应的配置文件。执行此步骤失败可能导致创建不完整的概要文件。

5.3 案例研究:Allen-Bradley和ABB PLC

此外,我们有兴趣探索HoneyPLC对其他制造商PLC支持的能力,因此我们可以为有兴趣获得其他PLC配置文件的从业者提供一些建议。

环境描述。在本案例研究中,我们采购了Allen-Bradley MicroLogix 1100和ABB PM554-TP-ETH plc,如图4所示。此外,我们使用AllenBradley和ABB软件工具来配置它们的IP地址。

方法。与前面的案例研究一样,我们在一台笔记本主机中部署了HoneyPLC Profiler Tool和Python 3,并将每个PLC连接到一个专用电源。此外,我们将每个PLC模型连接到我们的实验笔记本电脑主机,并像以前一样使用我们基于命令行的HoneyPLC Profiler Tool。

结果。我们成功地为每个PLC生成了配置文件,并提出以下建议。第一,对于非西门子PLC,可能有必要识别它们提供的网络服务,因为不同的供应商可能在不同的端口上实现各种协议。例如,Allen-Bradley MicroLogix 1100 PLC使用端口80来实现轻量级web服务器,类似于西门子PLC,而ABB PM554-TP-ETH没有实现这样的功能。第二,所研究的两个非西门子PLC不支持SNMP服务,这使得HoneyPLC Profiler Tool无法检索MIB数据库。第三,Allen-Bradley MicroLogix 1100 PLC在2222端口上实现了行业标准的EtherNet/IP协议,这与使用专有S7comm协议的西门子型号不同。这些差异可能最终导致PLC配置文件与Siemens PLC所获得的配置文件不同,并且可能需要随后逐个解决。第四,Siemens plc使用专有的S7comm协议来加载梯形图程序,Allen-Bradley MicroLogix 1100使用EtherNet/IP协议。在这方面,ABB PM554-TPETH PLC使用Nucleus Sand数据库,该数据库主要用于数据库记录保存,在PLC设备中使用不习惯。由于HoneyPLC目前不支持这两种协议,因此可能需要进行额外的修改。例如,对于M554-TP-ETH PLC Profile,我们修改了Honeyd模板以开放端口1201作为Nucleus Sand DB模拟,目前不支持使用子系统虚拟化。对于MicroLogix 1100 PLC配置文件,我们修改了配置文件工具端口扫描范围,不仅包括众所周知的端口,还包括注册端口,如端口2222。

        最后,表3提供了PLC模型支持ICS相关蜜罐进行开箱即用的比较,表1也显示了这些蜜罐。在我们的两个案例研究中获得的积极结果支持了对问题1的肯定回答。

5.4 弹性侦查实验(欺骗性)

图5:Nmap扫描结果。所有3个配置文件都获得了至少90%的置信率。S7-300和S7-1200配置文件获得了与实际同类产品相当的速率。

一旦HoneyPLC(或任何其他蜜罐)被暴露给攻击者,所收集的交互数据的数量和价值可能会显著降低。因此,我们的目标是测试HoneyPLC对Nmap和PLCScan的弹性,这是第2节中描述的众所周知的侦察工具。此外,我们测试了现有的蜜罐,即Gaspot、S7commTrace、SCADA HoneyNet、Conpot。

环境描述。我们的实验装置由两台物理计算机组成:一台台式机和一台笔记本主机。桌面主机采用Ubuntu 18.04 LTS和HoneyPLC,以及以下工具:Honeyd、lighttpd、snmpsim和S7comm服务器。我们从源代码构建了Honeyd版本1.6d,最新版本在官方GitHub存储库中可用。此外,我们还安装了lighttpd web服务器版本1.4.45。接下来,我们安装了snmpsim 0.4.7版本及其所有依赖项。最后,我们安装了S7comm服务器和自定义库。相反,笔记本电脑主机包括最新版本的Nmap 7.80,以及Nmap指纹数据库Nmap-os-db中的三个西门子plc指纹,这些指纹都是之前实验获得的。此外,我们安装了最新版本的PLCScan从GitHub获得。两台主机通过以太网电缆直接连接。随后,我们下载并部署了前面提到的相关蜜罐,并将它们连接到扫描主机,以便所有蜜罐都在本地网络中。

方法。为了创建一个基线来比较我们的实验结果,我们获得了前面实验中所描述的真实PLC的Nmap置信度数据。考虑到这一点,一个第二个测试环境由另外的Ubuntu 18.04 LTS和Nmap 7.80主机组成。后来,另外的主机使用以太网线直接连接到三个不同plc (S7-300、S71200和S7-1500)中的一个。为了配置PLC的网络设置,我们安装了Step7 Manager。接下来,在启用OS检测的情况下进行两组不同的Nmap扫描。一套用于HoneyPLC,另一套用于真正的PLC。每个PLC模型扫描10次。对于HoneyPLC实验,安装了相应的HoneyPLC配置文件,以便正确配置上述应用程序。接下来,我们使用PLCScan以类似于Nmap方法的方式扫描每个PLC配置文件。之后我们转向Gaspot, S7commTrace, SCADA HoneyNet和Conpot。每个蜜罐在启用Nmap的OS检测的情况下扫描10次。最后,我们在S7commTrace, SCADA HoneyNet和Conpot上使用了PLCScan。Gaspot被省略了,因为它不支持S7comm协议。

结果。我们的Nmap实验结果如图5所示,结果表明,对于三种PLC模型,真实PLC以较小的幅度获得了最佳置信度。然而,HoneyPLC提供的PLC Profiles非常接近,因此提供了积极的证据,证明我们的方法可以提供有效的隐蔽性,正如我们的问题2要求的那样。这些结果令人鼓舞,因为对于所有集合的所有扫描,Nmap以最高的置信度识别了正确的PLC模型。我们的PLCScan实验也很成功,因为我们能够使用PLCScan对HoneyPLC的所有三个PLC配置文件获得并提供真实的PLC数据。此外,SCADA HoneyNet被识别为西门子CP 343-1 PLC,然而,Gaspot, S7commTrace和Conpot被指纹识别为Linux操作系统,具有100%的置信度,没有提到任何PLC设备。关于PLCScan, Conpot被识别为S7-200 PLC, SCADA HoneyNet和S7commTrace提供了连接信息,但显示一个空的PLCScan报告。我们的结果甚至更重要,因为一个Linux内核模拟TCP/IP堆栈,由几个相关的方法实现,包括Gaspot和Conpot,不会欺骗Nmap。

这个结果说明HoneyPLC很成功,其他几个蜜罐都被识别为其他PLC或者被识破。

5.5 Shodan的蜜罐得分实验

图6:Shodan Honeyscore Results。我们的HoneyPLC PLC配置文件比Shodan的其他蜜罐表现更好,与真正的PLC处于同一水平。

与前面的实验一样,第2.2节中描述的Shodan在实践中被积极利用,以及其相应的Shodan API,以高精度检测暴露在互联网上的蜜罐。因此,我们对HoneyPLC处理这种最先进侦察工具的能力很感兴趣。

前面的Nmap只是小试牛刀,这里挑战更厉害的Shodan。

环境描述。在这个实验中,我们部署了三个AWS EC2实例,可从Internet访问,规格如下:2 vCPU, 4GB RAM和Ubuntu 18.04 LTS操作系统,公开TCP端口80和102以及UDP端口161。然后,按照前面实验中详细介绍的配置步骤,我们将HoneyPLC部署在3个PLC配置文件的设备上。我们还部署了另外4个AWS实例主机Conpot、Gaspot、S7commTrace和SCADA HoneyNet。

方法。我们获得了Shodan的蜜罐分数,其方法在第2.2节中描述,我们的每个HoneyPLC的PLC配置文件,相同PLC型号的其他蜜罐,公开暴露在互联网、Gaspot、Conpot,、S7commTrace和SCADA HoneyNet。为此,我们利用Shodan收集面向互联网的真实PLC和标记为蜜罐的PLC数据。我们查看了开放端口、地理位置、Honeyscore、PLC模型和IP地址。后来,我们将这些数据与我们的HoneyPLC PLC profile所获得的数据进行了比较。一旦部署到互联网上,Shodan花了大约一周的时间来索引我们的蜜罐,并识别端口102和80上的S7comm和HTTP服务。

结果。我们的Shodan实验结果,如图6所示,显示Shodan为我们的S7-300配置文件分配了0.0的蜜值(蜜罐得分),以及这个蜜值如何与真实的S7-300 PLC和其他S7-300蜜罐进行比较。此外,我们的S7-1200和S7-1500配置文件获得了0.3的Honeyscore,这与由Shodan索引的真实S7-1200 PLC所获得的结果相当。不幸的是,在进行这个实验时,我们无法在Shodan找到任何S7-1200蜜罐进行比较。至于其他四个AWS实例,S7commTrace、Gaspot和SCADA HoneyNet没有被Shodan索引,因为当Shodan的爬虫试图与它们交互时,它们崩溃了。因此,他们无法获得蜂蜜评分。然而,Conpot被成功索引,并被分配了0.3的Honeyscore。

上面提到,Honeyscore的值反映的是蜜罐可能性大小,0.0表示是真实PLC,1.0表示是蜜罐。

总的来说,这些结果为问题2提供了令人信服的证据,表明HoneyPLC能够有效地对最先进的侦察工具保持秘密性。

5.6 Step7 Manager实验

我们设计了一个实验来测试HoneyPLC的S7Comm Server(在第4.3节中讨论)应对Step7 Manager的能力,Step7 Manager是一种西门子专有软件,用于配置以及编写和上传梯形图程序到PLC。为了进行比较,在支持S7comm协议的Conpot、SCADA HoneyNet和S7commTrace上执行相同的实验,如表2所示。

S7Comm应对Step7 Manager能力,HoneyPLC与其他蜜罐都具备S7comm服务,比较这几个蜜罐中谁的S7Comm面对Step7 Manager更加从容不迫。

环境描述。对于这个实验,我们使用安装在桌面主机上的Windows XP虚拟环境。此外,我们在不同的Ubuntu 18 LTS vm中安装了HoneyPLC(表2所示的相关工作蜜罐)和3个西门子PLC配置文件,并将它们连接到Windows XP主机。

方法。为了测试特定蜜罐与Step7 Manager的兼容性,我们执行了以下操作:首先,我们尝试使用“Go Online”GUI特性直接初始连接到该工具。接着,我们使用Step7 Manager列出给定蜜罐中包含的所有内存块。然后,我们还尝试将一个内存块上传到每个蜜罐。最后,在一个交互操作中,我们尝试下载一个内存块的内容,这些内容之前由每个测试蜜罐存储。

结果。我们的结果表明,HoneyPLC是唯一能够处理前面提到的所有功能的实现,如表2所示。Conpot、S7commTrace和SCADA HoneyNet能够建立初始连接,但是,Step7 Manager抛出了一个连接超时错误,阻止了任何进一步的交互并导致执行中止。

此外,由于S7commTrace是一个高交互性的蜜罐,它实现了与HoneyPLC的S7comm Server提供的特性相似的功能,因此我们努力提供它们之间的扩展比较。HoneyPLC S7comm Server通过提供更多的函数和子函数来改进S7commTrace,如表4所示。具体来说,它增加了错误响应功能和插入块、删除块、闪烁LED、取消密码子功能。在注入阶梯逻辑程序和连接Step7 Manager时,错误响应函数以及删除和插入块函数尤其重要。总的来说,除了提供与Step7 Manager的兼容性,HoneyPLC还提供了增强的抓取梯形图的能力,例如,读写内存块,这是S7commTrace不支持的。

5.7 互联网交互实验(交互性)

为了探索HoneyPLC与外部非受控代理(如攻击者)交互的能力,我们设计了一个实验,旨在通过Internet将前面实验中讨论的PLC配置文件暴露给远程连接。

环境描述。我们利用了我们在5.5节中为之前基于shodan的实验设计的环境设置。此外,我们还为S7-300、S7-1200和S7-1500 PLC使用了配备PLC配置文件的相同AWS EC2实例。

方法。我们将EC2实例向Internet公开了5个月。使用第4.5节中讨论的HoneyPLC日志记录功能,我们记录了所有接收到的交互。

结果。这个实验的结果是,记录了超过5GB的数据。表5显示了每个PLC Profile接收到的不同S7comm功能命令。我们记录这些功能的事实意味着外部代理与HoneyPLC的交互超出了执行侦察任务的简单连接。此外,在我们的S7-300配置文件上,我们收到了4个PLC停止功能,它停止了当前的梯形图程序执行,这表明外部代理试图破坏PLC的操作。

表6显示了我们的蜜罐还接收了数千个HTTP会话并记录了多个HTTP身份验证尝试管理网站,包括外部方使用的用户名和密码。此外,我们还记录了数千个SNMP获取请求,这些请求多次下载了我们的PLC配置文件的MIB。表7显示了基于地理位置的S7comm连接分布。可以注意到,文献中记录的与ICS有最多联系的国家在历史上要么是攻击目标,要么是攻击发起者。最后,在撰写本文时,没有记录任何向蜜罐注入恶意梯形图的尝试。这种攻击可以通过试图写入PLC内部的内存块来发出信号。尽管存在这种限制,获得的相互作用的数量和性质为肯定回答问题2提供了额外的支持,表明HoneyPLC可以有效地利用外部代理和工具。

5.8 梯形图捕捉实验

图7:获取梯形逻辑:最初,攻击者选择一个恶意程序并利用PLCinject①,然后与运行HoneyPLC的AWS实例建立通信②。恶意代码被注入先前选择的由S7comm服务器公开的内存块③,最后写入文件存储库④。

最后,我们有兴趣探索HoneyPLC正确收集攻击者注入的梯形图恶意软件的能力,按照第4.1节中描述的案例场景进行。

环境描述。对于本实验,我们利用第5.5节中描述的HoneyPLC AWS测试环境进行Shodan实验。此外,我们在本地部署了Conpot, Gaspot, S7commTrace和SCADA HoneyNet。我们在部署SCADA蜜网时遇到了一些问题,因为它目前根本没有维护(最新版本发布于2004年),但是,我们能够部署蜜罐的S7comm部分,使我们能够进行这个实验。为了测试我们实现的工作,我们使用了由SCADACS团队发布的研究工具PLCinject,它能够将任意编译的梯形图程序注入到PLC内存块中。我们还用一台安装了Ubuntu 18.04 LTS的笔记本主机,并在Github上安装了最新版本的PLCinject。由于PLCinject也利用了Snap7框架,我们安装了一个自定义库,并从源代码编译PLCinject。我们还使用了第5.6节中描述的Windows XP主机和Step7 Manager。

方法。图7说明了我们的设置和方法。PLCinject主机包含梯形图程序示例,PLCinject把该示例上传到HoneyPLC, HoneyPLC驻留在AWS内部实例,公开一组标准PLC存储器块。我们利用PLCinject的功能来连接HoneyPLC主机并与之交互,最终通过使用命令行注入所需的梯形图程序。后来,我们使用Step7 Manager GUI创建了一个新项目,并编写了一个将注入HoneyPLC的梯形图示例。接下来,我们使用Step7 Manager列出可用的内存块,然后使用上传功能将示例梯形图程序注入HoneyPLC。后来,我们进行了另一组实验,重点是Gaspot、Conpot、S7commTrace和SCADA蜜网。我们为每个蜜罐配置了正确的IP地址和端口,并使用PLCinject和Step7 Manager将样例程序写入蜜罐中,遵循与HoneyPLC相同的过程。

结果。我们的实验是成功的,因为我们能够同时使用PLCinject和Step7 Manager向HoneyPLC注入一个梯形图程序样本。注入完成后,我们登录到蜜罐文件系统,并找到了具有相应时间戳的梯形图文件,该时间戳与之前更新到PLCinject的块的内容相匹配,如前一段所述。更重要的是,在Step7 Manager之后。注入完成后,我们从HoneyPLC的S7comm服务器下载了我们自己的示例程序,并使用梯形图编辑器(包括在Step7 Manager中)来证实我们的示例程序实际上保存在HoneyPLC的S7comm服务器中。值得一提的是,在与HoneyPLC的S7comm服务器交互时,Step7 Manager没有崩溃或抛出任何错误。这为HoneyPLC提供的交互级别提供了证据。对于Gaspot蜜罐,我们的结果表明,不可能向其中注入任何程序。实际上,TCP连接超时,没有响应。来自Conpot的结果表明,它实际上可以打开一个到TCP端口102的连接,但是,它被重置,并且程序上传不能继续。S7commTrace导致S7comm连接无法建立。最后,SCADA HoneyNet的S7comm部分接受TCP端口102连接,启动上传天梯逻辑程序所需的上传功能,但上传功能结束后,没有数据保存,甚至没有数据传输。总的来说,这些结果为肯定地回答问题3提供了令人信服的证据。

6 讨论和未来工作

HoneyPLC对比以前的方法。根据表1所示,HoneyPLC对当前最先进的PLC蜜罐提供了重大改进。首先,HoneyPLC提供了比文献中相关工作更好的隐蔽能力,如表2总结的实验流程所示。此外,如第4.3节所述,HoneyPLC提供了基于honey的高级TCP/IP模拟,以及对不同领域特定协议的详细模拟。尽管文献中的许多方法共享了对各种协议的模拟,但只有HoneyPLC和SCADA HoneyNet利用了honey框架提供的丰富的模拟特性。其次,在第4.2节中讨论的HoneyPLC的可扩展性特征,允许在实践中有效模拟部署的不同plc,正如第5.2节中详细介绍的实验程序所示。如表1所示,在文献中任何其他方法都没有这种特性。只有少数几种方法提供有限的可扩展性特性,但它们大多基于手动更改它们所支持的plc的一些配置设置。如第4.2节所示,HoneyPLC的Profiler工具支持不同真实PLC的收集和配置设置,这可能允许从业者为实践中使用的许多不同品牌和模型创建和分发HoneyPLC的PLC profile。最后,HoneyPLC的Ladder Logic Capture功能对于为plc量身定制的恶意程序的理解和分析是最优的,这是其他任何相关工作所不提供的,如表2所示。

局限性。尽管HoneyPLC具有创新功能,并且在第5节中显示了有希望的评估结果,但我们发现了我们方法的以下局限性。首先,如表1所示,HoneyPLC不支持实际中plc描述的物理交互建模。为了解决这个问题,HoneyPLC的未来版本可能会使用通用的、通用的框架进行增强,以促进物理交互的收集和后续建模,从而进一步吸引和欺骗攻击者。其次,尽管进行了多次尝试,我们还是无法测试HoneyPLC对Stuxnet的影响,如第2.3节所示,直到plc被注入了Ladder Logic代码。这个问题也遇到了业内经验丰富的合作伙伴,因为它是在私人谈话中向我们透露的。作为替代方案,我们尝试复制第5.8节所示的类似代码注入场景。

未来的工作。首先,我们计划增加对其他ICS特定网络协议(如Modbus)的支持,这在文献中已被其他方法广泛实现。其次,我们计划使用HoneyPLC作为在软件中完全模拟丰富ICS基础设施的基础,对SCADA和其他设备等组件进行建模。目前的ICS是专有的、封闭的,由大量昂贵的设备组成,这显然使研究人员有效开发和测试新保护工具变得复杂。最后,我们计划通过整合Ladder Logic分析工具(如ICSREF)以及其他作品(如第5.8节中介绍的PLCinject),将HoneyPLC转变为ICS恶意软件分析的综合套件。

7 结论

针对ICS的攻击现在比以往任何时候都更加真实,其后果可能是灾难性的。本文介绍了方便灵活的蜜罐HoneyPLC,极大地推动了该领域的前沿技术。此外,我们还提供了实验证据,证明HoneyPLC优于文献中现有的蜜罐,达到了与实际PLC设备相当的性能水平。最后,HoneyPLC的高级可扩展性特性可能允许从业者为实践中使用的各种PLC创建和公开分发许多新的PLC配置文件,从而使HoneyPLC不仅成为预防和阻止持续攻击的有用工具,而且还可以作为设计和评估任务关键型网络物理系统和基础设施的新保护技术的起点。

8 致谢(略)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/111073
推荐阅读
相关标签
  

闽ICP备14008679号