高交互式工控蜜罐系统设计与实现
2021-05-11闫怀超陈政熙张家鹏
罗 野,王 英,闫怀超,陈政熙,张家鹏
(上海工业自动化仪表研究院有限公司,上海 200233)
0 引言
随着工业互联网的快速发展,工业互联网技术逐渐应用到了化工、汽车、智能制造等工业行业。工业控制网络作为工业互联网的重要组成部分,其安全问题也逐渐凸显[1]。从2010年伊朗核电站的震网到2020年的本田汽车遭受Ekans病毒勒索,原本处在相对物理隔离环境中的工业控制系统,出现了不少具有针对性和破坏性的安全事件。在工业互联网安全领域,针对人员攻击行为与模式的认识仍然处于一个模糊的状态,攻击和防护之间事中存在着差距。这使得针对工业互联网的安全研究处于一个不利的局面。
蜜罐是一种经过特定设计的用于吸引潜在攻击者的陷阱工具[2]。蜜罐通过模拟一种或多种服务或者设备来吸引攻击者进行攻击,记录攻击者的攻击数据(例如攻击的起点、终点、攻击时间、攻击者信息等),通过对攻击行为的分析,可以研究攻击者的攻击策略形成威胁情报数据库,为工业互联网安全防护提供有效的技术支持。但蜜罐一旦被攻击者所识别,就会失去其原有的价值,是一种识破即失效的被动式主动防御手段[3]。因此,本文提出一种基于真实工控环境的高交互式蜜罐系统。该系统模拟工业现场搭建可编程逻辑控制器(programmable logic controller,PLC)控制系统,最大程度还原工业互联网现场层的真实状态,可以增加攻击探测真实设备信息的时间、干扰恶意人员对被攻击设施的判断;利用现有信息安全技术对攻击行为和攻击策略进行审计,从而采取更有针对性的防护手段,确保工业互联网网络环境的安全与稳定。
1 蜜罐对比与需求
蜜罐系统的种类很多,但可根据特点分为低、中、高三种交互类型。低交互型蜜罐系统的功能最少[4],可以模拟的服务种类最少,但是可以减小攻击活动带来的影响,一般很容易识别蜜罐系统;中交互型的蜜罐系统会在低交互蜜罐的基础上加入一些仿真软件来模拟复杂的服务,迷惑性较强,可捕获的攻击信息较多;高交互型的蜜罐系统是根据真实的控制系统搭建,相对于低交互型蜜罐系统,其在协议、人机界面、设备模拟三方面做了提升,提高了PLC的高交互性,且配置相对简单,迷惑性最强。三种类型蜜罐对比如表1所示。
表1 三种类型蜜罐对比
本文所设计蜜罐系统是基于真实工控环境的高交互式蜜罐系统,主要具备如下功能。
(1)识别攻击来源。蜜罐系统应能够识别攻击者的源IP。
(2)记录攻击过程。
①蜜罐应能够记录攻击者完整的攻击过程。
②蜜罐系统应能够记录攻击者发送给PLC及组态软件的攻击数据包。
③一次攻击完成后,蜜罐系统应能恢复到攻击前的状态。
2 蜜罐系统设计与实现
2.1 功能模块
①蜜罐主机系统。
蜜罐主机系统为暗藏监控采集功能的Windows 10主机,预留一部分管理员已知的部分安全漏洞。数据采集方式由主机采集及网络旁路采集两部分组成。主机采集部署于蜜罐主机中,用于记录主机中的各类信息。旁路采集部署于系统网络中,用于记录网络中的全部通信数据,主要包括:蜜罐主机键盘输入、网络通信端口、系统日志、主机文件变化、网络通信数据包、PLC的运行状态和远程操作日志能够隐蔽地记录攻击者的键盘输入、通信端口、日志、文件变化、网络通信等。
②网络数据旁路监测系统。
网络数据旁路监测通过采集交换机镜像的网络通信数据,对攻击者的通信数据包进行分析,发现攻击者的网络攻击行为及其数据包。
③PLC状态监控系统和远程操作日志。
PLC状态监控系统通过周期性地获取现场PLC的寄存器数值、PLC运行状态等数据,判断PLC是否遭受攻击。当发现PLC遭受攻击后进行报警及记录。开启PLC的日志功能,在远端操作时,将操作日志事项发送至记录主机中。PLC状态监控系统同时具备部署功能,能够对现场PLC进行备份、恢复。在记录一次攻击行为后,能够将系统恢复到攻击前的状态,准备接受下一次攻击。
蜜罐系统拓扑图如图1所示。
图1 蜜罐系统拓扑图
2.2 蜜罐系统设计
PLC系统可以方便地对现场的运行设备进行监视和控制,以实现生产过程数据采集、设备控制、测量、参数调节以及各类信号报警等功能[5]。在现代化的工业企业中,PLC系统有着极其重要的意义,是不可缺少的系统。
(1)软件。
PLC由多个任务组成,每个任务完成特定的功能,包括组态系统、Web发布、数据采集、数据处理、历史数据存储等。系统将服务器再细化为多个专门服务器,各服务器逻辑上作为统一整体,但物理上可以放置在不同的机器上。PLC系统应用层次划分如图2所示。
图2 PLC系统应用层次划分
(2)硬件。
传统的工业控制系统分为客户端/服务器(client/server,C/S)和浏览器/服务器(brouser/server,B/S)架构。C/S架构中,客户端提供(human machine interface,HMI)用于控制一些现场设备。而服务器采集设备对象的数据,然后对数据进行处理和分析[6]。B/S架构中,将监控画面通过Web发布Internet上,方便运维管理。硬件设备通常以总线方式(RS-485、以太网等)或者干节点的方式连接,本方案选择以太网连接方式。
(3)主要功能。
①与控制单元进行实时通信,数据的监控与采集不间断。
②具有功能全面的操作界面,可随时根据数据的分析情况由主控计算机自动或手动地对控单元发出控制或调节命令,控制执行器动作。
③现场数据越限时,及时上传报警信息时,主控计算机会出现明显的报警画面和报警信息。
④可在上位机显示工艺流程图等。
⑤具备Web发布功能,将过程系统,数据浏览系统,数据查询系统,数据分析系统以Web的方式提供出来。
⑥具备数据追溯,可根据需求(任意时间段)输出报表。
2.3 蜜罐系统实现
根据上述设计方案,蜜罐系统选用软硬件包括AB 1756 PLC模块组、西门子S7-400,施耐德M580PLC模块组、赫斯曼交换机、工业审计设备、工控机、组态软件及人机交互软件。
三台不同品牌的PLC以及工控机分别通过以太网的方式连接至交换机。交换机配置其中一个端口为镜像口,用于复制其他端口的数据。工业审计装置的管理端口通过以太网的方式连接至此镜像口。
工控机上安装3套虚拟机软件,分别安装logix5000、Portal V15、UnityPRO软件,用于对三套PLC进行组态。工控机主机安装HMI软件iFix,用于与三套PLC进行数据通信。其中:AB PLC通过OPC协议的方式与iFix进行通信,施耐德PLC通过MBE的Modbus TCP/IP协议与iFix进行通信[7],西门子PLC通过Socket的方式将数据通讯至AB PLC后传输至iFix。最后,为蜜罐主机设置一个公网IP,将蜜罐发布到公网,确保可以用网络扫描器扫描到蜜罐系统。
3 蜜罐系统测试
本次经过渗透测试方法对蜜罐系统进行测试,渗透测试过程主要包括信息收集、漏洞分析、渗透攻击以及总结4个方面。通过网络搜索引擎shodan,从公网扫描发现蜜罐系统;使用kali-linux系统中的nmap漏洞扫描工具,扫描对应存活主机开放的端口;根据开放的端口,找到对应的漏洞和漏洞利用载荷;启动漏洞载荷利用平台msfconsole,设置相应的参数;启动载荷,攻击蜜罐系统[8]。
3.1 信息收集
蜜罐系统公网地址设置为180.xxx.xxx.6。首先,使用网络搜索引擎shodan,确定可以从公网扫描到蜜罐系统;然后,使用nmap扫描工具,扫描蜜罐系统端口开放的情况。结果发现上位机开放了3389、445等高危漏洞端口,发现存在高危端口暴露公网的情况。通过NetBIOS设备探针以及SMB探测信息结果为Windows 10虚拟环境。
3.2 渗透测试
利用微软SMBv3 Client/Server远程代码执行漏洞(漏洞编号:CVE-2020-0796)进行渗透攻击。渗透测试流程如图3所示。
图3 渗透测试流程图
该漏洞是由于SMBv3协议在处理恶意的压缩数据包时出错所造成的,可让远程且未经身份验证的攻击者在目标系统上执行任意代码[9-10]。使用验证POC脚本发现漏洞存在,随后使用getshell脚本尝试进行权限获取,生成shellcode。使用工具msfconsole监听生成shellcode时设置的监听2333端口,使用exp尝试攻击反弹回一个shell,最终审计系统识别并记录了此次渗透攻击数据。
本次测试过程发现多个安全风险,最终都未能获取服务器权限。发现服务器上的web应用未提供正常业务,同时服务器在测试过程中存在多次端口无法访问的情况,可进行攻击的突破点较为有限。
漏洞利用过程中,发现漏洞攻击脚本程序都未能生效。测试中发现端口运行服务经常出现异常的响应情况,怀疑端口服务是否正常运行或者配置上存在问题,希望对服务配置进行相应的检查。
4 结论
在工业互联网安全防护领域中,蜜罐系统既可以作为吸引攻击者的陷阱,又可以作为安全防护的工具,在网络安全防护体系中的应用将会越来越广泛。本文根据蜜罐系统的发展背景和网络安全研究的显示需求,提出了基于真实工控环境的高交互式蜜罐系统,模拟了工业现场搭建PLC控制系统。系统还原了工业控制系统的真实状态,增加了攻击探测真实设备信息的时间,以迷惑攻击者对目的攻击设备的判断[11]。运用渗透测试的方式,验证了蜜罐系统的可用性和安全性,确保工业互联网网络环境的安全,也为下一步依靠蜜罐系统开展网络安全研究打下基础。