未来智讯 > 人脸语音识别论文 > 工业控制系统设备指纹识别技术
    【 关键词 】 工业控制系统;指纹识别
    The Technology of Industrial Control System Fingerprint Identification
    Li Qin-yuan 1 Sun Xin 1 Dai Hua 1 Zhao Ming-ming 2
    (1. Electric Power Research Institute of State Grid Zhejiang Electric Power Company ZhejiangHangzhou 310014;
    2. Beijing China-power Information Technology Co.,Ltd. Beijing 100192)
    【 Abstract 】 Industrial control systems(ICSs) are cyber-physical systems(CPSs) which supervise and control physical processes in critical infrastructure industries such as electric power,water treatment,oil &natural gas exploration,transportation,and chemical industry. Control systems such as SCADA,DCS,PLC,etc are collectively known as ICSs. As vendors and industrial control protocols of ICSs are different,customization device fingerprint identificationare realized for almost all the well known industrial control vendors. Particular examples show the information interactions of client and devices(as the target services),standard message format ofindustrial control protocol,and details of wireshark packets. Base on the longterm working on line and the importance of safety of ICSs. The fingerprint identification of ICSs devices is nondestructive,customization accurate, redundant effective.
    【 Keywords 】 industrial control system fingerprint identification
    1 引言
    工业4.0新时代,从智能工厂到智能生产,实现智能化生产系统及过程,以及网络化分布式生产设施。要求工控现场操作的可靠性、安全性、稳定性、智能化、可控性,生产网络拓扑结构的监控以及现场设备型号、位置、性能、信息的采集就变得尤其重要。每一台终端设备也都拥有独特的特征,这些独特的属性,在终端设备与外界通讯的过程中都会体现出来。追踪设备通信行为,并用先进的数据模型分析其特性,就能准确识别和关联设备。就像每个人具有独一无二的指纹一样,设备的各项数据信息,组合在一起就构成了唯一标示这台设备的设备指纹信息。设备指纹信息技术就是获取设备指纹信息的一个过程。
    2 设备指纹识别现状
    就设备指纹识别技术现状而言,目前有指纹识别能力的扫描引擎和扫描工具有简单的使用设备指纹识别的Shodan、设备指纹结合Web应用指纹的Zoomeye、基于TCP/IP协议栈指纹的Nmap。不通扫描引擎和工具的特点:Shodan主要采集设备开放端口的banner(俗称“旗帜”)信息,通过Banner信息的描述直观的展示给阅读者,使其对设备信息有一定的了解;Zoomeye结合了Nmap扫描工具,加强了对Web服务的识别能力,Zoomeye团队通过工控协议的常用端口以及工控设备信息整理出了一个工控专题[2];Nmap主要使用TCP/IP协议栈指纹来准确地判断目标主机的操作系统类型[3]。
    由于这些识别引擎和工具在工控现场领域的不适用性,在深度研究工业控制系统,对构成工业控制网络的工业控制设备、网络通信设备、安全防护设备、工作站和服务器等不同类型的基础单元进行深入研究分析,通过不同维度的协议信息得到工控系统指纹,并通过归一化达到工控系统指纹空间的构建。
    工控系统指纹识别技术建立在深度包解析技术的基础上,对通信协议五元组及深度包内容进行分析,基于多维度的信息体系构建工控系统指纹空间。通过主机发现、端口识别、指纹探测多个过程得到多维度信息后与工控系统指纹空间进行模式匹配,通过匹配算法最终得到对应的工控系统详细信息。
         3 工控指纹识别技术
    工控系统指纹识别技术的难点在于工控协议众多,尤其是工控领域存在大量的私有协议。故在该技术中主要需实现为工控协议逆向和指纹数据融合。
    3.1 工控协议逆向
    工控系�y协议逆向识别通过深度识别工业控制系统与其操作员站监控软件之间的通信数据流,逆向获取通信数据流中的指纹信息。通过无损识别,定制识别和冗余识别多种识别方式结合进行指纹识别工作。
    无损识别:识别过程中,被动监听或者仅发送查询报文,根据接受报文解析设备信息,不影响设备的正常运行,不破坏现场的组网环境。
    定制识别:基于工控厂商设备协议的差异性,不通厂商协议设备间的通讯机制完全是各厂商私有规约,所以针对不通的厂商设备达到定制识别。
    冗余识别:同一设备可能开放多个端口,各个端口都有可能包含设备指纹信息,因此实现对同一目标设备的冗余识别,保证识别的有效性及准确性。
    不同厂商的工业控制系统根据其通信机制以及架构的不同将采用不同的方式进行工控协议逆向工作,某些工业控制系统将采用多种方式结合深入获取指纹信息。
    由于工控协议的私有性和定制化,工控协议的解析需要从多方面,多维度进行。对于工控协议的逆向解析,采用相应的协议逆向解析方法,再结合实际设备交互数据流的特征进行分析,达到指纹识别的目的。主要的协议逆向解析方法有几种。
    字段分析:通过观察网络数据流中不同协议字段的出现次数,推断协议字段结构的方法。由于这种方法不考虑具体协议内容,因此分析效果依赖于样本数据流中字段重复出现的次数和每次出现的形式是否一致。
    流量建模:通过对网络流量的内容进行统计建模,识别和区分流量对应的不同协议;但该方法只能用于识别协议类型,无法解析具体的协议结构。
    字符处理:利用自然语言处理和字符串对齐算法对网络数据流进行学习,自动地对收到的网络请求进行应答的方法;该方法能够根据数据内容的排列模式从样本数据中选择类似的会话用于自动应答,但无法分析具体协议语法和语义。
    数据流分析:根据数据在程序执行过程中的传播路径,通过关键信息数据流跟踪的方法,分析关键信息的获取方式,分析软件行为,确定数据流交互过程,模拟数据流获取行为。
    3.2 指纹数据融合
    通过工控协议逆向识别得到工控系统的相关指纹后,由于每个协议规约的不同,导致每个协议获取的指纹参数错综复杂,这将导致后期对于指纹信息二次利用的价值无法良好体现,因此,需要对工控指纹数据进行融合。
    根据工业控制系统特点,指纹信息的二次利用包括但不局限于,根据指纹信息达到自动获取设备各类信息,根据获取信息构建设备分布的拓扑结构,根据指纹信息匹配已知漏洞库的潜在漏洞,根据漏洞详情对设备及整个系统进行评分等。基于指纹信息广泛的应用场合,工控指纹数据的融合方向有几个。
    信息提取:关键字段包括设备厂商、设备型号、设备固件版本号、设备名称等以Key、Value形式存储,便于直观的展示和字段信息调用。
    网络节点信息提取:以IPv4的网络节点标识,配合设备MAC地址唯一标示设备信息集合,便于提取和集成设备分布拓扑结构。
    设备开放端口信息提取:设备开放端口号、开放端口协议类型、开放端口支持协议名称及端口Banner信息汇总,便于设备安全评分。
    经过数据融合处理,工控指纹识别结果需要包括的内容有目标设备的IP地址、设备的开放端口、设备厂商、设备类型、设备型号、设备名称、设备固件版本、设备描述信息、设备支持协议等。
    4 工控设备指纹识别实例
    工控设备指纹识别技术以工业控制系统S7-300为例,S7-300是德国西门子公司生产的可编程控制器(PLC)系列产品之一,在烟草、电力、水处理等行业有大量的应用。
    西门子工业控制系统采用其私有协议S7,通过S7协议,可实现西门子组态软件Step7对控制器进行编程、测试、调试和诊断等功能,同时实现监控软件Wincc的监视控制功能。所以针对于该私有协议,采用定制识别的方式进行识别。以下是针对西门子设备S7-300进行设备指纹识别的过程。
    4.1 实验环境搭建
    为了能在真实环境中通过网络报文达到工控设备指纹识别的目的,因此实验环境也需达到真实环境的基本网络拓扑,图1为西门子组态软件Step7与西门子PLC之间的最简连接关系图。
    4.2 设备指纹信息发掘
    对于西门子PLC,我们发现其组态软件中存在设备指纹信息。组态软件Step 7 V5.5,其自带在线监控功能,可通过该功能,检测网络中可用的PLC设备,并可查看在线PLC详细信息。因此可通过该功能达到抓取指纹数据的目的,以下为达到该目的Step操作流程。
    a. 打开Step 7组态软件(如图2所示)。
    b. 设置PG/PC接口(如图3所示)。
    c. 选择连接PLC的网口,作为通讯接口(本虚拟机设置两块网卡,分别桥接无线网卡和有线网口,选择连接PLC的有线网卡作为通讯网卡)(如图4所示)。
    d. 显示可访问PLC节点(如图5所示)。
    e. 查看PLC信息(这里有两种方式:1.点击详细信息按钮;2.右键在线PLC,查看模块信息。)(如图6、图7所示)。
    f. 软件信息(如图8、图9所示)。
    4.3 设备指纹数据捕获
    Step 7 显示在线PLC和查看PLC状态信息时,用Wireshark抓包,对交互过程分析筛选后,PLC设备信息获取的流程报文如下:
    报文数据分析:
    a. 通过S7协议(TCP/102)建立tcp socket连接;
         b. 协商Source TSAP和Destination TSAP;
    c. 建立S7协议连接;
    d. 寄存器信息读取(读取设备标识);
    e. 寄存器信息读取(读取组件标识)。
    4.4 通信协议分析
    S7协议是第7层的协议,用于西门子设备之间进行交换数据,通过TSAP,可加载MPI、DP、以太网等不同物理结构总线或网络上,PLC一般可以通过封装好的通讯功能块实现。S7属于西门子公司通讯的私有协议,以太网通讯模式下,S7协议工作在ISO 8073/X.224 COTP Connection-Oriented Transport Protocol之上。
    S7应用层报文包括TPKT和TPDU两个部分[4]。
    TKPK报文格式:
    TPDU报文格式:
    4.5 设备指纹脚本验证
    根据组态软件与PLC交互过程,抓包分析后,通过脚本模拟组态软件与PLC通讯流程,脚本实现建立S7协议连接,发送设备标识和组件标识信息读取报文,并解析PLC返回报文,脚本探测结果如下:
    5 结束语
    工控系统指纹识别考虑到了工控系统厂商协议的多样化、个性化,这对以上特点进行了协议和设备的定制化识别,保证了设备指纹识别的准确性;基于工控系统的长时间在线运行以及安全结果的重要性,设备指纹识别做到了无损识别的特点,保证了工控系统的正常运行及安全;单个设备可能支持多种协议,开放多个端口,工控指纹识别做到了冗余识别,保证了识别结果的有效性。随着工业4.0到来,工控系统必将更加智能化和多样性发展,工控指纹识别也将是一个持续过程,基于以上工控指纹识别的方法,相信将来必将可以做到工控系统所有设备的指纹自动探测识别。
    参考文献
    [1] 彭勇,向憧,张淼,等.工业控制系统场景指纹及异常检测[J].清华大学学报: 自然科学版,2016,56(1):14-21.
    [2] https://www.zoomeye.org/help/manual.
    [3] https://nmap.org/man/zh/.
    [4] Rose M T, Cass D E. RFC 1006-ISO Transport Service on top of the TCP[J]. Standard, Northrop Research and Technology Center,1987.
    作者�介:
    李沁园(1990-),女,汉族,浙江杭州人,毕业于浙江大学,硕士研究生,工程师;主要研究方向和关注领域:信息安全、工控安全。
    孙歆(1981-),男,汉族,浙江杭州人,毕业于浙江大学,硕士研究生,高级工程师;主要研究方向和关注领域:信息安全、工控安全。
    戴桦(1985-),男,汉族,浙江杭州人,毕业于南京邮电大学,硕士研究生,工程师;主要研究方向和关注领域:工控安全、渗透测试。
    赵明明(1984-),男,汉族,内蒙古赤峰人,毕业于北京科技学院,本科,工程师;主要研究方向和关注领域:信息安全攻防。
转载请注明来源。原文地址:https://www.7428.cn/page/2018/0603/19188/
 与本篇相关的热门内容: