APP下载

一种基于格式保持加密的高安全S7-400 工控蜜罐构建方法

2022-05-18崔永富翟江涛许历隆

关键词:序列号蜜罐加密技术

崔永富,翟江涛,林 鹏,许历隆

(南京信息工程大学 电子与信息工程学院,南京 210044)

0 引言

随着互联网在工业控制系统的广泛使用,大量的工业设备逐步接入到互联网,这极大地改善和提高了我国的工业生产质量。与此同时,工业控制系统在信息安全保护上却面临着日益严重的挑战和威胁。传统的网络防御技术,如防火墙[1-2]、IDS[3-5]、访问控制技术[6]等都是被动防御手段,难以有效应对各种未知类型的攻击。Stuxnet[7]、Duqu 等攻击给相关受害者带来了严重后果。面对复杂和多变的攻击手段与攻击方式,传统的网络安全防御技术很难对未知的攻击事件进行及时处理与响应,为了能够及时处理和响应工业控制系统中出现的未知攻击,更好地提升工业控制系统在信息保护上的安全性,主动防御技术的应用成为了当今网络安全防范技术的迫切需求。

蜜罐技术就是为了识别攻击和防御未来攻击而提出的一项主动防御技术[8]。它是一种安全资源,可用来吸引攻击者进行非法应用而无需任何业务实用程序[9]。蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析[8,10]。该技术在近些年内呈现出交互能力由低到高,兼容功能由少到多的发展趋势。事实上,蜜罐的分类方式最常用的是按照其与外界的交互能力分为低、中、高交互蜜罐,其区别在于提供交互的空间是否覆盖完整的操作系统[11]。

面对针对ICS 设备和系统的网络威胁,从攻击者的角度研究攻击方式和动机比被动防御更为有效。蜜罐是研究攻击者行之有效的方法。通过伪装成正常的机器或设备,蜜罐可以记录攻击者和扫描程序的行为,然后对其进行深入分析。它可以作为一种在没有任何商业实用工具的情况下,用来吸引非法应用攻击者的安全资源,而且可以更好地了解这些攻击的起源地[12]。1998 年,Cohen 开发了第一个开源蜜罐工具DTK,获取了攻击者的攻击信息并且严重扰乱了攻击者的心理,同时,像CyberCopSting、KFSensor 商业蜜罐产品也开始得到应用。此后,CIAG 集团在2004 年发布了第一个PLC 蜜罐,他们构建基于软件的框架以模拟各种工业网络(如SCADA、PLC 架构)的可行性,利用Honeyd 蜜罐来编写各种脚本模拟工业以太网协议,例如Modbus 工业控制协议[13]。然而,这些脚本存在着一些问题,例如在日志文件不存在时它会导致未处理的异常,而不是创建它。

Daniel 等[14]提出了一种CryPLH 蜜罐,该蜜罐不仅能够提供简单网络管理协议(SNMP)和超文本传输协议(HTTP)服务,而且也提供从主机操作系统获取网络统计信息的功能。此外,他们也在蜜罐上实现了STEP7 协议的模拟。但是,CryPLH模拟了PLC 的高级保护机制,在没有经过允许的情况下无法进行访问,并且拒绝对任何密码的正确响应,这使得攻击者无法从此蜜罐中获取更多有价值的信息。而且在对操作系统的指纹信息使用Plcscan、Nmap 等探测软件进行扫描探测时会发现和真实的PLC 有区别,这使得CryPLH 的缺陷更加明显,很容易被攻击方识别为蜜罐。

Xiao 等[15]提出了一种基于西门子S7 协议的交互蜜罐S7commTrace。S7commTrace 在协议仿真中支持更多的功能代码和子功能代码,提高了与攻击者的交互深度。但是,由于其仅为S7 通信协议开发的交互蜜罐,在使用不同的蜜罐时需要根据不同蜜罐支持的协议开发相应的蜜罐,这给协议的适用性带来了较大的不便。

Artail 等[16]提出了一种混合式蜜罐框架,该方案通过部署低交互蜜罐来充当伺服和操作系统仿真器,并利用重定向技术使其将恶意流量引导到高交互蜜罐,使得攻击方与其进行交互。但是,该蜜罐在设计时只记录入侵者活动,攻击方很容易进行识别发现漏洞。

Stephan 等[17]通过分析蜜罐的交互特点,自主研制出了第一个具有高交互特点的工控蜜罐XPOT。该蜜罐为PLC 提供了一个高层次的交互,但是因为其并未开源,这让许多研究人员无法对攻击者的行为信息进行捕获以便开展更深层次的分析。

为了提高蜜罐的性能和安全性,本文提出了一种基于格式保持加密技术的改进工控蜜罐。鉴于Conpot 蜜罐容易让Nmap、Plcscan 等嗅探工具以及Shodan 等探测到系统指纹信息的缺陷,对蜜罐系统指纹信息中序列号、名称等进行了擦除和替换。然后通过对比工控设备PLC 的指纹信息,对蜜罐系统的配置文件进行重新配置以此仿真西门子S7-400 设备。此外,通过对西门子PLC 设备的命名规则进行分析,对指纹信息中序列号等采用格式保持加密算法进行随机生成,确保所提的蜜罐方案和真实的西门子工控设备在面对扫描时呈现的数据在格式上是一致的,从而提高安全性。

本文主要贡献:

1)针对Conpot 蜜罐默认配置文件中固有的指纹信息缺陷,并且容易被攻击者识别的问题,对其序列号、设备名称等关键系统信息进行了擦除和替换。这使蜜罐可以被识别为真实的工控设备。此外,通过重新配置蜜罐系统的XML 配置文件,对设备名称、模块号等指纹信息进行构建,仿真S7-400 设备。

2)通过对PLC 的命名规则进行分析,提出了一种基于Conpot 框架的格式保持加密改进工控蜜罐方法。相比传统加密方式会使蜜罐系统信息的数据长度、类型和结构等发生变化,所设计的方案保持了蜜罐系统指纹信息中数据格式上的一致。

1 所涉工具和方法简介

1.1 Conpot

Conpot 作为一款Linux 的蜜罐,可用来模拟工业控制系统中常用的设备。它自身所带的模板可以模拟西门子S7-200PLC,Kamstrup-382 智能仪表设备,Guardian AST 气泵监控系统和IPMI-371。用户可以根据需要定制所需要的模板,还可以根据需要制作自己的模板来仿真所需的设备。利用该蜜罐的属性可以让网络中的仿真设备变得多样化,让蜜罐系统更加逼真,尤其是由于蜜罐原始配置文件的漏洞,通过改进配置文件仿真西门子S7-400 设备,这会让蜜罐系统看起来更加真实,更加容易捕获到攻击者的攻击。

Conpot 支持超文本传输协议(HTTP)、串行通信协议(Modbus)和简单网络管理协议(SNMP)的仿真,以及可编程逻辑控制器的集成。Honeynet项目的Conpot 项目于2013 年5 月发布。Conpot利用日志记录系统监视入侵者所做的任何更改。蜜罐以毫秒为单位记录HTTP,SNMP 和Modbus 服务的事件,并提供基本的跟踪信息,例如HTTP 的源地址,请求类型和请求的资源[18]。Conpot 记录所有网络活动并将其存储在日志文件中,可用于进一步分析以了解攻击。

1.2 格式保持加密技术

格式保持加密技术是一种能够将特定格式的明文加密成为一个具有相同格式的密文,利用这种格式保持加密方法对数据进行加密,不会破坏数据格式,从而降低正在运行的应用系统的成本。在格式保持上,例如信用卡格式为“XXX YYYYY”,通过应用格式保持加密,信用卡的数据格式保持不变,数据进行随机生成。图1 给出了利用格式保持加密技术随机生成的数据。根据已有的研究成果,格式保持加密技术主要从以下2个方面进行了定义[19]。

图1 FPE 技术数据的随机生成

定义1基本FPE:FPE 可简单描述为一个密码:

式中:K 为密钥空间;X 为消息空间。

基本FPE 描述了FPE 要解决的问题,即密文与明文处于相同的消息空间。根据基本FPE 的定义,分组密码也是某种形式的FPE,分组密码是字符串集合{0,1}n上的置换。但是,FPE 的消息空间的复杂性要远远高于分组密码。

定义2一般化FPE:一般化FPE 可描述为一个密码:

式中:K 为密钥空间;Ω 为格式空间;T 为调整因子空间;X 为消息空间。所有空间非空且⊥∉X。

格式保持加密技术旨在执行加密数据,而不会中断格式。这意味着以这样的方式生成数据,可以保证输出的格式和输入的格式相同,提高安全性能。该技术是由一种特别的对称密码构成,由于安全性通常是由基础模块的安全性所决定,而伪随机置换和分组密码作为基础模块的构成部分,格式保持加密技术的伪随机性就是重要的安全目标之一。

2 所提方案

针对原始Conpot 蜜罐指纹信息易被Shodan等识别的问题,本文对蜜罐系统指纹信息中的名称、序列号等进行了擦除和替换,攻击者无法采用网络空间搜索引擎对蜜罐直接进行识别。对于Conpot 蜜罐在仿真西门子S7-200 上序列号、模块号等指纹信息安全性过低的问题,通过重新配置蜜罐系统的XML 配置文件,对设备名称、模块号等指纹信息进行构建,提高蜜罐的安全性。

此外,通过对西门子PLC 设备的命名规则进行分析,可以对蜜罐系统指纹信息中的序列号等依据规则进行生成。根据传统加密方式对蜜罐系统指纹信息的生成,通常会扩展数据,这使得蜜罐系统指纹信息的数据长度、类型和结构等容易发生变化,也让加密后的蜜罐系统信息不真实,容易被攻击者发现。为了使改进后的蜜罐系统不改变指纹信息的数据长度、类型和结构等,能够继续使指纹信息在数据格式上保持一致,在蜜罐系统指纹信息的生成上采用了格式保持加密技术。改进蜜罐的框架如图2 所示。

图2 改进的蜜罐框图

对蜜罐系统的指纹信息在保持原有格式的背景下进行,通过在改进的S7-400PLC 上对序列号等进行随机生成操作。该生成方式采用的是高级加密标准(AES)和格式保持加密(FPE)技术结合进行的。该技术采用的方法如图3 所示。

图3 加密方法

该方案中,FPE 是依据分组密码的方式设计的,所用的格式保持加密技术采用AES-128 位加密算法作为基础。AES 加密过程总共执行10 轮,在加密过程中需要对其进行轮密钥加、字节替代转换、行位移转换、列混淆转换等操作。AES 算法完成后,对输出密文的权值进行排序。完成此步骤以后,在加密的域中的所有字符就能和其他的字符对应,这时的输出结果保留输入数据的原始格式和数据类型。该技术的整体框架如图4所示。

图4 格式保持加密技术流程框图

3 实验验证与分析

首先根据Conpot 蜜罐系统指纹信息中存在的缺陷对配置进行改进,使得Shodan 无法识别所设计蜜罐。接着,通过配置Conpot 蜜罐仿真西门子S7-400 设备,并在此基础上对蜜罐系统中符合规则的指纹信息用格式保持加密技术进行生成。

3.1 蜜罐指纹改进实验

通过查询真实的西门子PLC 设备以及被网络空间搜索引擎Shodan 归类为工业控制系统的指纹信息,以此查找蜜罐的指纹信息需要修改的地方。为此,通过采用Nmap 对Conpot 蜜罐进行嗅探识别,可以直观地将Conpot 蜜罐的指纹信息和真实PLC 的指纹信息进行对比。图5 是通过Nmap 探测返回的结果,图6 是真实的工业控制系统的指纹信息。通过对比,可以发现其展现的指纹信息中序列号、系统名字等存在着问题,该问题让攻击者在进行攻击时很容易发现漏洞。

图5 原始Conpot 的指纹信息

图6 真实ICS 的指纹信息

为了避免蜜罐被Zoomeye、Shodan 等工具识别出来,对template.xml 中的S7-ID 进行了修改,使得蜜罐不能通过特定ID 进行查询,然后对蜜罐的配置文件进行了提高,使其可以仿真西门子S7-400 设备。算法1 为原始蜜罐部分配置文件,算法2 为修改后的部分配置文件。

在对蜜罐漏洞进行改进和提高后,该实验使用Nmap 来对蜜罐系统的指纹信息进行验证。从图7 中可以发现,蜜罐提高后的指纹信息和真实设备间的系统信息基本一致,这说明了所提方案的有效性。

图7 改进后的Conpot 指纹信息

通过对蜜罐默认配置文件template.xml、s7comm.xml 等的修改,蜜罐的指纹信息能够按照需要进行完善,并且完成仿真S7-400PLC 设备。这使得蜜罐在被使用时可以从攻击者中获取更多的攻击信息。

3.2 采用格式保持加密改进的蜜罐实验

本节中利用格式保持加密对蜜罐系统序列号、模块号等进行随机生成。新的序列号、模块号等随机生成以后,通过使用嗅探工具Nmap 对蜜罐的指纹信息进行识别,图8 展示了蜜罐指纹信息生成后的信息。这表明改进后的蜜罐与真实PLC在面对扫描时呈现的数据在格式上一致,安全性得到了提高。

图8 加密后的蜜罐

通过对蜜罐的配置进行提高,蜜罐的漏洞不会直接暴露在工作环境中,通过对蜜罐指纹信息的改进以及对蜜罐系统部分指纹信息在数据上保持格式一致,能够有效提高蜜罐的安全性。

4 结论

针对工业控制系统蜜罐设计时存在固定指纹信息容易被嗅探,安全性较低的问题,提出了一种基于Conpot 蜜罐的指纹信息和格式保持加密的改进蜜罐方案。该方案包含2 个方面:

1)针对工控蜜罐的弱指纹信息进行了擦除和替换,在蜜罐原有配置文件上对序列号等进行重新构建以仿真S7-400 设备。

2)在构建的S7-400 蜜罐基础上,在西门子命名规则下采用格式保持加密技术对工控蜜罐中的指纹信息保持原有格式生成指纹信息数据,以此提高工控蜜罐的安全性能。

该方案对于保护工业控制系统以及提高蜜罐的安全性有较大的意义。未来,可以在ECS 服务器上采用网络模拟仿真器部署蜜网的方式对该方法加以拓展和应用。

猜你喜欢

序列号蜜罐加密技术
面向计算机的网络安全数据加密技术研究
运用数据加密技术维护网络安全的可靠性研究
部署蜜罐时需要考虑的10个因素
◆素材
蜜罐蚁
关于《国家税务总局 工业和信息化部关于加强车辆配置序列号管理有关事项的公告》的解读
被自己撑死的蜜罐蚁
日本开发新型加密技术 号称量子计算机也难破解
“红红”福利台
守好你的秘密