作者 | 郭宾,雷濛,王得奕

杭州木链物联网科技有限公司

摘要

随着工业互联网的快速发展,企业逐步从数字化向信息化、智能化转变。在生产效率提高的同时,也面临着网络安全威胁不断增加的问题。工控网络的态势感知技术可以全方位实时地监控整个行业或者地域的工控系统网络安全状态,而通过数据采集进行高效快速地获取有用数据是整个态势感知的关键。本文通过对态势感知的数据需求入手研究,结合当下的数据采集技术,对数据采集模块进行了设计,为工控网络态势感知的建设提供必要的数据支持。

关键词:工控安全;态势感知;数据采集

1、前言

80%以上的影响国计民生的国家重要基础设施通过工业控制系统来实现自动化作业,工业控制系统是能源、化工、水利、冶金、电力、交通、航空航天等基础设施的“中枢神经” ,是工业互联网的重要组成部分。工业控制系统随着逐步接入互联网,除了要应对传统的安全威胁,也开始面临越来越多的网络攻击,攻击者通过对暴露在互联网上的工控系统进行针对性的嗅探,在收集足够的信息后,利用发现的漏洞或后门,开展对工控系统的攻击或持续性威胁,而一旦对工控系统的攻击成功,将会对国家利益和人民生活造成巨大的损失和影响。

“十三五”规划伊始,网络空间安全就已上升至国家安全战略,工控网络安全作为网络安全中薄弱而又非常重要的部分,如何全方位掌握工控系统和网络的安全态势变为急需解决的重要问题之一。《中华人民共和国网络安全法》于2017年6月施行,其规定关键信息基础设施和网络运营者是网络安全责任主体,应负责编制和组织实施本行业、本领域的关键信息基础设施安全规划,应建立、健全本行业、本领域的网络安全监测预警和信息通报制度,并保证安全技术措施的同步规划、同步建设和同步使用。工业和信息化部在2017年底编制并印发了《工业控制系统信息安全行动计划(2018-2020年)》,行动计划中明确,要在2020年实现“一网一库三平台”的建设计划。其中的“一网”即为全国工控系统网络空间安全在线监测系统,目的就是实现对全国重要工业基础设施的工控系统运行状态、网络安全、风险隐患等能够实时感知、精准预判以及科学决策。

2、工控网络态势感知数据采集介绍

工控网络态势感知能够对工控系统网络空间进行持续监控,具备及时发现攻击和异常的能力,通过态势感知的安全预警机制,有效地帮助安全人员不断完善对风险的控制,提升整体安全防护水平。Tim Bass于1999年首次提出通过大数据异构分布式采集数据,实现网络空间的态势感知,并提出网络态势感知功能模型,如图1所示。

图1 网络态势感知功能模型

网络态势感知必须要建立在大量的安全相关数据采集的基础上,再结合历史数据、威胁情报、知识库等给出预判性的告警。其中数据采集作为整个态势感知的前提,其采集的数据足够全面和准确才能保障网络安全态势分析、评估与预测的准确性。

工控系统主要由工业控制器、工控主机、数据服务器、工业通信设备、网络安全设备、工业应用软件、通讯协议等组件构成。工控系统在设计之初并未将安全问题作为重点考虑,因此工控安全威胁往往隐藏在各组件产生的数据之中。工控网络态势感知是利用大数据技术对海量的工控网络安全数据进行自动分析关联处理和深度挖掘,对网络空间的安全状态进行分析总结,从而实时感知可能的安全威胁。工控网络态势感知基础也是对数据的采集,要获得这些数据,涉及的信息量大、设备种类多、网络结构复杂,对数据处理的实时性、准确性和高效性等有很高的要求。

目前国际上公认的解决工控网络安全攻防不对称问题的方法之一,就是通过数据来驱动安全。对于工业互联网企业来说,如果黑客的攻击方法和攻击目标能被识别,则一方面企业可以结合全网的安全大数据和自身的安全大数据提前分析,及时应对。另一方面可以将攻击信息汇总形成有效的威胁情报,提升整个行业的防御能力。

因此,数据是工控系统态势感知的关键,而数据采集则是整个系统的基础。通过各种数据采集方法和技术,如SNMP、WMI、ODBC、NetFlow、Syslog、SSH等,对各类软硬件设备进行数据的采集。采集数据后统一进行数据标准化、格式化、规范化的操作。输出处理完成的数据将作为应用层的输入数据,供后续的工作使用。

3、工控网络态势感知数据采集的设计

3.1 数据采集的需求分析

态势感知能实现全方位监测工控网络空间安全的关键是有全面的数据作为分析的基础,因此从数据的覆盖角度考虑,确认采集以下四种数据:

(1)节点数据

在工控系统中包括多个节点,一些非法入侵往往会对节点的数据进行恶意修改,或者破坏节点功能,或者制造虚假数据影响节点的正常运行,因此节点数据的采集至关重要。节点上数据的采集主要源自嵌入式系统,因此节点数据的采集实际上就是嵌入式系统上的数据采集,概括来讲,嵌入式系统是功能特定,资源有限的专用计算机系统,对嵌入式系统上任务相关的数据进行探测,有助于分析系统的网络安全问题。

(2)网络数据采集

工控系统往往通过网络将各个节点链接起来,实现节点之间的互联通信,网络的引入虽然为系统提供了便利,但也引入了问题,网络具有其自身的功能和性能,非法入侵同样能够对网络造成干扰和破坏,例如破坏数据包、增加网络负载等,造成节点之间通信速度降低、数据破坏甚至导致网络瘫痪,网络数据是否正常直接影响到系统的正常运行,因此需要对网络的数据进行采集。

(3)应用数据采集

工控系统的一大特点就是具有特定的应用,一个系统是否正常最基本的判断标准就是能否完成其特定的应用,因此需要对应用数据进行探测。从闭环控制的角度出发,节点采集的是闭环控制内部的数据,应用数据则为每个控制的外部表现的数据。按照闭环构成,可将应用数据分为传感器数据、控制器数据和执行器数据,而这些数据都是模拟量,在工业控制中还存在一些与应用密切相关的数字量,例如开关、阀门的开合。

(4)日志数据采集

作为工控网络态势感知的重要数据源之一,日志数据是必不可少的,日志可以记录网络系统、设备、工业软件等运行的真实状态。对于系统维护,安全感知至关重要。数据采集设计时需要将多种来源的日志数据进行提取,并进行汇总和处理,最后形成统一的安全事件格式,为态势感知提供重要数据来源。

3.2 节点数据采集设计

节点数据可分为任务活动数据,节点资源数据和用户活动监测数据。

(1)任务活动数据采集

任务的属性包括:任务标识号、调度信息、状态、进程间通信、时间和计数器、存储空间、处理器上下文等。每个任务在运行时都需要占用一定的系统资源,数据采集任务运行时需要考虑与被监测任务的关系,因其本身也会占用系统资源,因此要保证数据采集任务占用的资源不可过大,否则采集的数据可能会受影响,甚至采集的数据偏差过大,不具有分析意义。对于任务活动数据的采集,可以通过任务之间的通信,或者获得任务共享储存区域的数据,任务之间的通信包括共享信号量、消息队列和内存等。

(2)节点资源数据采集

节点资源,如CPU利用率,内存利用率,硬盘使用情况等也是体现工控网络态势感知状态的重要数据。采集实时的数据并将计算结果提供给应用层是一种理想情况,但这种理想一般情况下难以实现,且由于数据采集任务本身,也会消耗一定的系统资源,因此对节点资源数据的采集实施不能设计的过于复杂,否则会对采集的数据有较大的影响。

(3)用户活动监测数据采集

用户活动监测数据有两点需要注意,一是含有操作系统的嵌入式系统才具备可监测的用户活动,二是用户活动的数据量通常较大,因此采集数据时需要注意数据采集任务执行的时间,避免影响工控系统的正常运行。同其他节点数据采集设计一样,需要注意数据采集任务本身对系统的影响。

3.3 网络数据采集设计

网络数据可分为协议数据,报文数据和网络性能数据。

(1)协议数据采集

协议的数据采集功能要求可以对数据包进行深层次的解析,可以从数据包的结构中正确的解析出其数据的意义。换句话说,协议数据采集的重点内容就是如何从报文中获得与协议相关的信息,因此必须具备对工控协议的深度解析功能。但需要区分的是,协议数据采集的重点工作并不是抓取足够多的数据包,简单的抓取数据包通过被动的监测技术即可实现,协议数据采集要实现的关键技术是对数据包的处理,即从每一层的数据包中获取态势感知监测系统需要的关键信息。

(2)报文数据采集

工业互联网络通常采取主从的网络结构,所有的网络数据传输都会通过主节点,因此可以在主节点上进行对报文的采集,采集的内容包括帧序号、帧顺序、帧类型、校验和、报文调度行为、报文特征值等。因此报文数据在主节点上进行采集,这样设计的原因在于:

·部署简单。如果在从节点上进行数据的采集,不仅需要部署多个采集终端,而且每个采集终端都需要根据从节点的特性(如从节点不同的操作系统或不同的数据接口)进行单独设定,才能实现对数据的提取和存储处理等,而主节点统一部署即可进行数据采集。

·资源使用最大化。在主节点上进行数据抓取,数据抓取率最高,不会有在从节点上部署漏抓的可能。

·资源利用率高。通过主节点进行数据采集,会更好的利用系统资源,因为通常主节点的设备可以应对更大的负载,而从节点的处理器性能有限,如在多个从节点上进行数据报文的采集将会增大从节点处理负担,影响从节点的正常业务功能和性能。

(3)网络性能数据采集

通过探测依赖矩阵推理可获知工控网络系统的网络拓扑结构,明确网络结构是测量采集网络性能数据的前提。网络性能的检测主要通过对丢包率的推理获得,通过对链路上多次进行丢包率检测,最后可以测得一个丢包率的统计值。

3.4 应用数据采集设计

对于主从结构的工业控制系统来说,应用数据都是由主节点进行处理计算后,再下发至从节点,主节点主要是数据的接收,从节点主要是数据的读取和发送。因此应用数据采集可以在每个节点上设置程序库,这些程序库都具备相同的接口,如数据发送,读取和接收,本质即为填充报文和解析报文。应用数据采集的关键在于:

(1)应用数据采集时,对于采集获取的数据,都需要有时间标记,记录数据发出的时间;

(2)应用数据采集时,需要对数据进行解析。

主从节点之间应用数据的收发,可理解为应用程序之间的交互。从节点采集到的应用数据,周期性的向主节点发送。需注意的是:

主从之间应该具备某种协议,可自定义,从站上的应用数据通过网络传输至主节点,主节点能够获知哪些数据是来自哪一节点的什么类型的数据;

接口是提供给应用程序的,需要采集什么样的数据,应用程序可以控制,但是采集数据仍然需要驱动程序支持,一般对于嵌入式系统,需要控制的是I/O上的数据,因此针对不同的系统,如Linux,对这些I/O的处理机制不同,需要根据这些不同编写好驱动程序,以提供设计阶段接口函数的实现。

3.5 日志数据采集设计

工业主机、工业安全设备、通信设备、工控设备、工业软件等在工作过程中都会产生大量的真实操作和安全记录,因此对于日志的采集汇总分析是工控系统态势感知的重要一环。日志的采集可以通过专用的日志访问协议,日志输出接口,日志采集代理等方式实现。日志采集的设计要有定时自动采集并完成的功能,且可以自动从控制模块的配置数据中获得相关参数,例如采集时间间隔、日志文件路径、传感器编号、数据库配置等信息。同时由于攻击者入侵成功后,通常都会修改或删除和自己攻击相关的日志,或者伪造一些虚假日志隐藏自己的真实目的,给网络安全的应对和调查增加了障碍,面对日志的这种容易修改破坏的易损性,需要在日志采集数据时增加完整性检测功能,可以通过在日志系统中嵌入完整性检测的算法实现。

由于需要采集的相关设备、软件、系统较多,如果对全部数据进行采集分析则可能造成较大的资源浪费,因此不一定所有采集到的数据都要进行数据分析,可提前根据安全规则和行业特点设置一定的条件,筛选出有价值数据,丢弃冗余或无价值数据。筛选条件宏观可以到不同日志类型,微观可以到具体正则表达式的提取,同时还可以将筛选后的数据经过规则库的匹配,合并指定时间范围内的重复日志,去掉冗余的事件信息,使得整个数据采集更有价值。日志的筛选合并是在采集时直接解析完成的,先按照规则库对采集的日志执行过滤操作,再通过合并算法按照时间范围对日志进行合并,最后再将处理后的日志传给数据分析模块。

4、结语

通过对节点、网络、应用和日志四方面数据采集的设计,基本实现了对安全相关数据的全面采集,满足了态势感知平台对基础数据的需求,得以从宏观尺度实现全局监测工业网络安全态势,形成一套充分具有战略纵深的工业网络安全数据应用体系,从而让安全态势“可见、可管、可控”,能够有效辅助政府和行业进行安全监管,助力企业提升安全水平,同时数据采集的应用,为将来工控系统网络安全的大数据,人工智能技术的应用奠定基础。

作者简介

郭宾(1989-),男,浙江杭州人,工程师,现任杭州木链物联网科技有限公司产品总监,主要从事工控安全领域前沿产品探索方面的工作。

雷濛(1990-),男,北京人,工程师,现任杭州木链物联网科技有限公司首席技术官,主要从事工控安全方向技术研究。

王得奕(1988-),男,黑龙江鸡西人,工程师,现任杭州木链物联网科技有限公司产品经理,主要从事工控安全产品设计方面的工作。

来源:《工业控制系统信息安全专刊(第六辑)》(为便于排版,本文省去参考文献)

声明:本文来自工业安全产业联盟,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。